V × OPENCLAW / INCIDENT 0718
SECURITY INCIDENT · DAILY REPORT2026-07-18 · Asia/Shanghai
A real root compromise · A clean rebuild

被攻破的一天,
也是系统长大的一天。

一次真实的 SSH Root compromise,让 VM-0-4-ubuntu 永久失去信任。系统从发现异常、停止恶意 workload,一路走到深夜迁入干净主机——不是一次漂亮的“修复”,而是一场付出代价的成年礼。

CONFIRMED Root compromiseCONTAINED 恶意负载已停止MIGRATED 干净主机运行正常STILL OPEN 完整安全闭环未验证
今天真正发生的事

17 点前后,一次看似普通的慢任务排查,揭开了已持续十多个小时的 root 入侵。止血成功,但我们拒绝把“进程停了”说成“安全恢复了”:root compromise 之后,旧机不再可信。

6.3GiB
恶意进程内存占用/go/cx 3000,root 身份运行
≈106万
公网 IPv4 行数/go/ali.txt,伴随大量 SSH/22 建连
≥1,156
入侵前失败 SSH攻击不是偶然敲门,而是持续尝试
105
OpenClaw 事件核查09:45–09:55,排除其为来源
Incident timeline

从午夜突破,到深夜迁移

时间线不是为了制造惊悚,而是为了把攻击、发现、处置与验证放回准确顺序。

00:01:41
突破

密码登录 ubuntu

攻击者从公网 SSH 入口登录 ubuntu,并借助无限免密 sudo 获得 root。事前至少已有 1,156 次失败 SSH。

00:01:45–56
扩权

清痕与建立落点

尝试创建 admin、删除 root history,并写入 /usr/bin/lookme。根权限边界已经失守。

09:51:23–35
驻留

恶意负载持久化

修改 root 密码,部署 cx、systemd 服务与每分钟执行的 root cron。

17:00 前后
发现

慢任务排查撞见异常

VM-0-4-ubuntu 上的 root 进程 /go/cx 3000 占用约 6.3GiB,持续向大量公网 SSH/22 建连;/go/ali.txt 约有 106 万行公网 IPv4。

17:07 状态截面
止血

恶意 workload 已停止

只读核查显示恶意服务 inactive / masked、ubuntu 已锁定;内存由 9.6GiB 降至约 3GiB。17:10,事件被正式确认并记录。它意味着 contained,不意味着旧机重新可信。

深夜 → 00:55
迁移

切到干净的新主机

OpenClaw 迁至 VM-8-2-ubuntu。00:55 检查:可用内存 28GiB、swap 0、load 0.35 / 0.36 / 0.25,运行正常。

System fracture scan

不是一个漏洞,是一条完整条件链

攻击者成功,不来自单点魔法,而来自多个本应互相兜底的边界同时缺席。

Attack path · confirmed

公网入口一路通到 root

  • 公网 SSH 暴露,且允许密码登录
  • ubuntu 账户可无限免密 sudo
  • 无防火墙 / Fail2ban 拦截爆破
  • 无及时告警,驻留直到慢任务排查才被发现
×
Source review · cleared

OpenClaw / V Codex 不是来源

  • 核查 09:45–09:55 共 105 条 OpenClaw 事件
  • 攻击者首次获得 root 发生在 00:01
  • 09:51 的持久化动作与事件链不吻合
  • 结论仅排除来源,不代表 OpenClaw 侧不存在独立风险
边界声明

归因已排除,不等于安全免检

本次 root 入侵不是 OpenClaw / V Codex 发起。 但部分群聊开放策略、host runtime 与 sandbox 关闭形成另一组独立攻击面,仍需单独收敛,不能借“不是来源”跳过治理。

Before / after

止血不是终点,迁移才是信任重建的开始

迁移后的资源与运行状态已验证;凭据轮换和所有加固是否完成,仍保持明确未知。

OLD HOST · UNTRUSTED

VM-0-4-ubuntu

恶意服务已 inactive / masked,ubuntu 已锁定,workload 已停止,内存从 9.6GiB 降到约 3GiB。但 root 边界曾被完全突破,旧机不能靠“看起来安静”恢复信任。

CONTAINED止血状态
RETIRED TRUST信任状态
NEW HOST · CLEAN MIGRATION

VM-8-2-ubuntu

8 核 AMD EPYC 9754、30GiB 内存、374GB 磁盘。00:55 可用内存 28GiB、swap 0、load 0.35 / 0.36 / 0.25,OpenClaw 运行正常。

28GiB可用内存
0.351 分钟 load
The rest of the day

危机之外,系统仍在向前

这一天不是只有入侵。重要修复、产品表达与运营总结仍然完成,但不抢走事故主线。

01 / SAME-DAY WIN

GPT-5.6 稳定性修复

reserveTokens / Floor 调到 50,000,compaction timeout 360s,Azure timeout 300s,并收束 session active model compact。

02 / SAME-DAY WIN

Self-Evolving Agent Deck

V Self-Evolving Agent 五页 Deck 获得“超预期”评价,复杂叙事被压缩成清晰表达。

03 / SAME-DAY WIN

OpenClaw 版本对齐

完成 Feishu 卡片补丁检查,并与 OpenClaw 2026.7.1 版本对齐;GPT-5.6 thinking 全局设为 medium。

04 / SAME-DAY WIN

业务与复盘交付

V Scale OS report 上线,同时完成月度总结文档与米奥每日使用总结。

Operational scale

高吞吐,也放大了可靠性债务

量级解释了为什么小概率问题会变成用户可感知事件,也解释了为什么回执与告警必须系统化。

779
Sessions touched全天会话覆盖
875
用户消息真实需求输入
2,118
Assistant 消息响应与任务推进
943
Exec 调用另有 tool errors 120
1,056
Incident / risk signals异常信号需要更强聚合与告警
4 次
用户可感知交付缺失后台完成投递缺少强制回执
Still open

不把迁移写成“大功告成”

下面是仍需完成或验证的安全与可靠性清单;保持 open,本身就是事故报告应有的诚实。

P0

完成凭据与信任边界重建

凭据轮换及全部安全加固尚未在本报告中验证,不能假定已经完成。

P0

收紧 SSH 与提权链

公网 SSH、密码登录、无限免密 sudo、无防火墙 / Fail2ban / 告警共同构成完整条件链,必须逐层拆断。

P1

补强独立攻击面

部分 OpenClaw 群聊开放策略 + host runtime + sandbox 关闭,是与本次入侵来源判断分开的独立风险。

P1

给后台交付强制回执

当天发生 4 次用户可感知的交付缺失;任务完成与用户收到结果之间仍缺强制确认。

P2

统一 lark-cli 版本

版本不一致会扩大排障噪音,也会让补丁与行为验证失去统一基线。

这一天留下的原则

停止恶意进程,只是止血;
重建可信边界,才是恢复。

Root 被攻破后,不在旧机上寻找心理安慰。
“已确认 / 已控制 / 仍开放”必须分开表达。
可观测性、最小权限与最终回执,不是优化项,是生产底线。