有大数据人员反馈测试服务器操作特别慢,所以登录相应服务器,使用top命令查看发现以下内容

从上面内容可以看到,这两个进程几乎跑满了服务器的CPU

然后查看这两个进程的命令所在的位置,发现在/tmp目录下有几个文件
networkservice sysguard sysupdate sysupdates update.sh config.json

由此可以得出是中了DDG挖矿病毒

背景概述

近日,深信服安全团队捕获一枚Linux、windows双平台的挖矿病毒样本,通过安全人员分析确认,该木马是通过redis漏洞传播的挖矿木马DDG的最新变种,使用当前最新的go语言1.10编译使用了大量的基础库文件,该木马会大量消耗服务器资源,难以清除并具有内网扩散功能。

DDG挖矿病毒是一款在Linux系统下运行的恶意挖矿病毒,该病毒从去年一直活跃在现在,已经挖取了价值一千多万人民币的虚拟币货币,此病毒样本在一年左右的时间,已开发出了DDG.3012/DDG3013/DDG3020多个变种版本。

首先了解一下以上几个文件的作用
1> networkservice:漏洞检测模块,针对Redis、MSSQL、ThinkPHP、WebLogic等软件漏洞和系统漏洞扫描并入侵其他主机
2> sysguard:根据获取到的系统版本下载针对性Payload执行,包含CC通信模块,用于监控并保证病毒的正常运行及更新
3> sysupdate:Xmrige挖矿程序主体
4> sysupdates:Xmrige挖矿程序主体备份
5> update.sh:本脚本文件

其中update.sh这个脚本文件主要做了以下几件事(不是脚本顺序):
1. 下载病毒模块
2. 再kill_miner_pproc函数中清除其他挖矿病毒
3. 定时任务存活
4. 为文件添加chattr锁定(有些没有)
5. 修改IPTABLES
6. 清除日志
7. 关闭SElinux
8. 添加病毒作者自己的公钥,以便于无密登录
9. 清理缓存
10. 移动命令
11. 删除邮件信息

1.当前系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

2.解决方法,这里直接使用脚本的方式来清理掉
注:在/etc/下面并且对文件进行了锁定需要使用chattr解除锁定再删除,这里可能是因为病毒脚本没权限执行失败了,所以/etc/下面没有下面的文件,如果有,则按照以下命令操作
[root@~] chattr -i /etc/sysupdate

因为这里是内网的服务器,默认是没有设置防火墙的。
如果设置了防火墙可以通过病毒脚本清理相应的防火墙规则
[root@ ~]# cat rm_ddg.sh
#!/bin/bash
SName=sysupdate
NName=networkservice
SPID=`ps -ef | grep ‘sysupdate’ | grep -v grep | awk ‘{print $2}’`
NPID=`ps -ef | grep ‘networkservice’ | grep -v grep | awk ‘{print $2}’`
echo  $SPID
echo  $NPID
kill -9 $SPID
if [[ $? == 0 ]]; then
echo “sysupdate异常 已经杀死 ”
fi
kill -9 $NPID
if [[ $? == 0 ]]; then
echo “networkservice异常 已经杀死 ”
fi
crontab -r > /dev/null
rm -rf /tmp/config.json
rm -rf /tmp/networkservice
rm -rf /tmp/update.sh
rm -rf /tmp/sysupdate*
rm -rf /tmp/sysguard

运行完清除脚本后,通过重启服务器断开所有连接。

清理完成后,修改服务器密码,如果是集群状态需要重新生成密钥,并在此传输到相应机器上
ssh-keygen
ssh-copy-id root@node

到此,病毒清除完成。

第二天大数据开发人员执行日常定时脚本后,发现病毒再次出现,说明可以排除redis的问题,再次排除查看,发现脚本进程是由yarn用户执行的,所以前面的病毒脚本有一些东西没有执行,因为没权限(上面粗心没看到)。

由此可以得知,是hadoop的yarn资源管理系统导致的

病毒背景

5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击案例,其中就包含利用该问题进行挖矿,我们针对其中一个案例进行分析并提供响应的安全建议和解决方案。

漏洞说明

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,通过YARN来管理资源。简单的说,用户可以向YARN提交特定应用程序进行执行,其中就允许执行相关包含系统命令。
YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何黑客则就均可利用其进行远程命令执行,从而进行挖矿等行为。

攻击步骤

1.清理相关的进程、文件和crontab任务
2.判断并下载挖矿程序,同时校验MD5值,除了黑客自己控制的服务器,还利用https://transfer.sh提供备用下载,多种方式保障
3.增加脚本下载执行任务添加到crontab里

安全建议
清理病毒

1.使用top查看进程,kill掉异常进程

2.检查/tmp和/var/tmp目录,删除java、ppc、w.conf等异常文件

3.检查crontab任务列表,删除异常任务

4.排查YARN日志,确认异常的application,删除处理

 

安全加固

1.通过iptables或者安全组配置访问策略,限制对8088等端口的访问

2.如无必要,不要将接口开放在公网,改为本地或者内网调用

3.升级Hadoop到2.x版本以上,并启用Kerberos认证功能,禁止匿名访问

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注