确定范围和目标

在订购渗透测试之前,必须明确定义测试范围。这包括识别所有应受评估的系统组件:网络应用程序、API、基础设施和外部服务。文档化环境可以防止范围蔓延并确保准确的成本估算。渗透测试的有效性直接取决于测试范围的准确性和完整性。

确定发现的漏洞对业务的风险分类。支付处理系统需要比演示应用程序更彻底的分析。建立测试时间窗口,明确在评估期间是否可以接受服务中断,并确认哪些防御机制(WAF、速率限制)在测试期间保持活跃。这些信息对于准确评估渗透测试的结果至关重要。

  • 目标IP地址和域名的完整列表
  • 应用程序和基础设施的架构图
  • 使用中的身份验证机制(OAuth、SAML、基本身份验证)
  • 关键业务流程和系统功能

测试方法和标准选择

OWASP基金会发布的网络安全测试指南(WSTG)为网络应用程序测试建立了标准框架。订购渗透测试时,应确保供应商参考该文档并按照4.2版本或更新版本进行测试。WSTG定义了九个测试类别:信息收集、配置管理、身份验证、授权、会话管理、注入测试等。这些类别覆盖了网络应用程序的主要安全风险面。

OWASP Top 10代表对网络应用程序的最关键风险,并作为基线评估。一个有能力的渗透测试人员必须验证应用程序与Top 10的符合性,但这不能替代全面的WSTG测试。向供应商询问其信息收集方法、使用的工具和漏洞验证过程。完整的WSTG覆盖比Top 10更广泛,对于需要高安全性的系统尤为重要。

评估测试人员的资质

请求渗透测试人员在类似系统类型方面的经验描述。验证团队是否持有公认的安全认证(OSCP、CEH、GPEN)。请求以前报告的匿名示例,以评估分析质量和文档完整性。这些细节反映了测试人员的专业水平和经验深度。

讨论处理关键漏洞的方法。道德的渗透测试人员会立即通知客户发现的高风险漏洞,而不是等到测试完成。澄清是否将提供修复建议和修复后的重新测试。这种方法确保了发现的严重问题能够及时处理。

报告结构和内容

质量优良的渗透测试报告必须包含面向管理层的执行摘要和包含CVSS得分、复现步骤、影响评估和修复建议的每个漏洞的详细描述。确保文档包括HTTP请求/响应示例、概念验证漏洞利用的屏幕截图,以及对相关OWASP部分和权威来源的引用。详细的报告帮助开发团队快速理解和修复问题。

报告结构应该让开发人员能够快速定位和理解问题。对于每个漏洞,指定受影响的组件和相关的库版本。询问报告是否可以以机器可读格式(如JSON)提供,以便与漏洞管理系统集成。这种格式便于自动化处理和跟踪。

沟通流程和风险管理

与渗透测试人员建立定期沟通,讨论进度、初步发现和环境问题的每周电话会议可以防止返工。指定负责决策制定和系统访问的客户方联系人。有效的沟通确保测试过程顺利进行,并能及时解决任何问题。

讨论如何处理误报和需要澄清的发现。测试人员应该能够与您的开发团队重新验证功能,以确认漏洞并排除工具伪影。这种验证过程对于确保报告的准确性至关重要。

技术环境准备

确保渗透测试人员的IP地址在监控系统中被列入白名单,以防止被阻止或触发IDS/IPS误警。同意测试是否将从外部进行(模拟基于互联网的攻击)或从内部进行(评估特权访问场景)。这影响漏洞范围和修复要求。不同的测试方向会发现不同类型的安全问题。

记录所有使用的协议和技术:HTTP/1.1、HTTP/2、WebSocket。如果应用程序使用CORS,指定允许的源。提供有关WAF和其他防御系统的信息,以便测试人员能够正确解释结果,并且不会在与应用程序本身无关的系统上浪费时间。这样的准备有助于提高测试效率。

重新测试和效能度量

修复后,渗透测试人员应进行专注于已修复漏洞的验证测试,虽然也可以订购全面重新评估。为关键漏洞修复建立SLA(通常为24-72小时)和中等严重性问题的SLA(1-2周)。及时的修复对于维护系统安全至关重要。

定义成功指标:重新测试中发现漏洞的减少、OWASP Top 10符合性、不存在关键缺陷。在评估期间追踪漏洞历史,以衡量安全趋势。定期测试(每年或每半年一次)比一次性评估更有效,特别是对于积极开发的应用程序。持续的安全评估帮助组织维持高水平的应用程序安全。

参考资料

PENTEST.RED / RED JOURNAL