SuperAPI AI 工具集

debug-rule

测试与质量

查看项目

更新于 10-16 01:50

技能介绍

用途:诊断某条规则或近似项在模型上行为异常的原因,定位污点丢失位置,并判定修复归属方(规则本身、缺失的库模型或引擎)。适用于样本反复尝试仍无法通过,或扫描中缺失预期流程的情况。

必要输入:rule(必填,格式 <ruleSetRelativePath>.yaml:<shortId>)与 model(必填);project-root 可选,默认当前目录,分析产物位于 <project-root>/.opentaint/。

使用方式:先以相同模型、规则集与近似目录复现问题,前台阻塞运行事实可达性命令:opentaint test rule reachability <rule> --project-model <model> -o <results-dir>/report.sarif --ruleset builtin --ruleset .opentaint/rules --passthrough-approximations .opentaint/pass-through --dataflow-approximations .opentaint/dataflow。逐指令事实记录在同目录的 debug-ifds-fact-reachability.sarif,-o 文件只反映规则是否触发。漏报时确认源处是否存在事实,否则问题在 pattern-sources;再沿事实找到最后仍携带它和最先丢失的指令,即为 kill。误报则反向查找无污点输入却出现事实的位置。若流程漏报且入口方法可能未被分析,可加 --entry-points "<method-fqn>" 重跑;Spring 下该参数为追加式。

归因与限制:kill 位于外部库方法多为模型问题,可核对 dropped-external-methods.yaml;kill 位于规则本应匹配处属规则缺陷;kill 为引擎应传递的普通指令且规则与模型均正确才判为引擎问题,引擎缺陷应最后考虑。本技能只做诊断与归因,不编写规则或近似、不重跑流水线。其余细节暂未提供。