# Runwall：为AI编程助手构建安全护栏，抵御提示注入与数据泄露风险

> Runwall是一款专为Claude Code、Codex等AI编程助手设计的安全防护工具，采用YARA风格的模块化守卫包，在运行时拦截危险命令执行、秘密泄露、提示注入攻击和MCP工具滥用，提供审计模式和实时拦截两种工作模式。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-03-29T23:15:39.000Z
- 最近活动: 2026-03-29T23:24:58.252Z
- 热度: 154.8
- 关键词: AI安全, Claude Code, 提示注入, 秘密泄露, MCP安全, 运行时防护, YARA, 安全护栏, 代码助手, DevSecOps
- 页面链接: https://www.zingnex.cn/forum/thread/runwall-ai
- Canonical: https://www.zingnex.cn/forum/thread/runwall-ai
- Markdown 来源: ingested_event

---

# Runwall：为AI编程助手构建安全护栏，抵御提示注入与数据泄露风险\n\n随着Claude Code、Codex、Cursor等AI编程助手的普及，开发者享受到了前所未有的编码效率提升。然而，这些工具在带来便利的同时，也引入了新的安全风险：它们可以读取文件、执行shell命令、操作git仓库、调用MCP工具，甚至跨多个运行时工作。这种强大的能力一旦被恶意利用，可能导致秘密泄露、仓库破坏、甚至整个开发环境的沦陷。\n\nRunwall（原名secure-claude-code）正是针对这一痛点而生的安全解决方案。它采用YARA风格的模块化守卫包设计，为AI编程助手提供运行时安全防护，在危险操作执行前进行拦截和审查。本文将深入介绍其设计理念、防护机制和集成方式。\n\n## AI编程助手的安全风险全景\n\n理解Runwall的设计需要先了解AI编程助手面临的安全威胁 landscape：\n\n**秘密泄露风险**。AI助手可能在处理代码时无意中读取并泄露API密钥、数据库密码、私钥等敏感信息。这些信息可能通过聊天历史、日志文件或MCP响应外泄。\n\n**提示注入攻击**。攻击者可以通过精心构造的文件内容、网页内容、shell输出或MCP响应，向AI助手注入恶意指令。特别是"间接提示注入"，攻击者无需直接与AI交互，只需污染AI可能读取的数据源即可实施攻击。\n\n**危险命令执行**。AI助手可能执行破坏性命令，如`rm -rf /`、格式化磁盘、删除仓库等。更隐蔽的风险包括通过shell profile、cron任务、systemd服务或SSH授权密钥建立的持久化后门。\n\n**MCP工具滥用**。Model Context Protocol（MCP）允许AI助手调用外部工具，但这也带来了新的攻击面：恶意MCP服务器、工具参数走私、敏感数据批量读取、危险的工具调用链等。\n\n**Git操作风险**。AI助手可能执行危险的git操作，如强制推送、历史重写、分支删除，甚至向仓库注入恶意代码。\n\n**信任边界突破**。攻击者可能通过修改hosts文件、sudo策略、SSH配置等方式突破本地信任边界，或访问浏览器会话、集群密钥等敏感资源。\n\n## Runwall的核心设计理念\n\nRunwall的设计遵循以下原则：\n\n**运行时安全优先**。不同于传统的静态代码扫描，Runwall在AI助手执行操作时进行实时拦截和审查。这种"运行时安全"能够应对动态生成的威胁和上下文相关的风险。\n\n**模块化守卫包**。采用类似YARA（恶意软件分析工具）的模块化设计，每个守卫包（guard pack）针对一类攻击家族（如秘密泄露、提示注入、持久化后门）。这种设计使得规则易于理解、定制和扩展。\n\n**本地优先**。所有安全检查和决策在本地完成，敏感数据不会发送到云端。这符合隐私敏感场景的需求，也避免了对外部服务的依赖。\n\n**透明可审计**。Runwall记录所有安全事件到本地JSONL日志文件，支持查看拦截记录、审查决策依据。管理员可以基于日志进行安全审计和事件追溯。\n\n**低摩擦体验**。安全防护不应阻碍开发效率。Runwall提供多个安全配置文件（strict、balanced、relaxed），用户可以根据场景选择合适的防护级别，在安全性和便利性之间取得平衡。\n\n## 双模式工作架构\n\nRunwall支持两种工作模式：\n\n**审计模式（Audit Mode）**。用于扫描AI助手配置、钩子、MCP服务器、技能、插件和指令文件，生成安全评分报告。这适合在安装新工具前进行安全评估，或在CI/CD流程中进行合规检查。\n\n**运行时模式（Runtime Mode）**。在AI助手执行操作时进行实时拦截、提示、阻断和脱敏。这是主要的防护模式，通过拦截工具调用、审查MCP响应、阻断可疑操作来保护开发环境。\n\n运行时模式又细分为三种集成方式：\n\n1. **原生运行时适配器**：在支持钩子的运行时（如Claude Code）中直接集成，在工具调用前后执行安全检查\n2. **插件/Bundle安装**：通过Codex插件市场或OpenClaw bundle机制安装\n3. **内联MCP网关模式**：作为MCP代理服务器，为Cursor、Windsurf、Claude Desktop等MCP原生客户端提供安全防护\n\n## 防护能力详解\n\nRunwall的防护覆盖多个维度：\n\n**秘密保护**。检测和保护API密钥、令牌、密码、私钥等敏感信息。阻止AI助手读取本地秘密文件（如.env、.ssh/id_rsa）、访问桌面凭证存储、将敏感数据转发到MCP服务器。\n\n**提示注入防护**。扫描文件内容、网页内容、shell输出、grep结果、MCP响应中的提示注入和越狱诱导内容。检测隐藏的指令、控制字符滥用、多阶段投递链。\n\n**危险命令拦截**。阻断破坏性shell命令（rm -rf、格式化、分区操作）、危险的git操作（强制推送、历史重写）、持久化机制（shell profile修改、cron任务、systemd服务、SSH密钥添加）、信任边界突破（hosts文件修改、sudo策略篡改）。\n\n**MCP安全**。拦截MCP工具调用请求，审查工具参数，扫描MCP响应中的秘密泄露和提示走私内容。实施出站目的地策略，阻止对私有IP、元数据端点、webhook、pastebin等可疑地址的请求。\n\n**Agent会话保护**。防止AI助手访问浏览器会话、集群密钥、桌面凭证存储。阻止通过环境变量将秘密转发到MCP服务器。\n\n**审计逃避检测**。识别和阻止试图清除日志、隐藏操作痕迹的行为。\n\n## 安全配置文件\n\nRunwall提供三个预设配置文件：\n\n**Strict（严格模式）**。适用于敏感仓库、共享环境、安全要求高的团队。启用最严格的防护规则，可能带来一定的使用摩擦。\n\n**Balanced（平衡模式）**。推荐大多数用户使用。提供良好的安全防护同时保持较低的使用摩擦，是安全性和便利性的平衡点。\n\n**Relaxed（宽松模式）**。适用于个人开发、轻量级本地加固。提供基础防护，对开发流程的干扰最小。\n\n用户可以通过`./bin/runwall install <profile>`命令选择配置文件，也可以自定义规则调整防护级别。\n\n## 集成方式与平台支持\n\nRunwall支持多种AI编程助手和集成方式：\n\n**Claude Code**。原生钩子模式支持，通过插件市场直接安装。在工具调用前后执行PreToolUse和PostToolUse检查。\n\n**Codex**。提供Codex bundle manifest（`.codex-plugin/plugin.json`）和共享MCP定义（`.mcp.json`）。支持本地插件安装和bundle安装。\n\n**OpenClaw**。兼容bundle安装，OpenClaw自动检测Claude/Codex bundle标记并导入支持的技能和MCP工具。\n\n**Cursor/Windsurf/Claude Desktop**。通过`generate-runtime-config`命令生成MCP配置文件，将Runwall作为内联网关插入到MCP调用链中。\n\n**通用MCP客户端**。为标准MCP客户端提供通用网关配置，支持Claude Cowork等MCP原生应用。\n\n**CI/CD**。生成GitHub Actions工作流片段，支持CLI策略评估，可在流水线中阻断高风险命令。\n\n平台支持方面，macOS和Linux完全支持，Windows通过Git Bash或WSL支持。\n\n## MCP网关模式详解\n\n对于不支持原生钩子的客户端，Runwall提供MCP网关模式。在这种模式下，Runwall作为MCP代理服务器运行，客户端连接到Runwall网关而非直接连接到上游MCP服务器。\n\n网关提供以下能力：\n\n- **多上游MCP代理**：可以同时代理多个MCP服务器\n- **tools/list拦截**：审查和过滤可用工具列表\n- **tools/call拦截**：在工具调用到达上游前进行审查\n- **请求检查**：检查工具调用请求中的可疑参数和模式\n- **响应检查**：扫描上游响应中的秘密泄露、提示走私、可疑URL、预置shell命令\n- **动作决策**：允许、阻断、提示、脱敏四种处理方式\n- **出站策略**：对私有IP、元数据端点、webhook、pastebin等目的地实施访问控制\n\n网关提供本地API和Web仪表板（默认端口9470），可查看健康状态、实时事件、待处理提示和审批请求。\n\n## 使用示例\n\n**安装与配置**：\n```bash\n# 通过bootstrap安装\ncurl -fsSL https://raw.githubusercontent.com/efij/secure-claude-code/main/scripts/bootstrap.sh | bash -s -- --repo efij/secure-claude-code --ref main --profile balanced\n\n# 或手动安装\ngit clone https://github.com/efij/secure-claude-code.git\ncd secure-claude-code\n./bin/runwall install balanced\n```\n\n**审计扫描**：\n```bash\n./bin/runwall audit .\n./bin/runwall audit . --format html --output runwall-audit.html\n./bin/runwall audit . --format sarif --output runwall-audit.sarif --fail-on high\n```\n\n**生成运行时配置**：\n```bash\n./bin/runwall generate-runtime-config codex balanced\n./bin/runwall generate-runtime-config cursor balanced\n./bin/runwall generate-runtime-config claude-desktop balanced\n```\n\n**启动MCP网关**：\n```bash\n./bin/runwall gateway serve strict --config ./config/gateway.json --api-port 9470\n```\n\n**查看日志**：\n```bash\n./bin/runwall logs 20\n./bin/runwall logs 50 --decision block --since-hours 24\n```\n\n## 架构设计哲学\n\nRunwall的架构设计体现了YARA的精神：\n\n- **一个守卫包对应一类攻击**：如secrets-pack处理秘密泄露，injection-pack处理提示注入，persistence-pack处理持久化机制\n- **配置文件保持可编辑**：使用纯文本的正则表达式和配置文件，便于理解和定制\n- **钩子保持小巧可组合**：每个检查点只负责单一职责，多个守卫可以链式组合\n- **透明决策**：每次拦截或警告都记录明确的规则和匹配内容，便于审计和调试\n\n这种设计使得安全团队可以根据组织需求定制规则，开发者可以理解每个安全决策的依据，而不必面对黑盒式的安全策略。\n\n## 局限性与注意事项\n\nRunwall明确声明其定位：它是降低风险的本地执行层，而非完整的安全方案。用户仍需：\n\n- 将AI编程助手、MCP工具、shell访问、秘密管理和仓库操作视为真实的安全边界\n- 在敏感环境中实施额外的安全控制（如网络隔离、最小权限原则）\n- 定期审查Runwall日志，关注警告和拦截事件\n- 保持Runwall和守卫包的更新，以应对新出现的威胁\n\n对于纯聊天场景（不涉及工具、shell、git或文件操作），Runwall的价值有限。\n\n## 总结与展望\n\nRunwall为AI编程助手的安全使用提供了实用的防护方案。其运行时拦截、模块化守卫包、多平台支持和透明审计等特性，使其成为个人开发者、初创团队和安全意识强的组织的理想选择。\n\n随着AI编程助手的普及，围绕它们的安全攻防将日益激烈。Runwall的YARA式模块化设计使其能够快速响应新威胁，社区贡献的新守卫包可以不断丰富防护能力。未来值得关注的方向包括：更智能的语义分析（超越正则表达式）、与SIEM/SOAR系统的集成、以及针对特定行业合规要求的专用守卫包。
