物联网Mirai攻击背景介绍

北京飞利信电子技术有限公司
于洪
20161021网络瘫痪DynDDoSDynDDoSIP(UDP/DNSIPIP)IOT,攻击活动从上午(美国东部时间)开始,直到下午才得以缓解,黑客发动了三次大规模攻击,但是第三次攻击被缓解未对网络访问造成明显影响。此次攻击的重要攻击...

今年20161021日,美国东海岸地区遭受大面积网络瘫痪,其原因为美国域名解析服务提供商Dyn公司当天受到强力的DDoS攻击所致。Dyn公司称此次DDoS攻击涉及千万级别的IP地址(攻击中UDP/DNS攻击源IP几乎皆为伪造IP,因此此数量不代表僵尸数量),其中部分重要的攻击来源于IOT设备,攻击活动从上午7:00(美国东部时间)开始,直到下午1:00才得以缓解,黑客发动了三次大规模攻击,但是第三次攻击被缓解未对网络访问造成明显影响。此次攻击的重要攻击源被确认为一个叫Mirai的僵尸网络。

其实早在2016930日,一个名为Anna-senpai(安娜前辈)的黑客在hackforums论坛公布Mirai源代码,借此嘲笑之前逆向分析人员的错误。目前任何人都可以在Github上下载Mirai的全部代码,下载地址为:

https://github.com/jgamblin/Mirai-Source-Code。据权威安全机构研究发现,Mirai僵尸网络遍布全球160个国家,有至少60万台IOT设备感染,遗憾的是,就算知道了源代码的信息和攻击的手段,目前依然没有有效的防止Mirai继续扩散的手段。

到目前为止,Mirai的代码被fork1900多次,可以预期基于Mirai的变种僵尸网络会在不久的将来再次卷土重来。

1.1. 飞利信安全实验室针对Mirai的理解与分析

飞利信公司认为正是由于Mirai的开源,可以让我们一睹正在肆虐的僵尸网络的全部细节。Mirai的代码树如下图所示:

Mirai的代码从功能角度划分,主要把包括BOT程序,C&CCommand and Control)服务器,LoaderscanListen四个模块。

BOT程序需要运行在目标IoT设备上,主要做两件事,一件是扫描网络中其他可感染的IoT设备,另外一件就是接收从C&C发来的攻击指令并发起针对目标的攻击。其代码在mirai/bot目录中,用C语言开发。

C&C服务器,运行在黑客的服务器上,主要负责管理和控制这些已经受控的IoT设备;其代码在mirai/cnc目录下,用googleGo语言开发。

scanListen接收受IoT设备发来的探测报告,报告里记录的是被破解了用户名和口令的IoT设备;其代码在mirai/tools/scanListen.go,也是用go语言开发。

Loader模块会读取这些信息,逐个登陆并上传IoT程序,达到感染目标设备的目的;其代码位于如loader/src目录下。

1.2. 飞利信安全实验室分解介绍Mirai的四个持续过程与现象

一般来说,僵尸网络的生命周期可以分为探测过程、感染过程、加入过程、受控攻击过程。因此对Mirai的分析也可以从这四个过程来展开。另外值得一提的是,这四个过程会一直循环往复,新感染的主机会继续开展新的探测,让更多的设备感染并加入Mirai网络。我们通过一个示意图来简要说明上面的四个过程。


1.2.1. 第一步攻击前的准备---探测过程

当黑客把一台运行Mirai BOT程序的设备接入互联网,Mirai就像生物体内的病毒细胞一样开始了无休无止的传播。Mirai扫描的目标IP地址由内置的随机算法生成,并刻意的避开了某些知名的IP网段(例如美国国防部,惠普公司等)。飞利信详细分析描述了Mirai攻击产生的随机选择目标IP的具体代码如下:

此时Mirai正在进行扫描的目标端口主要是23端口(即TELNET服务),并间或插入一些2323端口。飞利信认为Mirai之所以将2323端口考虑进来,估计是考虑到在IP映射的环境下,用户习惯将2323端口映射成23端口,此习惯被黑客通过社会工程学所利用,其代码如下:

Mirai一旦扫描到某个在线设备开启了23端口(或者2323端口),就使用字典破解的方式进行登陆用户名和口令的破解(此时只进行暴力破解)。飞利信通过研究分析发现在BOT代码中通过硬编码的方式记录了61种常用的用户名和弱口令的组合,但此时Mirai为了更好的隐藏自己被安全管理人员或自动化安全防护产品所发现,在Mirai代码里进行了一定的加密,用以干扰全球安全分析人员的逆向分析。出于安全考虑飞利信公司只截取了少部分代码中存在的字典进行举例,如下图所示:

飞利信安全实验室通过细致分析得到一些比较有意思的关注点:Mirai在针对某一个固定的设备进行BOT扫描过程中并没有把字典里面的组合都尝试一遍。飞利信认为这么做主要是基于两方面的考虑:一方面长时间循环破解会留下比较明显的登陆失败的日志,另外一方面可用的大量目标数据很多没必要在一台设备上纠缠,还是基于产生大量分布式离散的目标防止在短时间内被安全管理人员所抑制。

Mirai对于成功猜中破解的用户名/口令设备,BOT程序都会把目标IP,端口,用户名和口令发送给黑客指定的专有服务器进行存储记录,飞利信提供相应代码如下所示:

1.2.2. 第二步实质攻击阶段---感染过程

Mirai完成第一阶段工作后自动进行下一阶段工作,Mirai与当前网络中常用的自我复制的僵尸程序有所不同,Mirai BOT所感染和传播是通过集中式服务端来完成的。飞利信发现在运行黑客手里的服务器scanListen首先与负责接收BOT探测的报告与收集信息结果再交给Mirai一个名为Loader的模块。Loader利用已经获得的用户名和口令,自动执行远程登陆这些目标设备,他们通过执行TELNET命令在目标设备上运行wget或者tftp连接到指定的服务器来下载Mirai所提供的木马BOT程序,以此类推这样就完成了多范围不同区域的感染过程。

如果目标设备上没有安装wget也没有安装tftp工具,那么黑客该如何上传BOT程序呢?飞利信研究发现针对这种情况Loader模块采用了“echo load”的方式进行下载,Mirai会先把一个小于2KB的迷你下载器上传到目标设备上,然后再由迷你下载器来下载真正的BOT程序。迷你下载器的代码在放置在dlr/main.c程序中。

Mirai发起了全新模式的木马上传方式,这是一个很有艺术的新思路,这种上传手法隐蔽性很强极其不容易被发现,具体实现方式如下:

Mirai所谓的新方式“echo load”下载方式,就是提前把迷你下载器的二进制文件读到内存中,然后telnet登陆目标设备之后执行”echo mini_downloader > dvrHelper”。(通俗解答:网络防病毒产品或安全检测类产品很难对于telnet回显的数据进行检查,原因是他们无法分辨telnet内容是否为客户应用,通常的处理机制都是bypass直接放行)。由于telnet协议按字节发送的特点,用echo load方式传递文件速度很慢,他们一个字符一个字符的上传,上传后在汇总执行形成所要执行的木马程序,所以黑客就开发了一个体量超轻的下载器来完成wget的工作。

另外,Loader模块会通过一系列的命令交互来感知目标设备的硬件架构,然后选择对应的BOT程序上传到目标上,防止BOT在目标设备上无法正常运行。从代码上看,BOT支持常见的嵌入式硬件体系,比如ARM v4v5v6mipssparcx86等几乎覆盖了常见硬件平台。

1.2.3. 第三步反馈交互----加入过程

飞利信发现加入过程比较简单,就是一台刚刚感染的IoT设备通过发送一段特殊的信息给C&C服务器,来报告自己处于待命状态。具体代码如下:

1.2.4. 第四步实质攻击---受控攻击

被感染的IoT设备完成了加入的动作之后,主进程一直处于监听状态,等待C&C服务器发送攻击指令,如果没有收到C&C的指令,就会按照固定间隔发送一个keepalive报文,内容就是长度为2个字节的0。这些被入侵的设备再等待黑客执行者储备更多的设备在某一时刻同时发起攻击。

另外我们飞利信通过分析C&C服务器的代码,可以让大家更多的了解一下僵尸网络作为“黑产”商品的销售模式,具体情况如下所述:

C&C服务器有两种权限的用户,一种是管理员账号admin,一种是普通用户账号。黑客可以在某些地下交易市场出售自己的“傀儡”的使用权。假如此时有人从黑客手里买1000台僵尸主机1个小时的使用权,一旦用户付费,那么黑客可以创建一个账户guest给客户。

接下来“客户”可以用guset登陆C&C服务器的TELNET,通过命令方式让“客户”下达攻击指令。尤其值得称道的是,用户账户输入问号“?”黑客服务器还将能弹出相应的帮助信息方便提供“客户”的使用。这样一来极大的降低了黑客攻击的技术复杂度也提升了黑客通过非法工具的使用率,也导致更多的正常用户将遭受到更多的入侵攻击等。

1.3. 飞利信对Mirai攻击的反思

随着物联网时代的到来,将会有越来越多的智能设备或移动互联设备接入互联网中,当我们在享受万物互联带来的信息共享与便捷高效的同时,越来越重的安全问题也将逐步得到重视,目前从国内的信息化发展与物联网设备使用情况来看,大部分智能化设备都缺少基本的安全防护手段,这必然造成的结果就是遭到安全威胁将更加明显,资产价值所遭受的损失也将逐步提高,要解决此类问题的方法就是要让物联网厂商在出厂时就具备一定的防护能力,但这样会极大的提高产品生产成本与复杂度,同时物联网厂商也应加大对安全的重视程度相应投入足够的安全技术人员,对应安全监管部门也应提高或发布更加全面的安全接入标准与技术防护手段,加大物联网厂商与安全厂商的融合与培训交流,未来安全的发展会伴随着入侵或攻击的发展而不断变化,这必将成为一个动态矛盾变化发展的过程。

THEEND