一种检测僵尸网络的方法及其系统的制作方法

文档序号:6471048阅读:145来源:国知局
专利名称:一种检测僵尸网络的方法及其系统的制作方法
技术领域
本技术属于计算机安全领域,具体的说是一种在互联网中检测和寻找僵尸网络的存在 的方法及其系统。
背景技术
僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程 序),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。在僵尸网络的概念中有这样几个关键词。"bot程序"是robot的缩写,是指实现恶意 控制功能的程序代码;"僵尸计算机"就是被植入bot的计算机;"控制服务器(Control Server)"是指控制和通信的中心服务器;"僵尸网络控制者计算机"是指通过向控制服 务器发送指令,由控制服务器将这些指令转发给僵尸计算机,从而达到远程控制僵尸计算 机目的的计算机。大部分的僵尸网络是基于IRC (因特网中继聊天)协议进行控制的僵尸 网络,及通过IRC聊天服务的服务器进行控制的僵尸网络。僵尸网络是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的 网络攻击,如分布式拒绝服务攻击(DDOS)、海量垃圾邮件等。这是一种一对多的控制 关系,正是这种拓扑关系的原因,使得攻击者能够以极低的代价高效地控制大量的资源为 其服务。针对目前的僵尸网路状况,目前的检测和防范手段还处于探索研究阶段,主要有以下 几种反病毒厂商以僵尸网络中的bot程序为检测和防御目标,分析截获的bot程序,提取 特征码,添加到病毒库中,为终端用户提供检测和防御bot程序感染的服务,然而这种方 式的防御,只能帮助安装了杀毒软件的用户清除其自身计算机上的bot程序。从僵尸网络 的整体网络上来看,这种方法只能清除僵尸网络中某些节点上的bot程序,而不能针对整 个僵尸网络的威胁,提供整体的防御方案。某些蜜罐项目组和研究机构,通过蜜罐技术截获bot程序样本后,通过逆向分析技术, 对bot程序中的IRC服务器的ip、用户名、密码等信息进行分析,进而进一步跟踪目标僵 尸网络。该方法在学术界研究僵尸网络的过程中发挥了很大的作用,但由于逆向分析及进一步的跟踪分析的工作量非常大,很难完全应用到工程实践中。通过监控IRC服务器上的各频道及其中的用户的行为来识别僵尸网络,其中的特征在 于长时间发呆和快速加入。具体来说就是僵尸网络频道中的各用户存在着三个比较明显 的行为特征, 一是通过蠕虫传播的僵尸程序,大量的被其感染的计算机会在短时间内加入 到同一个IRC服务器中;二是僵尸计算机一般会长时间在线;三是僵尸计算机作为一个IRC 聊夭的用户,在聊天频道内长时间不发言,保持空闲。第一种特征属于快速加入,第二三 种特征属于长时间发呆。该方法还处于学术研究阶段,还未能实际实用,另外该方法必须 在己经掌握的IRC服务器上加设相关监控设备来完成, 一方面会影响服务器效率;另一方面很难完全监控。因为很大一部分僵尸网络的IRC服务器,并非使用提供公共服务的IRC, 而是控制者先攻击控制一台计算机,再在这台计算机上加设自己的IRC服务器。这种情况 下通过监控IRC服务器的方法,就很难起到好的效果。

发明内容
针对僵尸网络检测和防御的现状,为了更好的检测和防御僵尸网络给互联网带来的威 胁,本发明提出了一个针对整个僵尸网络的识别方法,与传统方法中注重僵尸网络中单个 节点的防御相比本发明更注重在互联网范围内对整个僵尸网络的识别和解除整个僵尸网 络对网洛安全的威胁。本发明提供了一种能检测到完整僵尸网络、并能进行主动防御的方法和系统。 本发明分以下几个模块来实现功能1、 网络数据解析模块该模块实现的功能是对网络上截获的大量数据按照tcp/ip的网 络构架进行解析,将网络中承载僵尸网络通讯的IRC等协议的数据提取出来,交给"僵尸 网络数据识别模块";其他的无效数据不做处理。2、 僵尸网络数据识别模块该模块的功能是根据僵尸网络数据特征库中的特征码, 从已经截获的IRC协议数据中寻找僵尸网络数据包。将找到的僵尸网络数据包信息转交给"僵尸网络数据深度挖掘模块"进行进一步的处理。3、 僵尸网络数据深度挖掘模块该模块的功能是对"僵尸网络数据识别模块"识别 出的僵尸网络通信数据进行进一步的分析,具体的方法是-根据IRC数据包中的频道信息,将单独的控制信息关联起来,形成网状信息;再根据 僵尸网络通信数据包的源IP和目的IP等信息分析出僵尸网络中的僵尸计算机、控制服务器、以及僵尸网络的终极控制者,从而描绘出整个僵尸网络的拓扑结构。(1) 根据各僵尸网络数据包中的频道关键字信息,将来自同一个僵尸网络的数据包 相互关联起来。依据是同一个僵尸网络的被控端会在同一个IRC聊天频道中。(2) 分析同一个僵尸网络数据包中的源IP信息和端口信息以及目的IP信息和端口信 息,来寻找IRC僵尸网络服务器的IP及物理位置。寻找方法是对同一个僵尸网络中的 数据包的IP进行分析,如果发现同一个IP的计算机,跟其它的所有或大部分计算机都有 数据通信(即与同一个IP的计算机A进行数据通信的计算机数量超过设定比例阈值H), 那么该IP计算机很可能是IRC僵尸网洛的服务器;可以再通过端口信息进一步验证,如 果该IP的计算机与其他计算机通信的本地端口号都使用同一个端口号,远程端口号使用不 同的端口号,则可以进一步确认。(3) 寻找僵尸网络的控制者,找到僵尸网路的服务器后,剩下的这些IP地址信息,只有两个可能, 一个是僵尸网络的被控端,这些IP中的大部分会是被控端IP;剩下的可 能还有僵尸网络的控制者,关于控制者的寻找比较困难,主要采取的手段是对僵尸网络中 的通信数据进行解析,方法如下a) 寻找其他剩下的IP向(2)中找到的IRC僵尸网络服务器发送的数据包,而不是 IRC僵尸网络服务器向其他剩下的IP计算机发送的数据包。b) 对a)中找到的数据包进一步解析,寻找向IRC僵尸网络服务器发送控制指令的数 据包,而不是向僵尸网络服务器发送执行指令状况的数据包。其中b)中找到的数据包的源IP就是僵尸网络控制者计算机的IP,而其他的IP地址 则为僵尸网络中被控端的IP地址。注僵尸网络中一个指令的完整的发布过程是这样的,僵尸网络的控制端会向"IRC 僵尸网络服务器"发送控制指令,如指令".login Steven 123456 "表示登录到该僵尸网络 中,并通过用户名"Steven",和密码"123456"获取该僵尸网路的控制权;僵尸网络服 务器收到该数据后,会向各被控端转发该指令;被控端收到指令后,执行相应的动作,以 login指令为例,被控端会验证该控制端是否是真正的控制者,并向IRC僵尸网络服务器发 送相应的指令执行状况信息,如返回"Password accepted."表示验证成功;IRC僵尸网络 服务器收到被控端相应的返回信息后,会将该信息转发给所有的被控端和僵尸网络的控制 者。(4) 评估僵尸网络的规模,即僵尸网络中被控端的数量,使用的方法有两个。a)对截获的僵尸网络的数据包的所有IP地址进行统计,去掉已经分析出来的IRC僵尸网络服务器和僵尸网络的控制者,剩下的所有IP地址,便是都是僵尸网络的被控端。统 计其数量,来推测僵尸网络中被控端的数量。b)对整个僵尸网络中的通信数据进行分析,统计其中的用户名信息中用户名的数量, 来获得僵尸网络被控端的数量。综合运用两种统计方法,去掉其中重复统计了的僵尸网络被控端,剩下的数量便是僵 尸网络的真实规模。(5)评估该僵尸网络的行为。通过对数据包中的指令进行分析来获取控制者控制僵 尸网络的行为信息。如".loginsteven 123456"我们可以知道,控制者当时的行为是登录到僵尸网络上, 并获取僵尸网络的控制权,其用户名是steven,密码是1234564、 僵尸网络新特征搜集模块该模块的功能是对由"僵尸网络数据深度挖掘模块" 分析出的完整的各个僵尸网络的通信数据的内容进行比对,找到这些通信内容中新出现的 或目前系统未掌握的关键性字符,来丰富现有的僵尸网络数据特征库。新关键性字符的搜集方法为在已经通过"频道"等特征确定是僵尸网络的数据包中,寻找发现新的控制指令;或者在众多返回的"指令执行状况信息"中寻找某一个字符串频 繁重复出现的次数或比例超过设定阈值的字符串,而该字符串并不属于已知的关键性字符。5、 僵尸网络分析报告生成模块该模块的功能是根据"僵尸网络数据深度挖掘模块" 的分析结果,生成分析报告。主要内容包括寻找到的各僵尸网路的规模(被控端b0t的 数量),服务器的位置、被控端的具体位置分布,控制者的位置,用户名称,控制密码,僵尸网络的行为(是在进行DDOS攻击,还是在不断扫描其他电脑的漏洞)。6、 僵尸网络主动防御模块主要功能是根据"僵尸网络数据深度挖掘模块"深度挖 掘出来的僵尸网络的有效信息(主要是控制者的用户名、控制密码等信息),实施主动出 击的策略,对检测到的僵尸网络实施主动控制,主要方法是以控制者的身份进入到僵尸网 络中,获得僵尸网络的控制权后,给被控端发送返回被控端自身信息的指令来获得被控端 的规模信息;发布停止攻击的指令来对正在进行的攻击实施主动防御;发布销毁被控端bot程序的指令,来彻底销毁整个僵尸网络。发明的优点与积极效果本发明为一种全新思路的对僵尸网络进行检测和防御的方法,与传统侧重于消灭被控端计算机上的僵尸程序的方法相比,本技术有以下优势1、 整体防御效果更好本技术的防御对象不在于一个个单独的僵尸网络程序,而是整个僵尸网络,可以对整 个僵尸网络进行整体的分析和防御,防御效果更好,防御范围广,效率更高。2、 对僵尸网络的新变种的防御效果更高传统的僵尸程序的识别主要使用的是基于特征码的识别,只要僵尸程序稍有变化,其 原有特征码就极有可能失效,必须重新分析新的特征码。而与特征码相比,通信协议相对 而言会更稳定,长期不会变化。如果说僵尸程序中特征码的变化周期是以天为单位的,那 么通讯协议的变化周期则是以月为单位的,甚至是以季度为单位的。3、 应对变种的效率更高针对出现的僵尸网络的变种,在传统的防御方法病毒工程师必须对新僵尸程序做重新 的分析,而本发明使用的技术,新变种的僵尸网络的通信协议中只要有一个通信关键字没 有改变,本技术就可以有效的对该僵尸网络进行识别防御。并且再此基础上有很好的自我 学习能力,具体表现在当根据未变化的通信关键字识别出僵尸网络后,还会根据通信中的 数据,寻找其他变化的关键字,并放入特征库。 4、防御更为有效传统的僵尸网络防御方法主要是依靠被控端计算机上的杀毒软件对僵尸程序进行删 除,由于僵尸程序自身会带一些反删除的功能,很多时候并不是很有效。即使成功删除了 僵尸程序,也只是清除了单个被控端计算机上的僵尸程序,对整个僵尸网络的防御并不十 分有效。而本技术在僵尸网络的防御方面主要采取基于整个僵尸网络的主动防御方法,即以僵 尸网络控制者的身份向整个僵尸网络的被控端发布销毁自身的指令,从而销毁整个僵尸网络。5、溯源性更好采用传统的方法,只能掌握有限的被控端和IRC僵尸网路服务器的信息,很难找到僵 尸网络的幕后控制者,不利于僵尸网络的根治;而本发明技术可以通过分析僵尸网络的通 信数据,有效的找到僵尸网络的控制者的IP地址,进而从物理位置上定位控制者。


图l、僵尸网络的分布示意图;图2、僵尸网络识别系统整体构架图。
具体实施方式
-1、 部署位置将本设备部署到互联网的省际出口位置,将流入和流出省级出口的数据进行旁路后, 将旁路的数据接入本设备。2、 数据处理过程-(1) 旁路的数据流入"网络数据解析模块"模块,该模块将数据按照TCP/IP的网络 协议构架进行解析,将网络中的IRC协议的数据提取出来,转交给"僵尸网络数据识别模 块",其他数据不做处理丢掉。(2) 由"僵尸网络数据识别模块"加载僵尸网络通讯数据特征库中的特征码,用这 些特征码与"网络数据解析模块"解析出来的IRC协议的数据进行对比,从而找到僵尸网 络数据包。将找到的僵尸网络数据包,以及解析出来的源IP和目的IP,源端口号和目的 端口号,包含将僵尸网络指令等信息一起传递给"僵尸网络数据深度挖掘模块"。(3) 在由"僵尸网络数据识别模块"截获了大量的僵尸网络数据包之后,"僵尸网 络数据深度挖掘模块"开始对这些截获的僵尸网络数据进行深度的分析,从而挖掘出以下 的信息为该僵尸网络服务的僵尸网络服务器的信息,控制该僵尸网络的僵尸网络控制者 的信息,被控制僵尸网络被控端的信息,属于该僵尸网络的通信数据但关键字没有覆盖的 信息,以及僵尸网络的规模的信息等,从而描绘出整个僵尸网络的拓扑结构。(4) 获得了该僵尸的大量信息后,调用"僵尸网络新特征搜集模块"来挖掘目前还 未掌握的新的僵尸网络关键字,并将这些关键字放入僵尸网络数据特征库。(5) 之后调用"僵尸网络分析报告生成模块"将前面几个模块分析出来的关于僵尸 网络的信息以分析报告的形式展现给用户。(6) 根据已经获得的关于特定的一个僵尸网络的信息,在必要的时候可以选择调用 "僵尸网络主动防御模块"进行主动的防御。主要手段有夺取僵尸网络的控制权;终止该僵尸网络正在发起的某种进攻;对整个僵尸网络进行彻底摧毁。
权利要求
1.一种检测僵尸网络的方法,其步骤为1)从网络数据包中提取出IRC协议数据;2)将协议数据与数据特征库中的特征码进行匹配,获取僵尸网络数据包;3)对僵尸网络数据包进行划分,将来自同一僵尸网络的僵尸网络数据包相互关联起来;4)根据划分后的僵尸网络数据包确定出同一僵尸网络中的控制服务器、僵尸计算机、僵尸网络控制计算机,得到该僵尸网络的拓扑结构。
2. 如权利要求1所述的方法,其特征在于根据所述僵尸网络数据包中的频道关键字信息对各僵尸网络数据包进行划分。
3. 如权利要求1所述的方法,其特征在于根据所述僵尸网络数据包确定控制服务器的位置分布、僵尸计算机的规模和位置分布、控制计算机的位置分布、控制者的用户名和 控制密码、僵尸网络行为,生成一分析报告。
4. 如权利要求1或2或3所述的方法,其特征在于所述控制服务器的获取方法为1) 设定一比例阈值H;2) 搜索一 IP计算机A,其中与该IP计算机A进行数据通信的计算机数量占该僵尸网络计算机总数量的比例超过设定比例阈值H,则所述计算机A为控制服务器;3) 对所述控制服务器进行进一步验证,其方法为如果所述计算机A与其它计算机 通信的本地端口号相同,而远程端口号不同,则确认所述计算机A为控制服务器。
5. 如权利要求1或2或3所述的方法,其特征在于所述僵尸网络控制计算机的获取方法为搜索非所述控制服务器的其它IP计算机中向所述控制服务器发送控制指令数据包的IP计算机,确定该计算机为僵尸网络控制计算机。
6. 如权利要求1或2或3所述的方法,其特征在于所述僵尸计算机的规模统计方法为统计所有僵尸网络数据包的IP地址数目为S,利用S减去所述控制服务器的IP地址 数目和所述僵尸网络控制计算机的IP地址数目之后的值为所述僵尸计算机的规模;或者统计僵尸网络通信数据中的所有用户名的数量,确定所述僵尸计算机的规模。
7. 如权利要求1所述的方法,其特征在于从僵尸网络数据包中提取新关键字并将其加入到所述数据特征库中,其方法为从所述僵尸网络数据包中提取新的控制指令并将其 加入到所述数据特征库中;或者从返回的指令执行状况信息中寻找某一个字符串,其 重复出现的次数或比例超过设定阈值,则将该字符串加入到所述数据特征库中。
8. 如权利要求3所述的方法,其特征在于根据所述分析报告进行主动防御,其方法为首先根据所述控制者的用户名和控制密码获取僵尸网络的控制权;然后发布停止攻击 指令,或者发布摧毁僵尸计算机中bot程序的指令。
9. 一种检测僵尸网络的系统,其包括网络数据解析模块、僵尸网络数据识别模块、僵尸网络数据深度挖掘模块;其特征在于所述网络数据解析模块用于对网络上截获的大量数据进行解析,将网络中承载僵 尸网络通讯的IRC协议的数据提取出来,交给僵尸网络数据识别模块;所述僵尸网络数据识别模块用于根据僵尸网络数据特征库中的特征码,匹配已经 截获的IRC协议数据,寻找僵尸网络数据包并将其交给僵尸网络数据深度挖掘模块;所述僵尸网络数据深度挖掘模块用于根据僵尸数据包中的频道信息,将单独的控 制信息关联起来,形成网状信息;再根据僵尸网络数据包得出僵尸网络中的僵尸计算 机、控制服务器以及僵尸控制计算机,得到整个僵尸网络的拓扑结构。
10. 如权利要求9所述的系统,其特征在于所述系统还包括僵尸网络新特征搜集模块、僵 尸网络分析报告生成模块、僵尸网络主动防御模块所述僵尸网络新特征搜集模块用于查找所述僵尸网络数据深度挖掘模块得出的 僵尸网络通信数据的内容中新出现的或目前系统未掌握的关键性字符,并将其加入到 所述僵尸网络数据特征库;所述僵尸网络分析报告生成模块用于根据所述僵尸网络数据深度挖掘模块的分 析结果,生成分析报告,所述分析报告包括控制服务器的位置、僵尸网路的规模、 僵尸计算机的位置分布、僵尸控制计算机的位置分布、控制者的用户名称及控制密码、 僵尸网络的行为;所述僵尸网络主动防御模块用于根据所述僵尸网络数据深度挖掘模块得出的控 制者用户名及控制密码对检测到到僵尸网络实施主动控制。
全文摘要
本发明公开了一种检测僵尸网络的方法及其系统,属于计算机安全领域。本发明的方法为首先从网络数据包中提取出IRC协议数据;然后将协议数据与数据特征库中的特征码进行匹配,获取僵尸网络数据包;对僵尸网络数据包进行划分,将来自同一僵尸网络的僵尸网络数据包关联起来;最后根据划分后的僵尸网络数据包确定出同一僵尸网络中的控制服务器、僵尸计算机、僵尸网络控制计算机,从而描绘出该僵尸网络的拓扑结构。本发明的系统包括网络数据解析模块、僵尸网络数据识别模块、僵尸网络数据深度挖掘模块。与现有技术相比,本发明可以对整个僵尸网络进行整体的分析和防御,防御效果更好、防御范围更广、效率更高、溯源性更好。
文档编号G06F17/30GK101404658SQ20081022545
公开日2009年4月8日 申请日期2008年10月31日 优先权日2008年10月31日
发明者安丙春 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1