KeyValueSoftwareSystems/agent-opfor

GitHub: KeyValueSoftwareSystems/agent-opfor

一款针对 AI agent 和 MCP 服务器进行全方位对手模拟与红队安全测试的开源工具,帮助团队在真实攻击发生前发现并修复漏洞。

Stars: 7 | Forks: 1

OPFOR

针对 AI agent、LLM 应用和 MCP 服务器的开源对手模拟。
像真正的攻击者一样测试你的 AI —— 通过你的 CLI、IDE,或者团队任何人都能使用的浏览器扩展。

License: Apache 2.0 GitHub stars Discord OWASP coverage

官网 · 文档 · GitHub · 浏览器扩展 · Discord

OPFOR 是 _Opposition Force_(对抗部队)的缩写 —— 这是一个军事术语,指在训练中扮演敌军的部队,让其他部队能在真正的攻击到来前体验其实感。我们正是以此理念为该工具命名的:为了更好地防御 AI agent,你必须先去攻击它们。

How OPFOR works

## 我们为何开发此工具 在过去的十年里,我们为 90 家初创公司交付了 130 款产品。在过去的 18 个月里,几乎每一款产品都包含了 AI agent —— 而且这些团队在测试时都遇到了同样的瓶颈。 所以我们开发了 OPFOR。首先是为我们自己。现在是开源的。 Apache 2.0。来自印度。 ## 快速开始 ``` npm install -g @agent-opfor/cli export OPENAI_API_KEY=your-key # or GEMINI_API_KEY, ANTHROPIC_API_KEY, etc. ``` **一键模式** —— 运行设置向导并立即开始扫描: ``` opfor run ``` **两步模式** —— 保存配置以便复用或提交到 CI: ``` opfor setup # wizard saves a config to .opfor/configs/ opfor run --config .opfor/configs/ # run any time against the saved config ``` https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04 ## opfor 的功能 Opfor 可对完整的 AI agent 攻击面进行红队测试 —— 包括 prompt、工具、MCP 服务器、记忆以及多轮推理。它能针对 OWASP LLM Top 10、OWASP Agentic AI Top 10、OWASP MCP Top 10、OWASP API Security 和 EU AI Act 偏见套件生成定向攻击,将其发送至你的目标,并通过 LLM 对每个响应进行评判。 该领域的大多数红队工具都只擅长一件事 —— 一个探测库、一个开发者评估器或一个编程框架。而 Opfor 则在一个工具中涵盖了更广的范围: - **面向非开发者的浏览器扩展** —— 团队中的任何人都可以对已部署的聊天机器人进行红队测试,无需代码、无需环境变量、无需 YAML - **将 opfor 作为 MCP 服务器运行** —— 让 Cursor 或 Claude Desktop 中的 AI 编码 agent 通过自然语言对你的其他 agent 进行红队测试 - **一个工具实现全面的 OWASP 覆盖** —— LLM Top 10、Agentic AI Top 10、MCP Top 10、API Security Top 10 - **没有黑盒** —— 每一个攻击 prompt、请求、响应和评判结果都会被记录下来;可复现、可审计、可复刻 - **专为 agent 而非仅仅为模型设计** —— 从第一天起就针对工具调用、MCP、记忆和多轮状态进行了专门设计 - **具备链路感知能力** —— 与 Langfuse 和 Netra 集成,让 LLM 评判器能看到你的 agent 内部的所作所为,而不仅仅是它输出的话语 ## 运行 opfor 的五种方式 团队中不同的人员需要不同的切入点。Opfor 提供了五种方式。 | 模式 | 方式 | 最适用对象 | | ------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | 🖥️ **CLI** | `opfor setup` → `opfor run` | 工程师、CI/CD、终端优先的工作流 | | 🌐 **浏览器扩展** | 安装扩展,在任何聊天界面上点击图标 | 产品经理、设计师、QA、安全分析师 —— 任何不会或不愿意写代码的人 | | 🤖 **MCP server** | 在 Cursor 或 Claude Desktop 中注册 opfor,然后在聊天中发起请求 | 用于测试你其他 agent 的 AI 编码 agent | | ⚡ **Skills** | `/opfor-setup` · `/opfor-run` · `/opfor-mcp-setup` · `/opfor-mcp-run` | 希望在 IDE 内部进行一键测试的开发人员 | | 📦 **SDK** | `npm install @agent-opfor/sdk`,然后从你的代码中调用 `run` / `hunt` | 编程式红队测试与自定义工作流 | 这五种方式共享相同的评估器、攻击模板和评判逻辑。 → [CLI 参考](docs/cli.md) · [浏览器扩展设置](docs/browser-extension.md) · [MCP 设置](docs/mcp.md) · [Skills 设置](docs/skills.md) · [SDK 参考](docs/sdk.md) ## 工作原理

What happens during opfor run

当你运行扫描时,opfor 会执行以下操作: 1. **获取目标信息** —— 连接到你的 agent,检测可用的工具、MCP endpoint、功能特性 2. **按类别规划攻击** —— 为你选择的套件中的每个评估器生成定向 prompt 3. **模拟攻击** —— 运行多轮对抗性对话(真实的请求和真实的响应) 4. **通过评判器进行评估** —— LLM 评判器会对每个响应进行分类,给出通过/失败的结果及推理依据 5. **生成报告** —— 生成用于浏览的 HTML 报告,用于 CI/CD 的 JSON 报告,所有产物均被记录以供复现 每次运行的结果都会存放在 `.opfor/reports/run-report---/` 下的独立子文件夹中,其中包含 `-report.html` 和 `-report.json`。自主执行的 `opfor hunt` 运行结果也采用相同的目录结构,存放在 `hunt-report---/` 下。 ## 评估器覆盖范围 Opfor 内置了与行业标准映射的精选套件。你可以选择一个套件或运行单个评估器。 | 套件 ID | 标准 | 关注点 | | ------------------ | ------------------------- | ------------------------------------------------------------------------- | | `owasp-llm-top10` | OWASP LLM Top 10 (2025) | Prompt injection、越狱、敏感信息泄露、系统 prompt 泄露 | | `owasp-agentic-ai` | OWASP Agentic AI Top 10 | 过度授权、工具滥用、agent 目标劫持、记忆投毒 | | `owasp-mcp-top10` | OWASP MCP Top 10 (2025) | 密钥暴露、范围越权、工具描述注入、SSRF | | `owasp-api` | OWASP API Security Top 10 | BOLA、BFLA、SQL 注入 | | `eu-ai-act-bias` | EU AI Act — 偏见 | 年龄、性别、种族、残疾 | → [完整的评估器参考与 OWASP 映射](docs/evaluators.md) ## 链路感知测试 将 opfor 接入你的可观测性平台,LLM 评判器不仅能看到最终响应 —— 还能看到每一次工具调用、检索过程和中间推理步骤。Opfor 原生集成了 **[Langfuse](https://langfuse.com)** 和 **[Netra](https://getnetra.ai)**。 ``` "telemetry": { "provider": "langfuse", "langfuse": { "baseUrl": "https://cloud.langfuse.com" } } ``` 这能捕捉到常规输入/输出测试容易遗漏的问题 —— 例如 PII 泄露到了工具调用中但未展示给用户、MCP 中的范围越权未改变响应文本、或者 agent 检索了未授权数据但返回了看似正常的回复。 → [链路感知测试指南](docs/telemetry.md) ## 自主红队测试 `opfor hunt` 完全跳过了配置文件。只需提供一个 endpoint 和一个目标,多 agent 系统(指挥官、操作员、侦察员)就会自主运行自适应的攻击活动:侦察、制定策略、多轮探测、生成报告。 ``` opfor hunt \ --endpoint "https://your-agent.com/v1/chat" \ --objective "Find jailbreaks, system-prompt leakage, and safety bypasses." ``` 添加 `--ui` 参数即可在实时仪表盘中观看攻击树的展开过程。 → [完整参考](docs/hunt.md) ## 浏览器扩展 —— 对聊天机器人进行红队测试 浏览器扩展是 opfor 的无代码路径。从 Chrome Web Store 安装后,打开任意聊天界面,点击 opfor 图标,选择一个套件,即可观看它运行。 https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a 它会自动检测聊天界面,如同你亲自输入一般发送攻击 prompt,监控响应,并在完成后下载 HTML 报告。无需 CLI、无需目标设置、无需 YAML。 这是为每一个产品团队中那一半从不打开终端的成员准备的路径。 → [从 Chrome Web Store 安装](https://chromewebstore.google.com/detail/blkflfeicejfnbecanjaolbllmoobenp) · [设置指南](docs/browser-extension.md) ## SDK —— 在你的代码中嵌入红队测试 SDK 是 opfor 的编程路径。安装 `@agent-opfor/sdk`,调用 `run` 或 `hunt`,即可获取结构化的结果返回 —— 无需 CLI、无需配置文件、无需子进程。 ``` import { Opfor } from "@agent-opfor/sdk"; const opfor = new Opfor({ apiKey: process.env.ANTHROPIC_API_KEY }); const results = await opfor.run({ target: { url: "https://api.example.com/chat" }, suite: "owasp-llm-top10", }); ``` 可在 CI、测试套件或任何需要在不离开 TypeScript 环境下进行红队测试的场景中使用。 → [SDK 参考](docs/sdk.md) ## 示例 | 示例 | 描述 | | ----------------------------------------------------- | ----------------------------------------------------------- | | [vanilla-chat](tests/e2e/agents/vanilla-chat) | 普通的客服机器人 —— 测试 LLM 层面的漏洞 | | [customer-support](tests/e2e/agents/customer-support) | 带有 PostgreSQL 的工具调用 agent —— 测试 BOLA、BFLA、RBAC、PII | | [vulnerable-server](tests/e2e/mcp/vulnerable-server) | 包含故意设计漏洞的示例 MCP 服务器 | ## 支持的 LLM 提供商 | 提供商 | 环境变量 | 默认模型 | | ----------------- | ------------------------------ | ---------------------------------- | | Groq | `GROQ_API_KEY` | `llama-3.3-70b-versatile` | | OpenAI | `OPENAI_API_KEY` | `gpt-4o-mini` | | Anthropic | `ANTHROPIC_API_KEY` | `claude-3-5-haiku-20241022` | | Google | `GOOGLE_GENERATIVE_AI_API_KEY` | `gemini-2.0-flash` | | OpenAI 兼容 | `OPFOR_API_KEY` + `baseURL` | LiteLLM、OpenRouter、Azure、Ollama | ## 作者 由 [KeyValue Software Systems](https://keyvalue.systems) 团队开发。如有任何查询,请联系 [contact@agentopfor.ai](mailto:contact@agentopfor.ai)。   ## 安全 请仅在你拥有或被授权测试的系统上使用 opfor。如需报告 opfor 本身的漏洞,请参阅 [SECURITY.md](SECURITY.md) —— 请勿提交公开的 issue。   ## 许可证 Opfor 采用 Apache 2.0 许可证 —— 详情请参阅 [LICENSE](LICENSE) 文件。

KeyValue 用 ❤️ 构建

标签:AES-256, AI代理, CISA项目, LNA, MCP, MITM代理, 人工智能安全, 合规性, 文档结构分析, 漏洞评估, 自动化攻击