基于Apriori算法的流量识别特征自动提取方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008年12月Journal on Communications
D ecember
2008 第29卷第12期通信学报V ol.29No.12
基于Apriori算法的流量识别特征自动提取方法
刘兴彬1,2,杨建华1,谢高岗1,胡 王月1,2
(1. 中国科学院计算技术研究所下一代互联网研究中心,北京 100190;2. 北京科技大学信息工程学院,北京 100083)
摘要:提出了一种基于Apriori算法自动提取协议识别特征的方法,该方法可以自动提取2种最常用的协议识
别特征——特征字符串和包长特征,提取特征的效率较传统方法有很大的提高。通过识别率、准确率、正误识别
率和负误识别率等指标验证了所提取特征的准确性和完整性,并根据结果反馈指导特征提取的过程,保证了提取
特征的可靠性。
关键词:流量识别;自动提取协议识别特征;Apriori算法;深度包探测
中图分类号:TP393.08 文献标识码:A 文章编号:1000-436X(2008)12-0051-09
Automated mining of packet signatures for traffic identification
at application layer with apriori algorithm
LIU Xing-bin1,2,YANG Jian-hua1, XIE Gao-gang1, HU Yue1,2
(1. Research Centre of Next Internet Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190, China;
2. School of Information Engineering, Beijing University of Science and Technology, Beijing 100083, China)
Abstract: Automatic and accurate extraction packet signatures are the foundation of the precise traffic identification at
application level. A method which can automatically extract the packet signatures of characteristic string and packet
length for traffic identification at application layer was proposed. The identification rate, accuracy rate, positive identifi-
cation error rate and negative identification error rate have been verified with experiment on some traces to valid the
mined signatures.
Key words: traffic identification; automatically extracted signatures of protocols; Apriori algorithm; deep packet in-
specting
1引言
网络应用层流量识别对网络规划、网络管理、流量工程、安全检测等至关重要。传统的应用层协议流量识别方法主要基于IANA(Internet assigned numbers authority)定义的协议端口实现。然而,目前许多新的应用层协议为了逃避防火墙的过滤、避开主机的限制以及出于本身安全因素等原因[1],逐渐开始采用动态端口号,甚至加密方式进行通信。Subhabrata Sen等分析发现Kazaa P2P 协议进行通信的流量中,仅30%的Kazaa流量是通过传输层的缺省端口号传输的,这表明仅使用固定端口号进行
收稿日期:2008-08-20;修回日期:2008-11-18
基金项目:国家重点基础研究发展计划(“973”计划)基金资助项目(2007CB310702);国家自然科学基金资助项目(90604015);中国科学院重大科研装备研制项目(YZ200824)
Foundation Items: The National Basic Research Program of China (973 Program)( 2007CB310702); The National Natural Sci-ence Foundation of China (90604015); The Major Research Project to Develop Equipment of China Academy of Sciences (YZ200824)
·52·通信学报第29卷
流量识别是很不准确的[2]。为解决此问题,研究者们提出了深层数据包探测技术(DPI, deep packet inspection)识别方法[2]和基于传输层流特征的检测技术(transport layer identification) [3~9]。
DPI(deep packet inspecting)方法通过找出数据包载荷中的特征字符串等特征,组成应用层协议识别特征库,采用特征匹配的方式进行流量识别。但DPI方法实现准确识别的前提是正确找出应用层协议特征,协议识别特征的准确性对识别率、准确率以及误识别率都有极大的影响。
基于传输层流量特征的检测技术,研究人员运用统计学方法对协议的包长分布、流持续时间、平均包到达时间等数据进行分析[3~9],得到协议流量的统计分布特征。由于统计特征存在一定的误差,识别的准确率不高,且一般不能把流量识别到具体的协议,实现精确的在线实时识别比较困难,所以目前实际应用中较少采用此方法。
Haffner和Sen提出了一种自动提取协议应用层流量特征的方法,并附有FTP、SMTP、POP3、HTTP等几个协议的实验结果[10]。但是该方法对训练Trace中协议的识别方法仍采用传统的基于端口号的方法,因此无法识别采用动态端口通讯的应用层协议;文献[10]假设所测试的几种协议大部分仍采用静态端口通信,但在目前的网络环境下,这种前提假设已经非常不准确,例如目前有许多协议采用隧道机制用80端口进行传输,但并非采用80端口的都是HTTP协议。另外,其特征识别方法是基于Naive Bayes[11], AdaBoost[12],Maximum Entropy[13]等统计学的方法,而基于统计方法识别本身就存在一定的误差和不确定性,并且随着识别协议的增多误差将迅速增大。
现有常用的应用层协议识别特征的提取方法[2,14~16]分为以下2种:①找到应用层协议的定义文档,根据文档的定义得到该协议的应用层特征;
②通过wireshark、tcpdump等捕包工具捕获协议通信过程的数据包,通过人工查看、对比每一个流相对应的数据包,发现该协议的应用层特征。
目前很多新的应用层协议的协议定义文档并不公开,如PPlive协议。即使有些协议是公开的,其版本更新的频率也给协议识别特征的更新带来了巨大的挑战,更重要的是采用人工分析方法寻找协议识别特征的效率与可信度都较低。
为解决上述问题,本文提出了一种基于Apriori 算法的流量识别特征自动提取方法,该方法能够挖掘提取2种最常用的识别特征:特征字符串和包长特征。该方法的效率较人工分析方法有极大的提高,可以非常方便地实现特征库中每种协议识别特征的周期性更新。该方法是在对大量数据挖掘分析的基础上得到的特征,获得的应用层协议识别特征更完整、更完全。而人工分析方法只能发现部分明显的特征,特征的完整性和完全性没有保证。该方法在得到协议的最终识别特征前对多个可能的识别特征进行了多级过滤,并利用识别率、准确率、正误识别率和负误识别率这4个指标,对提取的识别特征的正确性和可靠性进行了验证,保证了特征的准确性和完全性。
本文后续章节安排如下:第2节详细阐述方法各部分的实现与功能;第3节实验与结果分析,并根据实验结果对特征提取过程进行反馈修改;第4节为结束语。
2流量识别特征自动提取方法
该方法首先捕获训练Trace,并假设此训练Trace是纯净的,即只包含用同一种应用层协议进行通讯的数据包;从训练Trace中提取信息,并对提取的应用层载荷编码;然后基于Apriori算法挖掘经过编码的数据的频繁项集;并对频繁项集进行过滤,以及基于频繁项集挖掘包长特征;最终生成识别应用层协议的特征文件。
2.1自动提取特征的基本思想
方法以提取特征字符串为基础,提取特征字符串同时是提取包长特征的前提。
定义1特征字符串:一个在应用层载荷中固定位置出现的字节组合。
特征字符串是最常用的一种识别特征,本文将特征字符串归纳为以下2种类型:①应用层协议报头中的特征字符串,包括版本号、协议名称等,如BitTorrent协议的报头中第2~20字节的值是:BitTorrent Protocol字符串;②协议控制信息中的特征字符串,包括命令代码、标识信息等。这2种类型的特征字符串在连接建立后传递的前几个数据包的前部分出现的概率较大,且在相同偏移的数据包内出现同一特征字符串的概率更大,如BitTorrent 协议在连接建立后的第1个数据包的前N个字节大部分是BitTorrent Protocol,迅雷连接建立后第1个数据包的前4个字节大部分是0*39, 0*00, 0*00,