近日,乐视安全中心接获用户服务器高负载告警,经安全人员协查分析,发现是通过redis漏洞传播的比特币挖矿木马-ddg,大量消耗服务器资源,难以清除并具有内网扩散功能。本文为乐视安全中心对木马具体原理功能及传播方式进行的分析,以及给出的解决方案。 0x01 木马行为[url=http://www.secpulse.com/wp-content/uploads/2017/03/Ddg1.jpg] 登陆被感染服务器,利用top查看CPU使用率,找到CPU消耗进程AnXqV 通过kill杀死AnXqV进程并进行删除,约15分种后系统告警,AnXqV再次创建并启动 0x02 木马功能ddg.222为golang编写无明显函数符号和字符串特征 [url=http://www.secpulse.com/wp-content/uploads/2017/03/Ddg3.jpg] 根据编译版本编写辅助脚本还原golang函数符号 摘要出ddg主要使用到的功能库shirou_gopsutil,VividCortex_godaemon,boltdb_bolt,garyburd_redigo,golang_protobuf_proto,hashicorp_yamux,moul_http2curl,parnurzeal_gorequest,satori_go_2euuid
分别具有启动后台守护进程,监控进程和系统信息(Cpu和内存,网络,机器码,Mac地址等),实现redis客户端操作key/value数据库操作,开启RPC服务远程调用,单TCP多路复用等功能
分析ddg执行执行过程,首先调用ddg_aaredis__Server_genLanAddress接口获取局域网地址
调用ddg_aaredis__Server_worker开启扫描,在内网子网掩码内循环调用分别对每个ip测试了ddg_aaredis__Server_testRedis函数 ddg_aaredis__Server_testRedis函数主要用于测试redis漏洞,通过测试是否可以未授权访问redis并写入公钥登陆来进行扩散 [url=http://www.secpulse.com/wp-content/uploads/2017/03/Ddg7.jpg] 梳理木马功能: 1、对可以未授权访问redis的服务器写入公钥登录,定时下载并执行脚本; 2、脚本下载AnXqV和ddg文件并运行,AnXqV进行挖矿,ddg进行系统监控远程调用并内网传播。 0x03 清理方案根据以上原理对木马进行清除,由于不同版本木马的写入文件名不同,需对照各自木马脚本下载的文件路径和文件名执行以下操作: - 1、设置redis授权访问。
- 2、阻断服务器通讯。(如iptables -A INPUT -s xmr.crypto-pool.fr -j DROP and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP)
- 3、清除定时器任务。(如systemctl stop crond)
- 4、删除木马和未知公钥文件。(如/tmp/ddg.222,/tmp/AnXqV.yam,/tmp/AnXqV,/tmp/AnXqV.noaes等及 ~/.ssh/中未知授权)
- 5、终止木马进程。(如pkill AnXqV,pkill ddg.222)
0x04 总结通过对此次木马扩散事件的分析和处理,为减少和杜绝此类事件的再次发生,提高安全预警能力,在此提醒业界同仁加强关注日常高带宽高资源服务器的运维安全细节: - 1、对各类访问认证进行严格的授权
- 2、定期排查和实时抽查服务器状态,异常流量及cpu消耗需及时上报分析并与专业安全团队合作协查
- 3、关注敏感安全事件,及时修复高危漏洞
|