小龙虾🦞OpenClaw 个人实践 · B-11
安全系列第五篇 · 事故应急处理 · 出事时翻这篇
OpenClaw 出事了怎么办
三种事故的应急处理指南
信息截至 2026 年 4 月 · 出事时直接翻到对应章节 · 适合所有用户
这篇的读者有两种:
一种是平时预习,出事有个底。
一种是出了事,手忙脚乱,搜到了这里。
如果你是后者——先深呼吸,然后直接跳到对应的章节。事故处理,最重要的不是快,是做对顺序。
快速定位:你遇到了哪种情况
→ API 密钥可能泄露了(API 调用突然报错、收到异常费用通知)
→ 装了可疑技能 / 可能中了 AMOS 木马(装了技能后系统变慢、出现陌生程序)
→ Agent 做了不该做的事(误删文件、发出了不该发的消息、操作超出预期)
事故一:API 密钥泄露
典型症状:突然收到 Anthropic / OpenAI 异常消费通知、API 调用报 401 鉴权错误且你没动过密钥、账单突然暴涨
这是 OpenClaw 用户最常遇到的安全事故。原因通常有三个:恶意技能读取了配置文件里的密钥并外传、GitHub 上不小心提交了含密钥的配置文件、或者 Gateway 端口暴露被扫描到。
⚠️ 关键原则:不要等确认,先撤销
只要你觉得密钥可能泄露,立刻撤销,不要等到"确认被盗用了再说"。撤销一个密钥再重新申请,5 分钟的事。等确认被盗用,损失可能已经发生了。
第一步:立刻撤销所有相关密钥(优先于一切)
按这个顺序逐一处理,不要跳过:
① Anthropic Console:console.anthropic.com → Settings → API Keys → Revoke
② OpenAI Platform:platform.openai.com → API Keys → 撤销所有 OpenClaw 用的密钥
③ OpenClaw Gateway Token:
openclaw token:rotate --force
④ 各渠道的 Bot Token:飞书、Telegram、Discord、微信——分别进各平台控制台撤销
⑤ 其他所有 API 密钥:回顾 openclaw.json,把里面所有第三方服务的密钥全部轮换一遍
第二步:找出泄露原因
# 检查 GitHub 有没有意外提交含密钥的文件
git log --all --full-history -- "*.json" "*.env" ".openclaw*"
# 查 openclaw.json 文件权限是否过于宽松
ls -la ~/.openclaw/openclaw.json
# 查看最近安装的技能,排查可疑来源
openclaw skills list
第三步:重新申请密钥,加固配置
在各平台重新生成 API Key,更新进 openclaw.json。这次做两件额外的事:
• 在 Anthropic / OpenAI 控制台设置月度消费上限,超额自动停用,防止密钥泄露导致天量账单
• 确认 openclaw.json 不在任何 git 仓库的追踪范围内(在 .gitignore 里加上这个文件)
事故二:装了可疑技能 / 可能中了木马
典型症状:技能的"前置条件"要求你执行了一段命令或下载了东西、系统变慢、出现陌生进程、发现陌生登录项
ClawHavoc 攻击里,AMOS 木马会窃取浏览器密码、系统钥匙串、SSH 密钥、Telegram 数据和加密货币钱包。被盗的内容会打包发到攻击者服务器,你完全感知不到。
判断要不要进入应急流程的标准很简单:你在安装某个技能的过程中,执行过任何"前置"命令或下载过额外文件,就按这个流程走一遍,不管那个技能看起来有多正规。
第一步:断网,但先不要重启
断开 WiFi 和网线,切断攻击者可能正在进行的数据外传。
不要立刻重启或清除系统——重启会让你失去取证机会。先记录下现在的状态。
# macOS:检查有没有陌生的 LaunchAgents(木马持久化最常用的位置)
ls ~/Library/LaunchAgents/
# 检查异常登录项
osascript -e 'tell application "System Events" to get the name of every login item'
# 查一下 OpenClaw 技能目录有没有陌生文件
ls -la ~/.openclaw/workspace/skills/
第二步:撤销所有 API 密钥(参考事故一流程)
AMOS 专门窃取 ~/.openclaw/credentials/ 里的内容。不管有没有确认感染,假设密钥已经泄露,立刻全部撤销重新申请。
第三步:如果用了加密货币钱包——立刻转移资产
AMOS 会直接盗取助记词和钱包私钥。如果你的钱包曾经在 OpenClaw 所在的机器上使用过,不要犹豫,立刻转移到新地址——已经被盗的私钥无法再变成"安全的"。
第四步:修改重要账号密码
AMOS 偷取浏览器里存的所有密码。优先修改:
• 邮箱(被控制的邮箱可以重置其他所有账号)
• 银行和支付类账号
• SSH 密钥(生成新的密钥对,把旧公钥从所有服务器的 authorized_keys 里删掉)
第五步:卸载可疑技能,恢复系统
openclaw plugins uninstall <技能名>
# 或者直接删除技能目录
rm -rf ~/.openclaw/workspace/skills/<可疑技能名>
删完技能之后:把 LaunchAgents 里发现的陌生条目删掉,用系统自带的"登录项"管理删掉陌生启动程序。如果不确定哪些正常,可以用 Malwarebytes 免费版扫描一遍。
事故三:Agent 做了不该做的事
典型症状:误删了文件、发出了不该发的消息、执行了超出预期的命令、发现 MEMORY.md 里有陌生内容
这类事故不一定有外部攻击,很多时候是配置边界没写清楚,或者被提示词注入影响了。不管原因,处理流程是一样的。
第一步:立刻暂停 Agent
openclaw gateway stop
# 或者直接关闭服务器上的 OpenClaw 进程
先让它停下来,防止正在进行中的任务继续造成更多损害。
第二步:查会话日志,还原发生了什么
# 查最近的会话记录
ls -lt ~/.openclaw/agents/main/sessions/ | head -20
# 查 Gateway 运行日志
openclaw logs --tail 200
找到 Agent 触发了哪个工具调用、是什么触发了它、从哪条消息开始行为异常。这一步是后续处理的基础。
第三步:评估损害范围
按操作类型判断紧急程度
tmutil restore(Time Machine)尝试恢复。 | |
git diff 查看变动,git checkout 回滚。 | |
第四步:检查 MEMORY.md 有没有被篡改
提示词注入攻击的一种变体,是向 MEMORY.md 写入持久化指令——让 Agent 在未来的每次会话里都执行某种恶意行为。
# 查看 MEMORY.md 最近修改时间
ls -la ~/.openclaw/workspace/MEMORY.md
# 直接查看内容,找有没有陌生的指令段落
cat ~/.openclaw/workspace/MEMORY.md
看到任何你没写进去的"规则"、"指令"、"永远要做"之类的段落,直接删掉。
第五步:找到根因,补上边界
Agent 做了不该做的事,根本原因通常是三个之一:
• AGENTS.md 里没写清楚"不能做什么":补充明确的禁止条款
• exec 工具没有白名单:给 exec 配置 allow 列表 + ask: "on-miss"
• 被外部内容注入了指令:检查触发异常的那条消息来源,看有没有隐藏指令
事后:不管哪种事故,都做这几件事
✅ 升级到最新稳定版本:openclaw update && openclaw doctor --fix
✅ 跑一遍完整的健康检查:openclaw doctor
✅ 翻一遍已安装技能,卸载来路不明的
✅ 检查 AGENTS.md 里的禁止条款够不够具体
✅ 确认 exec 命令有白名单且开了 ask: "on-miss"
✅ 在各模型服务商控制台设置月度消费上限
最后一件事
安全事故发生后,最常见的心理是"出了事说明我配置不够好,是我的问题"。
这个想法有一部分是对的,但也要知道:OpenClaw 发展这么快,安全问题是整个生态在共同面对的事,不是只有你的配置有漏洞。三个月里披露了超过 60 个 CVE,不是每个用户都能实时跟上的。
出了事,按这篇处理;处理完,加固配置;然后继续用——这是正确的节奏,不是"一朝被蛇咬"就不用了。
事故处理最重要的不是快,是做对顺序。
撤销先于调查,调查先于恢复,恢复先于加固。
慌乱中跳过任何一步,都会让后续的处理更难。
附:可疑信号速查表
💬 你遇到过哪种情况?是怎么处理的?
评论区说说,帮后来人少走弯路。
夜猫子弦月 | 白天写代码,晚上写文章,偶尔弹古琴
MeowClaw Lab 出品
夜雨聆风