luckyPipewrench/agent-egress-bench

GitHub: luckyPipewrench/agent-egress-bench

一个用于评估 AI Agent 出站流量安全工具(防火墙、代理、扫描器)的标准化攻击测试语料库,覆盖机密泄露、SSRF、Prompt 注入和 MCP 投毒等 72 个测试用例。

Stars: 1 | Forks: 0

# agent-egress-bench 一个用于评估 AI agent 出站流量安全工具的标准化测试语料库。涵盖 8 个类别共 72 个测试用例,涉及机密泄露、prompt 注入、SSRF、MCP 工具投毒以及链式检测。 **测试对象是安全工具,而非 agent。** 该领域内的其他基准测试(AgentDojo、InjecAgent、CyberSecEval、AgentHarm)均旨在测试 LLM 的行为是否正确。而本测试旨在检验位于 agent 与网络之间的 firewall、proxy 或 scanner 是否能拦截攻击。 ## 为什么需要这个项目 能够浏览网页、调用 API 并使用 MCP 工具的 AI agent 需要网络层的安全保障。一个拥有机密访问权限和互联网连接的 agent 存在数据泄露风险,无论是通过 prompt 注入、工具投毒还是简单的目标不一致。 现有工具可以部署在 agent 与网络之间(proxy、firewall、MCP wrapper),但缺乏一种标准化的测试方法。本语料库填补了这一空白:提供一套共享的攻击用例,任何安全工具都可以以此进行测试。 ## 语料库内容 | 类别 | 目录 | 用例数 | 测试内容 | |----------|-----------|-------|---------------| | URL DLP | `cases/url/` | 14 | 通过查询字符串、编码路径、高熵子域名、SSRF 泄露机密 | | Request body DLP | `cases/request-body/` | 10 | POST body 中的机密(JSON, YAML, CSV, multipart, base64, hex, env dumps) | | Header DLP | `cases/headers/` | 9 | HTTP 头中的 API key 和 token(Bearer, JWT, AWS, multi-header) | | Response injection (fetch) | `cases/response-fetch/` | 8 | 获取的网页内容中的 prompt 注入 | | Response injection (MITM) | `cases/response-mitm/` | 7 | 通过篡改 TLS 拦截响应进行注入 | | MCP input scanning | `cases/mcp-input/` | 9 | MCP 工具参数中的 DLP 和注入(base64, hex, scattered, SSH keys) | | MCP tool poisoning | `cases/mcp-tool/` | 7 | 投毒的工具描述、schema 注入、rug-pull 变更 | | MCP chain detection | `cases/mcp-chain/` | 8 | 多步骤泄露序列(读取-发送、环境变量到网络) | 包含 56 个恶意用例(预期:block)和 16 个良性用例(预期:allow),用于测试误报率。 每个用例都是一个自包含的 JSON 文件,包含攻击 payload、预期判定结果(`block` 或 `allow`)、严重程度、能力标签,以及说明预期结果的机器可读原因。 ## 快速开始 **验证语料库:** ``` cd validate && go build -o /tmp/aeb-validate . && /tmp/aeb-validate ../cases ``` **针对工具运行**(以 Pipelock 参考运行器为例): ``` cd examples/pipelock bash harness.sh /path/to/pipelock ``` 输出格式为 JSONL(每个用例一行结果)。运行器规范请参见 [docs/RUNNER.md](docs/RUNNER.md)。 ## 工作原理 每个用例文件包含: - 一个与真实 agent 流量中攻击形式一致的 **payload** - 一个 **预期判定**(`block` 或 `allow`) - 描述用例测试维度的 **能力标签**(DLP、注入检测、SSRF 等) - 工具评估该用例所需支持的 **要求**(TLS 拦截、body 扫描等) 运行器将每个用例输入给安全工具,并观察其拦截或放行了流量。工具无法处理的用例(缺少能力)将计为 `not_applicable`,而非 `fail`。请参见 [docs/SCORING.md](docs/SCORING.md)。 ## 为你的工具编写运行器 运行器将你的安全工具连接到本语料库。你需要: 1. 一个声明工具能力的 `tool-profile.json` 2. 一个脚本,将每个用例输入给你的工具并观察判定结果 3. 遵循 [docs/RUNNER.md](docs/RUNNER.md) 中格式的 JSONL 输出 将你的运行器放在 `examples/{your-tool}/` 目录下并提交 PR。 ## OWASP Agentic Top 10 映射 这 8 个用例类别映射到 [OWASP Top 10 for Agentic Applications (2026)](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/): | 用例类别 | OWASP 条目 | 涵盖范围 | |---------------|------------|---------------------| | `url` | ASI02 Tool Misuse | 通过 URL 查询字符串和路径泄露机密 | | `request_body` | ASI02 Tool Misuse | 通过 POST body 泄露机密 | | `headers` | ASI02 Tool Misuse | 通过 HTTP 头泄露机密 | | `response_fetch` | ASI01 Goal Hijack + ASI06 Memory Poisoning | 获取内容中的 prompt 注入 | | `response_mitm` | ASI01 Goal Hijack + ASI04 Supply Chain | 通过篡改响应进行注入 | | `mcp_input` | ASI02 Tool Misuse | 工具参数中的 DLP 和注入 | | `mcp_tool` | ASI04 Supply Chain | 投毒的工具描述、rug-pull 变更 | | `mcp_chain` | ASI02 Tool Misuse + ASI08 Cascading Failures | 多步骤泄露序列 | 包含 MITRE ATT&CK 技术的完整映射:[docs/OWASP-MAPPING.md](docs/OWASP-MAPPING.md) ## 与其他基准测试的区别 大多数 AI agent 安全基准测试检验的是 **模型** 行为是否安全。而本测试检验 **安全工具** 是否能捕获攻击。 | 基准测试 | 测试对象 | 侧重点 | |-----------|------------|-------| | [AgentDojo](https://github.com/ethz-spylab/agentdojo) (ETH Zurich) | LLM agent | 对 prompt 注入的鲁棒性(629 个用例) | | [InjecAgent](https://github.com/uiuc-kang-lab/InjecAgent) (UIUC) | LLM agent | 间接 prompt 注入成功率(1,054 个用例) | | [AgentHarm](https://huggingface.co/datasets/ai-safety-institute/AgentHarm) (UK AISI) | LLM | 拒绝执行有害的多步骤任务(440 个用例) | | [CyberSecEval](https://github.com/meta-llama/PurpleLlama) (Meta) | LLM | 不安全代码生成、网络攻击辅助 | | [ASB](https://github.com/agiresearch/ASB) (ICLR 2025) | LLM agent | 降低攻击成功率的防御性 prompt(90K 个用例) | | [AgentShield-bench](https://github.com/doronp/agentshield-benchmark) (Agent Guard) | Security middleware | API 层的 prompt 注入和越狱检测(537 个用例) | | **agent-egress-bench** | **Security tools** | **网络层的机密泄露、SSRF、MCP 投毒(72 个用例)** | 测试模型的基准测试假设 LLM 是最后一道防线。本语料库假设模型有时会失效,因此测试位于 agent 与网络之间的纵深防御层。 AgentShield-benchmark 是最接近的同类项目,但它运行在应用/API 层(这是一个注入 prompt 吗?)。agent-egress-bench 运行在线路层(这个 HTTP 请求的查询字符串中是否包含泄露的机密?这个 MCP 工具响应是否包含 prompt 注入?)。 ## 文档 - [SPEC.md](docs/SPEC.md): 用例 schema、字段定义、枚举、payload 格式 - [SCORING.md](docs/SCORING.md): pass/fail/not_applicable/error 评分模型 - [RUNNER.md](docs/RUNNER.md): 运行器输出约定和判定映射 - [OWASP-MAPPING.md](docs/OWASP-MAPPING.md): 用例类别映射到 OWASP Agentic Top 10 ## 贡献 请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。欢迎贡献用例、运行器和文档改进。 **用例 ID 不可变。** 一旦合并,用例 ID 永不改变。对现有用例的语义更改需要使用新 ID 创建新用例。 ## 治理 本语料库由 [Pipelock](https://github.com/luckyPipewrench/pipelock) 作者创建。欢迎任何供应商或个人贡献。本仓库不产生排名或跨工具对比表。每个工具独立发布其结果。 **利益冲突披露:** 作者开发了一款 agent 出站流量安全工具。本语料库设计为工具中立:用例测试可观察行为(请求是否被拦截?),而非实现细节。[Pipelock runner](examples/pipelock/) 是一个参考实现,并不代表特权地位。 ## 许可证 Apache 2.0。请参见 [LICENSE](LICENSE)。
标签:AI代理防火墙, AI安全, API安全, Chat Copilot, Cutter, DLL注入, DLP, EVTX分析, Homebrew安装, IP 地址批量处理, JSON输出, LLM防火墙, MCP安全, SSRF, 出站流量检测, 大模型安全, 安全合规, 安全基准测试, 安全测试集, 工具投毒, 攻击语料库, 日志审计, 机密信息泄露, 模型上下文协议, 流量审计, 红队评估, 网络代理, 越狱检测