Absolute Audit 是一个防御性安全审计命令,用于在用户自己的代码仓库中查找并分类安全问题,包括存在漏洞的依赖项(CVE)和高风险代码模式,然后安全地修复值得修复的问题。其输出是按严重程度排序的发现表格,每项附带修复方案,而不是原始扫描器转储。
用途
该工具运行共享引擎(见 references/health-engine.md),遵循 DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT 循环和安全契约。它仅用于授权的防御性用途:审计用户自己的仓库以发现并修复弱点,用于加固,而非攻击系统或规避检测。
适用时机包括:运行安全审计、检查是否易受攻击、检查依赖项是否存在 CVE;在影响所用组件的 CVE 披露之后;对主分支进行定期卫生检查。它与内置的 /security-review 不同——后者审查分支上待处理的 diff,而 audit 扫描整个已提交的仓库(包括依赖项),两者互补。
扫描内容
- 依赖项漏洞(CVE)——主要部分:
- npm / pnpm / yarn:npm audit --json / pnpm audit --json / yarn npm audit --json
- Python:pip-audit(首选)或 safety check
- Go:govulncheck ./...
- 跨语言:如可用,对锁文件运行 osv-scanner
- 代码层面模式——只读的 grep/静态检查,仅针对高信号问题:硬编码的密钥/密钥/令牌、对输入使用 eval/动态执行、通过字符串拼接构建 SQL、敏感路由缺少授权检查、禁用 TLS 验证、不安全的反序列化、过于宽泛的 CORS。如果项目已配置 SAST/linter 安全规则(eslint-plugin-security、bandit、gosec),则优先使用。报告疑似泄露的密钥,但绝不打印密钥值——仅引用 path:line 和类型。
风险排序(TRIAGE)
按严重程度 × 可利用性 × 可达性排序,而非原始 CVSS:
- 严重/高,可达,有修复:立即修复(第 1 波)
- 中等,可达:本次修复
- 低/从应用代码不可达:报告,通常推迟
- 仅传递依赖,无直接升级路径:标记,注明阻塞的父项
标记每项:是否可从应用实际代码路径到达?未使用的传递分支中的 CVE 优先级低于热路径上的中等漏洞。为每项说明修复版本或缓解措施。
修复与验证
依赖 CVE → 通过最小的版本移动解决(实际升级机制委托给升级流程的各生态步骤)。优先修复补丁版本;仅当唯一修复是主版本时才升级,并加以门控。
代码问题 → 应用具体修复(参数化查询、将密钥移至环境变量、标记泄露的密钥以供轮换、添加授权检查)。每个修复是独立的小波次。
每波之后,重新运行扫描器:发现必须实际消失,测试/构建保持绿色。绝不通过抑制/允许列表警报来解决。
泄露的活跃密钥:标记以供轮换——从代码中移除并不能撤销暴露。
注意事项
- 审计疲劳 → 一概忽略。应按可达性分类,而不是静默扫描器。
- 通过抑制来修复 CVE。被允许列表的公告仍然是漏洞。
- 打印密钥。仅引用位置 + 类型;绝不回显值。
- 从代码中删除密钥 ≠ 安全。它存在于 git 历史中且已暴露——需要轮换。
- 止步于依赖项。许多真实问题在代码中,而非依赖树——需运行两遍。
配套命令
- /absolute upgrade — 对易受攻击的依赖项执行实际版本移动。
- /security-review(内置)— 与此配对,同时覆盖待处理的 diff。
- /absolute work — 如果修复是真正的重构(例如替换认证流程),则移交。