mcpField
A
absolute-audit

absolute-audit

github.com/dhruvjainin安全223466 次安装2 天前更新
代码仓库

关于 absolute-audit

Absolute Audit 是用于代码仓库安全审计的技能,可查找并分级依赖 CVE 与高风险代码模式,再指导修复和验证。它面向自有仓库的防御性加固,并输出按严重程度排序的问题及修复建议。

主要功能

  1. 01扫描依赖中的已知 CVE
  2. 02检查高风险代码模式
  3. 03按严重性和可达性排序
  4. 04实施小范围修复并重新扫描
  5. 05报告密钥位置但不输出值

适用场景

  1. 01CVE 披露后审计代码仓库
  2. 02定期检查依赖和代码风险
  3. 03优先修复可达漏洞
  4. 04不屏蔽问题并验证修复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dhruvjainin/absolute --skill absolute-audit

安装后在 Claude Code 中输入/absolute-audit确认已加载。

附带文件README.mdreferences/health-engine.md

详细介绍

首次响应请以 🔒 表情开头。

Absolute Audit

在整个仓库中查找并分级处理安全问题——易受攻击的依赖(CVE)和高风险代码模式——然后安全地修复值得修复的问题。输出按严重性排序的发现表,并为每项提供修复措施,而不是原始扫描器结果。

运行 references/health-engine.md 中的共享引擎——请阅读该文件,了解 DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT 流程及安全约定。本文件仅介绍安全审计的特定内容。

授权的防御性用途。 此命令用于审计用户自己的仓库,以发现并修复弱点。它用于加固安全,不用于攻击系统或规避检测。


使用时机

  • “运行安全审计”“我们是否易受攻击?”“检查我们的依赖是否存在 CVE”。
  • 披露的 CVE 影响到你使用的组件之后。
  • 定期检查 main。

不同于内置的 /security-review(审查你分支上待提交的差异)——audit 会扫描整个已提交的仓库,包括依赖。两者相辅相成。


扫描内容

1. 依赖漏洞(CVE)——主要内容:

生态系统扫描器
npm / pnpm / yarnnpm audit --json / pnpm audit --json / yarn npm audit --json
Pythonpip-audit(首选)或 safety check
Gogovulncheck ./...
跨语言如有锁文件,则使用 osv-scanner 扫描

2. 代码级模式——只读的 grep/静态检查,仅关注高置信度问题: 硬编码的机密/密钥/令牌、对输入使用 eval/动态执行、通过字符串拼接构造 SQL、敏感路由缺少授权检查、禁用 TLS 验证、不安全的反序列化、过于宽泛的 CORS。如果项目已配置现有的 SAST/代码检查安全规则(eslint-plugin-security、bandit、gosec),优先使用这些规则。

报告疑似泄露的机密,但绝不打印机密值——只注明 path:line 和类型。


风险排序(TRIAGE)

按严重性 × 可利用性 × 可达性排序,而不是仅看 CVSS:

严重性默认处理方式
严重 / 高,存在可达路径且有可用修复立即修复(第 1 波)
中等,存在可达路径本轮修复
低 / 无法从应用代码中触达报告,通常延后处理
仅传递依赖,且没有直接升级路径标记并注明受阻的上游依赖

逐项标明:该问题是否可通过应用的实际代码路径触达?未使用的传递依赖分支中的 CVE,优先级低于热点路径上的中等风险问题。注明每项的修复版本或缓解措施。


修复与验证

  • 依赖 CVE → 通过最小幅度的版本升级来消除问题(将具体的升级操作委派给 upgrade 流程中各生态系统的步骤)。优先选择已修复的次要版本;只有在这是唯一修复方案时才升级主版本,并进行门控。
  • 代码问题 → 实施具体修复(参数化查询、将机密移至环境变量,并标记已泄露的机密以便轮换、添加授权检查)。每项修复单独作为一小波进行。
  • 每波修复后重新运行扫描器:确认发现确实消失,并确保测试/构建仍然通过。绝不要通过屏蔽/允许列表来消除告警。
  • 泄露的有效机密:标记为需要轮换——从代码中移除并不能消除已发生的泄露。

注意事项

  1. 审计疲劳 → 一概忽略。 根据可达性进行分级,而不是屏蔽扫描器告警。
  2. 通过屏蔽来修复 CVE。 加入允许列表的安全公告仍然代表漏洞。
  3. 打印机密。 仅注明位置和类型;绝不回显机密值。
  4. 从代码中删除机密 ≠ 安全。 机密仍存在于 git 历史中,且已被暴露——应轮换。
  5. 只检查依赖便停止。 许多实际问题出在代码中,而非依赖树——两轮检查都要执行。

配套命令

  • /absolute upgrade——对存在漏洞的依赖实际进行版本升级。
  • /security-review(内置)——搭配使用,也检查待提交的差异。
  • /absolute work——如果修复需要实质性重构(例如替换身份验证流程),则移交处理。

评论

支持 Markdown