AI代理防火墙

Agent Wall是一款针对AI代理的安全防火墙,通过拦截MCP工具调用、执行安全策略和防御攻击来保护MCP服务器。

  • by agent-wall
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 agent-wall/agent-wall

使用说明

代理墙

AI代理的安全防火墙。 拦截MCP工具调用,执行策略,阻止攻击。

“Cloudflare for AI代理” --对任何MCP服务器实施零配置保护。

问题

AI代理现在可以执行工具——读取文件、运行shell命令、查询数据库、发出HTTP请求。如果没有护栏,一次快速注射可以:

  1. 阅读 您的SSH密钥, .env 文件、凭据
  2. 渗出 数据通过 curl, wget,或DNS隧道
  3. 执行 具有您权限的任意shell命令
  4. 链 从读取到提取再执行的多种工具

Agent Wall位于MCP客户端和服务器之间,对每个工具调用强制执行YAML策略——包括传入的请求和传出的响应。

MCP Client  ←→  Agent Wall Proxy  ←→  MCP Server
                      ↕
               agent-wall.yaml
               + security modules
               + response scanner

快速开始

# Install globally
npm install -g @agent-wall/cli

# Generate a starter policy
agent-wall init

# Wrap any MCP server
agent-wall wrap -- npx @modelcontextprotocol/server-filesystem /home/user

# With real-time dashboard
agent-wall wrap --dashboard -- npx @modelcontextprotocol/server-filesystem /home/user

就这样 Agent Wall现在正在保护您的MCP服务器。

30秒整合

替换MCP配置条目以包装任何服务器:

{
  "mcpServers": {
    "filesystem": {
      "command": "agent-wall",
      "args": ["wrap", "--", "npx", "@modelcontextprotocol/server-filesystem", "/home/user"]
    }
  }
}

使用 克劳德代码, 光标, 克劳德桌面, VS代码, 帆板运动,以及任何MCP客户端。

纵深防御管道

每 tools/call 请求通过 5级进站管线:

1. Kill Switch     — Emergency deny-all (file/signal/programmatic)
2. Injection       — 30+ patterns detect prompt injection attacks
3. Egress Control  — Block private IPs, SSRF, metadata endpoints
4. Policy Engine   — YAML rules (first-match-wins, glob, rate limiting)
5. Chain Detection — Suspicious multi-step patterns (read→exfil, write→exec)

响应贯穿始终 出站扫描仪:

6. Response Scanner — 14 secret patterns, 5 PII patterns, custom regex
                      Actions: pass / redact / block

策略配置

规则定义见 agent-wall.yaml --第一场比赛获胜:

version: 1
defaultAction: prompt

globalRateLimit:
  maxCalls: 200
  windowSeconds: 60

security:
  injectionDetection:
    enabled: true
    sensitivity: medium   # low | medium | high
  egressControl:
    enabled: true
    blockPrivateIPs: true
  killSwitch:
    enabled: true
  chainDetection:
    enabled: true

responseScanning:
  enabled: true
  maxResponseSize: 5242880
  detectSecrets: true
  detectPII: false

rules:
  # Block credential access
  - name: block-ssh-keys
    tool: "*"
    match:
      arguments:
        path: "**/.ssh/**"
    action: deny
    message: "SSH key access blocked"

  # Block exfiltration vectors
  - name: block-curl-exfil
    tool: "shell_exec|run_command|execute_command"
    match:
      arguments:
        command: "*curl *"
    action: deny

  # Require approval for shell commands
  - name: approve-shell-exec
    tool: "shell_exec|run_command|execute_command|bash"
    action: prompt

  # Allow safe reads
  - name: allow-read-file
    tool: "read_file|get_file_contents|view_file"
    action: allow

规则功能

特性 示例 描述
球状图案 *delete* 将工具名称与通配符匹配
管道替代品 shell_exec|run_command 匹配多个工具名称
参数匹配 path: "**/.ssh/**" 与参数的模式匹配
速率限制 maxCalls: 10, windowSeconds: 60 按规则和全球费率限制
三个行动 allow, deny, prompt 前进、阻止或询问人类
热重载 编辑yaml,自动重新加载 无需重新启动

实时仪表板

监控浏览器中的安全事件:

agent-wall wrap --dashboard -- npx mcp-server
# → Dashboard at http://localhost:61100

https://github.com/user-attachments/assets/5b8c2c31-acad-4418-bef6-bfb0a462d4ec

  • 带有允许/拒绝/提示颜色编码的实时事件提要
  • 统计卡(总计、转发、拒绝、攻击、扫描)
  • 按类别分组的攻击面板(注射、SSRF、链)
  • 规则命中表(可排序)
  • 关闭开关切换(带确认)
  • 审计日志搜索

CLI命令

命令 描述
agent-wall wrap 用策略强制包装MCP服务器
agent-wall init 生成启动器配置
agent-wall test 对你的政策进行工具调用
agent-wall audit 查看和分析审核日志
agent-wall scan 扫描MCP配置以查看安全风险
agent-wall validate 验证策略配置
agent-wall doctor 配置和环境的健康检查
# Wrap with dashboard and audit logging
agent-wall wrap --dashboard --log-file ./audit.log -- npx mcp-server

# Dry-run preview
agent-wall wrap --dry-run -- npx mcp-server

# Test a tool call
agent-wall test --tool read_file --arg path=/home/.ssh/id_rsa
# → DENIED by rule "block-ssh-keys"

# View denied entries from audit log
agent-wall audit --log ./audit.log --filter denied --last 20

# Scan for unprotected MCP servers
agent-wall scan

# Validate config
agent-wall validate

响应扫描

Agent Wall在服务器响应到达LLM之前对其进行检查:

  • 14种内置秘密图案 --AWS密钥、GitHub令牌、OpenAI密钥、JWT、私钥、数据库URL、密码、证书
  • 5个人身份信息模式 --电子邮件、电话、SSN、信用卡、IP地址(选择加入)
  • 定制图案 --通过YAML配置添加自己的正则表达式
  • 三个行动 — pass (仅日志), redact (替换为 [REDACTED]), block (客户端出错)
  • 大小限制 --可配置的最大响应大小,超大动作

内置默认策略

如果没有配置文件,Agent Wall附带了合理的默认值:

  • 块 访问 .ssh/, .env, .pem, .key, .pfx, .p12,凭据文件
  • 块 curl, wget, netcat, powershell, pwsh 在shell命令中
  • 块 DNS泄漏向量(nslookup, dig, host)
  • 检测 快速注射攻击(30+种模式)
  • 块 SSRF到私有IP和云元数据端点
  • 检测 可疑工具调用链(阅读→撤退,写作→执行)
  • 提示 用于shell执行和文件删除
  • 允许 文件读取、目录列表、搜索操作
  • 扫描 对泄漏机密和API密钥的响应
  • 速率限制 全球每分钟200个电话

建筑

packages/
  core/        @agent-wall/core       — Proxy engine, policy, security modules
  cli/         agent-wall             — CLI (wrap, init, test, audit, scan, validate, doctor)
  dashboard/   @agent-wall/dashboard  — React SPA for real-time monitoring
  docs/        VitePress documentation site

对MCP SDK的零依赖 --Agent Wall实现了自己的JSON-RPC解析,因此它适用于任何MCP版本。

关键模块:

  • Stdioproxys --具有5步防御管道的双向拦截代理
  • 策略引擎 --第一场比赛获胜规则评估器(全局模式、速率限制、严格模式)
  • 响应扫描器 --具有ReDoS保护的秘密/PII检测
  • 注射检测器 --30+快速注射模式(可配置灵敏度)
  • 出口控制 --URL/SSRF保护(RFC1918,元数据,十六进制/八进制IP混淆)
  • KillSwitch --紧急拒绝所有(基于文件、基于信号、程序化)
  • 链条检测器 --多步攻击模式检测
  • 仪表板服务器 --用于浏览器仪表板的WebSocket+HTTP服务器
  • AuditLogger --HMAC-SHA256签名JSON行,日志轮换
  • 策略加载器 --YAML配置,带Zod验证、自动发现、热重载

测试

pnpm test    # Run all tests
pnpm build   # Build all packages

发展

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests
pnpm test

# Dev docs server
pnpm docs:dev

贡献

欢迎投稿!请阅读 贡献指南 在提交PR之前。

许可证

麻省理工学院 --由Agent Wall贡献者痴迷而建。