近年来,基于物联网设备的僵尸网络呈现增长性趋势,其中2016至2017年爆发的Mirai僵尸网络导致多个网站受到攻击。同时,由于物联网设备的计算能力弱,导致对于攻击的追踪难度提高,通过对Mirai样本及源码的分析,根据Mirai的攻击指令模式,提出基于蜜罐的Mirai僵尸网络追踪技术成为研究热点之一。

通过对蜜罐的数据包解析分析,能够达到分析出攻击指令及追踪攻击指令来源的目的。实验结果表明,基于蜜罐的追踪系统能够准确的分析攻击指令,并追踪物联网设备僵尸网络的攻击来源。


随着物联网的飞速发展和广泛应用,物联网的网络安全问题已经成为了一个重要的研究热点问题。在腾讯2019年给出的关于IoT(Internet of Things)安全报告中指出:IoT设备成为黑客的新一代目标,而其中,路由器则是黑客攻击的首选目标同时报告中还指出,IoT的恶意软件主要通过IoT的网络安全漏洞传播,同时DDoS攻击也成为了IoT恶意软件的主流功能。

在2018年卡巴斯基给出的一份关于IoT设备的网络安全的报告中指出,该公司通过对该公司蜜罐的数据包分析捕获了大量的针对IoT的恶意样本,根据恶意软件攻击的IP地址的地理位置统计发现,在所有已捕获样本的攻击目标中,中国的IP地址占比13.95%,排名第二。

2017年Mirai僵尸网络的爆发导致很多公共网站受到大规模DDoS(Distributed denial of service attack)攻击,使得多家网站瘫痪。论文Understanding the Mirai Botnet中对于Mirai僵尸网络进行了完整的分析。

本文通过对Mirai僵尸网络的研究,基于蜜罐的监控系统,通过对流量监控和数据包分析,给出了一种针对于Mirai僵尸网络的溯源追踪方法。

本文第一章主要介绍了Mirai的源代码分析;第二章介绍蜜罐监控器的设计和追踪的方法;第三章是我们的实验过程及结果,通过对已搭建的Mirai攻击场景进行模拟攻击,成功追踪到Mirai僵尸网络的C&C(Command and Control)Server。结果表明,基于蜜罐的追踪系统能够有效的追踪攻击来源。

1、Mirai的源代码分析

Mirai僵尸网络是一种类蠕虫病毒,主要通过感染IoT设备,达到控制对应的设备并对目标发动DDoS攻击。本部分主要介绍和分析Mirai源代码及其僵尸网络结构。

1.1 Mirai僵尸网络结构分析

图1 Mirai的网络结构

如图1所示,Mirai的传播有以下几部分,扫描易感目标,暴破(Brute Force)阶段,加载恶意代码。

扫描阶段会使用已感染的bot进行随机扫描,发现弱口令设备后会对该设备进行暴破。一旦暴力破解弱口令成功,Bot会将暴破成功的设备信息发送给Report Server,由Report Server向Loader Server发送加载恶意代码的命令,加载成功后会将易感染的设备作为新的bot去进行随机扫描感染下一批设备。当发动DDoS攻击时,会由C&C Server向所有活的bot发送攻击指令。关于Loader模块和DDoS模块会在1.2的源码分析中详细描述。

从Mirai的模型中可以看出,相较于传统的僵尸网络中的C&CServer,Mirai的C&C Server功能被弱化,传统的僵尸网络C&C Server同时具有扫描、传播、暴破和控制僵尸机发动攻击等功能,而Mirai的C&C Server只保留了与bot的定期通信功能和发动DDoS攻击功能,传播和加载恶意代码则由相应的bot和Loader来完成。

在这种结构下,追踪Mirai的C&C Server服务器,需要通过对bot的通信和数据包分析,追踪攻击指令的来源。

1.2 Mirai源代码分析

通过在服务器搭建Mirai僵尸网络攻击环境,我们对Mirai的源代码进行了较完整的阅读和分析。Mirai源代码包括两个部分:Loader和bot。其中bot中包括恶意代码和DDoS攻击模块,Loader包括加载恶意代码的模块,下文中的1.2.1和1.2.2将分别对两个模块进行详细的分析。

1.2.1 Loader 模块

在Loader模块中包含四个主要的文件:其中headers 包含必要的头文件;binary.c功能是将bins 目录下的二进制文件读到内存,然后以echo方式上传到payload中;connection.c文件作用是根据loader和Bot 交互过程中的状态信息来做出判断当前状态是否正常;server.c则是向已经暴破成功的感染设备发起telnet 通信,并发payload文件。

在Loader下的main.c文件中,使用了echo、wget和 tftp三种上传方式,同时对于通信端口和通信操作做了规定。

1.2.2 DDoS攻击模块

在C&C Server模块中对于Attack的指令进行了规定,构造攻击指令使用了16字节的指令方式。

在Attack.h的文件中给出了Mirai支持的攻击方式,包括UDP、TCP和SYN flood等,同时在对DDoS攻击模块测试得到的数据包可以得到对应的指令数据格式。

如图2所示,可以看出,数据包后16位是完全按照C&C Server中对于攻击指令的构造方法构造的,同时对于每一位,在都给出了对应的逻辑,这使得对Mirai僵尸网络的攻击预警与C&C Server服务器的追踪提供了有效的支撑。

图2 Mirai 数据包格式

2、蜜罐系统设计

蜜罐是一种被密切监控的网络诱饵,用于吸引攻击者,从而为真实系统提供有关攻击的类型与攻击倾向的数据。同时,通过分析被攻击过的蜜罐,我们可以对攻击者的行为进行深入分析。

基于蜜罐获得的高保真高质量的数据集有效避免了以往海量日志分析的繁琐过程,并且对于蜜罐的任何连接访问都是攻击信息,不再像以前的特征分析具有一定的滞后性,可以有效的用于捕获新型的攻击和方法。

按照可交互程度,蜜罐可分为低交互蜜罐(low-interactionhoneypot)、中交互蜜罐(interactionhoneypot)以及高交互蜜罐(high-interactionhoneypot)。

随着虚拟化技术的发展,以及物理蜜罐的高额的硬件部署成本问题,虚拟蜜罐得到了快速发展。借助虚拟机技术和容器技术,我们可以在一台主机上实现整个集数据控制、数据捕获和数据分析于一体的多功能多蜜罐高交互蜜网的体系架构。

为了能够实现对于Mirai僵尸网络的攻击追踪,蜜罐系统需要具备以下几个功能:

(1)能够监控系统本身的行为,对于蜜罐本身的系统操作和进程进行监控。

(2)能够监控蜜罐的网络流量,为了实现对于DDoS攻击的指令的追踪,需要对于蜜罐全端口的进出口流量进行监控,并同时能够实现对于数据包的分析。

(3)能够规范化的处理日志,由于恶意代码在传播完成后一般都会删除自身,因此蜜罐需要对短期内删除的文件有恢复的功能。

下文将对于蜜罐系统中蜜罐监控器的设计进行描述。

图3 蜜罐监控器的系统结构

整体蜜罐结构如图3所示,蜜罐监控器选用了Docker + Sysdig的结构,Docker作为现在的主流容器之一,使用Docker可以将蜜罐与物理机隔离开,同时Docker在环境的迁移和部署上也能够在很大程度上缩减工作量。

Sysdig作为一款用于蜜罐的系统监控器,能够满足对于Mirai攻击追踪的分析。Sysdig是一个开源的系统监控、分析和排障工具。Sysdig的具有整合、强大与灵活的优点。仅使用Sysdig一个工具就能实现上述所有工具的功能,并且提供了统一的使用语法。

在功能方面,Sysdig能获取实时系统数据,也能将信息保存到文件供日后分析,捕获的数据包括但不限于CPU、内存、硬盘I/O、网络I/O、进程、文件和网络连接等。Sysdig提供了强大的过滤语法、逻辑以及工具,同时允许用户编写对应的Lua脚本来定义分析逻辑。

数据流量的监控使用的是基于Tshark的监控器。Tshark作为Wireshark的命令行工具,可以通过自定义启动参数,针对于蜜罐的IP进行抓取,Tshark生成的数据包文件格式为.pcapng格式,抓取的数据包会通过自定义的检测规则达到追踪发动攻击的C&CSERVER的目的。

3、实验结果与分析

3.1 Mirai样本的检测

蜜罐捕获到样本之后,需要对样本进行分析,判断是否属于Mirai及其变种的家族。通过参考蒋永康等研究者关于图形矢量用于恶意代码的分类模型,我们发现通过图像矢量的方法能够有效地分析恶意样本的家族关系,并能判断其是否属于Mirai族。

在这个基础上,对于蜜罐中的样本进行分析,筛选属于Mirai家族的恶意样本,同时可以对其通信数据包进行监控和检测,判断是否存在DDoS攻击并获取攻击的相关参数。

3.2 Mirai的攻击指令追踪

在1.2.2中,提到了对于Mirai的攻击指令数据包具有规范的数据包格式,通过对数据包格式的分析可以通过表1中基于数据包的攻击指令提取算法进行攻击指令分析。

表1 基于数据包的攻击指令提取

在步骤1中通过调用对数据包P进行解析,通过步骤2的判断属于攻击指令的类型,从数据包中拿出cmd的16字指令,步骤4到步骤6从16字节攻击指令中提取出对应的攻击参数,其中前四位为攻击持续时间,单位为秒;第五位为对应的攻击类型;接下来五位为攻击目标;后面六位为对应的校验位和标志位。

3.3 实验结果与分析

实验中,采用的是Mirai原种的僵尸网络作为攻击场景,使用攻击场景进行扫描传播并成功感染到蜜罐。

在实验中,共发动六次针对不同靶机的DDoS攻击,表2给出的是攻击场景发动的六次攻击的攻击时间,攻击持续时间及攻击目标,表3则是对应蜜罐的追踪到攻击来源的相关攻击参数,包括攻击来源IP、攻击所用的协议及持续时间。实验结果中可以看出,对于时长超过一分钟的DDoS攻击,蜜罐能够做到有效追踪到Mirai的C&CSERVER服务器。同时对于部署公网的蜜罐,的确具有能够诱捕Mirai样本的能力。

表2 攻击场景攻击

表3 蜜罐追踪结果

4、结语

本文主要给出了蜜罐对于Mirai物联网僵尸网络在追踪C&C SERVER服务器中的应用和效果,详细阐述了蜜罐系统中各个模块的设计和相关算法,同时在Mirai僵尸网络攻击场景上进行了实验。相较于传统的僵尸网络DDoS攻击的追踪,由于物联网设备其带宽低、计算性能弱,使用蜜罐在用于对Mirai等物联网僵尸网络的追踪上有较好的效果。

综上,蜜罐能够成功的对Mirai僵尸网络DDoS攻击进行追踪,但由于Mirai开源导致的Mirai变种的开发难度大大降低,如何开发针对物联网设备不易被反蜜罐系统检测到蜜罐,是今后进一步的研究方向。

作者简介

杜 逊(1993-),男,硕士,主要研究方向为物联网安全;

吴 越(1968—),男,博士,研究员,主要研究方向为移动互联网安全;

邹福泰(1973—),男,博士,高级工程师,主要研究方向为恶意代码分析、僵尸网络检测;

李林森(1968—),男,博士,副教授,主要研究方向为大数据与物联网安全。

选自《通信技术》2019年第十二期 (为便于排版,已省去原文参考文献)

声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。