SuperAPI AI 工具集

security-sandbox

安全与审计

查看项目

更新于 10-15 11:03

技能介绍

Security Sandbox 为自主编码操作提供纵深防御安全,通过命令验证、允许列表和执行钩子来保障命令执行安全。

用途 该工具用于在自主编码或自动化会话中安全地执行 bash 命令,防止危险命令对系统造成破坏。它适合在需要验证 bash 命令、配置安全策略、实现工具使用前验证(PreToolUse)的场景中使用。

主要能力

  1. 命令验证:通过 scripts.command_validator 的 validate_command 函数校验命令,返回结果包含 allowed 布尔值和被阻止时的 reason 原因。
  2. 安全钩子:通过 scripts.security_manager 的 create_bash_security_hook 创建钩子,钩子接收 tool_input(如 command),返回 decision(如 block)和 reason,可集成到 Claude SDK。
  3. 允许列表管理:通过 scripts.allowlist 的 Allowlist 类添加或移除允许的命令,例如 add("docker")、add("kubectl")、remove("rm")。
  4. 危险模式检测:始终阻止 rm -rf /、> /dev/sda、chmod 777、curl | bash、:(){ :|:& };:、dd if=/dev/zero 等模式。
  5. 安全模型分层:第一层沙箱(操作系统级隔离、文件系统限制、网络限制);第二层权限(工具允许列表如 Read、Write、Bash,路径限制如 ./**,操作限制);第三层命令验证(命令提取与解析、允许列表检查、危险模式检测);第四层钩子(PreToolUse 验证、实时阻止、审计日志)。

使用方式 验证命令示例: from scripts.command_validator import validate_command result = validate_command("npm install express") if result.allowed: pass else: print(f"Blocked: {result.reason}")

使用安全钩子示例: from scripts.security_manager import create_bash_security_hook hook = create_bash_security_hook() decision = await hook({"tool_input": {"command": "rm -rf /"}})

配置允许列表示例: from scripts.allowlist import Allowlist allowlist = Allowlist() allowlist.add("docker") allowlist.add("kubectl") allowlist.remove("rm")

集成到 Claude SDK: from scripts.security_manager import SecurityManager manager = SecurityManager() sdk_options = {"hooks": {"PreToolUse": [manager.pre_tool_hook]}}

默认允许列表包含:文件查看(ls、cat、head、tail、wc、grep、find)、文件操作(cp、mkdir、chmod、touch)、Node.js(npm、node、npx、yarn、pnpm)、Python(python、python3、pip、pip3、poetry)、版本控制(git)、进程管理(ps、lsof、sleep、pkill、kill)、系统信息(pwd、whoami、uname、which、env)、有限网络(curl、wget)。

集成点

  • autonomous-session-manager:在会话期间提供安全。
  • coding-agent:使用钩子安全执行命令。
  • autonomous-loop:确保连续操作中的安全。

参考文档

  • references/ALLOWED-COMMANDS.md:完整允许列表文档。
  • references/SECURITY-MODEL.md:安全架构。
  • references/CUSTOM-RULES.md:自定义规则配置。

脚本

  • scripts/security_manager.py:核心安全管理器。
  • scripts/command_validator.py:命令验证。
  • scripts/allowlist.py:允许列表管理。
  • scripts/sandbox_config.py:沙箱配置。

适用场景 适用于自主编码代理、自动化会话管理、连续循环操作等需要安全执行命令的环境,尤其适合需要防止破坏性命令、实现命令白名单和实时拦截的场合。

限制 资料未提供具体的安装命令、收费信息、平台支持范围、性能指标或效果数据,这些内容暂未提供。