专为LLM Agent设计的Shell命令安全包装器,通过密码学随机UUID边界机制防御提示词注入攻击,确保外部不可信数据被安全隔离解析。
说明:
## 核心用法
Safe Exec 是一个轻量级的 Bash 脚本工具,用于包装可能产生不可信输出的 Shell 命令。用户只需在原有命令前添加 `safe-exec` 前缀即可启用防护,例如 `safe-exec curl -s “https://api.example.com/data”`。工具会自动生成随机 UUID 作为安全边界标记,将命令输出包裹在 `<<>>>` 和 `<<>>>` 等标记之间,并在输出前插入安全规则说明,指导 LLM 正确识别可信与不可信内容。
## 显著优点
**专精的防护机制**:针对 LLM Agent 场景中最危险的提示词注入攻击设计,UUID 的 2^122 种可能使攻击者无法伪造边界标记,从根本上阻断注入路径。
**零侵入集成**:无需修改现有命令或脚本,仅需添加前缀即可启用;输出格式清晰,便于 LLM 解析和遵循安全规则。
**极简依赖**:仅依赖系统标准工具(bash、uuidgen/cat/printf),无第三方库,兼容性强,易于部署到各类 Unix-like 环境。
**透明可审计**:代码仅约 60 行,逻辑完全公开,安全研究人员和开发者可快速验证其安全性。
## 潜在缺点与局限性
**认知门槛**:用户和 LLM 都需要理解 UUID 边界机制才能发挥防护效果,若 Agent 的 system prompt 未明确说明规则,防护可能失效。
**仅保护解析阶段**:工具不阻止命令本身的执行风险(如 `rm -rf /`),仅确保输出被正确标记为不可信数据,命令注入仍需通过其他手段防范。
**无内置持久化**:每次执行生成新 UUID,虽增强安全性,但也意味着无法建立跨会话的持久化信任边界。
**Bash 环境依赖**:Windows 原生环境需借助 WSL 或 Git Bash 等工具才能使用。
## 适合的目标群体
– **LLM Agent 开发者**:构建自主执行 Shell 命令的 AI 系统时,作为标准安全基础设施集成
– **DevOps/SRE 工程师**:在自动化脚本中安全地调用外部 API 或查询云服务 CLI
– **安全研究人员**:研究 LLM 提示词注入防御机制的参考实现
– **AI 应用团队**:需要处理用户生成内容或第三方数据的 RAG、代码分析等场景
## 使用风险
**性能开销**:UUID 生成和边界包装引入微小延迟,高频调用场景需评估影响;流式大输出时边界标记增加约 200 字节开销。
**误用风险**:用户可能错误地将 `safe-exec` 用于完全可信的本地命令,造成不必要的处理;或在需要时忘记使用,留下防护缺口。
**依赖可用性**:若目标系统缺少 `uuidgen` 且 `/proc/sys/kernel/random/uuid` 不可访问,会回退到 Python uuid4,极端受限环境可能失败。
**Agent 兼容性**:部分 LLM 可能对大量边界标记产生困惑,需在 system prompt 中明确训练模型识别和遵守这些标记。









