ankitcodes001/Agent_Red_Team

GitHub: ankitcodes001/Agent_Red_Team

针对 AI agent 的攻击性安全测试工具,通过间接提示注入(污染工具输出)来自动化发现和评估 agent 的安全脆弱性。

Stars: 0 | Forks: 0

Agent Red Team — offensive testing for AI agents

Agent Red Team

用于对 AI agent 进行红蓝对抗的攻击性安全 agent —— 通过受污染的工具输出劫持它们,并评估它们被攻破的难易程度。

status license python

## 缘由 LLM agent 的本质是 `LLM + tools + loop`。在模型内部,所有内容都是一个扁平的 token 流 —— 操作者的指令与工具返回的数据是**无法区分**的。只要在 agent 会读取的数据(网页、数据库行、工单)中植入指令,agent 就可能会执行它们。这就是**间接提示注入**,也是使用工具的 agent 在现实世界中面临的主要攻击面。 现有的红队工具(如 garak、PyRIT、promptfoo)主要攻击**模型提示词**。它们缺乏对*工具结果通道*的认知。**Agent Red Team 专门攻击工具输出面** —— 这才是生产环境中真正关键的环节。 ## 工作原理 ``` Attack layer ──► Injection proxy ──► Target agent ──► Eval ──┐ (evolves) (poisons tool (breaks?) (canary │ ▲ results) proof) │ └────────────────── score 0.0–1.0 ◄───────────────────┘ learn, then attack again ``` 1. **侦察** —— 读取 agent 的工具 schema 以及你的 5 行 `redteam.yaml`,以确定注入位置以及判定被“攻破”的标准。 2. **攻击** —— 6 种攻击家族、遗传算法变异器,以及多臂老虎机预算路由器不断进化 payload,直到目标被攻破。 3. **代理** —— 位于工具边界的中间人将 payload 混入工具*结果*中。仅需一行配置;与框架无关(支持 MCP / 装饰器 / HTTP)。 4. **验证** —— 攻击成功与否由确定性的 **canary** 字符串匹配和 **forbidden-tool** 监控来判定,仅在灰色地带情况下才使用 LLM 评委小组。 5. **报告** —— 生成一份 `scorecard.html`、去重并最小化后的唯一漏洞发现报告,以及一个 CI 门禁。 完整设计请参阅 [`docs/design.md`](docs/design.md)。 ## 状态 🟢 **v0.1 —— 演示流程已实现端到端运行,完全在 Ollama 上进行本地执行。** 将测试活动指向内置的脆弱 agent,它会自动进化攻击方式,通过确定性 canary 验证攻破情况,并生成记分卡。项目正开源开发中 —— 点个 Star 持续关注吧。 目前可用的功能: - [x] 内置脆弱演示 agent(ReAct 循环)+ 模拟工具,并提供 `naked` / `sandwich` / `spotlight` 防御变体供对比 - [x] 6 种攻击家族 + PayloadGen(本地 LLM)+ GA 变异器 + UCB1 老虎机路由器 - [x] 在工具结果边界进行注入(仅污染目标面) - [x] Oracle(canary + forbidden-tool 监控)+ 可选的 3 个 LLM 评委小组 - [x] 去重(embedding + 聚类)+ 最小化(delta-debug)→ 生成唯一且可操作的漏洞发现 - [x] OpenTelemetry / Langfuse 链路追踪(尽力而为,默认关闭) - [x] `scorecard.html` + CI 门禁 开发路线图: - [ ] 支持内置演示之外的真实 MCP-server 目标(`proxy/mcp_proxy`) - [ ] AgentDojo 适配器 —— 运行自适应攻击器来对抗其受防御的 agent - [ ] 展示最新测试活动状态的 README 徽章 ## 快速开始 完全在本地运行 —— 无需 API 密钥。需要安装 [uv](https://docs.astral.sh/uv/) 和 [Ollama](https://ollama.com)。 ``` ollama pull llama3.1:8b # or edit models.* in the config for any model uv sync uv run redteam run -c examples/redteam.yaml ``` 测试活动将攻击内置的演示 agent 并打印记分卡(包括 ASR、首次攻破尝试次数、覆盖率、唯一发现),随后生成 `scorecard.html`。 修改 `models.target`(例如改为 `anthropic/claude-haiku-4-5`),即可对比更强大的模型在抵御*相同*攻击时的表现。在配置好评委模型 / API 密钥后开启 `use_judge`,即可捕捉 Oracle 无法进行确定性验证的灰色地带攻破情况。 ## 负责任的使用 **仅限**对你拥有或获得明确授权的 agent 运行此工具。内置目标已经随项目附带,因此你无需借助任何第三方 agent 即可进行测试。这属于防御性安全工具,与 garak 和 PyRIT 属于同一类别。 ## 许可证 [Apache-2.0](LICENSE)。
标签:AI安全, AI风险缓解, Chat Copilot, CISA项目, DLL 劫持, Python, Web报告查看器, 大语言模型, 无后门, 用户代理, 逆向工具