KeyValueSoftwareSystems/agent-opfor
GitHub: KeyValueSoftwareSystems/agent-opfor
一款针对 AI agent 和 MCP 服务器进行全方位对手模拟与红队安全测试的开源工具,帮助团队在真实攻击发生前发现并修复漏洞。
Stars: 7 | Forks: 1
针对 AI agent、LLM 应用和 MCP 服务器的开源对手模拟。
像真正的攻击者一样测试你的 AI —— 通过你的 CLI、IDE,或者团队任何人都能使用的浏览器扩展。
官网 ·
文档 ·
GitHub ·
浏览器扩展 ·
Discord
OPFOR 是 _Opposition Force_(对抗部队)的缩写 —— 这是一个军事术语,指在训练中扮演敌军的部队,让其他部队能在真正的攻击到来前体验其实感。我们正是以此理念为该工具命名的:为了更好地防御 AI agent,你必须先去攻击它们。
## 我们为何开发此工具
在过去的十年里,我们为 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)
## 工作原理
当你运行扫描时,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代理, 人工智能安全, 合规性, 文档结构分析, 漏洞评估, 自动化攻击