P175 · 测试与评估

区分工具执行的三种状态

Tool-Ran Tri-State Provenance

区分工具是否存在、可运行及实际运行,并另记执行结果和任务覆盖。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

安全扫描器已安装,但当前项目认证不可用。需要在报告中区分工具存在、能够运行与实际执行,再另记执行成功及任务覆盖。安装列表本身不能证明扫描完成。

具体做法

记录present、runnable、ran及各状态的检查依据,未知留unknown。运行须绑定命令、当前文件/版本、环境与输出;认证失败也属于尝试执行,不能记成成功扫描。另记录结果状态、实际范围、跳过文件及未完成原因,将静态检查与工具发现分开。只把读过且覆盖当前对象的运行计入证据。

反例

扫描器已安装,所以项目已安全扫描;把自己静态读代码的发现称为扫描器结果。

改进写法

检查当前扫描器与认证:若未尝试且认证不可用,记present=yes、runnable=no、ran=no及原因。若运行后认证失败,则ran=yes、result=failed、coverage=none。记录实际输出,不把安装或模拟执行写成成功。

为什么这样改

存在、运行条件与执行事实是不同层次。进一步分开成功及覆盖,才能避免一个绿色“已配置”标签掩盖完全没扫描或部分跳过的状态。

如何验证

教学两条记录分别为未尝试认证缺失和已尝试认证失败;两者都不能声称扫描覆盖。成功输出若跳过generated目录,报告该缺口。核对每个ran=yes都有当前运行证据,没有命令文本自述冒充记录。

适用边界

成功调用也不保证全部文件被检查或所有漏洞被发现。工具配置、模型身份和沙盒声明需核实实际契约;冻结来源的“模拟随机执行”只是文本,不能计为真实运行。

原文与版本

如何收录这些方法

相关方法