0


僵尸网络检测和抑制方法

一、背景意义

  • 研究背景

Botnet是随着自动智能程序的应用而逐渐发展起来的。在早期的IRC聊天网络中,有一些服务是重复出现的,如防止频道被滥用、管理权限、记录频道事件等一系列功能都可以由管理者编写的智能程序所完成。于是在1993 年,在IRC聊天网络中出现了Bot工具——Eggdrop,这是第一个Bot程序,能够帮助用户方便地使用IRC 聊天网络。这种bot的功能是良性的,是出于服务的目的,然而这个设计思路却为黑客所利用,他们编写出了带有恶意的Bot工具,开始对大量的受害主机进行控制,利用他们的资源以达到恶意目标。从良性Bot的出现到恶意Bot的实现,从被动传播到利用蠕虫技术主动传播,从使用简单的IRC协议构成控制信道到构建复杂多变P2P结构的控制模式,再到基于HTTP及DNS的控制模式,Botnet逐渐发展成规模庞大、功能多样、不易检测的恶意网络,给当前的网络安全带来了不容忽视的威胁。为此,我们急切需要研究如何检测僵尸网络,及时查找感染病毒的主机,并通过网络安全技术抑制其扩散,达到控制僵尸网络病毒的目的。

  • 研究意义

通过研究僵尸网络的检测和抑制方法,可以有效防止黑客在用户不知情的情况下利用其主机攻击目标主机,例如DDoS攻击,减少网络恶意行为引起的经济损失和隐私泄露等问题。通过主动获取僵尸网络的攻击模式,可以在僵尸网络感染的初期及时检测到行为特征,并通过安全手段抑制其传播扩散,对于净化网络空间,提升网络安全性具有重大意义。

二、研究内容

本报告主要从僵尸网络检测原理及方法、僵尸网络抑制方法、僵尸网络检测代码分析三个方面展开研究讨论,通过研究僵尸网络的行为特征、基于蜜罐实现bot行为仿真和捕获,以及基于网络特征和深度流检测来实现检测,并研究了基于域名的 FFSN 僵尸网络动态抑制技术和基于大数据的半分布式僵尸网络动态抑制算法,最后通过讲解分析及演示图算法检测僵尸网络的源代码,阐释了其核心思想并验证了通过行为特征检测僵尸网络的可行性,为今后的网络安全检测和抑制提供了技术支撑。

三、技术说明

(一)僵尸网络检测原理及方法

1、行为特征统计分析

(1)恶意行为识别

僵尸网络因其控制的主机数量多,行为目的相似等特性,故我们可以统计分析这些恶意行为并将其归类,通过行为特征匹配的方式来检测恶意的僵尸网络。主要的特征提取如下:

IRC隐藏主机信息:僵尸网络的攻击是一种恶意的行为,所以拥有僵尸网络的黑客为了防止被侦测,会有意地隐藏服务器的基本信息

昵称规律性:由于加入到Botnet服务器中的所谓用户nickname是由bot程序生成,所以这些bot的nickname 应符合一定的生成算法,如IP地址表示法(就是将被感染了bot程序的主机的IP地址所在国的三位缩写放在开头,然后在后面加入指定长度的随机数字,如USA|8028032,CHA|8920340)和系统表示法(将被感染bot程序的主机的系统作为开始的字母如xp、2000等,然后再在后面加上指定长度的随机数字,如xp|8034,2000|80956)。这些命名的特征可以从得到的bot源码中发现并总结出来。

发送大量请求和数据包:在僵尸网络将要活动的时候,会发送大量的DNS查询来定位C&C服务器,发送大量的连接请求。在受到控制命令服务器的指令后,整个僵尸网络的主机将会共同对目标发起大量攻击,例如DDoS攻击就是僵尸网络发送大量连接请求导致服务器无法响应。

(2)一种基于行为特征分析的检测流程

该模型的提出基于僵尸网络的两个主要特点:一是都具有一个C&C信道,通过这个信道僵尸网络的控制者可以向僵尸主机发送命令;二是都具有明显的攻击性,能够依照控制者的命令同时发起大量攻击。由以上行为特性,我们提出了一个基于行为特征分析的僵尸网络检测流程,主要分为三个阶段进行,即流量统计分析阶段、行为特征分析阶段和关联分析阶段。每个阶段的基本流程如下:

流量统计分析阶段:收集待检测的内网与其外部网络之间的所以通信流,对传输的流量进行统计分析收集。

行为特征分析阶段:根据流分析纪录,依据僵尸傀儡的相似性特征,使用聚类和特征模式匹配的方法,分别从交流行为特征和恶意行为特征两个方面展开分析,得出分别在这两方面具有相似性的主机群。

关联分析阶段:对交流行为特征相似主机群和恶意行为特征相似主机群进行关联分析,得出检测结果。

2、基于蜜罐实现bot行为仿真与捕获

近年来,基于物联网设备的僵尸网络呈现增长性趋势,但由于物联网设备的计算能力弱,对于攻击的追踪难度提高。而通过对蜜罐的数据包解析分析,能够达到分析出攻击指令及追踪攻击指令来源的目的。

蜜罐是一种被密切监控的网络诱饵,用于吸引攻击者,从而为真实系统提供有关攻击的类型与攻击倾向的数据。同时,通过分析被攻击过的蜜罐,我们可以对攻击者的行为进行深入分析。基于蜜罐获得的高保真高质量的数据集有效避免了以往海量日志分析的繁琐过程,并且对于蜜罐的任何连接访问都是攻击信息,不再像以前的特征分析具有一定的滞后性,可以有效的用于捕获新型的攻击和方法。

为能实现对于僵尸网络的攻击追踪,蜜罐系统需要具备以下几个功能:一是能够监控系统本身的行为,对于蜜罐本身的系统操作和进程进行监控;二是能够监控蜜罐的网络流量,为了实现对于DDoS攻击的指令的追踪,需要对于蜜罐全端口的进出口流量进行监控,并同时能够实现对于数据包的分析;三是能够规范化的处理日志,由于恶意代码在传播完成后一般都会删除自身,因此蜜罐需要对短期内删除的文件有恢复的功能。

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

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

Sysdig作为一款用于蜜罐的系统监控器,能够满足对于僵尸网络攻击追踪的分析。Sysdig是一个开源的系统监控、分析和排障工具。Sysdig的具有整合、强大与灵活的优点。仅使用Sysdig一个工具就能实现上述所有工具的功能,并且提供了统一的使用语法。在功能方面,Sysdig能获取实时系统数据,也能将信息保存到文件供日后分析,捕获的数据包括但不限于CPU、内存、硬盘I/O、网络I/O、进程、文件和网络连接等。Sysdig提供了强大的过滤语法、逻辑以及工具,同时允许用户编写对应的Lua脚本来定义分析逻辑。

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

3、基于网络特征和深度流检测

目前,越来越多的僵尸网络采用P2P架构来构建其命令与控制信道,并且通过公钥加密的通信机制进行通信,同时为了穿透防火墙,有的协议更是采用常规端口作为其服务端口。如采用P2P架构的Skype,其数据往往也采用80端口进行通信,其通信的数据采用公钥加密机制完成。这使得无法使用流量数据特征,如端口和指纹来识别数据流,更无从说起工具流的内容异常判断为数据流。我们无法得到数据内容,不能通过端口进行识别,没有中心服务器,那只有根据网络流的特征来判断。

僵尸网络引起的流量通过特征聚类的形成,目前僵尸网络流聚类的方法都过于粗糙难以有效识别僵尸网络。并且合法的流量特征也能形成聚类。这就需要从大的聚类内在识别出小的应用聚类,如从HTTP应用聚类中在进行细分出Skype、Youtube、网络游戏的等应用聚类。对此研究基于流量行为的应用识别,即不同的应用类型体现在会话连接或数据流上的状态各有同。例如,正常的HTTP网络流和异常HTTP网络流的区别主要可以从下面5个方面参数来衡量:请求数据大小、响应数据大小、请求的间隔时间、每个网页请求数量以及平均每:检索时间。可以通过上面五个参数,从HTTP社区中找出正常的HTTP流量。对于网上1P语音流量体现在流状态上的特征就非常明显:RTP流的包长相对固定,一般在130-220byte,连接速率较低,为20-84kbit/s,同时会话持续时间也相对较长;而基于P2P下载应用的流量模型的特点为平均包长都在450byte以上、下载时间长、 连接速率高、首选传输层协议为TCP等。故我们可以通过检测以上网络特征和数据流,来检测网络中的僵尸主机和病毒。

  • 僵尸网络抑制方法

1、基于域名的 FFSN 僵尸网络动态抑制技术

(1)FFSN僵尸网络原理

近年来 Botnet已经演变成为黑客最常见的一种攻击方式,在此基础上攻击者还进一步精心设计出Fast-Flux服务网络(fast flux service network,FFSN),可以说FFSN是在Botnet基础上一种更隐蔽的控制僵尸网络的技术。FFSN的目的是为一个合法域名分配多个IP地址,这些IP地址以非常快的频率更换,通过一个轮转的IP地址资源库及对特定的DNS域名资源设置具有短生命周期的解析映射进行实现。

控制者出于安全性和可用性的考虑经常会增加第二层:匿名代理重定向。重定向机制可以干扰摧毁和反制FFSN服务网络节点的企图,组网如图2所示。受控的前端系统仅仅被部署成重定向器,转发与真正提供内容服务的其他后台服务器之间的服务请求和返回数据,这样可以提高网络的可用性和均衡负载。

图2 FFSN 母舰隐藏身份

(2)基于域名的动态抑制技术

本技术主要是针对互联网Botnet及FFSN产生的大量DDoS攻击主流威胁,建 设性地提出多系统融合性恶意域名动态抑制技术,并部署了一种自动检测和智能抑制的FFSN受控域名攻击系统,主要包括自动化异常攻击流量监测、DNS智能关联 分析检测、恶意域名动态抑制以及感染客户主动告知4个部分。

异常流量监测:通过运营商部署的异常流量分析系统,收集路由器发送的 NetFlow信息。通过多元异常流量监测技术对采集到的NetFlow原始信息进行五元组关联分析,可以快速分析出针对运营商网络的攻击特征、攻击 目标 IP 地址及受感染Bot主机IP地址,并将分析到的相关信息通过接口方式发送到DNS智能关联检测系统进行关联分析。

DNS智能关联检测:DNS多维分析系统通过分光或镜像方式收集DNS用户查询日志。基于Hadoop集群准实时处理海量数据,通过域名切分算法、路径算法,结合行业相关的黑白名单,对异常流量监测发现的感染Bot主机IP地址进行关联查询,分析在攻击发生期间感染主机的发起域名请求情况,找到共性访问域名,并排除正常共性查询域名,进而能够快速分析,并定位FFSN利用的控制域名。

FFSN受控域名抑制:通过DNS多级域名限速与防护模块对恶意域名进行限速或封堵,实现从源头上抑制FFSN,减少用户及运营商网络DDoS攻击风险。

感染用户告知:用户再次访问 FFSN 受控域名时,在DNS进行解析结果重定向,将用户HTTP访问流量重定向至提示portal页面,告知客户已感染相关蠕虫木马病毒,并尽快采取相关安全措施,清除相关恶意程序。

2、基于大数据的半分布式僵尸网络动态抑制算法

半分布式网络是由少量超级节点和大量普通节点组成的,新加入的节点可以选择某个超级节点来加入,由于洪泛洪泛只在超级节点之间,减少了广播风暴的风险。而对于半分布式的僵尸网络,我们需要构建半分布式僵尸网络的特征提取模型,结合嵌入式的特征分布式检测方法,进行动态抑制,提高半分布式僵尸网络的安全性。综合目前网络安全方面的有关研究和检测算法,提出了一种基于大数据的半分布式僵尸网络动态抑制算法。

  1. 动态特征信息采样及统计特征量提取

首先构建半分布式僵尸网络的传输码元序列分布式采样模型来进行半分布式僵尸网络动态信息采样。分析半分布式僵尸网络多样性反馈控制模型,采用统计信息分析方法,建立半分布式僵尸网络动态特征信息挖掘的模糊特征分布集,采用模糊度特征检测方法,提取半分布式僵尸网络动态特征信息的关联规则集,通过模糊关联规则调度方法进行半分布式僵尸网络动态特征信息检测和挖掘,构建半分布式僵尸网络动态特征信息的融合聚类模型。然后在上述构建半分布式僵尸网络动态特征信息采样模型的基础上,采用判决均衡方法,对采集到的半分布式僵尸网络动态特征信息进行定量递归分析,提取半分布式僵尸网络的统计特征量。

(2)基于大数据的半分布式僵尸网络动态抑制

首先根据提取到的半分布式僵尸网络的统计特征量,采用大数据寻优计算方法,获取真正半分布式僵尸网络的最优抑制参数。将a、b、c看作半分布式僵尸网络中各参数组合的基于数据的抑制评价指标,建立半分布式僵尸网络抑制数据评价指标MSE与参数组合的关系式为: MSE = U( ai,bi,ci )。基于上一过程建立的抑制评价指标MSE与参数组合U的关系模型,对半分布式僵尸网络中抑制参数全组合进行预测,得到新的半分布式僵尸网络抑制数据评价指标MSE',将MSE'作为半分布式僵尸网络实际抑制值,经过多次迭代,对MSE'进行留一法训练寻优,找到最优的半分布式僵尸网络抑制参数组合。

根据上述大数据寻优计算,在链路随机分配模式下,进行半分布式僵尸网络动态抑制和抗干扰设计。基于多样性反馈滤波检测方法,得到半分布式僵尸网络负载均衡的输出冲激响应,根据此响应,在半分布式僵尸网络的链路分配区域,得到半分布式僵尸网络动态迁移的正态分布,在多径干扰下,进行半分布式僵尸网络的输出动态特征融合处理,得到融合结果。最终在嵌入式环境下,将半分布式僵尸网络的最优抑制参数和迁移负载响应结果结合,达到对僵尸网络的动态抑制。

  • 演示说明

(一)环境搭建

本次演示的是基于图算法检测僵尸网络python代码,运行环境为vscode,使用的库主要是用于构建和操作复杂的图结构,提供分析图的算法的networkx库,用于图形化显示的matplotlib库和用于正则匹配的re库。

(二)测试内容

图3 黑客控制僵尸网络攻击示意图

本图论检测方法的思想是朴素的。通常来说黑客会对整个僵尸网络的僵尸主机发布相同的控制指令,所以通过统计一段时间内攻击源的IP地址以及被攻击者域名之间的关联关系,可以初步判断出哪些IP地址可能被同一黑客团体控制

图4 IP与被攻击域名处理流程图

通过对原始获取的数据进行清洗,提取出攻击源IP和被攻击的域名,通过生成每个IP对应攻击的域名表,当域名数超过阈值可以判定为可疑网络,将其中两个IP的域名表做比较,如果相似度大于阈值可以判定为处于同一僵尸网络,最后获取整个IP对应的图G,一个子图的IP点集合即为一个僵尸网络群

  • 代码分析

数据脱敏阶段:

首先对于获取的原始数据进行清洗,采用正则表达式,设置规则匹配获取IP——域名对

图5 经过数据清洗后的IP-域名对

数据导入:将获取的数据逐行读入,按照攻击源IP地址建立hash表,hash表的键值key为被攻击者的域名

定义阈值R,只有攻击的域名超过R的IP地址才可以列入统计范围


图6 数据导入阶段获取hash表

定义Jaccard系数。又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。其定义为两个集合的交集的大小与两个集合并集的大小之比,当两个IP攻击集合的Jaccard系数大于阈值N时,将这两个IP点放入同一个子图中,并在两点间加上一条边表示其在同一僵尸网络中


图7 Jaccard系数判断IP重合度

查询分析阶段:定义阈值M,由僵尸网络的特性知其每次控制大量主机发起攻击,故设置阈值M,当同一子图集合中的点数大于M时,将其图形化显示

运行结果如下,其中蓝色的点为符合设定条件的IP,两点之间的连线表明其在同一僵尸网络中:

图8 可视化检测僵尸网络运行结果

  • 实验结论

本实验是基于图算法检测僵尸网络,核心思想是通过分析出僵尸网络的行为特征,将其提取出来并用数学语言描述,最终通过代码实现识别。在本代码中,主要运用了僵尸网络具有集群性,即大量主机IP同时发起大量请求;具有攻击的协同性,同一域名会受到大量IP攻击等。通过Jaccard系数比来衡量两IP行为的相似度,从而检测出僵尸网络IP群。结果很好的验证了通过行为特征提取来检测僵尸网络的可行性。

  • 应用场景

  • 场景一

近年来,基于物联网设备的僵尸网络呈现增长性趋势,其中2016至2017年爆发的Mirai僵尸网络导致多个网站受到攻击。通过对Mirai僵尸网络的研究,我们可以采用基于蜜罐的监控系统,通过对流量监控和数据包分析,给出一种针对于Mirai僵尸网络的溯源追踪方法。

基于蜜罐的监控系统结构已经在前文中给出,现在主要阐述利用蜜罐技术来分析溯源Mirai僵尸网络的具体思路:

蜜罐捕获到样本之后,需要对样本进行分析,判断是否属于Mirai及其变种的家族。通过参考关于图形矢量用于恶意代码的分类模型,发现通过图像矢量的方法能够有效地分析恶意样本的家族关系,并能判断其是否属于Mirai族。由于Mirai的攻击指令数据包具有规范的数据包格式,故可以提取其攻击指令进行分析。最终解析其指令数据包,提取出攻击类型、攻击目标、攻击持续时间以及源地址等多种信息,达到掌握Mirai僵尸网络攻击方式并溯源的目的。

  • 场景二

随着僵尸网络的不断进化、针对DNS攻击流量的隐蔽性增强及攻击形式的层出不穷,现有技术方法的误判率大幅度上升,多个检测器的协作问题也是制约安全性能提升的主要因素。本报告中的基于域名的动态抑制技术可以应用于僵尸网络向受害者实施大规模的DDoS攻击,进而严重威胁运营商互联网运行稳定的问题中。

图9 抑制系统功能实现示意图

通过多种系统融合,可以自动检测和智能抑制FFSN受控域名的供给系统,保障网络运营商的服务用户及自身的基础架构设置的安全,从源头治理僵尸网络。

具体的思路是先通过异常流量监测并收集,通过对于原始信息的五元组关联分析,可以快速分析出针对运营商网络的攻击特征等,然后通过DNS智能关联分析系统,结合互联网上公开的以及行业相关的黑白名单,对异常流量监测发现的感染Bot 主机IP地址进行关联查询。通过FFSN受控域名抑制来限速或封堵恶意域名,达到源头抑制传播的目的,最后告知被感染用户采取相关措施,采用杀毒软件等清除恶意程序。

本技术可有效解决 FFSN 僵尸网络检测难度大、效率低、准确率差等多方面业界难题,实现了多系统的融合与联动,可实现攻击流量动态检测、大数据关联分析以及自动域名抑制及用户主动告知等功能,极大地缓解了运营商IP网络的带宽资源,减少了因DDoS网络攻击而造成的业务损失。

  • 参考文献

[1]诸葛建伟, 韩心慧, 周勇林等. 僵尸网络研究[J]. 软件学报, 2008, 19(3):702– 715

[2]方滨兴,崔翔,王威. 僵尸网络综述[J]. 计算机研究与发展,2011,48(8):1315-1331.

[3]王威. 僵尸网络对抗技术研究[D]. 黑龙江:哈尔滨工业大学,2010. DOI:10.7666/d.D269360.

[4]曾品善. 基于行为特征分析的僵尸网络检测模型[J]. 科教导刊-电子版(下旬),2017(11):254.

[5]陆伟宙,余顺争. 僵尸网络检测方法研究[J]. 电信科学,2007,23(12):71-77. DOI:10.3969/j.issn.1000-0801.2007.12.016.

[6]刘张榕.基于大数据的半分布式僵尸网络动态抑制算法[J].计算机与现代化,2020(08):109-113.

[7]黄新友,毕喜军. 基于域名的FFSN僵尸网络动态抑制技术[J].电信科学,2017,33(S2):158-161.

[8]靳冲. Fast-Flux 网络检测与分析技术研究[D]. 北京: 中国科学院大学, 2011.

[9]李建. 基于流量的P2P僵尸网络检测[J]. 计算机时代, 2016, 000(005):45-48.


本文转载自: https://blog.csdn.net/m0_56705273/article/details/127622866
版权归原作者 哼哼唧唧007 所有, 如有侵权,请联系我们删除。

“僵尸网络检测和抑制方法”的评论:

还没有评论