工具与开源项目
本页收录能辅助理解、评测或对照 ToLO 的工具与开源项目。它们不等同于 ToLOScanner,也不一定直接检测 ToLO;价值在于提供触发器、基准、guardrail 实现或 LLM 安全测试环境。
阅读工具条目时建议关注三点:
- 它覆盖的是上游通道、sink 后果还是防御机制?
- 它适合动态测试还是静态分析?
- 它的输出能否映射到
S_LLM、S_DANGER、C_SAFE三元组?
工具类型怎么分
| 类型 | 它做什么 | ToLO 视角的价值 |
|---|---|---|
| 攻击/评测工具 | 帮助构造 prompt injection、RAG、agent 场景 | 证明 source 端可能被影响 |
| 防御/guardrail 工具 | 帮助实现 schema、策略、过滤或运行时控制 | 实现 C_SAFE 五类的具体形态 |
| 基准/环境 | 提供可重复任务,用来比较 agent 防御或检测效果 | 对照实验数据 |
| 静态分析工具 | 查代码里的 source-to-sink 路径 | 直接对应 ToLOScanner |
ToLOScanner 属于最后一类;AgentDojo 更接近基准;PyRIT 和 garak 更偏攻击/评测;NeMo Guardrails 更偏防御。
条目
AgentDojo — ETH Zürich SPY Lab
- 仓库:https://github.com/ethz-spylab/agentdojo
- 主页:https://agentdojo.spylab.ai/
- 一句中文摘要:覆盖工具调用、RAG、IPI 的 agent 安全基准 —— 97 任务 + 629 安全测试,在四个套件(workspace/slack/travel/banking)上跑。
- 对应章节:Trust Boundaries + Papers § AgentDojo
- 许可证 / 状态:MIT, active, last pushed 2026-03-30
- 类型:基准 + 评测环境
- 什么时候用:
- 学完 04 Threat Model 想看 C2/C4 真实操作时
- 想验证
C_SAFE^{allowlist}/C_SAFE^{capability}配置是否有效时
- ToLO 视角:它的 trace 输出(tool_call.name / tool_call.args / observation)正好覆盖
S_LLM^{framework}的字段路径。
PyRIT — Python Risk Identification Tool for generative AI — Microsoft AI Red Team
- 仓库:https://github.com/Azure/PyRIT
- 一句中文摘要:生成式 AI 红队编排工具,可组合 ToLO 触发器(prompt mutations / jailbreak templates / multi-turn attacks)。
- 对应章节:Trust Boundaries + Attacker Channels §C1/C2
- 许可证 / 状态:MIT, archived, last pushed 2026-03-25
- 类型:攻击/评测工具
- 什么时候用:想生成不同 C1 攻击 payload,看不同模型的反应时。
- ToLO 视角:只验证 source 端能否被影响,不验证下游 sink 是否真的被触发。要把 PyRIT 用作 ToLO 测试,需要把它产生的 LLM 输出串到真实工具调用环境(例如 AgentDojo 或自定义 harness)。
garak — LLM vulnerability scanner — NVIDIA(originally Leon Derczynski)
- 仓库:https://github.com/NVIDIA/garak
- 一句中文摘要:LLM 安全扫描器,适合对照七类 sink 覆盖 — 它本身做 prompt-level 测试,但 probe 集合可以扩到 ToLO 各子类。
- 对应章节:Query Design Notes
- 许可证 / 状态:Apache-2.0, active, last pushed 2026-05-15
- 类型:攻击/评测工具(自动化扫描)
- 什么时候用:CI / regression 中持续测试某模型 / API 对常见攻击模式的反应。
- ToLO 视角:类似 PyRIT,主要测 source 端。“模型说脏话” 这种 probe 不是 ToLO;但 garak 的 probe 集合可以扩展到”是否输出 dangerous tool call”,这就接近 ToLO 评测了。
NeMo Guardrails — NVIDIA
- 仓库:https://github.com/NVIDIA/NeMo-Guardrails
- 一句中文摘要:Guardrails 框架,演示 schema / allowlist 防护 —— Colang DSL 描述对话流程和约束。
- 对应章节:Defensive Patterns
- 许可证 / 状态:NOASSERTION, active, last pushed 2026-05-17
- 类型:防御/guardrail
- 什么时候用:想看 production-ready 的
C_SAFE^{schema}和C_SAFE^{allowlist}实现长什么样时。 - ToLO 视角:主要在 prompt 层做 guardrail,不直接保护 sink 端。如果 LLM 输出被 NeMo Guardrails 过滤后仍流入
eval/ SQL / shell,ToLO 风险并未消失。
(可选)CodeQL — GitHub
- 仓库:https://github.com/github/codeql
- 一句中文摘要:语义级静态分析工具,ToLOScanner 的底层引擎候选。
- 对应章节:CodeQL and Semgrep
- 类型:静态分析
- 什么时候用:学完 05 Static Analysis 想动手写 source / sink / sanitizer 规则时。
(可选)Semgrep — r2c / Semgrep Inc.
- 仓库:https://github.com/semgrep/semgrep
- 一句中文摘要:基于语法模式的开源 SAST,ToLO 初筛的工具。
- 对应章节:CodeQL and Semgrep
- 类型:静态分析
- 什么时候用:想快速写点状规则查危险 API 用法,不需要跨函数 taint 时。
(可选)IsolateGPT / SecGPT — UW + WashU
- 仓库:https://github.com/llm-platform-security/SecGPT
- 一句中文摘要:LLM 应用执行隔离架构的参考实现 ——
C_SAFE^{capability}的可执行参考。 - 对应章节:Defensive Patterns §
C_SAFE^{capability}+ Papers § IsolateGPT - 类型:防御架构参考
- 什么时候用:想看 capability gate 实际怎么用 process isolation 实现时。
(可选)CaMeL — Google Research
- 仓库:https://github.com/google-research/camel-prompt-injection
- 一句中文摘要:Capability-based PI 防御参考实现 —— dual-LLM + capability 标签。
- 对应章节:Defensive Patterns §
C_SAFE^{capability}+ Papers § CaMeL - 类型:防御架构参考
- 什么时候用:看 IsolateGPT 之后,对照另一种 capability 实现思路。
使用边界
这些工具可以帮助构造评测、发现 prompt injection 通道或验证 guardrail 思路,但不能直接替代 ToLO 的 source-to-sink 静态分析。
| 工具能做的 | 不能做的 |
|---|---|
| 证明模型输出可被影响(PyRIT / garak) | 证明该输出进入危险 sink |
| 跑 agent 看是否被 hijack(AgentDojo) | 跑真实数据库 / shell / filesystem 看后果 |
| 实现 prompt 层过滤(NeMo Guardrails) | 保证过滤与 sink 类型匹配 |
| 查代码危险 API(Semgrep / CodeQL 默认规则) | 自动识别 LLM 输出是 source |
ToLO 的完整链路检查必须人 + 工具配合:工具帮你收窄候选,你要确认 source 是 LLM 输出 + sanitizer 是否类型匹配。
读完检查
看到一个新工具时,先问:
- 它让攻击者更容易影响 source,还是限制 sink 前动作?
- 它是运行时工具,还是代码扫描工具?
- 它输出的结果能不能映射到
S_LLM → S_DANGER → C_SAFE? - 它的许可证 + 维护状态是否适合生产?
下一步阅读
- 回到 CodeQL 与 Semgrep 了解 ToLOScanner 的规则路线。
- 读 Threat Model 把这些工具放进 C1-C5 通道。
- 读 Papers § AgentDojo / CaMeL / IsolateGPT 看每个工具的学术起源。