跳到主要内容

执行工具的安全分层

执行工具的错误代价为何特殊?​

  • 风险: 误删的文件无法恢复,错误的系统命令可能导致服务中断,不当的 API 调用可能产生真实的财务损失;
  • 设计目标: 在能力开放和安全约束之间取得微妙的平衡;
  • 总体思路: 安全不应依赖单一机制,而应构建多层防护体系;

第一层输入验证要检查什么?​

  • 路径遍历: 例如 ../../etc/passwd——攻击者通过在路径中加入 ../ 使工具跳出指定目录,访问本不应触及的系统文件;
  • 命令注入: 例如用分号或管道符拼接额外的命令;
  • 格式校验: API 参数的数据类型和格式是否正确;
  • 执行策略: 快速失败——发现异常输入时立即拒绝,不尝试“智能”修正;

权限控制如何落实?​

  • 文件操作: 限制为只能访问特定的工作目录;
  • 命令执行: 维护一份禁止命令的黑名单(如 rm -rf /、dd if=/dev/zero);
  • 外部 API: 检查配额和速率限制;
  • 部署差异: 不同的部署场景可以通过配置文件定制权限策略;

黑名单的局限是什么?​

  • 定位: 只是最基础的防护层,不应作为唯一手段;
  • 弱点: 攻击者可以通过变形命令绕过简单的字符串匹配;
  • 更健壮的方案: 结合语义解析,理解命令的实际意图而非仅匹配表面形式,详见第五章;
  • 后续层次: 输入验证与权限控制之外,还需要独立的审查机制,见 提议者-审核者机制与 Sidecar 机制;