《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 僵尸网络如何躲避检测机制的研究
僵尸网络如何躲避检测机制的研究
2014年微型机与应用第12期
杨智兴
安徽理工大学 计算机科学与工程学院,安徽 淮南
摘要: 僵尸网络是一种新兴的互联网威胁,其数量、规模和危害级别正在迅速增长,已经使全球网络进入新的警戒状态。僵尸网络(BotNet)作为攻击者的一个攻击平台,可以发起多种攻击事件,无论对整个网络还是个人用户都会造成极大的威胁。僵尸网络被黑客用来进行分布式拒绝服务攻击(DDos)、扩散垃圾邮件、植入恶意软件、窃取敏感信息、安装广告条等[1]。
Abstract:
Key words :

  摘  要: 近几年来,僵尸网络给网络带来了巨大的安全威胁,僵尸网络总是小心翼翼地隐藏自己来增加自己的生存概率及生存时间。在给出僵尸网络的定义的基础上,从Bot、Botmaster、C&C三个方面研究僵尸网络是如何躲避检测机制的。

  关键词: 僵尸网络;入侵检测

  僵尸网络是一种新兴的互联网威胁,其数量、规模和危害级别正在迅速增长,已经使全球网络进入新的警戒状态。僵尸网络(BotNet)作为攻击者的一个攻击平台,可以发起多种攻击事件,无论对整个网络还是个人用户都会造成极大的威胁。僵尸网络被黑客用来进行分布式拒绝服务攻击(DDos)、扩散垃圾邮件、植入恶意软件、窃取敏感信息、安装广告条等[1]。

  学者们对僵尸网络给出了各自不同的定义。国家工业信息化部发布的《木马和僵尸网络监测与处置机制》和Xie Yinglian等人[2]定义僵尸网络为:由攻击者通过控制服务器控制的受害计算机群。然而,控制服务器不是僵尸网络的必要组成部分,例如,P2P僵尸网络中没有控制服务器。Gu Guofei等人[3]定义为:僵尸网络是可被攻击者通过命令控制信道远程控制的可协同的计算机群,该定义覆盖了僵尸网络两个本质属性(“可控性”和“协同性”),因此该定义应该是比较准确的[4]。

  本文对僵尸网络的定义是:僵尸网络(BotNet)是攻击者出于恶意目的、传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。从定义中可以看出,僵尸网络由Bot、Botmaster、C&C三个重要部分组成,因此文中将从Bot、Botmaster、C&C三方面研究僵尸网络是如何躲避检测机制的。

  1 在Bot主机上躲避检测

  对于Bot来说,长时间保持对Botmaster可用,必须采取一定的机制来躲避基于主机的检测。

  (1)二进制代码混淆机制:僵尸网络通过在感染了Bot-binary的主机上寻找漏洞进行扩散。Bot-binary用整合机制来协调与僵尸主控机接收命令。为了避免被基于主机安全应用策略检测到,一些躲避检测的技术被应用到隐藏Bot-binary中。多态性的使用使基于模式的检测方法失效,多态性是指Bot-binary以几种不同的形式存在的能力,可以通过加密实现这种效果,也可以通过打包的方式来实现。打包是指对文件进行压缩,对恶意软件来说,打包有助于混淆恶意代码。

  虽然代码多态性成功地应用于躲避基于模式的检测方法,但是它仍然可以被基于记忆的检测方法所检测到。在被执行时,二进制代码都会被解密或者解压缩成相同的代码,这个问题被代码的编写者所注意,其允许代码被改写,但是语义等价的代码可以对抗基于记忆的检测方法。

  (2)反分析:研究者都是通过在虚拟机或者沙箱里运行僵尸代码来研究僵尸网络的行为的,另一种研究僵尸网络的方法是通过蜜罐技术,蜜罐被设计成独立运行并且能阻止僵尸网络的传播。为了躲避这些分析,一些僵尸代码在被执行前先检查运行环境,如果检测出处于虚拟机或者沙箱内,僵尸代码将不会执行或者改变其原有的功能来躲避分析。但这种躲避检测的技术使用率正在下降,主要有以下两方面的原因:①正常的程序在运行前不会检测运行环境;②虚拟机现在被广大的普通用户所喜爱,不再局限于安全分析。

  (3)关闭安全软件:在成功感染主机后,僵尸病毒会关闭受害机上已经存在的安全软件,如果受害机同时还感染了其他的恶意软件,那些恶意软件将会被移除。例如,Conficker感染主机后,将会关闭一些系统安全服务并且修改注册表,其拥有的一个域名黑名单及进程黑名单用以阻止主机访问一些安全网站及一些安全程序的运行。

  (4)Rootkit技术:是一个通过破坏被感染主机正常的系统行为来隐藏其他程序进程的软件。Botmaster可以在存在安全漏洞的主机上安装Rootkit使其获得访问权限,这样当其进行恶意活动时可以绕过安全认证和授权。结果,传统的杀毒软件将不能检测到该软件。

  2 在命令与控制信道服务方面躲避检测

  僵尸网络不同于其他恶意软件在于控制者可以通过命令与控制信道控制僵尸主机,这意味着命令与控制信道是僵尸网络的核心,这同样也可成为僵尸网络的致命点。因为,僵尸网络的控制者要花大量的心思来隐藏命令与控制信道。

  (1)IP-Flux:Botmaster利用IP-Flux频繁改变其C&C服务器的域名所对应的IP地址,这有助于避免IP被屏蔽掉,这种技术也被称为Fast-Flux服务网络(FFSN)。Fast-Flux技术[5]为一个域名配置多个IP地址,并且这些IP地址以非常快的频率更换,从而实现域名到IP地址的动态映射。IP-Flux提供了便利的动态DNS服务(DDNS),如DNS一样,DDNS提供动态域名与IP之间的转换。与使用DNS仅处理静态IP地址相比,DDNS可以使用动态IP地址操作。僵尸网络利用DDNS来保持(C&C服务器)域名到IP地址映射的实时性,Fast-Flux分为single-flux和double-flux[5]。

  (2)Domain-Flux:Domain-Flux使多个域名同一个IP地址相关联,这样可以避免基于URL的过滤和检测。Domain-Flux既可以通过已有的DNS服务提供域通配符,也可以通过利用域名生成算法实现,域通配符允许在域名前加上随机的字符串与同一个IP地址相关联,例如,假设aust.com.cn与10.1.1.1相关联,通过域通配符,*.aust.com.cn同样与10.1.1.1相关联,其中*可以是任意字符。另外,Bot可以通过算法来生成域名,这些算法周期性地产生一列域名,通常会包含非常多的域名,但这些域名在相同的时间内并非都是活动的,Bot通常依次尝试连接这些域名,并把识别出来的域名作为C&C服务器,被识别为活动的域名将会被标记为域名服务器。随机连接几个域名如果都提示DNS Non-Existent Domain,那么电脑极有可能被僵尸网络所感染。Botmaster知道在给定的时间内哪一个域名将会被Bot访问,因为其熟知域名生成算法,会提前注册Bot将要访问的域名。

  3 隐藏C&C通信

  检测C&C通信有许多意义:(1)检测C&C通信能够枚举出僵尸主机然后对其杀毒;(2)能够暴露C&C服务器的位置,通过关闭C&C服务器能够削弱整个僵尸网络,通过分析Botmaster与C&C之间的通信能够找出罪魁祸首——Botmaster;(3)通过分析C&C通信可以帮助防御者理解BotNet是如何工作以及如何摧毁整个僵尸网络的。由于这些原因,Botmaster通过许多机制来隐藏C&C通信。

  (1)加密:Botmaster通过加密C&C通信来躲避检测,通过加密技术,使BotNet躲过了基于内容分析的检测机制,迫使研究者不得不从诸如包到达时间或包长度等方面去分析。从简单的模糊混淆技术到复杂多变的加密技术,BotNet已经使C&C通信变得几乎坚不可摧,Nugache号称是最先进的僵尸网络之一,其C&C通信就采用了先进的加密技术。

  (2)协议控制:有些僵尸网络使用隧道协议来隐藏C&C通信,通常防火墙允许HTTP流量,因此,Botmaster便用HTTP隧道来进行C&C通信。另一个大的趋势是利用IPv6隧道进行通信,因为现在大多数操作系统都默认支持IPv6协议,但许多中间设备不识别IPv6流量。

  (3)流量控制:一个长期活跃的C&C通信可能会暴露僵尸网络,而僵尸网络会故意在相对较长的一段时间内制造小批量的C&C的流量来躲避基于统计的检测技术的检测。

  (4)新的通信技术:僵尸网络使用不易被察觉的C&C新型通信技术,如facebook和推特等这种社交网站,也已经被BotNet作为C&C通信之用。一种窃取用户信息的BotNet——Brazen就是利用推特来传播恶意链接的。此外,僵尸网络可以利用任何已经存在的技术来对C&C通信进行隐藏,如图像技术等。

  4 隐藏Botmaster

  Botmaster是僵尸网络中最应受保护的,失去了Botmaster,整个僵尸网络将会处于无控制状态。此外,Botmaster有可能面临在监狱服刑或巨额罚款的后果,因此,Botmasters利用复杂的机制来逃避检测。

  设立跳板主机:Botmaster一般为了隐藏自己的真实身份,通常会在C&C服务器之间和它们自己之间设立一定数量的中间主机,称作跳板主机。这些跳板主机能够提供网络重定向服务,例如HTTP代理或SOCKS代理和SSH服务等,跳板主机本身就是被Botmaster入侵的主机,Botmaster喜欢将跳板主机设立在对于网络犯罪立法比较宽松的国家,这样即使跳板主机被发现也会受到相对较轻的处罚。

  本文在给出僵尸网络定义的基础上,从Bot、Botmaster、C&C这三个方面研究了僵尸网络是如何躲避检测机制的,使读者对僵尸网络以及僵尸网络是如何躲避检测有进一步的了解。防御者可以从僵尸网络躲避检测机制的反向入手研究如何检测僵尸网络。

  参考文献

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

  [2] Xie Yinglian,Yu Fang,ACHAN K,et al.Spamming botnets:signatures and characteristics[C].Proceeding of ACM SIG-COMM 08,New York:ACM,2008:171-182.

  [3] Gu Guofei,PERDISCT R,Zhang Junjie,et al.BotMiner:clustering analysis of network traffic for protocol-and struc-ture-independent botnet detection[C].Porceeding of the 17thUSENIX Security Symposium,Berkeley,CA:USENIX,2008:269-286.

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

  [5] 康乐,李东,余翔湛.基于SVM的Fast-flux僵尸网络检测技术研究[J].智能计算机与应用,2011(6):24-27.


此内容为AET网站原创,未经授权禁止转载。