一次REDIS引发的Kworkerd+sustse恶意入侵LINUX挖矿事件

1,856 阅读4分钟

前言

根据网上的文章,并结合自身服务器情况,得知此次入侵是由于redis端口对外开放,且空密码,导致了Kworkerd,sustse恶意入侵LINUX挖矿,本来想着调试方便(都是我的锅),现在唯有吸取教训。Let's start!

分析问题

事情开始于一个平凡而又伟大下午的日常编码中,忽然发现某服务数据库连接拒绝,遂上服务器上查看mysql服务状态,竟然是关闭状态,当我开启服务后不久又自动关闭了,也就是从这个时候开始,所有的服务连接请求阻塞变慢,页面无法访问或加载超时,开始排查问题(当时慌得一比).

  1. 输入TOP -c查看当前服务器情况,奇怪的是CPU跑满99%左右,但却无占用CPU高的进程,看了好久的Linux 系统状况后,发现时而有sustsekworkerd等陌生进程字眼,马不停蹄地搜索一下。
    服务器情况
  2. 发现了此《挖矿分析》文章,跟距思路,查找到/var/tmp目录,并清理这几个病毒脚本
    恶意脚本目录
  3. 过段时间重新还有脚本,且看到定时任务中有未知文件获取,文件地址为http://192.99.142.246:8220/mr.sh,输入crontab -e修改删除此脚本,但定时任务的请求仍然会进行写入
  4. 续输入netstat -anp查看当前网络连接时,发现有多个异常连接,与定时任务的地址相同,试着输入ps aux|grep 8220找到并kill掉进程,一会后还是会写入进程,看来有多处脚本写入定时任务
    端口连接
  5. 最后找到此kworkerd分析文章,想通过上面的方案清除代码,发现不通用,无法彻底清除,且文章上的恶意脚本大概是今年年中的了,现在脚本也更新换代了,还得靠自己,分析告一段落,要开始动真格解决问题了。

解决方案

虽然一时间无法彻底根治,脚本无限刷,文件又一直请求,但日子总要过下去不是,于是一边提交了工单给阿里云,一边分析当前的恶意脚本。

阿里云建议

根据工程师的建议做了一份快照备份,以备将来不得以的情况下回滚备份.

  1. 重置一下系统,创建快照,将快照创建成一个按量付费的云盘,进行数据拷贝
  2. 安装阿里云的一些安全软件,进行排查防护
  3. 如果有恶意刷站的,上传一些恶意脚本的,看一下访问日志,可以通过安全组禁止掉,或者了解一下web应用防火墙可以有效的防止有人刷站

清除恶意脚本

而后通过分析http://192.99.142.246:8220/mr.shSHELL脚本,发现脚本会不断删除并新增进程与脚本,通过此记录下脚本内容,将'删除脚本'一次性执行,发现执行成功且再无恶意进程.

chattr +i /usr/bin/wget
chmod 700 /usr/bin/wget
chattr +i /usr/bin/curl
chmod 700 /usr/bin/curl
/etc/init.d/iptables stop
service iptables stop
SuSEfirewall2 stop
reSuSEfirewall2 stop
pkill -f sysxlj
pkill -f jourxlv
pkill -f sustes
rm -rf /etc/ld.so.preload
rm -rf /usr/lib/void.so
rm -rf /etc/voidonce.sh
rm -rf /usr/local/lib/libjdk.so
rm -rf /usr/local/lib/libntp.so
ps aux|grep "I2NvZGluZzogdXRmLTg"|grep -v grep|awk '{print $2}'|xargs kill -9
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
iptables -I OUTPUT -s 167.99.166.61 -j DROP
iptables -I INPUT -s 167.99.166.61 -j DROP
iptables -I OUTPUT -p tcp -m string --string "pastebin" --algo bm -j DROP
...

相关防护

解决问题后发现基本没有什么异常情况了,真正解决问题还要做一些安全防护相关的工作:

后记

这实在是一个不起眼的疏忽,却也是一次致命的错误,谁都不能想到我第一次接触虚拟货币竟是因为REDIS端口入侵,网络安全重要如斯,有理有据,令人信服。

共勉

参考链接

  1. 记一次挖矿病毒分析
  2. Kworkerd恶意挖矿分析
  3. Linux操作系统加固
  4. MySQL服务安全加固
  5. PHP环境安全加固
  6. 恶意脚本备份
  7. 删除脚本命令