任斌++周亦敏
摘要:互联网面临安全隐患,而僵尸网络是最严重的隐患之一。介绍了高速网络环境下数据获取与还原,总结了僵尸网络检测的组织架构,在此基础上设计了僵尸网络检测系统,完成了IRC/HTTP Bot程序检测。在阶段性检测算法基础上设计了僵尸程序检测算法。运用该算法捕获并分析了15天内的监测数据,验证了该系统的有效性。
关键词:僵尸网络;僵尸网络检测;IRC;HTTP;网络安全
DOIDOI:10.11907/rjdk.171684
中图分类号:TP309
文献标识码:A 文章编号:16727800(2017)010018903
0引言
僵尸程序是在Bot主机中运行的非法恶意程序,凭借融合各种形式的恶意代码形成当前最为复杂的互联网攻击形式之一。平台攻击者通过僵尸网络偷取关键信息,操控不计其数的Bot主机对互联网上任意僵尸主机发起DDoS攻击、钓鱼攻击、窃取用户隐私、发送垃圾邮件,采取恶意欺骗手段获取巨额经济利益。
中国是全球感染僵尸主机数量最多的国家, 2015年全球范围内检测到的23 095起僵尸网络发动的分布式拒绝服务攻击中,中国占37%。2016年,赛门铁克公司共检测到2.5万个僵尸网络袭击行为, 1月垃圾邮件比例为53.5%,比上年全年最低(6月)的49.7%高了將近4%。由此可以看出僵尸网络活动依然很频繁,网络安全人员急需设计出一种切实可行的检测方法来预防僵尸网络的发展。
目前僵尸网络检测系统中,比较全面的有Gu等人完成的BotHunter[3]、BotSniffer[4]和BotMiner[1]。BotHunter系统以证据链关联思想为基础,把恶意Bot程序传播过程理解为一台内网主机和一台或若干台外网主机之间的信息共享链,第一次全面阐述了僵尸程序扩散过程。BotSniffer根据僵尸网络终端活动时间与空间的相似度特征,成功检测了IRC/HTTP僵尸网络。BotMiner系统依据僵尸网络程序具备传播恶意程序这一特征,设计出基于聚类的流分析方法,检测系统中网络终端的恶意行为Aability与相似通信行为Cability。
1僵尸网络检测系统
僵尸网络检测系统包含4个组件:①数据获取还原模块;②规则产生模块;③僵尸程序收集检测模块;④IRC僵尸网络检测模块。
数据获取模块获取内网与外网之间所有通信信息,对IP报文进行重组与TCP数据整合,还原HTTP/IRC协议数据包,传递到僵尸程序收集监测模块进行处理。这里内网指系统正在监控和保护的网络。
规则产生模块中非法僵尸程序的获取以蜜猴和蜜罐为核心,获取恶意僵尸程序检测所特有的活动事件,将其存入规则数据池。在僵尸网络检测系统中,网络活动有命令控制服务器URL/IP查询结果后回溯的payload[6],这两类活动都基于P2P协议中僵尸网络一事一议的特点。
收集检测模块必须依照匹配规则才能进行僵尸程序监视。检测到僵尸网络任何动态,都会及时更新日志,记录日期、数据信息及匹配规则。
IRC僵尸网络检测模块根据IRC僵尸网络终端的动作特点进行检测,一旦组件监听到僵尸频道就会实时更新日志信息,记载该频道的服务器地址及终端IP数据消息。
2数据捕获及还原
2.1数据分流
为了让网络消息处理性能更高效,必须对数据平均分配处理。数据分配计划应做到以下两点:①为了确保每个节点机的负载均衡,就要使数据流平均分配到每个节点机;②为了降低和取消每个节点机之间的信息依赖关系,就要确保每个TCP连接的数据都划分到相同的节点机上。
在TCP/IP协议中,四元组被作为重要的分流控制参数。一方面确保相同源和目的地址的所有连接顺利映射到一个节点机上,另一方面必须确保源参数与目的参数拥有相同的操作等级。满足这个要求最合适的方式是进行异或操作,按照以下公式分配:
XOR (Sip,Dip,Sport,Dport) mod n
n为并行节点个数。
2.2数据捕获
当前网络监控系统大规模使用Libpcap[5]捕包平台。Libpcap的最快处理速度是40kpps,该Libpcap[5]捕包平台应用零拷贝技术可以成功完成数据捕获,从而提高数据捕获效率。在数据发送和数据接收过程中,如果采用零拷贝技术,就可保证数据包在应用程序的用户缓冲区和网络接口间顺利交接,从而规避数据拷贝过程。
首先,采用Linux操作系统的内存映射机制。该内存机制将某一块内核空间对应到虚拟地址空间,用该空间内的虚拟地址访问对应的物理地址空间,从而使内存空间可被用户和内核共同使用。其次,实现内核和网卡协调工作。为了更新一个虚地址到物理地址的映射表,就要在存储空间的缓冲区块建立一个索引,该索引可由虚拟设备组件来承担。在处理地址解析问题时,通过拜访虚拟设备模块获取所需目的地址,实现若干用户登录网络接口和缓冲区,但该保护机制每次对网络接口的修改只能限定为一个进程。最后,在中断上加一个定时器。定时器可在修改驱动程序的过程中固定时间发生一次中断,并且可同时对不同的数据文件进行处理。
2.3多线程并行TCP/IP协议栈
TCP/IP协议栈不同来源的信息流全部从通信线路上输入,利用协议栈逐层解析,最终找到来自应用层的初始数据流,之后再反馈给对应的应用插件进行最终解析。
并行协议栈利用不同数据分发器,将捕包模块获取的数据流量包遵循既定规划,分配到对应线程进行分析,再通过空闲单元探测器结束该线程释放。每个TCP/IP协议栈线程分为一个协议栈状态表与两个信息队列,两个信息队列分别用来存储未处理数据块和已处理数据块。
3僵尸网络检测endprint
3.1协议解析
僵尸网络检测首先要识别IRC流和HTTP流,之后IRC流分配给IRC检测算法进行分析,HTTP流分配给僵尸网络检测算法进行分析。IRC通信端口分布较广,所以本文采用NICK关键字来区分IRC通信。当客户端成功访问服务器之后,会第一时间发送一条NICK命令用于标记IRC流。由于采用HTTP协议的数量较多,本文会检测某一链接是否为HTTP流,如果无法确认则转到HTTP Pending状态,并进行流量包分析;如果判定为不是HTTP流,则再判定是否为IRC流,如果确认二者都不是,则丢掉该链接。
3.2IRC僵尸网络检测
对已经感染IRC Bot程序的主机,最大的困难在于如何发现该恶意程序。Bot广泛使用IRC协议标准的TCP 6667端口,但这种端口较少使用,很难被发现。大多数情形是Bot很少处于静止状态,会不停地扫描、扩散,与此同时,系统网络负载会大量增加,大量占用系统资源,导致机器反应明显变慢,这和蠕虫感染很相似。所以本文借鉴蠕虫病毒检测方法,采用蜜墙Snort数据控制Bot向外连接阻断,控制本机的Bot僵尸程序。
来自外部网络的IRC Bot数据包分为两部分:①搜索数据包的Bot特征;②搜索IRC僵尸网络聊天信道特征,并核对其信息。在蜜墙部分设计好必要的监视程序,设计流程如图1所示。
图1僵尸网络监测流程
3.3HTTP僵尸网络检测
HTTP僵尸网络检测通过规则驱动检测模块实现, URL自动机和敏感内容自动机是从规则生成模块产生的两个匹配自动机。 URL自动机通过URL和IP地址产生关键字,通过返回信息或攻击者发布命令产生自动机关键字。
目前经典的多模式匹配算法是AhoCorasick[10],通过该算法可以高效快速定位文本中出现的所有关键字,定位只需扫描一次便可。AhoCorasick算法具备两个显著特征:①运用该算法扫描时无需回溯;②时间复杂度为O(n),关键字的数量和长度对O(n)没有丝毫影响。
设计URL自动机应考虑将URL的首部作为关键字,以确保分配到该网络的共性域名。在创建敏感内容自动机过程中,将内容看作以一个字节为单位的二进制代码,而不关心具体编码,确保理解密文。HTTP流分解后,需要用两个自动机对关键字匹配。若匹配成功则认为该HTTP流属于僵尸程序通信,将该HTTP流源地址和目的地址及匹配到的关键字存入规则库;若匹配失败,则判断该流是无污染HTTP流而丢掉。
3.4僵尸程序检测算法
根据两阶段检测模型设计僵尸程序检测算法如下:
输入:时间差阈值Tt,己训练分类器CSVM,监控进程列表{P}
输出:僵尸程序列表{B}
初始化,{B}=,{P} =;
启动自动连接监控,当出现DNS查询活动时,提取对应进程相关参数(T,S,F),其中T=Tkm-TDNS,S为键盘鼠标事件来源,F为进程运行状态,若满足T
对{P}中进程,记录其DNS反应行为,得到Sd={n2,n4,n5,n6},Sn={n1,nB};
计算H(Sd)=-∑ipilogpi,pi=ni∑ini,rate=∑ini∑ij=1nj,构成特征向量F=(H(Sd),rate),其中i=2,4,5,6;
将F=(H(Sd),rate)输入分类器CSVM,得到分类结果;
若输出结果为-1(代表僵尸程序),将对应进程名称加入{B},结束
4实验结果及分析
僵尸网络检测系统针对网络流量进行捕获,利用分光器通过监测两个路由器的流量并加以复制,将该流量传递给数据分发机进行分析,分析后依照通信协议分配给相应的检测机。系统每日检测到的僵尸网络控制服务器数目如图2所示。IRC僵尸频道数目比IRC控制服务器数目多,原因是多个僵尸信道可能处在相同的服务器中。但是HTTP僵尸信道数量和HTTP控制服务器数量却一样,是因为每个IP地址对应了不同的僵尸信道。僵尸网络的使用权通常会出租或转售,如果在同一个服务器中发现了多个僵尸频道,则认为是同一人设计了这些僵尸频道,排除了多个黑客共享一个服务器的可能。
图2每日监测命令控制服务器
5结语
僵尸网络是互联网最严重隐患之一,本文研究并实现了大规模网络环境下僵尸网络检测系统,完成了IRC/HTTP僵尸网络检测,通过实验验证了僵尸网络活动阶段。其中HTTP僵尸网络不仅包括传统的基于HTTP协议创建的恶意程序,还包括使用HTTP协议获取命令的恶意程序。本文只做了一个初步的阶段性工作,今后要进行更加深入的研究。
参考文献参考文献:
[1]G GU, R PERDISCT, J ZHANG, et al. BotMiner: clustering analysis of network traffic for protocoland structure independent botnet detection[C].Proceedings of the 17th USENIX Security Symposium. San Jose, CA,2008:139154.
[2]F JAHANIAN. Enter the botnet: an introduction to the postworm era[C].Proceedings of the ARODARPADHS Special Workshop on Botnets,2006.
[3]G GU, P PORRAS, V YEGNESWARAN. Bothunter detecting malware infection through IDSdriven dialog correlation[C].Proceedings of the 16th USENIX Security Symposium. Boston, MA,2007:167182.
[4]G GU, J ZHANG, W LEE. BotSniffer: detecting botnet command and control channels in network traffic[C].Proceedings of the 15th Annual Network and Distributed System Security Symposium. San Diego, CA,2008:269286.
[5]王佰玲,方濱兴,云晓春.零拷贝报文捕获平台的研究与发现[J].计算机学报,2005,28(1):4751.
[6]罗浩,云晓春,方滨兴.多线程TCP/IP还原技术的研究[J].高技术通讯,2003,13(11);1519.
[7]陈训逊,方滨兴,李蕾.高速网络环境下入侵检测系统结构研究[J].计算机研究与发展,2004,41(9):14811487.
[8]A KURMANN,F RAUCH, T STRICKEN. Speculative defragmentationleading gigabit ethernet to true zerocopy communicatio[J].Cluster Computing,2001,4(1):718.
[9]J RANTWIJK. Data transmission in the antares data acquisition system[D].De1ft,India:Delft University of Technology,2002.
[10]A AHO, M CORASICK. Efficient string matching: an aid to bibliographic search[J].Communications of the ACM,1975,18(6):333340.
责任编辑(责任编辑:杜能钢)