基于重组的半分布式僵尸网络抗打击技术

时间:2022-10-04 03:56:31

基于重组的半分布式僵尸网络抗打击技术

摘 要:

僵尸网络防御技术的不断涌现对僵尸网络生存能力提出了严峻的挑战,为了改善僵尸网络的生存能力,从攻击者角度提出一种适用于半分布式僵尸网络的基于重组的抗打击技术。通过对僵尸网络生存状态的感知和对存活节点的探查,实现了半分布式僵尸网络在遭受严重打击导致拓扑结构破碎情况下,寻回存活节点并将其重组为新的僵尸网络。通过实验验证了该技术的有效性,证明其能够有效增强半分布式僵尸网络的生存能力。

关键词:半分布式;僵尸网络;生存能力;重组;抗打击

0 引言

僵尸网络(Botnet)是一种用于恶意目的的大规模受控网络,僵尸网络被广泛应用于分布式拒绝服务(Distributed Denial of Service, DDoS)攻击、蠕虫传播、网络钓鱼等多种攻击活动[1-3]。根据拓扑结构的不同,僵尸网络可以分为三类:集中式僵尸网络、全分布式僵尸网络以及半分布式僵尸网络[4],其中半分布式僵尸网络(SemiDistributed Botnet)是近年来新出现的一类新型僵尸网络,具有适应性好、生存力强等优点,但是随着僵尸网络防御技术的进步,半分布式僵尸网络仍有可能遭到来自防御方的重大打击以致于丧失正常功能。

本文通过对现有半分布式僵尸网络和僵尸网络抗打击技术进行研究,提出一种基于重组的半分布式僵尸网络抗打击技术,在半分布式僵尸网络遭受打击后网络结构破碎的情况下,将剩余节点重组为一个新的僵尸网络,以提高半分布式僵尸网络的抗打击能力。

1 相关研究

1.1 半分布式僵尸网络

半分布式僵尸网络可以看作是集中式僵尸网络和全分布式僵尸网络的综合体,这种僵尸网络使用具有固定IP地址、无防火墙阻碍且性能较高的节点作为Servent Bot,Servent Bot既是服务端亦是客户端,它们组成一个全分布式网络(本文称之为基干网);而各Client Bot(由于网络地址转换(Network Address Translation,NAT)或防火墙过滤等原因无法从因特网访问的节点)只作为客户端使用,从Servent Bot处获取命令[5]。半分布式僵尸网络如图1所示。

图片

图1 半分布式僵尸网络拓扑示意图

根据基干网结构的不同,半分布式僵尸网络可以分为两类:

1)基干网为全分布式结构化网络,如典型的Kademlia半分布式僵尸网络[6],其优点是可以利用海量的合法下载软件网络流量实现良好的隐蔽性,缺点是可能受到索引毒化攻击(Index Poison)和女巫攻击(Sybil Attack)等来自防御方的威胁[7-8]。

2)基干网为全分布式非结构化网络,如典型的Wang 等提出的Hybrid Botnet[5],其优点是可以抵御索引毒化攻击和Sybil攻击,具有较强的鲁棒性。

1.2 僵尸网络抗打击技术

打击僵尸网络的目的是破坏其C&C机制,使之无法正确地受到来自控制者的命令,具体的方式可以分为两种:首先是路由干扰,通过对全分布式结构化僵尸网络的目标区域[9]实施索引毒化攻击或Sybil攻击,使僵尸网络出现路由错误;其次是节点摘除,使用杀毒软件或其他安全工具清除僵尸网络程序。

对于索引毒化攻击,文献[6,10-11]等提出的僵尸网络均采用RSA、椭圆曲线密码(Elliptic Curves Cryptography,ECC)等公钥密码体制实现对路由信息的认证,确保节点收到的路由信息确系来自控制者,由于现有公钥密码体制的安全性很高,这些僵尸网络均可以有效应对索引毒化攻击。

对于Sybil攻击,文献[11]提出了一种基于节点身份认证的防御方式,僵尸网络节点均持有一个Sybil节点所没有的对称密钥K,节点在试图与一个“新”节点(之前未与本节点进行过通信的节点)通信之前,使用K将本节点IP、ID所组成的字段进行加密并发送给“新”节点。对方收到该字段后使用K对其负载进行解密,如解密所得结果与该节点IP、ID相符,则对方是僵尸网络节点,否则即认为对方是Sybil节点。在K的机密性得到保证的前提下,该方案可以有效识别Sybil节点,但防御方有可能通过对僵尸网络程序的逆向分析获取K,使得Sybil节点可以冒充僵尸网络节点,从而使认证机制失效。

对于节点摘除,大多数非集中式结构的僵尸网络均能较好地容忍。但在节点摘除数量较大时,僵尸网络原有拓扑结构将被割裂,相当一部分的节点由于不能收到命令,无法发挥应有的作用。

无论对僵尸网络的路由干扰还是节点摘除,其本质都是使原有僵尸网络形成的连通图破碎为一系列联通子图,很多节点尽管仍然存活,但由于与控制者的联系被切断,无法收到命令,造成了僵尸网络节点资源被大量浪费。

目前在僵尸网络抗打击方面的研究主要集中于对打击的预防和容忍,而对遭受打击之后如何将剩余节点重组则缺乏研究。

第10期 朱俊虎等:基于重组的半分布式僵尸网络抗打击技术 计算机应用 第33卷

2 僵尸网络生存状态的感知

对遭到打击的僵尸网络实施重组的前提是控制者能够感知到僵尸网络的生存状态,即是否被打击以及造成损失的大小。如果控制者发现在发出命令之后,收到命令的节点个数大大减少,则说明僵尸网络遭受了严重的打击,有必要进行重组。对僵尸网络生存状态的感知主要分为两个步骤:首先是获取僵尸网络在线节点数量,其次是根据僵尸网络在线节点的数量判断僵尸网络是否遭到了打击。

2.1 获取僵尸网络在线节点数量

与集中式僵尸网络不同,半分布式僵尸网络的大多数节点都不直接从控制者的C&C服务器获取命令,因此控制者无法直接通过记录C&C服务器收到的请求数来获知僵尸网络在线节点数,而必须命令在线的节点主动向控制者进行反馈。

最简单的方案是向所有节点发出命令,命令它们向一个传感器节点(Sensor)进行反馈。这种做法的缺点是所有节点都必须进行反馈,如果防御方能够监控Sensor的通信,则会准确识别僵尸网络的每一个节点,造成僵尸网络的暴露。这里可以采用Wang在文献[5]中提出的概率反馈法,即命令每个节点以较小的概率p向Sensor进行反馈,假设僵尸网络此时共有N个节点在线,则进行反馈的节点数量期望为k=N*p,控制者可以根据收到的反馈数量反推在线节点数量,概率反馈法大大减少了向Sensor进行反馈的节点数。

2.2 评估僵尸网络生存状态

僵尸网络在正常情况下的在线节点数量不是恒定的,而是随着时间推进呈现周期性变化,这主要是由于节点主机开关机所致的。Dagon等在文献[12]中指出僵尸网络在线节点数是时间t的函数,函数的具体形式随僵尸网络规模及节点分布地域的不同而不同。

假设在僵尸网络规模相对稳定的情况下,控制者通过对僵尸网络在线节点数量的长期取样,得到僵尸网络在线节点数为函数f(t),同时取一临界系数α(α

3 基于重组的半分布式僵尸网络抗打击技术

将受到打击的半分布式级僵尸网络重组需要如下两个步骤:首先,探查存活的Servent Bot,确定新僵尸网络的Servent Bot列表;其次,通过向存活Servent Bot发送新的僵尸网络程序(新的程序须实现与Client Bot的通信),实现僵尸网络的重组。

3.1 探查存活Servent Bot

实现对存活Servent Bot探查的前提是控制者维护一份Servent Bot列表S,这可以通过在僵尸网络规模稳定时在不同时段(避免在某一时段节点下线导致的漏报)若干次反馈命令来实现(命令所有Servent Bot向Sensor反馈)。

在已经受到打击的情况下,僵尸网络拓扑结构被割裂,在此情况下,控制者只能主动探测存活的Servent Bot,由于半分布式僵尸网络的Servent Bot是不被屏蔽的,可以被主动访问,因此探查存活Servent Bot是可行的,而且不会导致防火墙报警;而对于Client Bot,则不进行探查。

最简单的探查方式是使用控制者直接对Servent Bot列表中的每一项依次进行探测,但如果某些Servent Bot(无论存活与否)受到了防御方的监视,则会导致控制者暴露。因此本文采用了探测的方式,步骤如下:

1)控制者在尚能控制的Servent Bot中选择一些作为探测点,它们的集合为D={d1,d2,…,dk}。

2)将Servent Bot列表S等分为k个互不相交的子集S1,S2,…,Sk,分别发送给D中的每一个探测点,并指定t个探测时段,每一个探测点需要在每个探测时段对控制者给定的所有Servent Bot进行探测。某个探测点j在第i次探测得到一个存活Servent Bot集合Aji={s1,s2,…}。

3)探测结束后,探测点向控制者反馈Servent Bot存活情况。

3.2 重组僵尸网络

重组僵尸网络需要向存活Servent Bot发送新的僵尸网络程序,而为了减少控制者被发现的可能性,该步骤同样须由节点来完成。与探查存活Servent Bot步骤类似,控制者在尚能控制的Servent Bot中选择一些作为点并向它们分派任务,每个点向若干存活Servent Bot发送新的程序。

如果新僵尸网络的基干网是全分布式非结构化网络,可以采取预填充Servent Bot友邻节点表的方式来简化僵尸网络的初始化过程,其步骤如下:

1)假设控制者所能够获知的存活Servent Bot个数为N,每个Servent Bot的友邻节点表Peer_List可容纳节点数为n,则对于每个存活Servent Bot,在N中随机选择n个(其中不包括自身)作为自己的Peer_List。

2)在更新僵尸网络程序的同时,控制者将已填充的Peer_List发送给每个存活Servent Bot,即完成初始化。

这样的初始化过程有两个优点:首先,省去了节点间的相互通信,提高了僵尸网络的隐蔽性;其次,与文献[5]中的感染/重复感染方案相比,Servent Bot节点度数较为均匀,不存在大度数节点,有助于提高僵尸网络生存性。

4 实验验证

本文的实验验证主要着眼于两个方面,首先是验证重组方案能够在半分布式僵尸网络受到打击之后使得控制者能够重新获得对存活节点的控制;其次是当重组后的僵尸网络基干网为全分布式非结构化网络时,预填充友邻节点表的初始化方式能够改善重组后僵尸网络的Servent Bot节点度数分布。

4.1 对存活节点的重新控制

实验用僵尸网络为Kademlia半分布式僵尸网络,节点规模为2000,按照文献[5]中的假设,Servent Bot所占比例为1/4,每个Client Bot与8个Servent Bot相连。不考虑节点主机关机导致的节点正常下线,并假设僵尸网络规模稳定不再扩充,分别对其进行以下几种打击:

经过打击后,使用本文提出的重组方案将原有僵尸网络重组为Hybrid僵尸网络,对重组后控制者能够控制的节点占存活节点比例进行考察,同时与不进行重组时控制者能够控制的存活节点比例进行对比。所得结果如表1所示。

由表1可知,在遭受Sybil攻击后进行重组,可以寻回所有存活节点;而在大量Servent Bot被摘除时,只能寻回一部分存活节点,这是由于某些Client Bot的Peer_List中所有Servent Bot都已被摘除所致。由实验结果可知,本文的重组方案对于应对Sybil攻击非常有效,应对节点摘除攻击也有一定的效果。

4.2 重组后Servent Bot度数分布

以攻击Ⅲ为例,存活节点个数较被攻击前不变,仍为2000,其中Servent Bot数量为500。仅考虑Servent Bot之间的连接,被攻击前Servent Bot入度分布如图2所示:X轴表示入度被划分为11个范围:1~10,11~20,…,91~100和100以上;Y轴表示该范围内的节点个数。可以看出大多数节点的入度都在10以内,少数节点入度较大,最大入度值为187,而整个基干网的平均入度为20。由于少数大度数节点的存在,如防御方对这些节点进行跟踪,则会导致大量节点暴露。

重组之后,基干网改为全分布式非结构化网络,Servent Bot的Peer_List大小为20,Servent Bot入度分布如图3所示,显然重组以后Servent Bot入度分布非常均匀,大约在20左右浮动。

5 结语

在僵尸网络防御技术日臻成熟的情况下,开展僵尸网络抗打击技术研究极为必要。本文针对半分布式僵尸网络的特点,设计出一种基于重组的半分布式僵尸网络抗打击技术,在僵尸网络被打击导致拓扑结构破碎的情况下,将存活的节点重新组织为一个新的僵尸网络,提高了半分布式僵尸网络的生存力。经过实验验证,证明了本文提出的方案可以很好地应对Sybil攻击,对节点摘除攻击也有较好的效果。

本文提出的抗打击技术需要僵尸网络控制者主动感知僵尸网络生存状态并采取重组措施,尚无法实现僵尸网络生存状态的自感知与自修复,同时仅适用于半分布式僵尸网络。在未来的工作中,开发适用于多种结构僵尸网络的自修复技术,尚需要进一步的研究。

参考文献:

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

[2] BREZO F, PUERTA J, SANTOS I, et al. C&C techniques in Botnet development[C]// International Joint Conference CISIS12ICEUTE 12SOCO12 Special Sessions. Berlin: Springer, 2013: 97-108.

[3] SCANLON M, KECHADI T. Peertopeer botnet investigation: A review[M]. Berlin:Springer, 2012: 231-238.

[4] LIU J, XIAO Y, GHABOOSI K, et al. Botnet: Classification, attacks, detection, tracing, and preventive measures[C]// Proceedings of the 2009 Fourth International Conference on Innovative Computing, Information and Control. Washington, DC: IEEE Computer Society, 2009:9.

上一篇:基于抗体浓度的实时网络风险控制系统的设计与... 下一篇:基于随机评价机制的量子粒子群优化算法及其参...