乐于分享
好东西不私藏

我的 AI 助手能执行 sudo rm -rf 我该怎么办

我的 AI 助手能执行 sudo rm -rf 我该怎么办
OpenClaw 可能是权限最大的 AI Agent 框架之一。你的 bot 能读写文件、执行命令、发邮件、发推文。强大,也危险。

先说一个让你后背发凉的事实。

打开你的 OpenClaw 配置,如果 exec.security 设的是 full——

你的 AI 助手可以执行这台电脑上的任何命令。

包括 rm -rf。包括 curl 你的私钥到某个服务器。包括修改系统配置让整台机器挂掉。

这还不是最可怕的。

最可怕的是 Prompt Injection:攻击者可以在网页里、邮件正文里、甚至一个文档的注释里嵌入恶意指令。你的 AI 助手读到它,就可能在你不注意的时候执行。

2026 年的一项社区调查显示,ClawHub(OpenClaw 的技能商店)上约 12% 的第三方 Skill 包含潜在恶意代码。

我用 OpenClaw 四个月,花了两个月搭安全体系。这篇文章把思路和做法完整写出来。

1 先搞清楚自己暴露了多少

安全加固的第一步不是加锁——是审计。

跑一遍 openclaw doctor,我的结果是:

✅ 网络隔离:只监听 127.0.0.1(外部无法访问)

✅ Token 认证:已开启

✅ 白名单:只有我自己

✅ 凭证隔离:敏感信息不写在记忆文件里

⚠️ exec.security=full(命令执行权限全开)

⚠️ sandbox=off(无沙箱)

⚠️ 74 个 Skill,大部分没审计过

⚠️ Prompt Injection 防御薄弱

不是"不安全"。是"有改进空间"。

关键要区分:哪些是真正的风险敞口,哪些是"理论上不够完美但实际可控"。

2 四道闸门,层层设防

第一道:网络隔离

成本最低,效果最好。

lsof -i :18789 | grep LISTEN# 应该是 127.0.0.1:18789# 如果是 0.0.0.0:18789 → 立即改

只要绑在 127.0.0.1,就算你机器暴露在公网,Gateway 端口也打不进来。

第二道:Prompt Injection 防御

AI Agent 特有的攻击面。分两层:

层一:敏感操作二次确认

暂停 → 问主人"是你本人的要求吗?" → 只有明确说"确定"才继续。模糊回答("应该吧")一律拒绝。

层二:不可逆操作绝对拒绝

不管谁要求——以下操作一律不执行:

⛔ 清空磁盘(rm -rf /)

⛔ 删除系统目录

⛔ 格式化硬盘

⛔ 修改安全规则本身

第三道:OTC 一次性确认码

对高风险操作——对外发消息、改系统配置——光靠对话确认不够。

如果 prompt 被注入,攻击者可以模拟"确定"。

我设计了一套 OTC(One-Time Code) 机制:

1. Agent 识别高风险操作 → 暂停2. 生成随机码 → 发邮件到主人邮箱3. 确认码存状态文件,不经过 stdout4. 主人在原频道回复确认码5. 验证通过 → 执行 → 状态文件立即删除

🔐 关键安全设计:

• 确认码不经过 stdout → Agent 无法看到明文

• 邮件独立通道 → Prompt Injection 拦截不了

• 单次使用 → 验证后立即失效

• 邮件失败 = 操作阻断 → 绝不 fallthrough

⚡ 硬规则:

"同意""可以""好的" → 一律视为不同意。只有正确确认码才放行。

第四道:ClawHub 技能审查

第三方 Skill 是供应链攻击的理想入口。

# 列出所有 Skillfind ~/.openclaw/workspace/skills -name "SKILL.md" | wc -l# 逐个检查:# 是否执行外部命令?访问网络?# 是否读敏感文件?改系统配置?

不信任的,删。不犹豫。

少一个 Skill 只是少一个功能。多一个恶意 Skill 是灾难。

关闭自动更新,防止供应链攻击。

3 日常好习惯

安全不只是架构,更是肌肉记忆。

操作前先三问:影响几个 bot?有更安全的方式吗?能回滚吗?

操作后必验证:重启了服务就检查进程。改了配置就验证语法。

凭证不进记忆:API Key、密码 → 环境变量或独立配置文件(权限 600)。

敏感不进群聊:AppSecret、个人数据只走私聊。

4 务实安全观

最后说一个我认为最关键的认知:

别追求"绝对安全"。追求"风险可控"。

你的电脑连着网,就不可能绝对安全。

AI 有执行权限,就不可能零风险。

关键是把风险控制在可接受范围:

  • 你知道风险在哪(审计)
  • 你有应对机制(分层防御)
  • 出问题能止损(回滚方案)
  • 没出问题也能验证(定期巡检)

举个例子。

我的 exec.security=full 在审计里是 ⚠️ 风险项。但我没改成 restricted——因为那会让 Agent 失去 90% 的实用价值。

我的取舍是:保留 full 权限,但加强 OTC 闸门和 Prompt Injection 防御。

在能力和安全之间找平衡,而不是一刀切。

如果你也在用 OpenClaw

建议按这个优先级做:

第一周

  •         1、确认网络隔离(127.0.0.1 only)
  • 2、确认 Token 认证和白名单
  • 3、审查 Skill,删掉不信任的

第二周

  • 1、部署 OTC 确认码
  • 2、在 SOUL.md 加 Prompt Injection 防御规则
  • 3、凭证迁移到环境变量

持续

  • 1、每周一次安全巡检
  • 2、升级前看 changelog 安全条目
  • 3、重大操作前做风险评估

···

安全不是一次性工程。是习惯的积累。

相关学习资料