safe-exec

🛡️ LLM命令执行的防注入护盾

🥥24总安装量 6评分人数 4
100% 的用户推荐

专为LLM Agent设计的Shell命令安全包装器,通过密码学随机UUID边界机制防御提示词注入攻击,确保外部不可信数据被安全隔离解析。

S

安全性较高,可在多数场景中优先使用

  • 来自可信组织或认证账号,需要结合权限范围判断
  • ✅ 无任何动态代码执行或 eval/exec 危险操作,仅使用标准 bash 工具
  • ✅ 零网络通信,不收集、不上传任何用户数据或命令输出
  • ✅ 代码完全开源透明(约60行),逻辑简单可完全审计验证
  • ✅ 专用于安全防护的防御性工具,不修改系统、不删除文件、无权限提升风险
  • ⚠️ 需确保 LLM Agent 的 system prompt 正确理解 UUID 边界规则,否则防护效果依赖模型遵循能力

使用说明

核心用法

Safe Exec 是一个轻量级的 Bash 脚本工具,用于包装可能产生不可信输出的 Shell 命令。用户只需在原有命令前添加 safe-exec 前缀即可启用防护,例如 safe-exec curl -s "https://api.example.com/data"。工具会自动生成随机 UUID 作为安全边界标记,将命令输出包裹在 <<<STDOUT:UUID>>>><<<END_STDOUT: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 中明确训练模型识别和遵守这些标记。

safe-exec 内容

文件夹图标scripts文件夹
手动下载zip · 2.7 kB
safe-exec.shtext/x-shellscript
请选择文件