维护网络安全不仅要识别威胁,还要找到有效的方法把威胁从网络上消灭掉。近日,全球最大的电信运营商Level3与思科塔罗斯(Talos)安全团队,联合调查并打掉了一个扫描全球互联网并发动DDoS攻击的僵尸网络--SSH精神病(Psychos)。
发现
2014年9月底, 安全博客“恶意软件必死”报道了一种新型的Linux恶意软件和工具包,用来发动DDoS攻击。四个月后,火眼发现了一起异乎寻常的SSH暴力尝试登陆攻击,使用就是这个工具。不久之后,思科塔罗斯安全团队的蜜罐捕捉到来自同一攻击者的海量认证尝试 (103.41.125.0/23 and 43.255.190.0/23)。
今年3月底,Level 3开始与塔罗斯团队联手对付这个超级僵尸网络。Level 3通过与整个互联网的SSH流量对比,确定了攻击者拥有的流量规模。数据显示,仅此一个攻击者就占到整个互联网SSH流量的35%还多。
发现威胁后,安全机构的职责就是尽可能的把它从网络上剔除。但在实施这样的行为之前,还需要考虑到后果。因为在阻击这些攻击流量的过程中,将影响到许多被利用的无害的主机。为了减少伤及无辜,安全人员对攻击者的工具和基础设施要有更多的了解。
分析
塔罗斯团队的蜜罐数据显示,在SSH暴力登录成功之后,会从两个IP23.234.60.140和23.234.19.202的网页服务器上下载文件。前者在/install目录下提供命名为从8000.rar到8008.rar的文件下载,后者在/i目录下提供命名为从a06到a11的文件下载。
第一台主机的文件是shell脚本,可以从中看出更多攻击手法的细节。尽管以.rar的扩展名命名,但实际上是一个Unix的shell脚本,与去年9月底发现的恶意软件使用相同的混淆处理。
dec(){ echo $@|tr “[a-zA-Z0-9\;-=+*\/]” “[.0-9a-zA-Z\/\/\:]”; }
这句转译字符串没有任何改变。
这个简单的bash函数dec()携带混淆的文本并把字符转译回真正的文本。通过这个函数,可以从8000.rar文件中找到有趣的字符串:
图中最重要的二行代码是_download_url__……和__remote__ ……,前者是可执行程序的地址,后者负责命令控制通信。而各个名字按顺序排列的文件,互相之间唯一的不同就是下载路径和与文件名相匹配的端口号,可用__remote__ 的代码进行改变。
在确定了恶意软件中没有根本结构性的改变之后,Level 3的安全团队将其下载到CentOS 7的虚拟机中以root权限运行,以观察它的运行结果。
在执行从__download_url__ 取回的恶意文件后,肉机立刻开始搜索它的命令控制(C2)主机。恶意文件将8.8.8.8和8.8.8.4作为它的DNS解析,并尝试对配置的主机名进行域名解析。接着,便试图连接IP并解析在__remote__语句中包含的主机名。
在虚拟机中运行的不同版本的恶意软件分别与不同的C2建立连接:
103.240.140.152 (解析自ndns.dsaj2a.org和ns2.hostasa.org)
162.218.112.7 (解析自ndns.dsaj2a1.org)
104.143.5.25 (解析自ndns.dsaj2a1.org和ns1.hostasa.org)
103.240.141.54 (解析自ndns.dsaj2a.com、ndns.hcxiaoao.com和ns3.hostasa.org)
连接建立之后,C2就可以指挥肉机发动SYN洪水攻击。SYN的流量包被设成最小带宽使用,也没有隐瞒本身的来源。从C2接收的攻击指令被确认为与之前的恶意软件使用相同的密钥(BB2FA36AAA9541F0) 进行异或保护。
其他值得注意的通信,包括每过30分钟就会从原始恶意主机23.234.60.140上取回/config.rar。取回这个文件使用的是user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)
config.rar与其他的恶意文件一样,也不是RAR压缩文件。它是一个用128位相同密钥进行异或(XORed)的C2通信文件。通过解码,安全人员发现了一个包含下列名称的配置文件:md5、denyip、filename和rmfile。这些名称与其他已知的木马和恶意软件有关,用来移除和杀死肉机上感染的其他恶意软件,以获得对肉机的充分控制权。解码后的文件内容见:
http://www.level3.com/~/media/files/misc/config.txt
在确认了该恶意软件的运行目的、通信手段和指令源之后,安全人员开始评估它在整个互联网上造成的影响。
在3月底到4月初的二个星期中,安全人员监控到攻击者扫描了大量IP,识别出僵尸网络中的活动主机,并发现C2通信是通过8000至80008和3306的TCP端口进行的。但之前版本的恶意软件使用的通信端口是3502至3508。
在评估完这个僵尸网络的规模、影响和持续时间后,Level 3和塔罗斯小组决定是时候把这个毒瘤从互联网上清除出去了。
行动
4月7日,Level 3把“SSH精神病”互联网上所有的攻击流量放入黑洞,保证其流量再也无法通过Level 3发出,然后行动人员又联系了其他网络运营商,给他们通报威胁情况并请求对方把这些流量永久的从互联网上剔除。
提醒
如果你使用开启了sshd服务的Linux系统,最好确保你的sshd配置文件禁止root登录。这种操作将把ssh精神病拒之门外。此外,如果在非标准端口运行ssh服务的话也会是一个不错的方法。大多数商业扫描器和恶意软件是不会非标准端口的服务的。
最后,密码设置要避免普通密码字典的猜解。下面这个地址是思科塔罗斯小组蜜罐系统捕获的447万多个口令,从中可以看出简单的字母组合和多位数的有规律的字母数字已经无法避免破解。
http://www.level3.com/~/media/files/misc/SSHPsycho_Passwords.xlsx
安全牛评
找到并分析恶意攻击的源头,然后将其从互联网上剔除,需要整个安全社区的联动。ssh精神病被打掉的这起案例,充分展示了安全研究人员与运营商的合作,不失为一个很好的借鉴例子。
原文地址:http://www.aqniu.com/news/7303.html