如何衡量安全扫描规则的误报与漏报?

1 人参与

安全扫描规则的命中数量,不能直接说明其准确性:告警多可能意味着覆盖更广,也可能只是误报更多;没有告警则可能是规则没有发现问题,也可能是目标根本没有被完整扫描。衡量规则,需要先确定检查范围和判定标准,再把扫描结果与独立复核的真实情况对照。

先建立可信的对照

测试集应同时包含预期命中的风险样例和不应命中的对照样例,并覆盖规则计划检查的语言、文件类型或配置场景。样例的正确标签应依据规则要回答的问题确定:例如,策略检查中的命中表示违反约定,并不自动等于存在可利用漏洞。对真实告警也要核对位置、触发条件和证据,不能只凭扫描报告给结果定性。

扫描前还要确认目标已被读取、规则已加载且运行没有遗漏。文件读取失败、目标被跳过或规则未生效时,结果应标记为“验证未完成”;不能把这些情况算作正常扫描后的未命中。

用混淆矩阵区分两类错误

将每个已标注的检查对象与规则结果对照,可得到四类结果:真正报是存在目标问题且被命中;误报是不存在目标问题却被命中;漏报是存在目标问题却未被命中;真正负是不存​​在目标问题且未被命中。统计时应统一对象粒度,避免同一问题的重复告警被当作多个独立发现。

在此基础上,可以计算几项互补的指标:

  • 精确率:真正报数除以全部告警数,反映告警中有多少经复核成立。
  • 误报率:误报数除以所有实际不存在目标问题的对象数,反映无问题对象被错误命中的比例。
  • 召回率:真正报数除以所有实际存在目标问题的对象数,反映已知问题被发现的比例;漏报率为漏报数除以同一分母。

“告警中误报占多少”与上述误报率的分母不同,不应混用。尤其是漏报无法仅靠复核已有告警统计:还必须独立检查未命中对象,或使用已知标签的测试集。

比较规则时,应使用相同范围和判定标准,并分别观察不同场景的结果。调整规则后保留原有对照样例复测:减少误报若同时放过更多真实问题,就需要根据风险和人工复核成本重新取舍,而不是只追求告警数量下降。

参与讨论

1 条评论
  • 奶泡小甜心

    没扫到和没问题真的不能画等号