基于流量的P2P僵尸网络检测

2016-05-21 16:06李建
计算机时代 2016年5期

李建

摘 要: 网络的快速发展使其成为被攻击的对象。分布式结构僵尸网络攻击以其强大的攻击性和高破坏性被列为重要的网络安全威胁之一。为探索分布式结构僵尸网络的检测方法,文章从结构、感染过程等方面分析,提出基于流量的检测方法,通过过滤可疑流量、DNS流量检测等,判定是否受到僵尸网络攻击,并提出避免感染僵尸网络的防御措施。

关键词: 僵尸网络; P2P; 可疑流量; 流量检测; DNS检测

中图分类号:TP393.08 文献标志码:A 文章编号:1006-8228(2016)05-45-04

Abstract: The rapid development of the Internet makes it the object of attack. Because of their powerful and highly destructive attack, botnet attacks were listed as one of the most important network security threats. In order to explore the detection of P2P botnet, a detection method based on P2P technology is proposed, which through filtering suspicious traffic and DNS traffic detection etc., determines whether botnet attacks is suffered, and the defense measures to avoid botnet infection are put forward.

Key words: botnet; peer-to-peer; suspicious flow; flow detection; DNS detection

0 引言

据CNNIC报告,2015年上半年统计,我国网民总人数已达到6.68亿,周平均上网时间达25.6小时[1]。网络给人类提供便利的同时也带来一系列安全隐患,恶意网络攻击层出不穷。僵尸网络是控制者利用网络自身的弱点,通过网络在主机内部植入相关僵尸程序,使得该主机受其控制并秘密执行相关指令。据国家互联网应急中心(CNCERT/CC)报告显示,2014年我国境内遭木马僵尸感染的网络主机为1108.8万余台,遭木马僵尸控制的服务器为6.1万余台[2]。僵尸网络已成为网络安全最大威胁之一,P2P(Peer-to-Peer)协议由于其动态可扩充的特点和加入退出的灵活机制,成为近年来僵尸网络主要使用技术。如何对P2P僵尸网络制定有针对性的检测措施已成为关注的重点。

1 僵尸网络特点、结构、感染过程

1.1 僵尸网络特点

僵尸网络(Botnet)是由被控主机组成的群体,通过使防御薄弱的计算机感染木马、蠕虫、间谍软件等病毒,进而主动从僵尸主机下载安装bot程序,形成受控制的僵尸网络系统。僵尸网络具有一定的分布性,随着bot病毒传播不断有新的僵尸主机添加到所控网络中,僵尸网络最明显的特征是行动统一。从传播性、可控性、隐秘性等方面看,僵尸网络与传统木马、蠕虫病毒相比具有更大危害性和破坏性。

近年来,P2P技术被僵尸网络频繁使用,如Nugache就是通过IM(即时通信)工具,利用工作站漏洞以邮件方式传送病毒,开启TCP协议端后门实现僵尸网络的扩充,并使用加密代码遥控被控主机。新型的僵尸网络攻击技术有Hypervisor[3](VMM)、Fast Flux domains[4], Hypervisor可在被控主机不知情的情况下控制不同主机处理器和系统资源。Fast Flux domains是借助代理服务器更改IP达到隐藏自身目的。

1.2 僵尸网络结构

僵尸网络结构分为两种:一种是集中式网络,由HTTP协议或IRC协议信道构建,由中心服务器连接所有被感染主机,控制主机通过一对多方式统一发布指令,其特点是易于控制所辖主机,但过于依赖中心节点的结构易被摧毁,如:spybot、Phatbot均是此类结构;另一种是分布式网络,鉴于P2P连接特点,其网络结构不存在中心节点,所有节点均对等,加入及退出灵活,节点间联系松散,在拓扑结构上继承P2P鲁棒性和可扩张性,且分布式的特点使得检测困难,是目前僵尸网络主要发展趋势,如图1所示。

1.3 僵尸网络感染过程

P2P协议僵尸网络具有更强的稳定性,感染过程包括病毒传播、感染安装、连接、等待指令执行四个阶段。僵尸网络通过扩散bot程序达到扩大网络规模的目的,传播方式包括主动攻击OS漏洞、IM软件、Email病毒、网页挂马、恶意网站脚本等;主机感染后随着病毒的发作主动加入到僵尸网络中,并打开相应网络端口,等待接收执行指令;在连接、等待指令执行阶段,僵尸网络会对被控主机发出的命令进行身份认证,并调用指令发起攻击。

从上述流程看,加入僵尸网络的终端将协同工作,会对网络造成极大损害,其表现如网络拥塞、消耗带宽、分布式拒绝服务攻击(DDos)、发送垃圾邮件等,易造成网络瘫痪、个人私密信息泄露。僵尸网络更倾向于窃取企业财务数据信息、机密商业信息,并利用企业间网络互联或同行业间的合作关系扩大攻击范围,给企业以重创。

2 僵尸网络的流量检测

针对P2P僵尸网络信息流特点,提出基于流量的检测方法,检测过程包括流量采集、数据流量预处理、DNS流量检测、最终确定目标四个阶段,如图2所示。

2.1 网络流量的采集

网络流量采集有一些较为成型的方法。张潇丹等在2012年提出一种基于云模式的流量采集方法[5]。随着网络种类不断增加,流量采集技术研究也呈现多样化趋势,基于规则的流量采集法[6],就是通过建模、设立规则,设计、实现流量采集。一种较完善的网络流量采集方法是使用Netflow协议采集IP流量数据信息,以报文形式输出到指定Netflow收集器,Netflow报文包括IP数据包大小、每秒数据流量、总数据流量等信息[7]。此阶段主要关注网络内、外数据流量情况。

2.2 P2P网络流量预处理

网络流量预处理包括端口流量检测、TCP/UDP数据包检测法、信息流特征过滤等方法。

网络端口分为三种:公认端口、注册端口、动态/私有端口。公认端口(常见端口),端口范围为0-1024,绑定为特定服务。如:端口23为Telnet服务所专用。注册端口,端口范围为1025-49151,大多无明确规定的服务对象,程序根据自身需求规定服务端口,一些远程控制软件或木马、蠕虫程序即规定此类端口为其服务。动态/私有端口,端口范围为49152-65535,木马程序常利用此类端口易于隐蔽的特点传递数据。

端口流量检测是通过UDP或TCP数据包的源、目的端口信息检测HTTP、SMTP、HTTPS等常见信息流,且成熟的P2P协议均使用固定端口通信、端口流量易于检测、耗时短。早期僵尸网络曾使用现有P2P协议端口作为其通信协议端口,此类流量易于检测。随着技术的进步,大多僵尸网络已变更其端口通信方式,使得用固定端口方法检测僵尸网络变得困难,此方法可作为僵尸网络检测的初步手段,要判定僵尸网络还需结合其他方法。

过滤网络内外部通信的数据流并做聚类分析,生成一些P2P节点聚类群。去掉使用相同且P2P协议为已知的聚类群数据;将剩余数据流使用信息流特征过滤方法重新做聚类分析,并对所获得的聚类群做统一标注n1,n2,…nk,以便后期继续深入检测。

2.3 DNS异常流量检测

僵尸网络为避免暴露自身通常不会使用固定IP与C&C(命令与控制)通信,现阶段通信方式主要为DNS(域名解析)方式,通过请求解析命令遥控服务器IP。其组网特点决定产生的DNS流量相比较于正常网络存在较大区别,可通过此方法检测其是否为僵尸网络。

为更好地隐蔽僵尸网络,DNS攻击者主要使用DDNS(动态域名)技术,结合flux技术、Fast-flux和Domain-flux技术隐身于控制端服务器。Flux网络IP数量多、变化快,且域名解析记录在DNS服务器中存留时间(TTL)短,一般小于300s。Fast-flux网络由被控主机系统构成,利用动态域名的动态代理技术,隐藏其主机于flux-agent(服务代理)背后提供服务,Fast-flux可为一个合法域名分配多个IP,并以每3分钟的速度更替IP。Domain-flux域名时有变化,但IP固定,通过快速变换域名提高信道控制能力。

Schonewille和Van Helmond提出检测DNS流量中域名解析错误(NXDOMAIN)信息来检测僵尸网络域名[9]。僵尸网络的特点导致僵尸主机频繁更换域名且使用不同IP,造成大量访问域名无效,通过检测IP数据流量变化可检测出被感染的僵尸主机。

DNS异常流量检测分为:DDOS攻击检测、垃圾邮件检测等方法。作为网络攻击者,僵尸网络使用P2P协议主要是为了实现快速通信而非文件的传输,在P2P使用上与正常传递文件相比,数据流量和集中程度都有所不同。

2.3.1 DDOS攻击检测

DDOS(分布式拒绝服务)攻击通过大量消耗网络资源,使得网络服务器或主机不能响应用户端请求。近年来,DDOS攻击事件增多,攻击流量明显增大,2015年9月22日魅族官网遭受混淆型DDOS攻击,长达40分钟无法对外提供服务,瞬时并发流量达7G/S[10]。

当网络节点遭受DDOS攻击时网络流量大幅增长,新出现的源IP大量增加。也有例外情况,当大多数人就某个热点话题进行讨论或某个特殊时段集中访问某个网站时,也会出现网络流量大幅增长情况,仅据此判断受到DDOS攻击并不完全正确。但正常访问高峰不会有大量新IP出现,且DDOS攻击网络时可伪造数量众多的源IP,因此,网络中流量大幅增长和新的源IP大量增加是网络遭受DDOS攻击的明显特征,可判定为遭受僵尸网络攻击。

2.3.2 垃圾邮件检测

垃圾邮件检测是检测僵尸网络攻击的主要方法之一,被攻击网络会随机的快速发送大量未经请求的邮件,此过程中,受感染节点充当垃圾信息传播者,发送大量邮件但很少接收邮件[8]。邮件系统常用的传输协议是SMTP协议,该协议提出源节点到目的节点的传输规则,用来控制邮件的传输中转方式,用于邮件服务器之间数据传输。僵尸网络控制某主机后,会在其内部搭建小型邮件服务器,并在一段时间内使用SMTP协议给用户邮箱发送大量邮件。2014年第四季度中国反垃圾邮件状况调查报告显示,用户电子邮箱收到的邮件数量为35.0封/周,其中垃圾邮件为14.3封/周,占比41.0%。

僵尸网络控制主机具有很强的隐秘性,主机通过不同的受控服务器向终端用户邮箱发送大量垃圾邮件,此时出现一个源IP对应多个目的IP的情况。因此,可从调用SMTP协议发送邮件过程判断其是否发送垃圾邮件,进而定位垃圾邮件源头。

3 防范策略

鉴于僵尸网络的危害性巨大,防范措施有两方面。一方面针对网络防御而言,通过加强网络主机的防御级别以防感染僵尸程序,及时更新杀毒软件库、删除已经感染的僵尸程序,包括使用恶意软件移除工具检查并移除之,且遵循安全策略、使用防火墙拦截、DNS阻断、更新补丁、使用有授权的软件产品等防御手段。另一方面是针对控制和打击僵尸网络,可通过破解僵尸网络域名算法预先注册其域名,直接接管在用的僵尸网络;也可利用僵尸网络的命令和控制信道摧毁其网络,或使之不能危害Internet正常网络环境。

4 结束语

本文探讨了P2P协议僵尸网络的流量检测技术并提出具体检测方法。通过P2P流量预处理、流量端口检测相结合可初步检测出可疑流量,再针对可疑流量做DNS异常流量检测确定其是否为僵尸网络,此方法对检测僵尸网络有一定效果。从僵尸网络结构来看,集中式僵尸网络检测技术较为成熟,而分布式P2P协议的僵尸网络由于其没有集中控制节点、结构分散,检测相对困难。后续应在DNS异常流量检测方面做进一步深入的探讨,以期能在检测的准确性和速度方面有所突破。

参考文献(References):

[1] 中国互联网络信息中心.CNNIC发布第36次《中国互联网络发展状况统计报告》[DB/OL].http://www.cac.gov.cn/2015-07/23/c_1116018119.htm,2015.7.23.

[2] CNCERT. 2014年中国互联网网络安全报告[DB/OL].http://www.cert.org.cn/publish/main/46/2015/20150602085719088775378/20150602085719088775378_html,2015-06-02.

[3] 张冰,杜国琦,李静.僵尸网络发展新趋势分析[J].电信科学,2011.2:40-41

[4] Steggink M, Idziejczak I. Detection of Peer-to-PeerBotnets[J].University of Amsterdam,2008.2(12):103-110

[5] 张潇丹,李俊.一种基于云服务的网络测量与分析架构[J].计算机应用研究,2012.29(2):725-729,733

[6] 包铁,刘淑芬.基于规则的网络数据采集处理方法[J].计算机工程,2007.33(1):101-103

[7] 谢喜秋,梁洁,彭巍.网络流量采集工具的分析和比较[J].电信科学,2002.4:64-66

[8] Sroufe P, Pheithakkitnukoon S, Dantu R, et al. Email Shape Analysis for Spam Botnet Detection[C].Consumer Communication and Networking Conference,2009:81-89

[9] A. Schonewille and DJ. Van Helmond. The Domain NameServices as an IDS[D]. Netherlands: University of Amsterdam,2010.

[10] Yesky天极新闻. 魅族官网在发布会前夕遭DDOS攻击[DB/OL].http://news.yesky.com/167/97676167.shtml,2015-9-23.