vishnushri19/agentic-api-security-framework

GitHub: vishnushri19/agentic-api-security-framework

该框架将 F5 WAAP 安全治理能力应用于 MCP/AI Agent API 流量,结合检测引擎与多 Agent 分析流水线实现从威胁发现到策略部署的自动化闭环。

Stars: 0 | Forks: 0

Agentic API Security Governance Framework

CI Python 3.9+ MIT License 100% recall / 0 false positives

# Agentic API 安全治理框架 将 F5 WAAP 应用于 MCP / AI-agent API 流量。完整项目包括:项目章程、 架构、可用的检测引擎(已通过模拟及真实 MCP 协议流量验证)、 多 Agent Claude 分析流水线、 F5 策略构件、扩展的精确率/召回率基准测试,以及实时 仪表盘 —— 所有这些都构建在同一个检测引擎之上。 **📄 [阅读白皮书](WHITEPAPER.md)** — *“保护 Agentic 攻击面: 面向 MCP 和 AI-Agent API 流量的 F5 WAAP 治理框架。”* 其中的每一个数据都可以通过本 README 中的命令进行复现。 ## 亮点 - 在涵盖所有 5 条检测规则的 36 个事件标记基准测试中实现了 **100% 召回率,0 误报**,并作为每次 push 的 CI 门禁强制执行 - 检测准确率**在面对真实的 MCP JSON-RPC 协议流量时依然稳定**(基于官方 MCP SDK),而不仅仅是合成的模拟器 - 每一个发现都 1:1 映射到可部署的 **F5 AS3 声明或 iRule** —— 参见 [`f5-policy-artifacts/`](f5-policy-artifacts/) - 4-Agent Claude 流水线(**分流 → 根因分析 → 补救措施 → 报告生成**)对每一个 CRITICAL/HIGH 级别的发现进行分流处理,并附带记录在案、 可审计的推理轨迹 - 实时仪表盘将上述所有内容整合在一起 —— 流量 feed、检测结果、 Agent 推理、基准测试趋势 —— 尽收眼底 ## 目录 - [流量实况](#traffic-flow-live) - [项目结构](#project-structure) - [运行仪表盘(推荐全栈运行)](#run-the-dashboard-full-stack-recommended) - [仅运行 POC(无 UI)](#run-just-the-poc-no-ui) - [运行真实 MCP 协议实验室](#run-the-real-mcp-protocol-lab) - [运行多 Agent 分析流水线](#run-the-multi-agent-analysis-pipeline) - [运行测试](#run-the-tests) - [使用 Docker Compose 运行](#run-with-docker-compose) - [API 参考](#api-reference) - [延伸阅读](#further-reading) ## 流量实况

Animated traffic flow: AI agents through the MCP gateway, mirrored to F5 WAAP, benign traffic passing to enterprise APIs, flagged traffic routed to SIEM and ticketing

绿色的流量原封不动地直接发往下游 API;灰色的 镜像副本才是 WAF 层实际检查的内容;任何触发了 5 条检测规则之一的流量都会变红,并被转移进入 SIEM → 工单路径。这是一个端到端相同的规则引擎 —— POC、 真实 MCP 实验室、基准测试和仪表盘都通过未修改的 `poc/waf_detection_engine.py` 对流量进行评分。 ## 项目结构 ``` agentic-api-security-framework/ ├── PROJECT_CHARTER.md Scope, phases, success metrics ├── ARCHITECTURE.md System design + traffic flow ├── assets/ Animated SVG diagrams embedded in this README ├── poc/ Standalone simulator + detection engine (first-stage signal generator) │ ├── mcp_traffic_simulator.py │ ├── waf_detection_engine.py │ ├── run_demo.py │ ├── tests/ pytest suite (recall + false-positive checks) │ └── sample_output/ ├── mcp_layer/ Real MCP server/client (official MCP SDK) — genuine JSON-RPC │ │ traffic against the unchanged detection engine │ ├── mcp_server.py │ ├── client_agents.py │ └── run_lab.py ├── agents/ Multi-agent Claude pipeline │ ├── triage_agent.py Severity/priority + false-positive triage │ ├── root_cause_agent.py Why it happened, with a confidence level │ ├── remediation_agent.py Proposed F5 AS3/iRule diff │ ├── report_writer_agent.py Anonymized incident summary │ ├── ticketing.py GitHub Issues (dry-run by default) │ └── pipeline.py Chains all of the above; logs the reasoning trail ├── benchmark/ ~30-incident labeled corpus + precision/recall report │ ├── scenarios.py │ ├── run_benchmark.py │ └── tests/ ├── backend/ Flask API wrapping the detection engine + agent outputs │ ├── app.py │ └── data_engine.py ├── frontend/ Dashboard (vanilla HTML/CSS/JS, Chart.js — vendored, no CDN) │ ├── index.html │ ├── styles.css │ └── app.js ├── f5-policy-artifacts/ Real F5 config mapped to each finding │ ├── agentic_api_waf_policy.as3.json │ ├── mcp_traffic_irule.tcl │ └── README.md ├── docker-compose.yml backend + frontend + one-shot mcp-lab job └── .github/workflows/ci.yml Runs the pytest suites on every push ``` ## 运行仪表盘(推荐全栈运行) 需要 Python 3.9+。 ``` cd backend pip install -r requirements.txt python3 app.py ``` 然后在浏览器中打开 **http://localhost:5050**。 您将看到: - **实时流量 feed** — `tail -f` 风格的模拟 MCP/agent API 事件流,按严重程度进行颜色编码 - **按严重程度 / 规则划分的检测结果** — 由 `/api/summary` 驱动的环形图和柱状图 - **检测结果表** — 支持过滤,点击任意行展开即可查看 OWASP 映射、F5 控制措施、**工单状态标签**,以及(如果 已运行 `agents/pipeline.py`)完整的 **Agent 推理轨迹** — 分流 → 根因分析 → 补救措施 → 工单 - **Agent 风险画像** — 根据发现数量得出的单 Agent 风险评分 - **检测基准测试**面板 — 显示上次运行 `benchmark/run_benchmark.py` 后 每条规则的精确率/召回率/误报率,以及多次运行的召回率趋势 迷你图 - **重新运行模拟** — 实时重新生成流量并重新评分,无需 重新加载页面 后端直接为前端提供服务(同源,无需 CORS),并 复用 `poc/waf_detection_engine.py` 中的确切检测逻辑 —— 下面的 每一层(真实 MCP 流量、Agent 流水线、基准测试)都运行 **相同且未修改的规则引擎**;没有任何东西替代它。 ## 仅运行 POC(无 UI) ``` cd poc python3 run_demo.py cat sample_output/detection_report.md ``` ## 运行真实 MCP 协议实验室 针对真实的 MCP 服务器驱动真实的 MCP JSON-RPC 流量(官方 `mcp` Python SDK,stdio 传输),然后针对生成的日志运行完全相同的检测 规则 —— 证明检测能力并非 合成生成器的产物。 ``` pip install mcp cd mcp_layer python3 run_lab.py cat sample_output/mcp_detection_report.md ``` ## 运行多 Agent 分析流水线

Animated multi-agent pipeline: Finding lights up Triage, then Root-Cause, then Remediation, then Report-Writer, then Ticket, in sequence

针对每一个 CRITICAL/HIGH 级别的发现,将四个 Claude Agent 串联起来:**分流** (严重性/优先级评估 + 误报过滤) → **根因分析**(为何 发生,并附带置信度水平) → **补救措施**(提议的 F5 AS3/iRule 差异) → **报告生成**(为整个批次生成一份匿名的 事件摘要)。记录每个 Agent 的完整响应 —— 包括其 思考/推理文本 —— 以便仪表盘能够针对每个发现展示“系统为何 标记此项”的轨迹。 需要您的环境中配置了 `ANTHROPIC_API_KEY`。 ``` pip install -r agents/requirements.txt export ANTHROPIC_API_KEY=sk-ant-... # never commit this python3 agents/pipeline.py ``` 生成 `agents/sample_output/reasoning_trail.json`(由仪表盘的 Agent 推理面板和工单状态列读取)以及 `agents/sample_output/incident_report.md`。 模型默认为 `claude-sonnet-5`;可使用 `AGENT_MODEL` 覆盖。 ### 创建工单 `agents/ticketing.py` 会为每一个非误报的 CRITICAL/HIGH 级别发现创建一个 GitHub Issue,并附带补救 Agent 提议的修复方案。 **默认进行空运行 (Dry-run)** — 除非您主动开启,否则不会调用 GitHub API: ``` export TICKET_DRY_RUN=false export GITHUB_TOKEN=ghp_... export GITHUB_REPO=your-org/your-repo python3 agents/pipeline.py ``` ## 运行测试 ``` # 原始 5 场景 POC 套件(召回率 + 误报防护) cd poc && pip install -r requirements-dev.txt && python3 -m pytest tests/ -v # 扩展的约 30 事件 benchmark 套件(100% 召回率 / 0 FP 门禁) python3 -m pytest benchmark/tests -v # 完整的 precision/recall/false-positive 报告(按规则),外加 OWASP 覆盖盲区 python3 benchmark/run_benchmark.py cat benchmark/sample_output/benchmark_report.md ``` CI (`.github/workflows/ci.yml`) 会在每次 push 时运行两个 pytest 套件。 `agents/` 流水线不在 CI 中,因为它需要提交 API 密钥 — 请改用真实的密钥手动对其进行冒烟测试。 ## 使用 Docker Compose 运行 ``` docker compose up backend frontend # 按需执行的单次真实 MCP 协议实验室任务: docker compose --profile lab up mcp-lab ``` `backend` 在 `:5050` 提供仪表盘服务;`frontend` 是一个独立的 nginx 静态主机,在 `:8080` 提供相同的 UI(后端也直接提供服务 — 这是为了适应“将前端作为独立服务”的部署形态)。 在执行 `docker compose up` 之前,如果在 容器内部您想要运行 Agent 流水线 / 真实的工单创建功能,请在您的 shell 或本地的 `.env`(未提交)文件中设置 `ANTHROPIC_API_KEY`、`TICKET_DRY_RUN`、`GITHUB_TOKEN`、`GITHUB_REPO`。 ## API 参考 | Endpoint | 方法 | 描述 | |---|---|---| | `/api/health` | GET | 存活检查 | | `/api/summary` | GET | 按严重程度/规则统计,Agent 数量 | | `/api/findings` | GET | 所有检测结果;可选的 `?severity=` `?rule=` 过滤器 | | `/api/traffic` | GET | 原始流量事件;可选的 `?limit=` | | `/api/agents` | GET | 每个 Agent 的事件/发现数量 + 风险评分 | | `/api/simulate` | POST | 重新生成流量并重新运行检测 | | `/api/reasoning-trail` | GET | 上次 `agents/pipeline.py` 运行中针对每个发现的分流/根因分析/补救措施/工单轨迹 | | `/api/benchmark` | GET | 最新的按规则划分的精确率/召回率/误报结果 | | `/api/benchmark-history` | GET | 每次基准测试运行的整体召回率(趋势数据) | ## 延伸阅读 | 文档 | 内容介绍 | |---|---| | [`WHITEPAPER.md`](WHITEPAPER.md) | 旗舰级文章 — 包含问题描述、方法论、验证结果和客观的差距列表,并以本仓库的实际输出作为证据 | | [`PROJECT_CHARTER.md`](PROJECT_CHARTER.md) | 范围、阶段交付状态、成功指标 | | [`ARCHITECTURE.md`](ARCHITECTURE.md) | 组件级设计和流量流向 | | [`f5-policy-artifacts/README.md`](f5-policy-artifacts/README.md) | 每条检测规则如何映射到真实的 AS3/iRule 控制措施,以及已知的部署差距 | | [`CONTRIBUTING.md`](CONTRIBUTING.md) | 项目布局、设置及变更的基本规则 | | [`LICENSE`](LICENSE) | MIT |
标签:AI代理, AMSI绕过, API安全, F5, JSON输出, MCP, WAAP, 威胁检测, 安全规则引擎, 版权保护, 自动化运维, 逆向工具