第一章 绪论
1.1 研究背景和研究意义
近年来,随着多种接入网络以及人工智能等计算机技术领域的快速发展,当互联网作为全球性的信息基础设施,已经成为人们生活的重要组成部分。各种新型网络技术的出现,给人们所带来的不仅是巨大的生活便利,同时也隐含了非常多的网络安全问题。僵尸网络就是其中之一,它融合了传统计算机病毒技术,逐渐发展成一种可以利用一台控制主机操控数万台僵尸机的攻击平台,目前也已成为一种可以进行各种大规模恶意攻击和散布各类恶意软件的综合攻击平台[1]。攻击者可以利用僵尸网络轻而易举地控制庞大数量的主机,从而对任意站点发送大量垃圾邮件、发动分布式拒绝服务攻击(DDoS, distributed denial of service)、从受控主机上窃取敏感信息等非法行为。
当前,以僵尸网络为代表的恶意程序有向物联网领域渗透发展的趋势,网络上现在已经出现了通过物联网传播并发动拒绝服务攻击的恶意程序。目前分布式拒绝服务攻击大多数都是通过僵尸网络发起,除了传统的服务器和 PC 可以被当做僵尸主机外,大量的物联网智能网络设备也逐渐发展成为了新的僵尸网络节点。美国互联网域名解析服务商 Dyn 公司在2016 年 10 月 21 日上午,就遭遇大量 Mirai 恶意软件发动的拒绝服务攻击,攻击流量高达 1.2 Tbit/s,造成大量知名网站的域名无法被成功解析,包括华尔街日报、Github、Facebook 等在内的十几家知名网站均受此影响,从而导致用户没有办法成功登陆站点。Mirai 恶意软件的攻击方式正是通过对物联网智能设备中存在的漏洞进行入侵渗透,从而进一步形成的规模庞大僵尸网络[2]。2017 年 11 月,经 360 网络安全研究院研究发现了 2 个新的感染载体,即为TCP 端口 7547 和 5555 变种,该变种被用来传播 Mirai 恶意软件。研究院的 Ye Genshen 快速设置了一些蜜罐,至今为止蜜罐已从 6 个托管服务器捕获了 53 个独立样本。在分析其中一个新样本时,发现一些类似 DGA 的代码,并猜测变种中可能包含有 DGA 功能,这个猜测很快被研究院人员通过沙箱数据中得到验证[3]。此外,著名的 Wanna Cry 病毒通过 MS17-010 漏洞于 2017 年在全球范围内急剧爆发,一旦感染该程序就会使计算机自动下载并植入勒索病毒,从而直接导致电脑中的大量文件被加密,该病毒的爆发直接影响了全球成千上万的国家企业的正常运作[3]。2017 年,受到分布式拒绝服务攻击的国家一共有 130 多个,其中我国被攻击总次数高达 12200 万次,占全球受攻击总数的 84.79%[4]。
..........................
1.2 国内外研究现状
针对僵尸网络的检测,国内外学者持续对此不断地进行研究检测,目前所获取的研究成果基本可分为以下几个大方面:
方式一为传统逆向技术:Stone-Gross B 与 Cova M 等人[9]对特定的僵尸网络进行逆向技术分析之后,逐步研究出其内部使用的域名生成算法,紧接着作者就根据域名生成算法规则提前注册了算法所产生的域名,从而通过布置假服务器的方式成功的控制该僵尸网络约 10 天。虽然成功控制了僵尸网络,但是逆向技术应用却不是很广泛,通过逆向工程破解僵尸网络中所使用的特定类型的域名生成算法则需要投入大量的人力与时间资源,从而对指定恶意域名进行检测。然而,该方法只对该特定类型的域名生成算法有效,一旦恶意攻击者更换算法,
..........................
1.2 国内外研究现状
针对僵尸网络的检测,国内外学者持续对此不断地进行研究检测,目前所获取的研究成果基本可分为以下几个大方面:
方式一为传统逆向技术:Stone-Gross B 与 Cova M 等人[9]对特定的僵尸网络进行逆向技术分析之后,逐步研究出其内部使用的域名生成算法,紧接着作者就根据域名生成算法规则提前注册了算法所产生的域名,从而通过布置假服务器的方式成功的控制该僵尸网络约 10 天。虽然成功控制了僵尸网络,但是逆向技术应用却不是很广泛,通过逆向工程破解僵尸网络中所使用的特定类型的域名生成算法则需要投入大量的人力与时间资源,从而对指定恶意域名进行检测。然而,该方法只对该特定类型的域名生成算法有效,一旦恶意攻击者更换算法,
则原先的工作均会失效。
方式二为基于 DNS 协议的僵尸网络恶意域名检测:至今为止非常多僵尸网络检测方式是基于 DNS 协议展开的,基于 DNS 检测恶意软件具有一些明显的优势,主要存在以下两种优势,第一,目前大部分恶意软件都依赖于 DNS 来解析其控制服务器地址。第二,由于 DNS 流量在整个网络流量中占比很小,所以基于 DNS 检测的开销远低于需分析全部流量的检测系统,因而针对大规模网络流量监测是非常适用的。Bilge L 和 Sen S 等人[10]设计开发的 EXPOSURE 检测系统针对请求时间特征、TTL 特征和域名特征进行机器学习分类,目的是识别包括钓鱼网站、恶意网站在内的各类僵尸网络恶意域名。Futai Zou 等人[11]针对僵尸网络恶意软件中的恶意域名检测方面提出一种图向量检测的算法进行模型训练的方式,可以自动检测出带有问题的恶意域名。Tavallaee M 和 Stakhanova N [12]依然是对僵尸网络流量就行深入分析,提取出其中的 DNS 流量后,利用恶意 DNS 日志与正常 DNS 日志进行对比分析,提取出六个有效特征,并采用了四种不同分类器进行检测效果的逐一比较。
.............................
第二章 相关背景知识介绍
2.1 僵尸网络
僵尸网络(botnet)是攻击者通过传播大量恶意代码从而达到操控主机的目的。它是在传统恶意代码(木马、蠕虫等)基础上发展而来的一种网络攻击方式。
2.1.1 僵尸网路组成与介绍
僵尸网络包含大量傀儡主机并被攻击者远程控制,其中最为重要的是命令与控制信道所组成的网络[26]。僵尸控制者(botmaster)大量传播僵尸病毒,感染互联网上大量容易受到攻击的主机,它们被感染和控制后成为 bot,bot 主机是通过命令与控制信道来接收控制者发来的指令从而开始相应恶意攻击行为。

方式二为基于 DNS 协议的僵尸网络恶意域名检测:至今为止非常多僵尸网络检测方式是基于 DNS 协议展开的,基于 DNS 检测恶意软件具有一些明显的优势,主要存在以下两种优势,第一,目前大部分恶意软件都依赖于 DNS 来解析其控制服务器地址。第二,由于 DNS 流量在整个网络流量中占比很小,所以基于 DNS 检测的开销远低于需分析全部流量的检测系统,因而针对大规模网络流量监测是非常适用的。Bilge L 和 Sen S 等人[10]设计开发的 EXPOSURE 检测系统针对请求时间特征、TTL 特征和域名特征进行机器学习分类,目的是识别包括钓鱼网站、恶意网站在内的各类僵尸网络恶意域名。Futai Zou 等人[11]针对僵尸网络恶意软件中的恶意域名检测方面提出一种图向量检测的算法进行模型训练的方式,可以自动检测出带有问题的恶意域名。Tavallaee M 和 Stakhanova N [12]依然是对僵尸网络流量就行深入分析,提取出其中的 DNS 流量后,利用恶意 DNS 日志与正常 DNS 日志进行对比分析,提取出六个有效特征,并采用了四种不同分类器进行检测效果的逐一比较。
.............................
第二章 相关背景知识介绍
2.1 僵尸网络
僵尸网络(botnet)是攻击者通过传播大量恶意代码从而达到操控主机的目的。它是在传统恶意代码(木马、蠕虫等)基础上发展而来的一种网络攻击方式。
2.1.1 僵尸网路组成与介绍
僵尸网络包含大量傀儡主机并被攻击者远程控制,其中最为重要的是命令与控制信道所组成的网络[26]。僵尸控制者(botmaster)大量传播僵尸病毒,感染互联网上大量容易受到攻击的主机,它们被感染和控制后成为 bot,bot 主机是通过命令与控制信道来接收控制者发来的指令从而开始相应恶意攻击行为。

僵尸网络相较于传统的网络威胁,更复杂,影响更严重。僵尸网络传播的速度非常快,同时又非常隐蔽,对技术的要求很高,往往结合多种其他网络攻击方式共同作用。僵尸网络产生的新知攻击产生引起了安全工作者的极大关注[27]。僵尸网络的危害包括以下五个方面:
(1) 传播垃圾邮件:僵尸网络可以被攻击者用于发送大量垃圾邮件,网络安全人员很难追踪到攻击者的 IP 地址,反垃圾邮件系统难以检测和控制。
(2) 发起分布式拒绝服务攻击:分布式拒绝服务攻击:通过僵尸网络,攻击者可以在任意时间、任意地点、快速启动任意攻击强度的拒绝服务攻击,相较于传统的拒绝服务攻击,强度和危害范围更大[28]。
(3) 盗用电脑系统资源:僵尸网络中,控制者控制着大量免费的计算机资源,恶意黑客通过这些资源可以下载各类文件或病毒、非法植入广告、提高网站访问量、建立虚假钓鱼网站等等[29]。
(4) 作为跳板,实施二次攻击:僵尸网络中,受感染的主机通常被用作重定向转发器或者代理服务器,攻击者通过代理发起攻击。
(5) 窃取用户个人信息:攻击者在控制僵尸计算机后,存储在计算机上的个人信息有可能被攻击者盗取。
.........................
(2) 发起分布式拒绝服务攻击:分布式拒绝服务攻击:通过僵尸网络,攻击者可以在任意时间、任意地点、快速启动任意攻击强度的拒绝服务攻击,相较于传统的拒绝服务攻击,强度和危害范围更大[28]。
(3) 盗用电脑系统资源:僵尸网络中,控制者控制着大量免费的计算机资源,恶意黑客通过这些资源可以下载各类文件或病毒、非法植入广告、提高网站访问量、建立虚假钓鱼网站等等[29]。
(4) 作为跳板,实施二次攻击:僵尸网络中,受感染的主机通常被用作重定向转发器或者代理服务器,攻击者通过代理发起攻击。
(5) 窃取用户个人信息:攻击者在控制僵尸计算机后,存储在计算机上的个人信息有可能被攻击者盗取。
.........................
2.2 僵尸网络中的 Domain Flux 技术
与传统恶意代码形式相比,僵尸网络攻击依赖于攻击者和受害主机之间进行信息交互,即攻击者需要给僵尸主机下达命令,僵尸主机才会发起相应攻击,命令下发是通过命令控制信道实现,这是僵尸网络构建的重点,是攻防双方博弈关键点。
早期中心结构的僵尸网络,僵尸主机采用轮询方法访问硬编码的 C&C 域名或 IP 来访问命令控制服务器,得到攻击命令。由于硬编码域名或 IP 固定并且数量有限,防御人员可以通过逆向获取该部分内容后对该域名进行有效屏蔽,以阻断命令控制途径,使其失去控制源,逐渐消亡。该缺陷称为中心节点失效。
与传统恶意代码形式相比,僵尸网络攻击依赖于攻击者和受害主机之间进行信息交互,即攻击者需要给僵尸主机下达命令,僵尸主机才会发起相应攻击,命令下发是通过命令控制信道实现,这是僵尸网络构建的重点,是攻防双方博弈关键点。
早期中心结构的僵尸网络,僵尸主机采用轮询方法访问硬编码的 C&C 域名或 IP 来访问命令控制服务器,得到攻击命令。由于硬编码域名或 IP 固定并且数量有限,防御人员可以通过逆向获取该部分内容后对该域名进行有效屏蔽,以阻断命令控制途径,使其失去控制源,逐渐消亡。该缺陷称为中心节点失效。
为了解决以上问题,攻击者通过 Domain Flux 协议来对抗防御人员,僵尸主机访问的 C&C域名不是静态硬编码,而是依据一定算法动态生成的、变化的域名,攻击者与肉鸡通信的集合点动态生成,防御人员难以过滤,该动态域名生成算法称为 DGA(Domain Generation Algorithm),算法输入称为 Seeds,包括日期、随机数或字典搜索热词,生成一串特殊字符前缀(例如kvbtltjwoxf52b68nslulzgvevh44bvatey)添加 TLD 后得到最终域名资源,该域名称为AGD(Algorithmically-Generated Domain),攻击者只要成功注册并且让肉鸡访问到一个 AGD即完成对僵尸网络的控制。防御人员为了彻底屏蔽僵尸网络,需要屏蔽所有 AGD,付出极大成本,因此,Domain Flux 是一种健壮的命令控制协议。
.........................
.........................
第三章 僵尸网络自动化检测系统设计 ................................... 18
3.1 系统功能流程设计 ..................................... 18
3.2 特征提取 ........................................ 19
第四章 僵尸网络自动化检测系统实现 ........................................ 29
4.1 僵尸网络自动化检测系统整体方案 ..................................... 29
4.2 数据预处理模块实现 .................................. 30
第五章 实验结果与分析 ......................................... 39
5.1 实验环境 ............................................. 39
5.2 相关技术与工具 ........................................... 39
第五章 实验结果与分析
5.1 实验环境
此次实验环境中,系统由 Python 开发语言实现,本实验系统开发环境如表 5.1 所示:

............................
第六章 总结与展望
6.1 工作总结
随着多种接入网络以及人工智能等计算机技术领域的快速发展,各种新的网络技术和网络应用层出不穷,在给人们带来巨大便利和效益的同时,也带来了更多更具挑战的安全问题。僵尸网络就是其中之一,它融合了传统的计算机病毒、木马以及蠕虫等技术,成为一种能发动各种大规模恶意攻击、更新和散布各类恶意软件的综合攻击平台。利用僵尸网络,攻击者可以轻易地控制成千上万台主机,对任意站点发起分布式拒绝服务攻击、发送大量垃圾邮件、从受控主机上窃取敏感信息或进行点击欺诈牟取经济利益等非法行为。
然而目前传统的检测方式包括手动阈值方式,有监督机器学习分类以及标准异常检测半监督/无监督机器学习分类法中都有一定的自身局限性,本文旨在设计一种可以针对非平衡数据集并且采用无参数化的通用检测方式。
(1)本文针对僵尸网络流量命令与控制信道不同工作阶段进行特征分析,从恶意域名特征和基于 HTTP 网络协议行为特征层面进行特征提取,从三个不同维度提取了 12 个具有代表性的特征,通过在真实数据集上的图表对比分析验证了特征选取的有效性,此外针对基于时间的网络行为特征通过三个时间窗口(30 秒/60 秒/120 秒)进行特征裂变至 22 个有效特征,通过实验显示该方式有力的增加了检测结果的准确率;
(2)为了解决了海量数据提取处理过程中所带来的大量计算以及存储开销问题,文中也提出基于 Bloom-Filter 算法的轻量级特征提取框架,成功解决了实际网络环境中可能出现的恶意攻击带来的内存溢出问题。
(3)除此之外,本文提出一种基于信誉评分算法的网络流量异常检测算法,该算法无需进行数据标记,而是从未标记的数据集中自动选择可疑事件,并同步输出可疑程度最高的事件。利用此算法可以在很大程度上降低安全人员的工作量,对僵尸网络主机检测也有极大的贡献。
参考文献(略)