事件响应与取证

渗透测试

约 4 分钟阅读

什么是渗透测试

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

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

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

测试类型与实施流程

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

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

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

灰盒测试:提供有限信息(如普通用户账户等)的中间方法。

PTES (Penetration Testing Execution Standard) 将实施流程分为 7 个部分:(1) 事前沟通(包括范围定义)、(2) 信息收集(侦察)、(3) 威胁建模、(4) 漏洞分析、(5) 漏洞利用(Exploit)、(6) 后渗透(如权限提升与横向移动)、(7) 报告编写。

主要攻击手法与常见漏洞

以下介绍渗透测试中使用的代表性攻击手法和测试中检查的漏洞。

Web 应用:跨站脚本 (XSS)、SQL 注入、认证与授权缺陷、CSRF、SSRF、不安全的反序列化等是主要攻击目标。可参考 OWASP Top 10,这是一份汇总 Web 应用最关键安全风险的安全意识文档。

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

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

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

除了零日攻击所利用的那类未知漏洞,已知漏洞的组合也可能暴露出意想不到的攻击路径。

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

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

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

实施注意事项:

  • 以书面形式明确约定测试范围和禁止事项。攻击范围外的系统可能引发法律问题
  • 在生产环境测试时,考虑服务中断风险,在影响较小的时间段实施
  • 在云环境中,事先确认云服务商的渗透测试政策(截至 2026 年 10 月,AWS 对其列出的允许服务不要求事先批准,但禁止 DoS 等部分行为)
  • 将 WAF 有效性验证纳入测试项目,可以确认防御的实际效果

除定期实施外,在重大系统变更后也应考虑进行测试。

常见误解

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

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

渗透测试

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

漏洞扫描

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

分享

相关术语

相关文章