它做的是验证,而不只是扫描
正如 NIST SP 800-115 所阐明的,关键区别在于:渗透测试会主动利用薄弱点来确认其确实存在,而不只是报告某个漏洞可能存在。因此,优秀的渗透测试能排除扫描器的误报,每一项发现都附带证据。另一方面,它是一次在特定时点、限定时长内进行的演练,反映的是系统在约定窗口内受测时的状态。
渗透测试(pentest)是一次经授权、针对系统的模拟攻击,按真实对手的方式进行,目的是抢在恶意者之前发现并确认薄弱点。关键词是「确认」:渗透测试会证明问题确实可被利用,而不是只把它标记为可能存在。
正如 NIST SP 800-115 所阐明的,关键区别在于:渗透测试会主动利用薄弱点来确认其确实存在,而不只是报告某个漏洞可能存在。因此,优秀的渗透测试能排除扫描器的误报,每一项发现都附带证据。另一方面,它是一次在特定时点、限定时长内进行的演练,反映的是系统在约定窗口内受测时的状态。
大多数项目遵循公认的流程,例如渗透测试执行标准(PTES)或 NIST SP 800-115 的四个阶段:规划、探查、攻击与报告。其中攻击阶段会在新访问开辟出新路径时回到探查阶段。项目以范围界定和行动规则开始(在 Vexaro,任何访问之前还会签署 NDA),以一份按优先级排序的报告结束。与我们合作时,还包括在 SoW 约定的时间窗口内对修复情况的免费复测。
渗透测试要界定到具体目标:Web 应用(对照 OWASP Web Security Testing Guide)、API(OWASP API Security Top 10)、移动应用(OWASP MASVS/MASTG)、内部或外部网络,或云配置。不同目标需要不同方法(把 Web 检查清单套用到 API 上,会遗漏大部分真实风险),这正是各项服务按目标划分的原因。
测试者可以在没有任何先验知识的情况下工作(黑盒),可以掌握凭据与规范等部分知识(灰盒),也可以掌握包括源码与架构在内的全部知识(白盒)。在相同时间内,信息越多通常覆盖越深,因此应根据您的保障目标来选择,而不是看哪种听起来最难。对大多数应用与 API 工作而言,灰盒是兼顾成本效益的常规做法。
它是一次经授权的模拟攻击,按真实对手的方式进行,用来确认可被利用的薄弱点,而不只是标记可能存在的问题。按照 NIST SP 800-115,渗透测试会主动利用薄弱点来证明它确实存在。它是一次有时间限制的时点性工作,反映的是系统在约定测试窗口内的状态。
大多数项目遵循公认的流程,例如 PTES 或 NIST SP 800-115 的四个阶段:规划、探查、攻击和报告。项目从确定范围和行动规则开始(在 Vexaro,任何访问之前都先签署保密协议),以一份按优先级排序的报告结束;与我们合作,还包括在 SoW 约定的时间窗口内对修复情况的免费复测。
渗透测试会限定于一个目标(Web 应用、API、移动应用、网络或云配置),因为不同目标需要不同的方法。测试者可以在一无所知的情况下开始(黑盒),也可以掌握凭据和规范等部分信息(灰盒),或获得完整的源代码和架构(白盒)。选择取决于保障目标,而不是哪种听起来更难。