如何衡量登录后接口的扫描覆盖?
TOPIC SOURCE
在 CI/CD 预发布环境接入 OWASP ZAP 动态扫描:从基线扫描、认证会话到误报排除与回归验证
登录后接口的扫描覆盖,不能用“ZAP 发现了多少条路径”衡量。路径出现在站点树里,只说明扫描器可能接触过它;如果请求已被重定向到登录页,或只得到未认证响应,这条路径并没有形成有效的登录后覆盖。衡量的起点应是明确范围,再核对请求是否以预期身份到达了目标功能。
先建立覆盖基数:列出本次授权范围内、需要登录才能访问的接口,并标明入口、所需账号权限和是否允许主动扫描。删除、数据重置等可能产生副作用的接口应明确排除,单独记录为覆盖缺口,不能为了提高数字而触发它们。接口清单还应与实际部署环境核对;仅从扫描结果反推清单,会把扫描器没发现的入口遗漏掉。
对每个纳入范围的接口,至少区分三种状态:尚未发现入口、已发出请求但认证未通过、已用预期账号取得业务响应。只有最后一种才可计入有效触达。验证时查看 ZAP 的用户状态,并抽查受保护请求的响应,排除返回登录页或未认证内容的情况。若不同权限账号能访问不同功能,应分别记录,避免用一个高权限账号的结果代表所有登录场景。
有效触达也不等于漏洞检查充分。基线扫描建立的是初始结果,不能把它覆盖到的接口都视为完成了同等深度的安全测试。报告中宜分别呈现“已有效触达的接口占纳入范围接口的比例”和“其中已按计划执行相应检查的接口”,同时列出认证失效、入口未发现、主动扫描被排除等原因。复跑时保持范围、账号、认证配置和规则文件一致,覆盖变化才有可比性;否则数字上升,可能只是扫描口径变了。

参与讨论
有效触达这个概念很关键,之前确实容易混淆