一种面向本地网络Bot的命令控制信息获取方法
2017-10-26郭晓军
郭晓军
摘要:本地网络同类型Bot获取命令控制信息过程存在网络流量相似性,容易被检测与识别。针对该问题,该文提出一种基于AKP广播报文的本地网络同类型Bot命令控制信息获取方法,该方法仅允许产生的本地网络同类型Bot代表获取和分发命令控制信息,降低了网络流量相似性,提高了该过程的隐蔽性。
关键词:僵尸网络;命令控制信息;Address Resolution Protocol
中图分类号:TP309 文献标识码:A 文章编号:1009-3044(2017)22-0054-02
1概述
Botnet是由一组被特制恶意代码感染计算机、智能手机等终端设备构成的可控逻辑网络平台。这些被感染的设备称为Bot。Botnet控制者只有向Bot发送命令控制(Command andControl,C&C)信息才能实现攻击或破坏功能。因此,Bot能够准确地获取命令控制信息是Botnet发挥作用的关键所在。
目前已发现的多种类型Botnet中,其Bot获取C&C信息的方法仍然是Bot直接与命令控制服务器通信的方式。但当本地局域网内同时存在同一类别Botnet的多个Bot时,这些Bot都会与相同或相似的命令控制服务器取得通信,在本地网络内会产生较为相似的流量信息(如IP地址、流数目、DNS等),这些信息会被网络流量行为相似性检测、IP地址相似性检测等方法所识别,暴露出本地网络中这些同类Bot的位置,从而暴露出整个Botnet,导致Botnet无法正常运行。
针对上述问题,本文提出一种基于ARP协议(Address Reso-lution Protoc01)的面向本地网络Bot命令控制信息获取方法CIARP,其核心思想是首先在本地网络内产生一个同类Bot的代表BotL,然后仅由该代表BotL与命令控制服务器进行通信,在获取C&C信息后,BOtL通过本地网络的ARP报文将所获取的C&C信息发送给本地网络的其它Bot,能有效避开行为相似性检测,提高了同类Bot获取C&C信息过程的安全性。
2CIARP方法过程
CIARP方法主要是BotL通过利用ARP报文将所获得的C&C信息发送给本地网络其它Bot,主要因此包括notL产生过程与利用ARP协议发送C&C信息过程。
2.1Bok产生过程
BotL是整个本地网络内所有同类型Bot的代表,也是仅允许与命令控制服务器通信的唯一Bot,其作用是先从命令控制服务器上安全获取C&C信息,然后再将C&C信息发送给本地网络内的其他Bot。这样就能减少与命令控制服务器的本地网络内Bot数量,从而极大降低被流量行为相似性识别的概率,避免了本地网络内的Bot被暴露的可能性。
关于选择本地网络内的哪个Bot作为BotL,有很多方法,如采用选举方法、指派方法等。本文此处借用ARP报文来进行产生,图1给出ARP报文格式,具体过程如下:
(1)每间隔时间T,本地网络内所有Bot都发送包含自己IP地址的ARP广播报文。即每个Bot将自己的IP地址、MAC物理地址填在图1中对应的位置,同时目的MAC地址和目的IP地址可以使用本地网络的网关地址填充,如图2所示,以方便伪装在本地网络其它ARP流量中。鉴于僵尸网络存在周期性特点,间隔时间T的大小,可设置在周期内的某个固定时刻来确定。
(2)所有本地网络内的Bot接收(1)中来自其他Bot构造的ARP广播报文,并且读取报文中的源IP地址,并与自身IP地址进行比较排序。由于本地网络内的BotIP地址网络号相同,因此为简单起见,本文此处选出主机号最大或最小的IP地址所对应的Bot作为BotL。
至此,本地网络内同类Bot的代表BotL被确定出来,且仅允许BotL与命令控制服务器通信以获取C&C信息。为保证获取C&C信息的安全性,可使用较为隐蔽的方式来获取,如基于信息隐藏、基于加密等方法。
2.2C&C信息发送过程
当BotL获取到C&C信息后,可能会包含有多条不同的指令信息,这些指令信息组合成列表,对于该列表中每项,可再次通过构造ARP广播报文而發送给本地网络的其他Bot。
根据图1可知,正常ARP广播报文格式中分为9个字段,共计28个字节。为更好地利用ARP广播报文向本地网络内的其他Bot发送C&C信息,本文对ARP广播报文进行重新构建,将其分为4个字段,分别为ID、SegID、FIN以及Content字段,其含义如表1所示。Bot。发送C&C信息列表中某条指令的过程如下:
Step1:BotL将C&C信息列表中的所有指令赋予唯一的编号IDi,
Step2:BotL从C&C信息列表读取一条指令IDi,构造空的ARP广播报文,使用IDi作为该报文的ID字段。
Step3:判断指令IDi的内容长度Length(IDi)是否大于23字节,如果不大于,则转Step4,否则将指令IDi的内容利用式(1)分割为N个部分,再构造Ⅳ个空的子ARP广播报文,将编号1~N分别填入此Ⅳ个报文的SegID字段,1~N-1个子报文的FIN字段设置为0,且Content字段填人指令IDi内容的1~N-1部分填入,然后再将第N个报文的FIN字段设置为1,并将指令IDi内容N部分填入Content字段。至此,指令IDi的内容就被N个ARP广播报文所承载,转Step5。
Step4:将ARP广播报文的SegID设置为0,FIN设置为1,Content设置为指令IDi的内容。
Step5:发送所构造的所有ARP广播报文,转Step2以处理下一条C&C信息指令。
其他Bot在接收到来自BotL发送的ARP广播报文后,再按照表1的格式读取报文内容,恢复出所包含的指令,以完成C&C信息的获取过程。
3结论
为保证本地网络内的Bot较为安全地获取C&C信息,本文给出基于ARP广播报文的命令控制信息的发送方法,能有效伪装在本地网络的ARP流量中,不易被发觉,有效提高了Bot获取C&C信息过程的安全性。endprint