企业网的僵尸网络检测和防御
2015-01-01
0 引言
僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染僵尸(bot)程序病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。攻击者(botmaster)通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。攻击者利用大量的僵尸主机可以进行各种网络攻击活动,如对某个特定的站点发起DDoS(Distributed Denial of Service)攻击、发送大量的垃圾邮件、窃取用户的敏感信息等。黑客们已经越来越喜欢使用僵尸网络发起攻击,因为僵尸网络攻击的隐蔽性、破坏性以及威胁程度远远大于单一的网络攻击模式。
僵尸网络目前已经成为威胁企业网的重大安全问题之一,并且成为网络安全领域中讨论和研究的热点问题之一。网络安全商fortiguard labs的网络安全研究报告指出,虚拟货币的僵尸挖矿ZeroAccess已经成为全球网络当下主要威胁。ZeroAccess的主要攻击手段是click fraud和virtual mining,通过控制大量僵尸主机进行挖矿活动,近期由于比特币等虚拟货币的价值飙升,ZeroAccess的获利可能出乎想象。其实ZeroAccess的初想并不新奇,早在2011年6月,赛门铁克就发出警告,僵尸网络正在参与到比特币挖矿中。这会占用受害者的计算机运算能力、消耗额外的电力并导致主机温度升高。一些恶意程序也大量利用 CPU的并行计算能力进行挖矿。在2011年8月,比特币僵尸挖矿网络被发现,被病毒感染的Mac OS也被发现进行比特币的挖矿。2014年黑帽大会其中有一个主题为“僵尸网络和广告活动”讲述了僵尸网络被大量用于互联网广告业。众所周知互联网投放广告主要是看点击量的,而使用僵尸网络以后点击量也就再也不是问题,从而使广告投放商耗费大量的金钱在一个虚假的点击量很好的广告上。
目前大部分的研究都是针对僵尸网络检测防御的理论方面的,没有一个具体的针对企业网来做的防御或者是避免的方法,本文介绍了企业网应该怎么来降低僵尸网络带来的危害。
1 僵尸网络的程序结构
僵尸网络按照命令与控制机制的不同可以分为:IRC(Internet Relay Chat)协议僵尸网络、HTTP(Hypertext Transport Protocol)协议僵尸网络以及P2P(Peer to Peer)协议僵尸网络。IRC协议僵尸网络和 HTTP协议僵尸网络都属于 C/S(Client/Server)僵尸网络结构,都是具有核心服务器的,控制命令都需要通过核心服务器进行发布,二者不同的是IRC协议僵尸网络控制命令通过IRC协议发布,HTTP协议僵尸网络控制命令通过HTTP协议发布。这种控制机制有一个严重的缺陷,容易被检测发现,并且整个僵尸网络主要依赖核心服务器,当核心服务器被关闭那么就会导致整个僵尸网络崩溃。P2P协议僵尸网络使用P2P协议发布命令,僵尸网络中的所有节点都既是服务器也是客户端,客服了IRC协议和HTTP协议僵尸网络的缺点。
僵尸网络的结构如图1所示。可分为主体功能模块和辅助功能模块。
图1 僵尸网络程序结构
主体功能模块包括命令与控制模块、通讯模块以及传播模块。其中命令与控制模块是整个僵尸网络程序的核心,负责解析控制器或者邻居节点发送的控制命令,解析完成以后发送给相应模块执行;通讯模块负责与控制器(邻居节点)进行信息交互,例如接收控制器(邻居节点)的控制指令并把该控制指令向其他邻居节点发送、向控制器(邻居节点)反馈命令执行的结果、P2P僵尸网络中还负责与邻居节点交换邻居节点列表;传播模块负责通过各种方式传播僵尸网络程序,使新的主机加入僵尸网络接受攻击者的控制,不断扩大僵尸网络的规模。
辅助功能模块包括主机控制模块、信息窃取模块、下载与更新模块以及躲避检测与对抗模块。主机控制模块主要负责完成主体功能模块中的命令与控制模块解析的命令,这些命令由不同的子模块完成,例如DDoS攻击模块、发送垃圾邮件模块以及点击量控制模块等;信息窃取模块主要负责获取受控主机的信息和受控主机上保存的有价值信息,例如受控主机的资源、各个网站的账号口令、电子邮件联系人信息等;下载与更新模块为攻击者提供更新僵尸主机上面僵尸程序的功能,使得僵尸网络程序不断完善以便让攻击进行更加强大的攻击功能;躲避检测与对抗模块负责识别僵尸主机的系统环境,躲避检测工具以及防止病毒分析师的分析,其目的是为了让僵尸网络程序能够持久的存在僵尸主机上,提升僵尸网络的生产能力。
2 僵尸网络的工作机制
根据僵尸网络的生命周期可以将其分为4个阶段:传播阶段、感染阶段、通讯阶段以及攻击阶段。总体工作机制如图2所示。
图2 僵尸网络工作机制
2.1 传播阶段
僵尸网络不断传播僵尸程序到新的主机,不断扩大僵尸网络规模的过程即为僵尸网络传播阶段。僵尸网络的传播方式主要分为主动传播和被动传播。主动传播方式需要借助于传统的蠕虫病毒自动进行传播,主要是通过攻击系统漏洞、扫描后门程序等方式进行自动传播,著名的bot样本AgoBot就实现了bot程序的自动传播,对于有些重要的节点或者系统自动传播达不到效果的情况下,攻击者一般采用工具进行后门或者漏洞扫描后动态破译密码等方式进行攻击;被动传播主要通过病毒邮件、恶意网站脚本、特洛伊木马以及即时通信软件等方式进行传播。
2.2 感染阶段
僵尸程序传播到新的主机以后把其僵尸程序代码植入新的主机,让新的主机加入僵尸网络的过程称为僵尸网络的感染阶段。感染阶段的基本过程如下:
(1)新的主机收到被传播的僵尸程序以后进行自动运行或者是人为安装;
(2)僵尸程序在新的主机上注入其启动项,并修改其注册表等信息,完成以后即成为新感染节点;
(3)新感染节点发出加入网络的请求命令;
(4)收到请求的僵尸主机回复其一个命令以便获取到新感染节点的具体信息;
(5)新感染节点回复命令,告知僵尸主机它的具体信息;
(6)僵尸主机将新感染节点的相关信息进行记录,并将自己的邻居节点列表同步到新感染的节点;
(7)僵尸主机向自己其他的邻居节点发出通告,告知有新的节点加入到僵尸网络中来。
上述过程对于IRC协议和HTTP协议僵尸网络,过程(4)、(6)、(7)由C&C服务器完成。
2.3 通讯阶段
在 P2P协议僵尸网络中通讯阶段是指僵尸网络中僵尸主机自发进行信息交互的过程[6];对于IRC协议和HTTP协议僵尸网络通讯阶段是指C&C服务器向僵尸主机下发命令和僵尸主机向C&C服务器回复命令执行情况的过程。僵尸网络为了保持其僵尸主机能够快速的接收攻击者的命令,必须进行频繁的信息交互以便维持僵尸网络的稳定性和适应性。僵尸网络中通讯机制的好坏直接决定了僵尸网络的稳定性和适应性。
2.4 攻击阶段
僵尸主机通过通讯阶段收到控制者发出的命令,按照命令进行攻击的过程称为攻击阶段。之前的传播阶段、感染阶段以及通讯阶段都是在为攻击阶段做准备。攻击阶段的攻击主要分为:拒绝服务攻击、发送垃圾邮件、窃取敏感信息、僵尸网络挖矿等[1]。
3 常见的僵尸网络检测技术
对僵尸网络研究的难点问题之一就是僵尸网络的检测,目前主要的检测技术包括基于流量分析的检测技术、基于密网捕获的检测技术以及反向检测技术等。基于流量分析检测技术适合于互联网中一个局域网内的主机进行主动持续性的检测;密网捕获技术适合于对整合互联网环境进行被动的检测;反向检测技术主要是根据僵尸网络造成的危害后果进行反向追溯这个僵尸网络。
基于流量分析的检测技术是持续性的对用户发起的网络数据报文进行检测,对检测结果进行关联分析来发现僵尸网络的活动。其中关联分析可以分为3个层面:纵向关联、横向关联以及因果关联。纵向关联的关键技术[8]是构建一个僵尸网络感染序列模型,这个模型通过追踪内部主机和外部网络之间双向通信流量来识别感染过程的不同阶段,将识别的结果汇总起来提交到提前构建的模型的分析引擎,分析引擎对汇总结果进行纵向关联形成会话链,然后再与之前构建的模型进行匹配,判断局域网内是否存在僵尸节点。纵向关联的局限性是感染序列模型是预定义好的,且对于感染过程各个阶段的检测手段是基于特征的。横向关联的关键技术[8]是僵尸节点的一些特定活动规律是由相似的代码完成的,这些代码具有相关的逻辑性,因此分析不同主机流量间的相似性可以用来检测僵尸节点。利用横向关联来实现的检测系统有BotSniffer和BotMiner。横向关联相对纵向关联的优势是不需要预定于僵尸网络的感染模型,可以发现新的僵尸网络。因果关联的关键技术[8]是对网络流量进行探测,会主动发出一些探测报文,然后对流量进行区分哪些是人与人的会话,哪些是命令与控制会话等,针对区分出来的会话再进行下一步的具体分析。
基于蜜网捕获的检测技术利用已经提前布置好的蜜网系统被动的捕获一些在蜜罐机上的程序,然后进行分析和判断是否是僵尸程序。蜜网系统主要依赖“蜜罐”技术,“蜜罐”是一种经过特殊构造的计算机或者是网络陷阱,主要用来吸引和检测恶意代码。当僵尸网络程序感染到“蜜罐”计算机时,“蜜罐”计算机把该僵尸网络程序的二进制代码记录下来,经过反汇编成僵尸网络的源码,从而能够获得该僵尸网络的特征信息。Holz等人就通过二进制代码的反汇编来剖析僵尸网络的特征,实现了对僵尸网络的跟踪、检测和反制。
反向检测技术的关键技术是对互联网中发生的大规模的恶意行为进行分析,以及对危害后果进行数据挖掘,寻找隐藏在这些恶意行为后面的僵尸网络。过去的研究中Husna等人、Sroufe等人和Xie等人都提出了相关的概念以及设计相关的系统进行研究。针对危害行为进行溯源其难度非常大,但是其结果往往是比较可信的。
4 僵尸网络混合防御模型
在企业网中杜绝僵尸网络其中最关键的就是对僵尸的检测,上文叙述了针对僵尸网络检测的各个方法,但是这些方法都是有优缺点的,王天佐等人分析了各个检测方法的优缺点。基于流量分析的检测技术能够实时快速地发现本地僵尸网络的节点,但是其存在误报的情况;蜜网技术通过捕获僵尸程序进行反汇编获取僵尸网络的详细信息,检测的准确率比较高,但是因为是被动式捕获,其检测范围受到了蜜网规模的限制;反向检测技术因为是在发生大规模危害以后进行返溯僵尸网络的,时效性比较差。
综合考虑这三种检测技术的优缺点,可以建立一个如图3所示混合防御模型。
图3 企业网防御模型
混合防御模型中首先通过蜜网系统,尽可能的收集僵尸网络程序进行反汇编收集僵尸网络程序源码,根据源码提取僵尸网络的特征,把特征放到他们的数据中心即僵尸网络特征库中;然后通过反向检测分析技术,对互联网中危害比较大的事件进行分析和追溯,找到在这个危害背后的僵尸网络,尽可能的提取其相关特征,或者是根据危害情况提取僵尸网络特征,放到数据中心;最后在企业网的出口布置有“安全网关”,该网关里面内置该厂商针对僵尸网络的基于流量分析的检测技术,因为客户上网的流量必须要经过“安全网关”,所以可以持续性的对用户发起的网络数据报文进行检测,对检测的结果进行互联分析,可以使用纵向互联、横向互联、因果互联或者是使用几种互联方式进行结合进行分析,看是否能够发现僵尸网络节点,如果发现僵尸网络以后把这些信息放到数据中心。通过混合防御模型就可以形成一个比较全面的僵尸网络特征库。
5 僵尸网络混合防御模型初步应用
现在的网络安全厂商,像绿盟、深信服等都具有僵尸网络防御的功能,通过混合防御模型可以极大地保护企业网的安全。
以深信服举例,深信服的防火墙具有僵尸网络防护功能,他们的防护机制是检测经过防火墙的流量,进行拆包分析经过防火墙的数据包,检测数据包中流量特征是否匹配僵尸网络特征库中的僵尸网络特征,如果能够匹配特征库的特征,那么就说明内网中存在具有僵尸网络程序的计算机,防火墙会对这个计算机发出的僵尸网络流量进行封堵,然后提醒管理员。这种防护方式最重要的是僵尸网络特征库,深信服的僵尸网络特征库有专门的收集部门。但是和僵尸网络混合防御模型有差别的是在防火墙上面没有做主动的扫描和检测,其检测都是拆包分析是否匹配特征库。所以说目前这个模型只具有初步应用。
6 结束语
僵尸网络对企业网的威胁非常之大,需要完全杜绝和防御比较困难。本文深入分析了僵尸网络的功能结构,总结了僵尸网络的工作机制,从基于流量的分析技术、基于蜜网捕获的检测技术以及反向检测技术分析了僵尸网络的检测技术,以及这三种检测技术的优缺点;根据僵尸网络的检测技术提出了企业网防御僵尸网络的模型即僵尸网络混合防御模型,该模型中的关键点是对僵尸网络的检测,把三种僵尸网络检测技术的优点进行结合组成了该模型的检测技术;分析了该模型的缺点,后续还需要进行深入的研究克服这些缺点。