僵尸网络安全防范研究(精选3篇)
僵尸网络安全防范研究 篇1
0 引言
僵尸网络(Botnet)是指采用一种或多种传播手段,使大量主机感染僵尸程序,从而在控制者和被感染主机之间形成一个可以一对多控制的网络[1],进而构成一个攻击平台,利用这个平台可以有效地发起各种各样的攻击行为,导致整个基础信息网络或者重要应用系统瘫痪,致使大量机密或个人隐私泄漏,还被用来从事网络欺诈等其他违法犯罪活动。
目前,僵尸网络的威胁已经成为国际上十分关注的问题,与此同时,我国国内网上Botnet的威胁比较严重,已经成为了僵尸网络的生产大国,这需要引起网络用户的高度重视,需要国内外信息安全方面对其更进一步的发现、跟踪和反制。
1 僵尸网络检测算法
僵尸网络的活动情况分为四个阶段[2]:传播、感染、通信、攻击,其中,通信是僵尸网络活动必不可少的阶段。根据僵尸网络的工作原理,攻击者必须通过C&C控制信道与僵尸主机交互,再经过网络传输,所以,通信阶段是最薄弱的、最易被发现的。因此,目前大部分的检测方法都是建立在此阶段上的。下文通过列举一些主流的僵尸网络检测算法,进行剖析和对比,提出每种检测算法的优点和不足。
1.1 基于TCP扫描权重的启发式异常检测算法[3]
该算法基于IRC僵尸网络中大量僵尸主机连接到同一IRC频道,并接受网络传播命令进行大量的TCP SYN扫描,设置TCP扫描权重,通过识别该权重超出正常阀值的被感染IP地址及其连接的IRC频道对僵尸网络进行检测:
式中,Ss为发送的SYN包和SYN|ACK包数量,Fs为发送的FIN包数量,Rr为接收的RESET包数量,Tsr为全部TCP数据包数量,w为TCP扫描权重即TCP控制报文数与总TCP报文数的比重。该方法只能适用于明文方式传播控制信道命令的IRC僵尸网络。
1.2 狩猎女神项目
该项目主要包括2个主要步骤:
(1)通过部署蜜罐对僵尸程序进行捕获样本;
(2)通过对网络行为进行监视和分析僵尸网络控制信道信息。
该算法利用恶意软件收集器对恶意软件样本进行收集,通过对恶意软件样本的分析判断其是否为僵尸程序,并取出其所连接的僵尸网络控制信道信息,从而在僵尸网络的早期传播阶段就能发现。
系统部署的恶意软件收集器是针对最主流的僵尸程序感染方式——主动攻击漏洞感染,首先将会模拟一系列常见的操作系统漏洞(如RPC DCOM漏洞、LSASS漏洞等),当恶意软件通过攻击这些漏洞试图感染蜜罐机时,恶意软件收集器将通过分析恶意软件攻击所使用的Shellcode获取其中包含的恶意软件链接URL,并根据此URL下载获得恶意软件样本。
对收集到的恶意软件样本,系统采用了沙箱、蜜网两种各有优势的技术对其进行分析,确认其是否是僵尸程序,并对僵尸程序所要连接的僵尸网络控制信道的信息进行提取,作行为分析。
1.3 AT&T实验室[4]
该实验室提出了一种在ISP骨干网层面上检测和刻画僵尸网络行为的方法,由以下步骤组成:
(1)底层传感器触发的事件进行聚合,识别出具有可疑行为的主机;
(2)基于缺省IRC服务端口,识别到集中服务器的连接以及IRC流量模型特征这3个启发式规则,识别出可能的僵尸网络命令与控制连接;
(3)分析可能的连接,计算出连接同一服务器的可疑僵尸主机数量,计算出可疑连接与IRC流量模型的相似性距离,并结合两者计算该可疑连接为僵尸网络命令与控制信道的得分;
(4)通过与其他数据源的关联、DNS域名验证和人工验证确认检测到的僵尸网络。
1.4 基于决策树的僵尸流量检测方法
僵尸主机与控制者之间的会话特征,包括以下4种:
(1)僵尸主机与控制者之间的会话消息是短消息;
(2)由于僵尸程序具有可传播性,因此在极短的时间内会有大量的僵尸主机加入同一IRC服务器的同一频道中;
(3)如果控制者在较长的时间内没有向僵尸主机发送命令,则僵尸主机就会“长期发呆”,没有任何响应;
(4)IRC僵尸网络中的控制者在所控制的频道内向所控制的僵尸主机发送广播命令,让所有的僵尸主机去执行同一条命令。
决策树算法描述如下:对于捕获到的IRC网络流量,转换成适合数据挖掘的数据格式。根据特征(1),可以推断出异常IRC数据包长度的平均值小于正常的。利用类内距离小,类间距离大的分类识别方法,设计针对数据包大小这一属性的属性函数为:f=(li-l1)2-(li-l2)2,其中l1为异常IRC数据包长度的平均值,l2为正常IRC数据包长度的平均值,li为任一个数据包长度。如果f≤0,则将该数据包归类为疑似的IRC僵尸数据包,否则为正常。根据特征(2),设置一个很短的时间t0和阀值n。如果在t0时间内,有大于阀值的数据包具有相同目的IP和不同源IP,则可以认为这些为僵尸数据包。根据特征(3),设置一个较长的时间段t1和一个阀值p。如果在t1时间内IRC频道内某些IP出现次数小于阀值,则可以认为以该IP为目的IP或源IP的数据包为僵尸数据包。根据特征(4),设置很短的时间t2和一个阀值m。如果在t2时间内有超过阀值的数据包具有相同源IP和不同目的IP,则可以认为这些数据包是受感染的。
1.5 BotHunter系统[5]
该系统将僵尸程序感染过程视为一台内网主机与外网一台或多台主机间的信息交互序列,包括目标扫描、破解攻击、二进制代码注入以及执行、命令与控制信道连接和对外扫描等步骤。底层采用Snort入侵检测系统的特征检测方法以及两个关注僵尸程序的异常检测插件SLACE和SCADE,对僵尸程序感染的各个步骤进行检测。SLACE插件实现了对流入连接的有损性n-gram负载分析方法,通过对执行协议负载的字节分布异常检测出恶意代码攻击;SCADE插件进行针对恶意代码的平行及垂直端口扫描分析,可以检测出流入连接和流出连接中的扫描事件。BotHunter关联分析器将底层IDS报告的流入扫描报警、破解攻击报警和外出控制信道报警、对外扫描报警等事件联系在一起,从而给出一个详细的包含所有相关事件的僵尸程序感染会话场景。
1.6 RiShi系统[6]
该算法的基本思路是被动监听流量,通过开源的ngrep工具获取其中包含的IRC连接信息,然后用n-gram分析方法实现评分函数,通过对IRC昵称的异常评定,检测出内部网络中被IRC僵尸网络感染的僵尸主机。
从技术实现和系统整合的角度考虑,相比较而言,该系统无疑是最具优势的算法。而现阶段的实验数据体现出该系统存在着以下不足:依赖正则表达式来检测和评价一个僵尸程序的昵称,但目前存在一些僵尸程序使用与IRC用户类似的昵称命名结构,或者一旦改变僵尸程序昵称命名结构就可以轻松绕开检测;此外该算法对于基于HTTP和P2P的僵尸网络无能为力。
与此同时,可以显见的是,即使是最新型的Bot程序通信,它们也是需要通过端口来实现的[7]。IRC(端口6667)和其他大号端口(比如31337和54321)仍然被绝大部分的Bot使用着。1024以上的所有端口除非所在组织给定某个端口有特殊的应用需要,否则必须设置为阻止Bot进入。与此同时,也可以对开放的端口制定通信策略,如“办公时间才可开放”或是“除了以下IP地址列表,其他一切所有访问”等。Web通信通常需要使用80或是7这样的端口。而僵尸网络也通常是在凌晨1时~5时之间进行升级,因为这个时候升级不易被人发现。因此人们有必要养成在早晨查看系统日志的好习惯,同时应该警惕并进行调查那些发现没有人存在但却有网页浏览的活动。
2 结束语
僵尸网络作为一种从传统恶意代码形态进化而来的高级攻击方式,其具有活动隐蔽、反应敏捷并且效率较高的一对多命令与控制机制,因而攻击者广泛采用僵尸网络并藉此达到实现窃取敏感信息、发送分布式拒绝服务攻击和发送垃圾邮件等攻击目的。目前,僵尸网络已经进入迅速发展时期,而且已经对网络安全造成了严重威胁。
除此之外,根据最新的僵尸网络相关研究表明,僵尸网络开始逐渐呈现出如下的发展趋势[8]:命令与控制机制从最原始的只基于IRC协议逐步转向基于HTTP协议以及很多不同类型的P2P协议,从而使僵尸网络的隐蔽性和鲁棒性得到增强;在网络传播方法上学习并掺杂了许多种传统恶意代码的传播方式,包括某些最新的通过实时通信软件以及P2P文件共享软件进行传播[9];通过增强认证和信道加密机制,对僵尸程序进行多型化和变态混淆,加入Rootkit隐蔽机制从而使得开展对僵尸网络的检测、跟踪及分析活动的难度加大了。
人们预计,研究僵尸网络在未来一段时间内所必须关注的重点方向包括:(1)新型的僵尸网络命令与控制机制及其应对策略;(2)进一步研究对僵尸网络传播模型并在实验测试环境中得到验证;(3)针对新型的僵尸网络命令与控制机制开发出具有更加准确和高效性能的僵尸网络检测机制;(4)在一定程度上具有自动化概念的僵尸网络反制辅助平台的研究与实现[10]。
鉴于僵尸网络所呈现的技术特点及其发展趋势,安全领域研究者必须加强僵尸网络的研究,并协调反病毒业界和应急响应部门进行有效反制,开发出更具准确性和高效性的僵尸网络检测机制,特别是针对新型的僵尸网络命令与控制机制,才能有效遏制其快速发展的势头。
摘要:僵尸网络是由许多台被恶意代码感染控制并与互联网相互连接的计算机所组成,其正步入快速发展期,并已对因特网安全造成了严重威胁。文章针对目前国际上主流僵尸网络检测算法进行分析和比较,给出每种检测算法的优点和不足。
关键词:僵尸网络,通信阶段,检测算法,比较研究
参考文献
[1]诸葛建伟,韩心慧,周勇林,等.僵尸网络研究与进展[J].软件学报,2008,19(3):702-715.
[2]霍建滨,白凤娥.僵尸网络的检测技术研究[J].科技情报开发与经济,2007,17(3).
[3]Binkley J R,Singh S.An algorithm for anomaly-based botnetd etection[C]//Proc.of the USENIX2nd Workshop on Steps toR educing Unwanted Traffic on the Internet(SRUTI2006).2006:43-48.
[4]Karasaridis A,Rexroad B,Hoeflin D.Wide-Scale botnet detec-t ion and characterization[C]//Proc.of the1st Workshop on HotT opics in Understanding Botnets(HotBots2007).2007.
[5]Gu G,Porras P,Yegneswaran V,et al.BotHunter:Detectingm alware infection through IDS-driven dialog correlation[C]//P roc.of the16th USENIX Security Symp(Security2007),2007.
[6]Goebel J,Holz T.Rishi:Identify bot contaminated hosts by IRCn ickname evaluation[C]//Proc.of the1st Workshop on Hot Top-i cs in Understanding Botnets(HotBots2007),2007.
[7]Alden W.Jackson,David Lapsley,Christine Jones,et al.S LINGbot:A system for live investigation of next generationb otnets catch[C]//Cybersecurity Applications&TechnologyC onference for Homeland Security.2009:313-318.
[8]吴莉娅.关于botnet若干问题的探讨[J].惠州学院学报:自然科学版,2009(03):78-80.
[9]Stock B,Goebel J,Engelberth M,et al.Walowdac:Analysis of aP eer-to-Peer Botnet[C]//European Conference on ComputerN etwork Defense.2009.
[10]Lu,W.Tavallaee,M.Rammidi,G.et al.BotCop:An online bot-n et traffic classifier[C]//Communication Networks and Servic-e s Research Conf.2009.
P2P僵尸网络研究 篇2
僵尸网络(Botnet)是从传统恶意代码(计算机病毒,网络蠕虫,木马等)基础上发展起来的一种高级攻击方式,它具有一定的组织结构,可采用特定的命令与控制机制(Command and Control, C&C),使得攻击者可以轻易地控制成千上万台僵尸主机发起分布式拒绝服务攻击,发送大量垃圾邮件,或者从受控主机上窃取敏感信息,以及进行点击欺诈等活动[1]。由于经济利益驱使,近年来僵尸网络的发展较为猖獗,成为计算机犯罪的规模化的平台,对因特网的安全构成了严重的威胁。
僵尸网络与其它恶意软件的主要区别在于它的命令与控制机制,按照命令与控制模型,僵尸网络主要分为两种类型:基于IRC或HTTP协议的集中式模型和基于P2P协议的分布式模型。集中式模型存在单一故障点,容易发现和移除。而分布式的P2P僵尸网络,具有较好的隐蔽性和鲁棒性,规模可以更为庞大,成为僵尸网络的发展趋势。
2 P2P僵尸网络的构建与命令控制机制
2.1 P2P僵尸网络的构建
P2P僵尸网络根据其构建方式的不同分为寄生性僵尸网络和独立性僵尸网络。
寄生性P2P僵尸构建在现有的P2P网络基础之上,这种构建方式较为简单,只要俘获P2P网络中的脆弱主机就完成了僵尸网络的构建,僵尸成员之间可以利用现有的P2P协议进行相互通讯。缺点是僵尸网络的规模受限于P2P网络的规模。
独立性P2P僵尸网络不仅感染P2P网络中的比较脆弱的主机,也通过所有可能的途径,如email,即时消息或文件交换等,感染整个Internet中的其他主机。在感染完成后,僵尸主机通过直接或间接的方式加入到僵尸网络中去。
僵尸主机加入到僵尸网络中的方法一般有如下几种方式:
(1)僵尸程序代码中硬编码了一组节点列表,当僵尸程序启动时,将连接列表中的每一台主机来更新其邻居节点信息。使用Overnet P2P 协议的Trojan.Peacomm采用的就是这种方式,一组Overnet节点列表被硬编码到僵尸程序代码中,当一台主机被僵尸网络俘获时,该主机就会尝试连接节点列表中的主机进而加入到僵尸网络中[2]。
(2)采用类似Gnutella的做法,在Internet上的某处保存着web缓存,而将缓存的位置被硬编码在僵尸程序代码中。当新僵尸程序启动时,将访问指定位置获取最新的更新。Phatbot在其僵尸程序的启动过程中就利用了Gnutella的缓冲服务器。
(3)Wang等提出的混合型P2P僵尸网络设计框架[3]中当一台僵尸主机A感染另一台主机B后,将自己的邻居节点列表PA也发送给B,这样B的邻居节点列表就变为PB=PA∪{A},而当B和邻居节点中的C建立连接时,双方将更新各自的节点列表,此时B的邻居节点列表扩充为PB=PB∪PC。这种方式是对硬编码方式的改进,提高了其健壮性。
2.2 P2P僵尸网络的命令与控制机制
P2P僵尸网络的命令与控制机制,决定了其所采用的网络拓扑结构,同时也对网络健壮性、监测及防御的难易程度起决定作用。
僵尸网络的命令与控制机制总体上可以分为主动式(Pull)和被动式(Push)两种。在主动方式中,受控主机定期主动地从命令发布渠道获取命令,在被动方式中受控主机被动等待命令的到来,收到命令后再向其他主机转发命令。不同P2P僵尸网络的命令与控制机制各具特色,如第一个P2P僵尸网络Slapper在传播过程中,为每个受感染主机建立一个完整的已感染节点列表,以克服启动过程(bootstrap)的脆弱性。Sinit则在此基础上使用公钥加密进行已感染节点列表更新的验证。Nugache则试图通过实现一个加密的控制信道来躲避检测。
Peacomm和Stormnet的C&C机制基于Overnet协议,僵尸主机定期向网络中搜索某些关键字,这些关键字是用程序内置的算法,对当前日期和一个介于0-31的随机数进行计算的结果。僵尸主发布命令时需要将命令以相应的32个关键字发布出去[4]。
前面提到的混合型P2P僵尸网络[3]采用更为先进的C&C机制,通过命令认证、节点对加密、个性化服务端口等机制进一步保证僵尸网络的健壮性和韧性。
3 P2P僵尸网络检测
僵尸网络检测总体上可归为两类:基于流量分析的检测方法、基于蜜罐技术的监控方法。
3.1流量分析技术
流量分析采用对网络流量进行监视与分析,以发现僵尸网络的存在,具体可分为:基于特征签名(signature)、基于异常(anomaly)、基于DNS及基于数据挖掘等方式。
基于特征签名的方式利用僵尸程序的特征签名和行为特点来检测网络中是否存在某种已知的僵尸网络。这种方式的缺点是对未知的僵尸程序无效。
基于异常的检测方法主要依据网络延迟、网络流量、非常用端口的活动及非正常的系统活动等异常来判断网络中恶意节点的存在。这种方法可以检测出未知的僵尸网络,但对于处于潜伏期的僵尸网络却是无效的。
僵尸程序为了与C&C服务器连接,必然会发出DNS查询,所以监视DNS流量的异常,如:较短时间内较高的DNS查询,可以发现僵尸网络的痕迹。不过僵尸程序可以发出虚假的DNS查询,以掩藏其踪迹。
Botminer[5]是基于数据挖掘的检测技术,它通过对僵尸程序的通信及恶意行为进行聚类分析,以检测出具有相似通信模式和行为特点的节点。Botminer不依赖于具体的僵尸协议,可以用于基于IRC、基于HTTP和基于P2P等僵尸网络的检测。
3.2基于蜜罐或者蜜网的检测方法。
蜜罐技术通过布置一些主机、网络服务以及信息作为诱饵,诱使攻击者对他们进行攻击,减少对实际系统所造成的安全威胁。蜜网是对蜜罐技术的扩展,是一个具有高度可控性的黑客诱捕网络体系架构,在这个架构中,可以包含一个或多个蜜罐,可以提供多种工具以方便对攻击信息的采集和分析。
蜜网最早用于监测IRC僵尸网络,但经过改进,也可以对P2P僵尸网络进行有效检测。在蜜网中运行僵尸程序样本,对进出蜜网的流量进行分析,从中提取出P2P僵尸网络发送命令和建立连接的流,以及该流的源端和终点,获得P2P僵尸网络中botmaster和bot之间的交互信息,来检测P2P僵尸网络的活动,并对威胁作出报警。
对于P2P僵尸网络,由于一个僵尸主机只与网络中部分邻居节点通信,所以无法通过蜜网获得整个僵尸网的完整络活动情况,是这种检测方式的局限性。
4 P2P僵尸网络反制技术
P2P僵尸网络是分布式的,没有处于网络中央的C&C服务器,很难根除,不过我们仍然可以利用P2P僵尸网络的一些缺陷对其进行有效的反制。
4.1索引毒化(Index Poisoning)[6]反制技术
索引毒化用于反制基于DHT(分布式哈希表)的P2P僵尸网络,如Trojan.Peacomm和Stormnet。在这种P2P僵尸网络中,僵尸主将命令控制信息以特定的关键词发布出去,僵尸程序主动搜索这些特定的关键词,从而获取命令。如果知道这些关键词(可以通过蜜网监测等手段获得),就可以将虚假信息以相同的关键词发布出去,使得僵尸程序搜索并下载这些虚假信息,而不是僵尸主发布的命令,从而使大量僵尸主机脱离控制,减小僵尸网络的危害。
如果僵尸网络采用签名机制,僵尸程序就可以验证搜索的结果是否为僵尸主命令,是就下载并用于响应其他僵尸主机的查询,不是就放弃,这样索引毒化的作用就会大打折扣。
4.2女巫攻击(Sybil Attack)[7]反制技术
女巫攻击技术是利用P2P网络对节点通常不采用认证机制的弱点,反制者可以向P2P僵尸网络中加入一些Sybil节点,对僵尸控制命令相关流量进行有意地错误路由,从而破坏其命令与控制渠道。这种反制措施的有效性取决于Sybil节点的选择,例如在非结构化的Gnutella网络中要使Sybil节点作为超级节点(只有超级节点才能对消息进行路由),而在Kad网络中,Sybil节点的Id一定要选择与僵尸命令的关键词较为接近,这样才会有更多的查询被定位到Sybil节点。
这种反制技术成本较高,因Sybil节点必须是物理的或虚拟的主机。同时在有些P2P网络中,如Chord,节点的ID是与节点的IP地址相关的,这样就很难任意设定Sybil节点的ID以使其与僵尸命令的关键词尽可能接近。
4.3其他反制措施
反制P2P僵尸网络的关键是破坏P2P僵尸网络的命令与控制通道,除了利用协议本身的缺陷以外,还可以采用其他一些方法。
P2P僵尸网络的构建存在bootstrap过程,即僵尸主机在初始阶段需要一个节点列表,通过连接这些节点才能加入到P2P网络中,节点列表往往是硬编码到僵尸程序中的,只要隔离这些节点,僵尸主机就无法加入的P2P网络中。
另外也可以采用及时清除僵尸程序的方法,如DNS sinkhole[8]:可疑的僵尸主机对命令控制服务器(P2P节点)的访问被ISP重定向到僵尸感染确认服务器,如果发生了感染,会提示用户下载清除程序进行清除。
5结束语
本文对新一代僵尸网络——P2P僵尸网络的概念、分类、命令与控制机制进行了研究,并对僵尸网络的检测、反制技术进行了探讨。僵尸网络作为互联网最为严重的安全威胁之一,近年来得到了广泛的关注,但目前的大部分研究是针对传统的集中式僵尸网络的,对于新型的P2P型僵尸网络,在僵尸网络的跟踪、检测与反制方面研究得还不是很充分。如何有效地检测及防御P2P僵尸网络将成为重要的研究课题。
参考文献
[1]葛建伟,韩心慧,周勇林,等.僵尸网络研究[J.]软件学报.2008,19(3):702-714
[2]J.B.Grizzard,V.Sharma,C.Nunnery,B.B.Kanga,nd D.Dagon:Peer-to-peer botnets:Overview and case study,Proc.1st USE-NIX Workshop on Hot Topics in Understanding Botnets(HotBots'07),Cambridge,MA(2007).
[3]P.Wang,S.Sparksa,nd C.C.Zou:An advanced hybrid peer-to-peer botnet,Proc.1st USENIX Workshop on Hot Topics in Un-derstanding Botnets(HotBots'07),Cambridge,MA(2007).
[4]T.Holz,M.Steiner,F.Dahl,E.W.Biersack,and F.Freiling:Measurements and mitigation of peer-to-peer-based botnets:Acase study on stormworm,Proc.1st Usenix Workshop on Large-scale Exploits and Emergent Threats(LEET'08),San Francis-co,CA(2008).
[5]G.Gu,R.PerdisciJ,.Zhang,and W.Lee:BotMiner:Clustering analysis of network traffic for protocol-and structure-independentbotnet detection,Proc.17th USENIX Security Symp.(Security'08),San Jose,CA(2008)pp.139-154
[6]J.Liang,N.Naoumov,and K.W.Ross,“The index poisoning attack in p2p?le sharing systems,i”n Proc.of the IEEE INFOCOM,April 2006
[7]C.R.DavisJ,.M.Fernandez,S.Nevillea,nd J.McHugh,“Sybil attacks as a mitigation strategy against the storm botnet,”in Proc.of the 3rd Int.Conf.on Malicious and Unwanted Software(Malware’08),2008
僵尸网络安全防范研究 篇3
僵尸网络能够实行DDOS、垃圾邮件、窃取个人信息、网络仿冒等攻击行为,对网络安全产生了极大的危害。因此,越来越多的研究者开始研究僵尸网络。研究表明,为了提高网络的健壮性和存活率,僵尸网络普遍采用Fast-flux技术[1]。
Fast-flux技术是为一个域名配置多个IP地址,并且这些IP地址以非常快的频率更换,从而实现域名到IP地址的动态映射。通过动态变换IP地址,每次用户访问某个域名时,实际上访问的并不是同一主机。利用此特征,僵尸网络控制者可以将其控制的肉鸡中服务能力比较强、具有公有IP的肉鸡作为代理,其他一些服务能力比较弱的主机通过与这些代理通信,代理将通信重定向到后面真正的控制者,完成控制者与肉鸡的通信过程。僵尸网络控制者通过频繁的更换域名到代理IP的映射,从代理网络中剔除不可用的以及服务能力较弱的代理,提高网络的健壮性和可用性。
1 相关工作
1.1 传统僵尸网络检测方法
Hyunsang Choi,Hanwoo Lee等人提出基于僵尸网络DNS查询群体性特征的检测方法[2,3]。该方法通过对校园网DNS数据分析发现:在僵尸网络活跃时,受控主机将同时发出DNS查询这一群体性特征。但是,这种方法不能区分迅雷、BT等下载站点,因为当客户端同时下载一个资源时,也具有相同的行为。
Shouhuai Xu、Ravi Sandhu等人提出一种基于主机DNS访问与网页访问关系的僵尸网络检测方法[4]。这种方法需要获取大量主机页面访问的数据以及DNS访问数据,并且需要将两种数据组合。数据量巨大,在大规模的网络中实现困难。
Kazuya Takemori等人提出基于信息熵理论的僵尸网络检测方法。该方法通过分析一段时间的校园网DNS数据发现:当僵尸网络活跃时,某些域名的熵发生了剧烈变化[5,6]。但是Kazuya Takemori等人的方法在某些网站访问量剧增的时候会出现误报。如:2008年北京奥运会开幕式当天,奥运会官网的访问量变化非常剧烈。
1.2 Fast-flux僵尸网络检测方法
Jose Nazario等人对Fast-flux僵尸网络进行长期观察,提出了Fast-flux僵尸网络的九个基本特征,并详细分析了Fast-flux僵尸网络的地域分布、生存时间、网络大小等基本特征[7]。Thorsten Holz利用已经发现的Fast-flux僵尸网络的特征,采用线性划分的方法将Fast-flux服务和RRDNS(轮转域名系统)、CDN(内容分发网络)相区分,获得了很好的效果[1]。
Chenfeng Vincent Zhou等人提出了一种分布式入侵检测系统对采用Fast-flux技术的钓鱼网站的检测方法[8]。但是该方法需要各地的IDS都得和其他IDS交换数据来检测Fast-flux域名,并不能在前端检测。
Alper Caglayan等人采用主动和被动方式实现FFSN的实时监测[9,10],但是其所采用的数据都是在非常小的时间段内获取的,如果某个网站将其服务迁移到不同的机器,将出现误报。
Emanuele Passerini等利用FFSN(Fast-flux服务网络)的九个特征,采用朴素贝叶斯算法,对FFSN进行检测[11]。
Yang Wang利用僵尸网络IP数和AS(自治系统)数两个特征,采用SVM对FFSN服务进行检测[12],取得了很好的效果。但因其只采用了90个正常域名,39个Fast-flux域名的数据集,而数据集太小,则无法代表网络中的真实环境。
Jiayan Wu等人对现有的线性划分、KNN(K最近邻)和朴素贝叶斯的FFSN检测方法进行了对比[13]。
本文通过对哈尔滨工业大学两台DNS服务器的长期数据进行分析,选取了Fast-flux僵尸网络的六个典型特征,采用线性核函数的SVM方法对Fast-flux僵尸网络进行检测,取得了比较好的效果。
2 特征选取及SVM算法选取
2.1 Fast-flux特征选取
本文中,用来区分Fast-flux僵尸网络域名和正常域名选取的特征如表1所示,特征主要分为三大类。第一类是域名的特征,第二类是网络特征,第三类是代理的分布特征。
(1)TTL特征
Fast-flux僵尸网络为了提高健壮性,会频繁地变换IP地址。为了做到这一点,僵尸网络控制者会将DNS缓存的时间设置的比较小,以便当控制者改变IP地址时,被控机器能及时地连上控制主机,因此,Fast-flux僵尸网络域名的TTL都会比较小。对于一些采用CDN,或者RRDNS技术的大型网站,其缓存时间TTL也会比较小,但是,还可以采用剩下的五个特征来区分。
图1为2011-03-18到2011-03-21哈尔滨工业大学202.118.224.101上捕获的375 885个A类查询的权威回答域名的TTL分布。由图1可知,对于A类应答,TTL小于等于600S的域名为23.98%,TTL小于300S的占9.63%。Fast-flux技术的基本特征就是会频繁地更换IP地址,一般的TTL都小于600S,因此若只对TTL小于600S的域名进行分析,可以大大减少数据量和工作量。
(2)单个域名A记录IP个数特征
Fast-flux僵尸网络每隔一段时间都会更新一下其代理机器,因此,在一段时间内,Fast-flux僵尸网络域名查询得到的IP地址会持续的增加,累计得到的IP数也会非常大。而对于正常的域名,提供服务的机器是固定的。因此,得到的IP地址一段时间之后会稳定不变,并且IP地址的个数比较小。图2和图3分别显示了僵尸网络域名和正常域名IP地址的增长情况。
(3)IP所属自治域特征
表2显示的四个典型Fast-flux僵尸网络域名与正常域名得到IP所属自治域的对比。由表2可知,Fast-flux僵尸网络域名获取的IP所属的自治域都比较多,分布在几十甚至上百个不同的自治域中;而对于正常的域名来说,IP地址一般都分布在一个自治域中。
(4)IP所属国家特征
表2显示的是四个典型的Fast-flux僵尸网络和四个访问量比较大的域名所属国家的对比。由表2可知,采用Fast-flux技术的僵尸网络来说,受感染主机的分布影响,用来做代理的主机将分布在不同的国家,而正常的FFSN服务或者正常的域名的IP一般都在一个国家中或少数几个国家中。这一特征对区分Fast-flux僵尸网络和正常的Fastflux服务非常有用。一般正常的Fast-flux服务的IP地址都属于一个国家,而Fast-flux僵尸网络的IP地址则分布在不同的国家。
(5)其他特征
如Emanuele Passerini[11]文中阐述的原因,还采用了域名注册时间、所属组织机构这些特征,作为区分Fast-flux僵尸网络的特征。
2.2 SVM算法选取
SVM是基于结构风险最小化理论,在特征空间中建构最优分割超平面,使得学习器得到全局最优化,并且整个样本空间的期望风险以某个概率满足一定上界。支持向量机的目标就是要根据结构风险最小化原理,构造一个目标函数将两类模式尽可能地区分开来。
通常分为两类情况来讨论:(1)线性可分;(2)线性不可分。
对于本文选取的六个特征,对应于Fast-flux僵尸网络域名和正常域名的划分,这是一个线性可分的问题。对应于线性可分问题,采用SVM,会存在一个超平面使得训练样本完全分开。该超平面可描述为:
其中,w是权向量,w0是阈值权或者偏置。对于g(x)>0,则该样本在决策面的上方;反之,则在决策面的下方。
最优超平面是使得每一类数与超平面距离最近的向量与超平面之间的距离最大的平面,即要求使公式(2)最小化的w。
这是一个二次凸优化问题,对于这种问题,可以采用拉格朗日函数求解。问题的解是通过求公式(3),使拉格朗日乘子α最大化,w和w0最小化得到的。
上式中,α为拉格朗日乘子,n是样本的个数,yk是决策属性的值。
通过对公式(3)的w和w0求偏导,利用Kiihn-Tucker条件,将w转化为α的函数,得到
并且通过公式(4),就能解出w和w0。从而得到最优的决策面。
由于本文的问题属于线性可分问题,所以对于核函数的选择,初步考虑选取线性核函数。另外,SVM算法的训练是一个很耗时间的过程,尤其当数据量大的时候。文中所要用的数据量也非常大。而线性核函数在所有核函数中计算速度最快。因此,本文最终采用线性核函数,并采用交叉验证的方法获取最佳的参数c=8.0和g=0.5,其中c为惩罚因子,g为核参数。
3 实验验证
本文中所采用的数据来自于tcpdump捕获的哈尔滨工业大学两台DNS服务器从2011-03-18T12-41-00到2011-04-01T08-23-00的所有DNS查询应答数据120G和采用DIG跟踪的一些Fast-flux僵尸网络的DIG数据。
本文将2011-01-09到2011-03-18的DNS数据和2011-01-09到2011-03-18的55个Fast-flux僵尸网络域名[14]的DIG数据作为训练集。将2011-03-18到2011-04-01的DNS数据以及2011-03-18活跃的8个Fast-flux僵尸网络域名的DIG数据作为测试集。
因为数据量巨大,每天都有超过1 000万条查询,所以,对数据进行预处理,只考虑一段时间内累计IP数大于4或者IP对应的自治域或国家数大于2的域名。因为对于域名IP数比较小,并且都在同一国家和自治域的域名,不可能是采用Fast-flux技术的域名。
对训练集进行预处理之后,剩余9 945个域名,通过人工验证的方法,对其进行标记。55个Fast-flux域名DIG跟踪得到32个仍然活跃的Fast-flux僵尸网络域名。将以上数据作为训练集。
对测试集进行预处理之后,剩余19 753个域名,并加入8个Fast-flux僵尸网络域名8天的DIG数据作为测试集。通过交叉验证的方法,获取最优参数,即c=8.0,g=0.5。采用Thorsten Holz的线性划分方法与本文的算法来对比,如表3所示。
由表3可知,采用Thorsten Holz线性划分的方法产生了233个误报,比SVM多231个。但是这种方法没有漏报的域名,而采用SVM算法产生了两个漏报的域名。
两种方法误报的一些域名如表4所示。由表可知,一些正常的域名,域名映射的IP数量非常大,并散布得非常广,具有Fast-flux的特征。想要对其进一步区分,要采用域名的注册时间这一特征。一般而言,Fast-flux僵尸网络的域名都是新注册的,而正常域名的注册时间都比较早。如正常域名europe.pool.ntp.org是在1997-01-18注册的,而Fast-flux僵尸网络域名sdlls.ru的注册时间为2011-05-11。但是也有例外,如表5中的Fast-flux僵尸网络域名send-safe.com,在2001年就已经注册了,不过这个域名在2011-05-04进行了更新。
表5显示的是采用SVM的方法漏报的两个域名。通过进一步研究发现,send-safe.com漏报是因为这个僵尸网络不够活跃,处于消亡期。在对其的跟踪过程中,该域名一共有16个IP地址,这16个IP地址分布在4个国家和7个自治系统中,和很多正常的域名具有相同的特征。而对于sdlls.ru这个域名,产生漏报的主要原因是训练样本中,两种类别的数据不平衡,Fast-flux的数据比较少,对Fast-flux特征训练不够,出现了过拟合的现象。
4 结束语
【僵尸网络安全防范研究】推荐阅读:
P2P僵尸网络研究08-28
僵尸车06-15
僵尸企业10-22
《僵尸新娘》影视评论10-10
僵尸说的散文05-15
僵尸企业脱困情况报告09-27
《僵尸新娘》观后感作文05-15
网络安全防范策略研究11-15
网络安全与防范06-30
网络安全防范体系11-06