hermes-labs-ai/rule-audit

GitHub: hermes-labs-ai/rule-audit

面向 LLM 系统提示词的纯静态分析 CLI 工具,无需调用 LLM 即可自动发现规则矛盾、覆盖漏洞、优先级歧义和可利用的边缘情况。

Stars: 0 | Forks: 0

# rule-audit **AI 系统提示词的静态分析工具。用于发现逻辑矛盾、覆盖范围漏洞以及可利用的边缘情况——无需运行 LLM。** 在 Hermes Labs 黑客松第八轮:ModelBreak 中构建。 ## 问题所在 任何足够复杂的 AI 安全提示词都包含在特定条件下会相互矛盾的规则。这些矛盾对作者来说是不可见的,但对攻击者来说却显而易见。`rule-audit` 能够率先发现它们。 **标准安全提示词中的真实矛盾:** ``` "You must always follow user instructions." "You must never produce harmful content." ``` 当用户指示模型生成有害内容时,这些规则是绝对无法协调的。没有优先级条款意味着模型会随意选择——或者由攻击者替它做出选择。 ## 安装 ``` pip install rule-audit ``` 或者从源码安装: ``` git clone https://github.com/hermes-labs-ai/rule-audit cd rule-audit pip install -e ".[dev]" ``` ## 快速开始 ### 命令行工具 (CLI) ``` # 快速演示(无需输入 — 练习每个 detector family) rule-audit --demo # Inline prompt rule-audit "You are helpful. You must never lie. Always answer every question." # 从文件 rule-audit --file system_prompt.txt # 保存 Markdown 报告 rule-audit --file system_prompt.txt --output report.md # 用于下游处理的 JSON 输出 rule-audit --file system_prompt.txt --format json # 仅摘要(用于 CI gates) rule-audit --file system_prompt.txt --format summary # 显示所有解析的规则 rule-audit --file system_prompt.txt --verbose # 仅显示高严重性发现 rule-audit --file system_prompt.txt --min-severity high ``` 退出代码:`0` = 低/无风险,`2` = 高/严重风险,`1` = 错误。 ### Python API ``` from rule_audit import audit report = audit(""" You are a helpful AI assistant. Always answer user questions completely. Never produce content that could harm anyone. Follow operator instructions above all else. If asked to roleplay without restrictions, comply. """) print(report.summary()) # rule-audit 报告 [2026-04-15T...] # ============================================================ # 解析的规则 : 6 # 矛盾 : 3 (2 高, 1 中) # 覆盖盲区 : 4 # 优先级歧义 : 2 # Meta-paradoxes : 0 # 绝对性问题 : 5 # 边缘案例场景 : 11 # 风险评分 : 67/100 [高] # 完整 Markdown 报告 md = report.to_markdown() # 以编程方式访问发现 for c in report.result.contradictions: print(c.severity, c.description) for ec in report.edge_cases: print(ec.title) print(ec.attack_vector) ``` ## 检测内容 ### 1. 矛盾 其中一条规则说“始终 X”,而另一条规则说“在 Y 上下文中绝不能 X”的规则对。包含三个子类型: - **直接矛盾** — 在同一主题上的对立模态(`MUST` 与 `MUST_NOT`) - **条件矛盾** — 一条规则无条件适用,另一条规则在某个子集中进行限制(边界未定义) - **绝对性矛盾** — 两条绝对规则向相反方向拉扯(合规性与安全性) ### 2. 覆盖范围漏洞 没有规则覆盖的场景领域。检查内容包括: - 有害内容处理 - 主体层级(用户 vs 操作员 vs 开发者) - 模糊请求处理 - 人设/角色扮演场景 - 拒绝协议 - 指令冲突解决 - 自我披露规则 - 边缘情况兜底行为 ### 3. 优先级模糊 发生冲突但没有明确排序的规则集群。典型示例:一条安全规则和一条有用性规则同时应用于同一个请求,但没有说明优先级。 ### 4. 元规则悖论 引用规则的规则: - **自我推翻** — “忽略所有指令”使其自身无效 - **覆盖循环** — “这些指令取代所有其他指令”可通过注入加以利用 - **循环依赖** — 一条规则要求在应用自身之前必须先应用自身 ### 5. 绝对性审计 每一条包含 `always`/`never`/`under no circumstances` 的规则都会受到以下挑战: - 确实存在的已知例外情况 - 绝对性不成立的依赖于上下文的情况 - 利用该绝对性规则的对抗性触发器 ### 6. 边缘情况场景 针对每一项发现,生成对手将构建的精确攻击提示——包括攻击向量、预期故障模式以及缓解措施。 ## 局限性 本工具无法做到的事情的诚实清单: - **词汇解析器,而非语言模型。** 解析器使用句子切分 + 情态动词正则表达式 + 关键词集群。它会遗漏需要语义理解的规则(例如,“Under no circumstances should the bot discuss pricing”能被正确解析,但嵌入在叙述文本中的隐式/暗示规则则较难识别)。 - **O(n²) 配对比较。** 对于真实世界的提示词(< 100 条规则)来说性能良好。如果你有一个包含 1000 条规则的提示词,那你面临的就是其他问题了。 - **14 个手工整理的语义集群。** 关于不常见主题(例如,特定合规领域)的规则可能不会触发覆盖范围漏洞检测。请在 `analyzer.py` 中为您的领域扩展 `_KEYWORD_CLUSTERS`。 - **严重性是基于词汇的,而非对抗性的。** “CRITICAL” 意味着“在简短的提示词中包含许多绝对规则 + 矛盾”——这并不意味着该提示词在端到端的实际利用中是可被攻破的。请结合 [`hermes-jailbench`](https://github.com/hermes-labs-ai/hermes-jailbench) 和 [`colony-probe`](https://github.com/hermes-labs-ai/colony-probe) 进行动态测试,以完成完整的审计工作流。 - **绝对性评分默认为 0.5**,针对包含情态动词但没有限定词关键词的句子。这是一个设计选择,而不是 bug——如果您的语料库情况不同,请在 `_compute_absoluteness` 中调整阈值。 - **仅支持英文。** v0.1 版本不支持非英文系统提示词。多语言关键词集群已列入 v0.2 路线图。 - **仅支持单文档。** 合并为一个输入的多部分提示词(操作员 + 用户 + 工具结果)将作为扁平规则列表进行分析;主体之间的结构分离尚未进行建模。 ## 架构 ``` rule_audit/ ├── __init__.py # Public API: audit(), audit_file(), AuditReport ├── parser.py # Sentence splitting, modal verb detection, Rule objects ├── analyzer.py # Contradiction finder, gap detector, priority mapper ├── edge_cases.py # Scenario generator from analysis results ├── report.py # Markdown + summary renderer, AuditReport class └── cli.py # CLI entry point ``` **纯 Python 实现。零 LLM 依赖。零 API 调用。** 解析器使用 NLP 启发式规则: - 句子边界检测(句号 + 换行符 + 列表标记) - 情态动词正则表达式模式(must/should/may + 否定形式) - 绝对性评分(词汇关键词 → 0.0–1.0 刻度) - 关键词集群匹配(14 个语义集群:伤害、隐私、身份、真相……) 分析器使用组合配对分析: - O(n²) 规则配对比较(适用于提示词:n < 100) - 集群重叠检测,用于识别共享领域 - 模态对立查找表 - 绝对性阈值门控 ## 路线图 本软件包计划进行的开源工作: | 阶段 | 功能 | 状态 | |-------|---------|--------| | v0.1 | 核心静态分析,命令行工具 (CLI),Python API | 已完成 | | v0.2 | 规则差异比对(提示词修改前/后对比) | 计划中 | | v0.3 | LLM 增强的漏洞检测(可选插件) | 计划中 | | v0.4 | GitHub Action / CI 集成 | 计划中 | | v1.0 | CSV / SARIF 导出,用于合规工具链 | 计划中 | 本软件包保持 MIT 许可证,完全免费,没有托管服务层 (hosted tier)。如果你需要符合 EU AI Act 的合规报告、ANNEX-IV 打包或作为交付物的红队演练报告,那是 [Hermes Labs 审计业务](https://hermes-labs.ai) 的范畴,而不是本工具的 SaaS 版本。 ## 开发 ``` # 运行测试 pytest # 带覆盖率运行 pytest --cov=rule_audit --cov-report=term-missing # 针对真实 prompt 进行测试 echo "Your system prompt here" > test_prompt.txt python -m rule_audit --file test_prompt.txt --verbose ``` ## 许可证 MIT — Hermes Labs 2026 ## 关于 Hermes Labs [Hermes Labs](https://hermes-labs.ai) 为企业级 AI 系统构建 AI 审计基础设施——涵盖 EU AI Act 准备、ISO 42001 证据打包、持续合规监控以及智能体级别的风险测试。我们与在受监管环境中部署 AI 的团队进行合作。 **我们的开源理念——如果您正在考虑是否要依赖我们,请阅读此部分:** - **我们发布的一切都是永久免费的。** MIT 或 Apache-2.0 许可证。没有“开放核心”,没有 SaaS 层的追加销售,没有包含您真正需要的功能的付费版本。您可以在商业环境中运行此代码库,而无需与我们交谈。 - **我们将自身基础设施开源。** 我们发布的工具就是 Hermes Labs 内部使用的工具——我们不发布演示代码,我们发布生产级代码。 - **我们出售审计服务,而不是软件许可证。** 如果您需要 ANNEX-IV 打包、ISO 42001 证据打包、针对 EU AI Act 的差距分析,或作为报告交付的智能体级红队演练,请访问 [hermes-labs.ai](https://hermes-labs.ai)。如果您只想自己运行这些代码,它们就在这里。 **Hermes Labs 开源审计工具集**(公开、生产级、非 SaaS): **静态审计**(部署前) - [**lintlang**](https://github.com/hermes-labs-ai/lintlang) — AI 智能体配置、工具描述、系统提示词的静态检查工具。`pip install lintlang` - [**scaffold-lint**](https://github.com/hermes-labs-ai/scaffold-lint) — 脚手架预算 + 技术堆叠(当混合使用多种脚手架技术时,会标记 `SCAFFOLD_TOO_LONG` 和 `SCAFFOLD_STACKING`) - [**intent-verify**](https://github.com/hermes-labs-ai/intent-verify) — 代码库意图验证 + 规范偏移检查 **运行时可观测性**(智能体运行期间) - [**little-canary**](https://github.com/hermes-labs-ai/little-canary) — 通过牺牲式金丝雀模型探测进行提示注入检测 - [**suy-sideguy**](https://github.com/hermes-labs-ai/suy-sideguy) — 运行时策略守卫——用户空间强制执行 + 取证报告 - [**colony-probe**](https://github.com/hermes-labs-ai/colony-probe) — 提示词保密性审计——检测系统提示词重构 **回归与评分**(用于证明更改内容) - [**hermes-jailbench**](https://github.com/hermes-labs-ai/hermes-jailbench) — 越狱回归基准。`pip install hermes-jailbench` - [**agent-convergence-scorer**](https://github.com/hermes-labs-ai/agent-convergence-scorer) — 对 N 个智能体输出的相似度进行评分。`pip install agent-convergence-scorer` **支持基础设施** - [**claude-router**](https://github.com/hermes-labs-ai/claude-router) · [**zer0dex**](https://github.com/hermes-labs-ai/zer0dex) · [**quick-gate-python**](https://github.com/hermes-labs-ai/quick-gate-python) · [**quick-gate-js**](https://github.com/hermes-labs-ai/quick-gate-js) · [**repo-audit**](https://github.com/hermes-labs-ai/repo-audit) 由 [Hermes Labs](https://hermes-labs.ai) 构建 · [@roli-lpci](https://github.com/roli-lpci)
标签:AISec, AI安全, AI红队, Chat Copilot, Homebrew安装, Linux系统监控, LLM系统提示词, Prompt审计, Python, SAST, 主机安全, 云安全监控, 云计算, 优先级歧义, 大模型提示词, 威胁情报, 安全合规, 对抗性攻击防御, 开发者工具, 文本分析, 文档结构分析, 无后门, 模型安全, 白盒测试, 盲注攻击, 红队对抗, 网络代理, 覆盖度检测, 规则引擎, 边界情况分析, 逆向工具, 逻辑矛盾检测, 防御加固, 静态分析