事件响应与取证

渗透测试

约 4 分钟阅读

什么是渗透测试

渗透测试 (Penetration Testing,简称 Pentest) 是一种使用与真实攻击者相同的手法尝试入侵系统和网络,以发现安全弱点的实践性安全评估方法。

渗透测试的目的是发现桌面评估无法发现的实际攻击路径,验证组织的安全措施对实际攻击的有效程度。它实证了通过漏洞管理检测到的各个漏洞如何串联导致入侵。

测试范围涵盖 Web 应用、网络基础设施、移动应用、云环境、物理安全、社会工程学等。测试对象和范围需事先明确达成一致并以书面形式定义。

测试类型与实施流程

渗透测试根据提供给测试人员的事前信息量分为 3 种类型。

黑盒测试:不向测试人员提供任何事前信息,在与外部攻击者相同的条件下尝试入侵。最接近真实攻击场景,但需要更多时间和成本。

白盒测试:向测试人员提供源代码、网络架构图、认证信息等内部信息。能高效发现深层漏洞,但外部攻击者视角较弱。

灰盒测试:提供有限信息(如普通用户账户等)的中间方法。在实务中最为均衡,被广泛采用。

实施流程遵循 PTES (Penetration Testing Execution Standard):(1) 事前准备与范围定义、(2) 信息收集(侦察)、(3) 漏洞识别、(4) 漏洞利用(Exploit)、(5) 权限提升与横向移动、(6) 报告编写。

主要攻击手法与常见漏洞

以下介绍渗透测试中使用的代表性攻击手法和经常发现的漏洞。

Web 应用跨站脚本 (XSS)SQL 注入、认证与授权缺陷、CSRF、SSRF、不安全的反序列化等是主要攻击目标。OWASP Top 10 作为全面的参考列表被广泛使用。

网络:验证不必要的端口开放、使用过时协议、默认认证信息未更改、未加密通信、网络分段不足等。

认证与授权:验证密码策略薄弱、未引入多因素认证、权限提升可能性、会话管理缺陷。

社会工程学:发送钓鱼邮件、电话信息诈取、物理入侵测试等利用人类心理弱点的手法。使仅靠技术措施无法防范的威胁可视化。

发现零日攻击的情况较少,但通过已知漏洞的组合发现意想不到的攻击路径并不罕见。

测试结果的活用与实施注意事项

渗透测试报告包含发现的漏洞列表、风险评估(CVSS 评分等)、实际攻击路径详情、复现步骤和建议对策。

收到报告后的应对最为重要。按严重程度对发现的漏洞进行优先排序,制定修复计划。修复完成后进行复测 (Retest),确认漏洞已被彻底消除。

实施注意事项

  • 以书面形式明确约定测试范围和禁止事项。攻击范围外的系统可能引发法律问题
  • 在生产环境测试时,考虑服务中断风险,在影响较小的时间段实施
  • 在云环境中,事先确认云服务商的渗透测试政策(AWS 不需要事前申请,但某些攻击手法被禁止)
  • WAF 有效性验证纳入测试项目,可以确认防御的实际效果

建议每年至少进行一次渗透测试,或在重大系统变更后实施。

常见误解

漏洞扫描和渗透测试是同一回事
漏洞扫描使用自动化工具全面扫描已知漏洞,高效覆盖广泛范围。渗透测试由人类测试人员实际尝试入侵,实证漏洞的连锁利用和攻击路径。两者是互补关系:用漏洞扫描广泛扫描,用渗透测试深入验证。
通过了渗透测试就说明系统是安全的
渗透测试在有限的时间和范围内实施,无法发现所有漏洞。它只是测试时点安全状态的快照,新漏洞每天都在被发现。需要持续的漏洞管理和定期重复测试。

渗透测试与漏洞扫描的比较

渗透测试

由人类测试人员实际尝试入侵。实证漏洞的连锁利用和攻击路径。可进行深入分析但需要更多时间和成本。通常每年实施 1-2 次。

漏洞扫描

自动化工具全面检测已知漏洞。高效覆盖广泛范围。需要审查误报。适合每月或每季度定期执行。

分享

相关术语