API安全审计工具

基于E2B沙箱和MCP服务器的API安全审计工具,动态获取RFC和OWASP Top 10规范进行实时审计,无需硬编码安全规则。

  • by airnub-labs
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 airnub-labs/rfc-refactor

使用说明

E2B RFC/OWSP审核员

聊天驱动的API审计员使用E2B沙盒和MCP服务器,根据RFC和OWASP Top 10对HTTP API进行审计,而不会将任何这种复杂性烘焙到应用程序本身中。


概述

问题

建立API安全审计员通常需要:

  • 硬编码安全规则 很快就会过时
  • 管理复杂的基础设施 用于安全执行代码
  • 构建自定义集成 用于知识库和图形数据库
  • 处理个人身份信息/秘密净化 防止数据泄露

E2B+MCP如何消除这种复杂性

传统方法 我们的E2B+MCP方法
硬编码OWASP规则→ 永远保持 MCP困惑 按需获取最新的OWASP/RFC规范
构建自定义沙盒→ 工作月数 E2B沙箱 在一个API调用中提供安全执行
编写Memgraph驱动程序代码→ 处理连接、查询 MCP膜图 通过标准MCP协议公开Cypher
构建出口过滤→ 复杂中间件 E2B的MCP网关 集中所有外部呼叫

结果: 我们的整个代码库都专注于审计逻辑,而不是基础设施。

验证的结果

每个审计发现都包括 “查看源代码” 链接,直接将您带到GitHub中易受攻击的代码:

/user-leaky → View Source → e2bClient.ts#L171-L186

单击任何发现以查看正在审核的实际代码,证明分析是基于真实端点的。


架构概述

┌─────────────────────────────────────────────────────────────┐
│  Browser                                                     │
│  └── Chat UI + Graph Visualization                          │
└─────────────┬───────────────────────────────────────────────┘
              │
              ▼
┌─────────────────────────────────────────────────────────────┐
│  Next.js API Route (/api/chat)                              │
│  └── Orchestrates audit or answers questions                │
└─────────────┬───────────────────────────────────────────────┘
              │
              ▼
┌─────────────────────────────────────────────────────────────┐
│  E2B Sandbox                                                │
│  ┌─────────────────────────────────────────────────────┐    │
│  │  Sample API (Express)                               │    │
│  │  └── 5 endpoints with intentional vulnerabilities   │    │
│  ├─────────────────────────────────────────────────────┤    │
│  │  HTTP Probe → Sanitizer → Analysis                  │    │
│  ├─────────────────────────────────────────────────────┤    │
│  │  E2B MCP Gateway (built-in)                         │    │
│  │  ├── Perplexity MCP → Live RFC/OWASP lookup        │    │
│  │  └── Memgraph MCP → Knowledge graph storage         │    │
│  └─────────────────────────────────────────────────────┘    │
└─────────────┬───────────────────────────────────────────────┘
              │
              ▼
┌─────────────────────────────────────────────────────────────┐
│  Groq LLM (compound-beta)                                   │
│  └── Analyzes sanitized exchanges + specs → findings        │
└─────────────────────────────────────────────────────────────┘

为什么这种架构很重要

  1. E2B沙箱 -API在完全隔离的情况下运行。没有恶意代码影响主机的风险。沙箱包括一个内置的MCP网关,因此我们不管理任何MCP服务器基础设施。

  2. MCP困惑 -我们在运行时询问困惑,而不是硬编码“OWASP A01是损坏的访问控制”。知识总是最新的。

  3. MCP膜图 -我们发现的规格存储在图表中。随着时间的推移,这建立了RFC的知识库→OWASP关系,无需我们编写图形驱动程序代码。

  4. Groq -根据发现的规范分析HTTP交换的快速推理。


主要特点

实时图形填充

当你谈论RFC或OWASP主题时,知识图谱会增长:

  1. 问“什么是RFC 7231?”
  2. 响应中提到了RFC 7231、7230、7232
  3. 这些规格会自动添加到Memgraph中
  4. 图形可视化实时更新

Graph页面上的实时聊天

这 /graph 该页面包括一个聊天侧边栏。在观察图形填充的同时提问——这展示了系统的实时性。

无硬编码数据

检查这些文件以验证:

  • packages/auditor-core/src/config/dynamicOwaspFetcher.ts -从困惑MCP获取的OWASP类别
  • packages/auditor-core/src/graphContext.ts -从实时响应中提取RFC/OWSP
  • EMPTY_CATEGORIES 和 EMPTY_FALLBACK_CATEGORIES -默认值是空数组,而不是硬编码列表

源代码验证

每个审计发现都链接到代码库中的确切行:

端点 问题 来源
/user-leaky PII暴露 e2b客户编号L171-L186
/debug-error 烟囱痕迹泄漏 e2b客户编号L188-L209
/items-injection SQL注入 e2b客户编号L211-L231
/cors-wildcard CORS配置错误 e2b客户编号L233-L255

运行演示

先决条件

  • GitHub代码空间 (推荐)或Docker+Node.js 20+
  • API密钥用于: E2B_API_KEY, GROQ_API_KEY, PERPLEXITY_API_KEY

选项1:GitHub代码空间(最简单)

  1. 将机密添加到GitHub设置→ 代码空间→ 秘密:

    • E2B_API_KEY
    • GROQ_API_KEY
    • PERPLEXITY_API_KEY
  2. 点击 代码 → 代码空间 → 在main上创建代码空间

  3. 等待容器构建(约2-3分钟)。Docker Compose启动 仅 代码空间内的Memgraph+Memgraph MCP;web应用程序直接在devcontainer中运行(而不是作为Docker服务)。

  4. web应用程序通过devcontainer在端口3000上自动启动 postStartCommand (pnpm dev 从 apps/web),所以浏览器预览正常工作。有 不 pnpm build 进入Codespaces——应用程序保持在开发模式以快速刷新。

选项2:本地开发(Docker仅适用于Memgraph)

git clone https://github.com/airnub-labs/rfc-refactor
cd rfc-refactor
cp .env.example apps/web/.env.local
# Edit apps/web/.env.local with your API keys (Next.js reads this automatically from that folder)

# Start graph deps only
docker compose -f docker/docker-compose.yml up memgraph memgraph-mcp

# In another terminal, start the app directly (best DX)
pnpm install
pnpm --filter web dev

打开http://localhost:3000.Docker Compose做到了 不 读 .env.local,所以没有必要复制到 .env;应用程序读取 .env.local 当你跑步时 pnpm dev.

注意:Next.js仅从以下位置加载环境变量 apps/web/.env.local (或shell环境)。A. .env.local 在repo中,根不会被web应用程序获取。


演示演练

1.运行审核(2分钟)

  1. 打开应用程序
  2. 点击 “运行审核”
  3. 观看审核运行:
    • 沙盒创建
    • 端点探测
    • 通过MCP发现规格
    • 合规性分析
  4. 查看结果 “查看源代码” 链接

2.测试图形总体(1分钟)

  1. 点击 “查看图表” 在标题中
  2. 在聊天侧边栏中,问:“什么是RFC 7231?”
  3. 观看图表添加RFC 7231节点
  4. 问:“OWASP A03与注射有什么关系?”
  5. 观察OWASP节点出现

3.验证源链接(30秒)

  1. 在审核结果中,单击 “查看源代码” 任何发现
  2. 验证GitHub代码是否与问题描述匹配
  3. 这证明了这些发现是真实的,而不是幻觉

技术亮点

避免复杂性

我们没有建造什么 为什么
自定义沙盒解决方案 E2B提供此功能
困惑的API集成 MCP服务器处理
Memgraph驱动程序/连接池 MCP服务器处理它
MCP服务器托管 E2B内置网关
OWASP/RFC知识库 通过MCP实时获取

安全特性

  • PII消毒: @redactpii/node +正则表达式模式在出口前剥离敏感数据
  • Cypher注射预防:所有图查询都使用正确的转义和ID验证
  • 标题筛选:从探测中删除敏感标头(授权、Cookie等)

代码质量

  • TypeScript贯穿始终
  • 面向方面的跨领域设计(消毒、日志记录)
  • 清洁分离: auditor-core 包与框架无关

项目结构

apps/web/                    # Next.js app
  src/app/
    page.tsx                 # Chat UI with audit results
    graph/page.tsx           # Graph visualization with chat sidebar
    api/chat/route.ts        # Main API endpoint
    api/graph/route.ts       # Graph data endpoint

packages/auditor-core/       # Core audit logic
  src/
    auditEngine.ts           # Orchestration
    e2bClient.ts             # E2B sandbox + sample API (L158-255)
    graphContext.ts          # Spec discovery + Memgraph upsert
    groqClient.ts            # LLM analysis + source location mapping
    mcpClient.ts             # MCP gateway client
    sanitizeHttp.ts          # HTTP exchange sanitization
    config/
      dynamicOwaspFetcher.ts # Live OWASP fetching via MCP

是什么让这与众不同

  1. 没有硬编码规则 -所有安全知识都是实时获取的
  2. 零基础设施管理 -E2B+MCP处理一切
  3. 验证的结果 -源链接证明发现是真实的
  4. 不断增长的知识库 -图形在使用时构建
  5. 真正的HTTP分析 -实际请求/响应,而非静态代码

这展示了E2B沙盒和MCP服务器如何消除数月的基础设施工作,让开发人员专注于他们正在解决的实际问题。


链接

  • 仓库: https://github.com/airnub-labs/rfc-refactor
  • E2B文件: https://e2b.dev/docs
  • MCP规范: https://modelcontextprotocol.io

为 “使用Docker、Groq和E2B构建MCP代理” 编程马拉松。