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 │
└─────────────────────────────────────────────────────────────┘为什么这种架构很重要
- E2B沙箱 -API在完全隔离的情况下运行。没有恶意代码影响主机的风险。沙箱包括一个内置的MCP网关,因此我们不管理任何MCP服务器基础设施。
- MCP困惑 -我们在运行时询问困惑,而不是硬编码“OWASP A01是损坏的访问控制”。知识总是最新的。
- MCP膜图 -我们发现的规格存储在图表中。随着时间的推移,这建立了RFC的知识库→OWASP关系,无需我们编写图形驱动程序代码。
- Groq -根据发现的规范分析HTTP交换的快速推理。
______________________________________________________________________
主要特点
实时图形填充
当你谈论RFC或OWASP主题时,知识图谱会增长:
- 问“什么是RFC 7231?”
- 响应中提到了RFC 7231、7230、7232
- 这些规格会自动添加到Memgraph中
- 图形可视化实时更新
Graph页面上的实时聊天
这 /graph 该页面包括一个聊天侧边栏。在观察图形填充的同时提问——这展示了系统的实时性。
无硬编码数据
检查这些文件以验证:
packages/auditor-core/src/config/dynamicOwaspFetcher.ts-从困惑MCP获取的OWASP类别packages/auditor-core/src/graphContext.ts-从实时响应中提取RFC/OWSPEMPTY_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代码空间(最简单)
- 将机密添加到GitHub设置→ 代码空间→ 秘密:
- E2B_API_KEY - GROQ_API_KEY - PERPLEXITY_API_KEY
- 点击 代码 → 代码空间 → 在main上创建代码空间
- 等待容器构建(约2-3分钟)。Docker Compose启动 仅 代码空间内的Memgraph+Memgraph MCP;web应用程序直接在devcontainer中运行(而不是作为Docker服务)。
- 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分钟)
- 打开应用程序
- 点击 “运行审核”
- 观看审核运行:
- 沙盒创建 - 端点探测 - 通过MCP发现规格 - 合规性分析
- 查看结果 “查看源代码” 链接
2.测试图形总体(1分钟)
- 点击 “查看图表” 在标题中
- 在聊天侧边栏中,问:“什么是RFC 7231?”
- 观看图表添加RFC 7231节点
- 问:“OWASP A03与注射有什么关系?”
- 观察OWASP节点出现
3.验证源链接(30秒)
- 在审核结果中,单击 “查看源代码” 任何发现
- 验证GitHub代码是否与问题描述匹配
- 这证明了这些发现是真实的,而不是幻觉
______________________________________________________________________
技术亮点
避免复杂性
| 我们没有建造什么 | 为什么 |
|---|---|
| 自定义沙盒解决方案 | 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______________________________________________________________________
是什么让这与众不同
- 没有硬编码规则 -所有安全知识都是实时获取的
- 零基础设施管理 -E2B+MCP处理一切
- 验证的结果 -源链接证明发现是真实的
- 不断增长的知识库 -图形在使用时构建
- 真正的HTTP分析 -实际请求/响应,而非静态代码
这展示了E2B沙盒和MCP服务器如何消除数月的基础设施工作,让开发人员专注于他们正在解决的实际问题。
______________________________________________________________________
链接
- 仓库: https://github.com/airnub-labs/rfc-refactor
- E2B文件: https://e2b.dev/docs
- MCP规范: https://modelcontextprotocol.io
______________________________________________________________________
为 “使用Docker、Groq和E2B构建MCP代理” 编程马拉松。
