bharat3645/agent-rules-audit

GitHub: bharat3645/agent-rules-audit

一款零依赖的离线扫描器,专用于检测 AI agent 指令文件中的提示注入、隐藏 Unicode、编码 payload 和数据外泄等投毒模式,可在 CI 中对指令文件进行自动化安全审查。

Stars: 1 | Forks: 0

# agent-rules-audit **你的 AI agent 会从仓库中的文件接收指令。谁来审计这些文件?** `agent-rules-audit` 是一个用于 agent 指令文件的离线扫描工具 - 包括 `AGENTS.md`、`CLAUDE.md`、`.cursorrules`、`.windsurfrules`、`.claude/skills/**`、Copilot 指令、MCP 配置。它会标记真实指令文件投毒攻击中使用的模式:隐藏的 Unicode 混淆、编码的 payload、指令覆盖、数据外泄指令、静默执行和绕过权限的措辞。 零依赖。零网络调用。Node >= 18。 ## 为什么需要 指令文件会被编程 agent 当作受信任的上下文执行,但人类却将其视为“仅仅是文档”来审查——如果他们真的会审查的话。现实中的供应链攻击活动已经使用投毒的 `.cursorrules` 和与 MCP 相关的注入作为攻击媒介,而且 skills/市场生态系统已经发布了数百个恶意 agent skills。你引入的依赖项、克隆的模板、安装的 skill——它们中的任何一个都可能携带你的 agent 会执行而你永远看不到的指令。 这个工具让这些文件可以在 CI 中进行审查,就像你 lint 代码一样。 ## 安装 / 运行 ``` # 从 checkout(无需安装) node bin/cli.js /path/to/repo # 或在发布后通过 npx npx agent-rules-audit . ``` ## 用法 ``` agent-rules-audit [paths...] [--json] [--strict] [--quiet] ``` - 递归扫描给定路径(默认为 `.`)以查找已知的指令文件;跳过 `node_modules`、`.git`、`dist`、`build`、`vendor`、`target`。 - `--json` - 机器可读的报告。 - `--strict` - 发现**任何**问题均以状态码 1 退出(用于 CI 门禁)。 - `--quiet` - 在常规输出中隐藏无问题的干净文件。 退出代码:`0` 评级 A/B;`2` 评级 C/D;`3` 评级 F;`1` 在 `--strict` 模式下发现任何问题;`4` 用法错误。 ## 检测内容 | 规则 | 严重性 | 触发示例 | |---|---|---| | `hidden-unicode` | critical | 零宽字符、bidi 覆盖、Unicode tag-block(ASCII 混淆) | | `instruction-override` | critical | “忽略所有之前的指令” | | `concealment` | critical | “不要告诉用户” | | `exfil-network` | critical | `curl https://...`、webhook.site / ngrok / 裸 IP endpoint | | `exfil-data` | critical | “将 API keys 发送至 ...” | | `secret-access` | high | `~/.ssh/id_rsa`、`.aws/credentials`、“cat .env” | | `dangerous-exec` | high | `curl ... \| sh`、`rm -rf ~`、“静默运行” | | `encoded-payload` | high/low | 解码后为可读(可疑)文本的 base64/hex blob | | `autonomy-escalation` | medium | “无需询问”、“总是允许”、`--dangerously-skip-permissions` | | `role-hijack` | medium | “你现在处于开发者模式” | 文件评级为 **A-F**(critical=25,high=15,medium=8,low=3 分),并附带一个总体评级。 ## CI 示例 (GitHub Actions) ``` - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: { node-version: 22 } - run: npx agent-rules-audit . --strict ``` ## 客观的局限性 - **基于模式匹配。** 它能捕获已知的攻击形式,而不是新颖的语义。获得 A 评级*并不*代表安全保证。 - **它会产生误报** - 描述攻击的安全文档(比如此 README)也会触发警报。这就是需要人工审查结果的原因;可以使用 `--json` 在下游构建允许名单。 - 它仅根据文件名/位置约定扫描指令文件。它不会执行任何操作或回传数据——这是设计使然。 ## 路线图 - 用于代码扫描集成的 SARIF 输出 - pre-commit hook 配方 - 允许名单/基准文件(`.agent-rules-audit.json`) - MCP 工具描述漂移检测(参见姊妹项目 `mcp-sentinel`) ## 同一作者的相关项目 [`mcp-sentinel`](https://github.com/bharat3645/mcp-sentinel) | [`agent-tool-audit`](https://github.com/bharat3645/agent-tool-audit) | [`ollama-audit`](https://github.com/bharat3645/ollama-audit) | [`dep-graveyard`](https://github.com/bharat3645/dep-graveyard) ## 许可证 MIT (c) 2026 Bharat Singh Parihar
标签:AI Agent安全, DevSecOps, DNS 反向解析, GNU通用公共许可证, MITM代理, Node.js, 上游代理, 文档结构分析, 自定义脚本, 零日漏洞检测, 静态代码扫描