惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
量子位
V
Visual Studio Blog
博客园 - Franky
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
罗磊的独立博客
小众软件
小众软件
V
V2EX
GbyAI
GbyAI
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
月光博客
月光博客
Recent Announcements
Recent Announcements
雷峰网
雷峰网
F
Fortinet All Blogs
M
MIT News - Artificial intelligence

Qiwi说说

爱是注意力 - 子夜集 评论通知掉线 & 更新频率 - 子夜集 EP00. 何谓市场,谁定价格?| 🌈 Crypto 101 - 子夜集 系列博客:Leo 的交易之路 - 子夜集 我的出柜 - 子夜集 7 月阅读推荐 - 子夜集 让爱回来 - 子夜集 密码、键盘与背单词 - 子夜集 新域名迁移 -Leo 的小屋 2026.07.03 博客样式丢失通知 -Leo 的小屋 向死而生 -Leo 的小屋 向死而生 -Leo 的小屋 Louie Wang:来之不易的教训 -蓝莓奥利奥 Blue Berry Oreo Louie Wang:来之不易的教训 -Leo 的小屋 浅谈十万字 -蓝莓奥利奥 Blue Berry Oreo 浅谈十万字 -Leo 的小屋 奥利奥工坊 -蓝莓奥利奥 Blue Berry Oreo 奥利奥工坊 -Leo 的小屋 为他立传 -Qiwi说说 为他立传 -Qiwi说说 为他立传 -Leo 的小屋 浅谈自由写作 浅谈自由写作 -Qiwi说说 浅谈自由写作 -Leo 的小屋 喜欢一个人 喜欢一个人 -Qiwi说说 喜欢一个人 -Leo 的小屋 海兰游纪行 海兰游纪行 -Qiwi说说 海兰游纪行 -Leo 的小屋
服务器被攻击后续
祁闵 MaxQi · 2026-03-22 · via Qiwi说说

昨天刚消杀完病毒,今天服务器又出问题了。

发现异常

早上登录服务器,发现系统又开始卡顿,服务器占用100%。

不会又中毒了吧?赶紧打开终端查看,执行 top 命令后,画面让我有些困惑。

top - 10:04:54 up 13:33,  2 users,  load average: 9.36, 9.66, 9.77
Tasks: 12281 total,   9 running, 192 sleeping,   0 stopped, 12080 zombie
%Cpu(s): 50.5 us, 49.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

12080 个僵尸进程,系统负载飙到 9.7,CPU 直接拉满了。

但是这一次和昨天。但这次和昨天不太一样——没有看到明显的恶意进程疯狂占用 CPU,只有一个 Docker 容器和 Next Server 在运行,但内存占用很高。

我一度以为是内存溢出或者应用本身的问题,但继续往下看进程列表,果然又看到了熟悉的身影。

30316 1001  20  0  1616  256  204 R  11.9  0.0  0:00.89 strings
30317 1001  20  0  1612  400  340 R  11.9  0.0  0:01.33 grep xmrig
30391 1001  20  0  1624  384  324 D   4.5  0.0  0:00.03 pkill

又是 1001 用户,又是 grep xmrig,这不就是昨天的病毒吗?

定位感染源

在 AI 的帮助下,我开始逐步排查。首先检查了 Docker 容器状态:

docker stats --no-stream

结果一目了然:

e5c23165954e   1Panel-umami-yQto   173.22%   ...   12157

Umami 容器 CPU 占用 173%,进程数 12157 个。一个正常的 Node.js 应用(umami)应该只有几个到十几个进程,但这个容器里居然有 12157 个进程,CPU 占用 173%。病毒藏在 umami 容器里!

原来昨天我只是删除了宿主机上的恶意进程,但病毒的源头——被感染的 Umami 容器——还在运行。它就像一个"毒瘤",不断向外释放恶意进程,导致系统反复中毒。

彻底清理

这次也不管数据了,直接断舍离(当然在此之前我已经备份了MySQL数据库了)。

1. 停止并删除被感染的容器

docker stop e5c23165954e
docker rm e5c23165954e

2. 杀死所有残留的恶意进程

pkill -9 -f "strings"
pkill -9 -f "xmrig"
pkill -9 -f "kinsing"

3. 删除 Umami 相关的所有数据和镜像

rm -rf /opt/1panel/apps/umami
docker rmi ghcr.io/umami-software/umami:mysql-v2.19.0

清理完成后,再次查看系统状态:

top - 10:09:36 up 13:38,  2 users,  load average: 0.47, 5.43, 8.13
Tasks: 179 total,   1 running, 178 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

僵尸进程清零,负载恢复正常,CPU 空闲 100%。Umami服务下次再重建吧。

复盘与反思

这次事件反映了几件事:

1. 容器逃逸的威胁
病毒通过 Umami 容器的漏洞入侵,然后在容器内疯狂创建进程。由于我没有给容器设置资源限制,病毒几乎可以无限制地消耗系统资源。

2. 清理要彻底
昨天只清理了宿主机上的进程,却没有检查 Docker 容器,导致病毒源头依然存在。

3. Umami v2.19.0 可能存在已知漏洞
这个版本发布于 7 个月前,很可能已经有公开的 CVE 漏洞被攻击者利用。我应该升级,或者最起码检查一下安全公告。

4. 防护措施不到位

  • 容器没有设置 CPU、内存、进程数限制
  • 没有及时更新镜像版本
  • 端口暴露过多,缺少防火墙规则

后续加固

为了避免再次中毒,我决定:

  1. 不再使用 Umami v2.19.0,更新到最新的v3版本
  2. 给所有 Docker 容器加上资源限制
  3. 定期检查容器进程数docker stats 应该成为日常巡检项目

网络安全这事儿,真的不能掉以轻心。

好在有 AI 辅助排查,不然光靠我自己,估计得折腾一整天。

希望这次是最后一次了。🤞