一种基于流量分析的P2P僵尸网络检测模型

2015-10-22 21:04李金猛王剑唐朝京
现代电子技术 2015年19期

李金猛 王剑 唐朝京

摘 要: 梳理了P2P流量识别与基于流量分析的P2P僵尸网络检测的若干方法,在深入分析其各自优点与局限性的基础上提出了一种复合检测系统模型CAID。CAID模型由捕获、分析、识别和检测四部分组成,该模型针对P2P僵尸网络,通过流量的获取、识别与分析构建了完整的检测预警机制,为后续处理打下了坚实基础。最后,对该模型进行了实验分析。

关键词: 僵尸网络; 流量分析; 检测模型; P2P

中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2015)19?0106?04

Abstract: The methods of P2P flow identification and P2P botnet detection based on flow analysis are introduced. A composite detection system model CAID is put forward on the basis of analyzing the advantages and limitations of the methods. The model is consisted of capture, analysis, identification and detection. The integrated detection and early warning mechanism was constructed by flow acquisition, identification and analysis for P2P botnet, which builds a solid foundation for the subsequent processing. This model was conducted with experimental analysis.

Keywords: botnet; flow analysis; detection model; P2P

0 引 言

僵尸网络是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络[1]。僵尸网络为攻击者提供了发送垃圾邮件、DDoS攻击、窃取用户信息、点击欺诈、网络仿冒、传播恶意软件与保存非法文件等多种攻击方式的平台,迅速发展成互联网最严重的安全威胁之一。早期的僵尸网络多是基于IRC聊天协议或是HTTP协议搭建集中式的命令与控制信道,尽管搭建简单、可扩展性强、命令传递效率高,但都存在单点失效的缺陷。

与传统客户机/服务器模式不同,P2P网络采用分布式结构,利用网络边缘节点传递控制命令、管理信息和资源,网络中每个节点既是客户机又是服务器。P2P僵尸网络作为新一代僵尸网络,采用P2P协议构建其命令与控制机制使得它们更有隐蔽性和鲁棒性,其功能和结构不断翻新,并通过十来年的发展已经构成了越来越大的网络安全威胁,国内外各研究机构和反病毒厂商纷纷展开了对它的跟踪与研究。

针对P2P僵尸网络的检测研究已经在多个方面深入开展,但由于P2P僵尸网络较强的个性特征,一直缺乏有效通用的检测方法。当前检测方法主要分为基于流量分析的检测方法和基于异常行为的检测方法。本文主要探讨基于流量分析的检测方法。

基于流量分析的检测方法通过分析P2P僵尸网络在各个生命周期产生的特殊网络数据,找出P2P僵尸网络的流量和行为特征并生成特征向量,然后用机器学习的方法对P2P僵尸网络进行检测,以此来判断网络流量中是否存在P2P僵尸流量。

Thorsten Holz等人通过反汇编僵尸病毒的二进制代码,剖析其传播机制、恶意行为与加密方式等特征,进而实现对P2P僵尸网络的跟踪、检测与反制[2]。

Saad等人从网络流和通信模式中提取17种特征建立特征组,使用10倍交叉验证技术来评估和比较5种常见的机器学习技术,发现SVM的正确检测率大约为97.8%,可用于构建僵尸网络检测框架[3]。

Liu等定义一组指标作为数据挖掘的参数来区分僵尸主机流量、正常P2P流量、游戏流量和一般网络流量。分析和测试结果表明,数据挖掘技术可以在同一主机的各种混合流中发现Peacomm僵尸网络流,检测率在87%~98%之间[4]。该方法能检测加密的P2P僵尸网络流量,但需处理大量的流信息,复杂度高[5]。

文献[6]提出基于TCP连接成功检测算法动态分析快速定位僵尸网络,通过从交换机镜像端口采集数据,定义时间滑动窗口为100 s,很好地区分了P2P僵尸网络、传统应用和P2P应用三种不同流量[6]。然而问题是该实验为定制环境,并未经受实际网络环境检验,所针对的也是个别僵尸网络,并且对数据采集有很高的要求。

本文着眼于利用P2P僵尸网络不同生命周期阶段中产生的特征流量来检测P2P僵尸网络,基于丰富而有效的流量分析识别技术,结合恶意网络行为特征的检测,构建一种新的P2P僵尸网络检测系统模型并给予实验验证。

1 P2P流量分析与识别

到目前为止,已知的P2P网络流量分析与识别方法主要有以下四种:基于固定端口识别、基于内容特征识别、基于流行为特征识别以及基于机器学习识别。下面简要说明各识别方法的相关特点。

(1) 基于固定端口识别方法

根据各个应用协议在IANA(The Internet Assigned Numbers Authority)注册的端口号来标识协议,其基本原理是通过TCP/IP模型的传输层UDP数据包或者TCP数据包中的源、目的端口号来识别一些网络流量。由于算法简单、所需信息少,而且在第一代的集中式P2P网络中,P2P应用大多使用固定的端口进行通信,因而端口识别成了最早的P2P流量识别方法。然而,随着技术的发展,一些P2P应用使用随机端口或伪装使用一些传统应用端口进行通信,TCP/UDP端口识别方法的准确率[7]已经低于50%。endprint

(2) 基于内容特征识别方法

即深度包检测技术(Deep Packet Inspection,DPI),其主要原理是对P2P应用载荷进行报文特征分析,提取特征关键词串,再对特征串根据应用层协议进行定义(定义的一般原则[8]为:选择某一P2P协议特有的,在实际数据交互过程中必须出现且出现频率最高的关键词串),建立特征库。然后对基于五元组的网络数据流,采用模式匹配算法判断其是否存在特征库中的特征串,如果匹配成功,那么该网络数据流就是P2P应用的流量。该方法识别精准、稳定可靠,存在的问题是对未知或加密流量均无能为力,并且时空开销也比较大。

(3) 基于流行为特征识别方法

该识别方法主要是通过节点之间的连接模式识别P2P流量,如通过节点角色、{源IP,目的IP}协议对、{IP,Port}对等检测。该方法不需要检测应用载荷特征,其检测对象主要是网络中的节点,在P2P节点之间传输的网络数据流被认为是P2P流。这种识别方法在实际应用中面临的问题主要有:仅能粗粒度地识别P2P和非P2P应用,一般不能区分出具体的P2P应用;提取P2P网络行为特征的时间开销和空间开销较大[9]。

(4) 基于机器学习识别方法

首先观测流量数据样本(这些网络流量应当是具有一些统计特征的,例如流的持续时间、数据包大小、数据包方差等统计信息,这些统计特征对某些特定的应用来说是独特并鲜明的,可以使不同的应用互相区别开来)。然后,根据这些网络流量的各种统计属性特征进行训练,构建训练模型,最后通过学习和预测分类出新的数据类型。该方法具有良好的适应性,不论是根据预定义还是聚类的方法设计出的识别分类系统,在面对新的应用时都能方便地获得应用特征。

基于以上分析,新的检测系统模型在P2P流量识别这一步将综合采用固定端口、内容特征以及流行为特征识别方法,结合各方法的优点,有效过滤出P2P网络流量。P2P僵尸网络检测模块采用基于机器学习识别方法,并选用支持向量机算法。

2 CAID检测模型

CAID检测模型由捕获、分析、识别和检测四部分组成,如图1所示。通过捕获从实时高速网络环境中获取数据包,通过分析将数据包按照五元组汇聚成流,通过识别过滤出P2P流量,通过对流量的分析最后检测出P2P僵尸网络。

2.1 CAID检测模型的捕获

模型的捕获部分主要完成对实际高速网络的实时抓包功能,采用Winpcap平台将网卡设置为混杂模式或者直接利用交换机镜像端口获取实时网络数据包。具体实现流程如图2所示。

2.2 CAID检测模型的分析

模型分析部分的主要工作是对捕获的网络数据包进行链路层、IP层和传输层的协议分析,提取出五元组信息,即源IP地址、目的IP地址、源端口号、目的端口号、协议类型,并以此将捕获到的数据包汇聚成不同的数据流。其过程如图3所示。

2.3 CAID检测模型的识别

针对协议分析部分汇聚出的数据流,依次采用基于固定端口、内容特征以及流行为特征识别方法识别出P2P流量,图4为实现流程框图。这种复合识别方法由简入繁,有效发挥各种识别方法的优点,高效利用了有限的计算资源,能较快地从实际网络数据流中过滤出P2P流量。

2.4 CAID检测模型的检测

本部分在协议识别的基础上,继续分析P2P流量及其行为特征,运用支持向量机技术将结果判决为P2P僵尸网络或者非僵尸网络(一般合法P2P应用)。支持向量机(SVM)在解决小样本、非线性及高维模式识别中表现出许多特有的优势[10],其实现思想是通过非线性映射(核函数)将非线性样本问题转化为某个高维空间中的线性问题,进而在此变换空间构造出分类超平面。

本模型采用在高维特征空间中实现最优分类超平面的简单两层支持向量机,如图6表示。决策规则为[y=sgni=1naiyiKxi,x+b,]权值为[a1y1,a2y2,…,anyn]。

对于检测出的P2P僵尸网络,系统会自动生成报告,以便进一步采取测量甚至反制等安全对抗措施。

3 实验分析

采用200台高性能计算机,树形拓扑结构进行模拟实验。实验环境配置为:硬件:CPU Intel 酷睿i5,内存4 GB;软件:各计算机应用VMware虚拟机安装5个操作系统,均为WinXP,选用P2P僵尸程序为Peacomm,独立进行实验10次。采集特征:单位时间内数据包数(npps)、单位时间内字节数(nbps)和单位数据包所含字节数(nbpp)。采用交叉验证方法,应用Libsvm工具,根据检测成功率数据绘制的实验结果如图7所示。

实验结果表明,CAID检测模型的检测成功率随节点增加而逐渐下降,最后稳定在85%左右,CAID模型检测效果良好。

4 结 语

本文在流量分析识别的基础上提出了CAID检测模型,针对模型的捕获、分析、识别与检测等部分分别进行设计和描述。模型运用Winpcap机制从实时网络中捕获数据包,经协议分析汇聚成流,再通过一个复合识别机制过滤出P2P流量,最后将P2P流量提交检测部分,采用支持向量机方法检测出P2P僵尸网络流量。通过模拟实验的分析,模型检测效果良好。进一步的工作将是优化识别与检测算法,拓展并检验模型的适用性。

参考文献

[1] 诸葛建伟,韩心慧,周勇林,等.僵尸网络研究[J].软件学报,2008,19(3):702?715.

[2] 王明丽.基于主机的P2P僵尸病毒检测技术研究[D].成都:电子科技大学,2009.

[3] SAAD S, TRAORE I, GHORBANI A, et al. Detecting P2P botnets through network behavior analysis and machine learning [C]// Proceedings of 2011 the 9th IEEE Annual International Conference on Privacy, Security and Trust. Piscataway: IEEE, 2011: 174?180.

[4] LIU J, XIAO Y, GHABOOSI K, et al. Botnet: classification, attacks, detection, tracing, and preventive measures [J]. Eurasip Journal on Wireless Communications and Networking, 2009, 2009 (1): 53?56.

[5] 唐雅娟,柳雪娟.P2P僵尸网络的检测方法[J].计算机安全,2013(9):32?36.

[6] 刘建波.基于流量分析的P2P僵尸网络检测[J].计算机与数字工程,2011(3):90?91.

[7] ROUGHAN M, SUBHABRATA S, SPATSCHECK O, et al. Class?of?service mapping for QoS: a statistical signature?based approach to IP traffic classification [C]// Proceedings of 2004 ACM SIGCOMM Internet Measurement Conference. New York: ACM Press, 2004: 135?148.

[8] 陈亮,龚俭,徐选.基于特征串的应用层协议识别[J].计算机工程与应用,2006(24):16?19.

[9] 龙涛.一种改进的P2P流量识别方法的研究与实现[D].重庆:重庆邮电大学,2013.

[10] 张学工.关于统计学习理论与支持向量机[J].自动化学报,2000,26(1):32?42.endprint