计算机应用   2017, Vol. 37 Issue (4): 954-959  DOI: 10.11772/j.issn.1001-9081.2017.04.0954
0

引用本文 

李阳, 李青, 张霞. 基于离散序列报文的协议格式特征自动提取算法[J]. 计算机应用, 2017, 37(4): 954-959.DOI: 10.11772/j.issn.1001-9081.2017.04.0954.
LI Yang, LI Qing, ZHANG Xia. Automatic protocol format signature construction algorithm based on discrete series protocol message[J]. Journal of Computer Applications, 2017, 37(4): 954-959. DOI: 10.11772/j.issn.1001-9081.2017.04.0954.

通讯作者

李青 (1976-), 女, 河北正定人, 副教授, 博士, 主要研究方向:网络数据逆向处理、可见光通信、无线自组织网、传感网. E-mail: liqing0206@163.com

作者简介

李阳 (1991-), 男, 河南柘城人, 硕士研究生, 主要研究方向:数据挖掘、流量分类;
张霞 (1979-), 女, 山东济南人, 讲师, 博士, 主要研究方向:机器学习、网络协议分析

文章历史

收稿日期:2016-09-28
修回日期:2016-10-09
基于离散序列报文的协议格式特征自动提取算法
李阳, 李青, 张霞    
信息工程大学 信息系统工程学院, 郑州 450002
摘要: 针对缺少会话信息的离散序列报文,提出一种基于离散序列报文的协议格式(SPMbFSC)特征自动提取算法。SPMbFSC在对离散序列报文进行聚类的基础上,通过改进的频繁模式挖掘算法提取出协议关键字,进一步对协议关键字进行选择,筛选出协议格式特征。仿真结果表明,SPMbFSC在以单个报文为颗粒度的识别中对FTP、HTTP等六种协议的识别率均能达到95%以上,在以会话为颗粒度的识别中识别率可达90%。同等实验条件下性能优于自适应特征(AdapSig)提取方法。实验结果表明SPMbFSC不依赖会话数据的完整性,更符合实际应用中由于接收条件限制导致会话信息不完整的情形。
关键词: 离散序列报文    协议关键字提取    自适应特征挖掘    格式特征    协议识别    
Automatic protocol format signature construction algorithm based on discrete series protocol message
LI Yang, LI Qing, ZHANG Xia     
College of Information System Engineering, Information Engineering University, Zhengzhou Henan 45002, China
Abstract: To deal with the discrete series protocol message without session information, a new Separate Protocol Message based Format Signature Construction (SPMbFSC) algorithm was proposed. First, separate protocol message was clustered, then the keywords of the protocol were extracted by improved frequent pattern mining algorithm. At last, the format signature was acquired by filtering and choosing the keywords. Simulation results show that SPMbFSC is quite accurate and reliable, the recognition rate of SPMbFSC for six protocols (DNS, FTP, HTTP, IMAP, POP3 and IMAP) achieves above 95% when using single message as identification unit, and the recognition rate achieves above 90% when using session as identification unit. SPMbFSC has better performance than Adaptive Application Signature (AdapSig) extraction algorithm under the same experimental conditions. Experimental results indicate that the proposed SPMbFSC does not depend on the integrity of session data, and it is more suitable for processing incomplete discrete seriesprotocol message due to the reception limitation.
Key words: discrete series protocol message    protocol keyword extraction    dadptive format signature mining    format signature    protocol identification    
0 引言

网络流量的准确识别和分类是提供差异性服务质量保障、入侵检测、流量监控及计费管理等的基础。随着网络应用的快速发展, 传统的基于端口号[1]的网络流量识别方法逐渐失效; 基于流 (Flow) 统计特性[2]的方法则无法对应用协议进行精确识别; 而基于深度包检测[3-4]的方法应为应用简单、准确率高, 已经成为目前在实际中广泛应用的方法。

目前已有的研究成果主要是基于完整的会话流来进行应用协议的格式特征提取。Wang等[5-6]分别提出以会话流为单位, 采用X-means聚类算法及粗糙集算法实现混合协议的盲聚类识别, 但由于两人均不采用任何先验信息, 故无法保证识别结果的准确性;刘兴彬等[7]提出基于Apriori算法[8]的报文载荷协议关键字提取算法, 准确率较高, 但其算法依旧依赖完整会话流且效率较低;王变琴等[9-10]针对其效率低下的问题分别提出基于FP-growth[11]的改进算法AdapSig[9]和SPFPA算法来进行改进, 算法效率有了很大提高, 但协议关键字提取仍然在完整会话流中进行。在实际应用环境中, 由于接收条件的限制, 使得具有完整会话流的应用协议数据接收较为困难, 接收到的数据多为离散序列报文而非完整会话流, 在这种较为苛刻的条件下, 如何自动提取协议的格式特征是该领域还没有解决的问题。

为解决上述问题, 本文提出一种基于离散序列报文的协议格式 (Separate Protocol Message based Format Signature Construction, SPMbFSC) 特征自动提取算法, 该算法在挖掘应用协议关键字的基础上, 进一步筛选由其组成的格式特征。

本文主要工作有:1) 提出SPMbFSC算法, 不依赖会话流, 更符合实际应用情形, 适用条件更广; 2) 提出一种改进的DBSCAN (Density-Based Spatial Clustering of Applications with Noise)[12]聚类算法, 能有效地在报文层面对应用协议报文进行相似性聚类; 3) 提出一种基于PrefixSpan[13]的协议关键字提取算法PositionSpan, 能高效地进行协议关键字提取, 同时可以进一步挖掘由协议关键字构成的格式特征。

1 问题描述与分析

定义1  离散序列报文 (Discrete Series Protocol Message) 是指会话中由于次序错乱或部分缺失而形成的报文集合, 记为MS={m1, m2, …, mJ}, 其中:mj(1≤jJ) 为报文。而会话 (Session) 是指一次通信建立和结束之间的所有报文构成的序列, 记为s=m1m2mN, 其中mi(1≤iN) 为按照特定次序排列的报文。在本文中, 约定报文内可打印的字节或字符串用ASCII码格式表示, 不可打印的字节或字符串用形为“\xff”的十六进制格式表示, 其中ff表示两位十六进制数字。

实际环境中接收到的数据多为离散序列报文, 其与传统的完整会话相比具有两方面的特点及困难:1) 无序性; 2) 混叠性。无序性是指接收到的报文只有其到达接收端的时间先后顺序, 由于会话信息的缺失使得无法在接收端按照报文原有次序进行会话重组; 混叠性是指报文在传输过程中由于路由选择、链路质量等问题造成的损失不可估计, 使得接收端接收到的报文是经过重传、丢失等问题后的混合报文集合, 且无法借助其自身或会话信息进行去冗余处理。由于以上困难的存在, 使得目前基于完整会话的协议格式特征提取算法难以适用。

定义2  协议关键字 (Keyword) 是指位置和频度满足一定要求的字符串。同种应用协议的关键字组成关键字集合, 记为K={k1, k2, …, kp-1, kp}, 其中, kp(1≤pP) 为关键字, 可以是协议的命令码、版本号、状态码等。

协议关键字按其在报文中出现的位置可分为两类:固定位置协议关键字和非固定位置协议关键字。其中固定位置协议关键字是指其在报文中出现的偏移位置固定, 多数是应用层协议报文头部中的特征字符串, 包括协议名称、版本号等, 也可以是应用层协议控制信息中的特征字符串, 包括命令码、状态码、定界符等, 一般出现在一个报文开头或最后的若干个字节处; 而非固定位置协议关键字为出现位置偏移不固定的特征字符串。

定义3  协议格式特征是指能够识别应用协议类型的协议关键字或协议关键字组合。

通常用固定位置的协议关键字或其组合就可以对应用协议进行精确识别。本文从样本报文集中自动提取固定位置的协议关键字, 进而筛选构造只含有固定位置协议关键字的协议格式特征。

2 协议格式特征提取算法

针对第1章介绍的离散序列报文协议格式特征提取困难问题, 本文提出SPMbFSC算法, 重点解决两大问题:1) 离散序列报文的相似聚类; 2) 协议关键字提取及选择。离散序列报文由于其无序性及混叠性的特点, 使其中携带控制类信息及业务类信息的报文混合交叠无法区分, 导致协议格式特征的提取困难, 从而如何将两类报文彼此区分, 即报文的相似聚类就成了必须解决的问题; 而针对以协议报文为颗粒度的协议格式特征提取算法, 如何正确、高效地进行协议关键字提取同时进一步筛选由其构成的具有有效识别能力的协议格式特征, 即协议关键字提取及选择也是必须要解决的问题。

SPMbFSC算法系统如图 1所示, 对要解决的两大问题, 采用四个主要步骤:1) 首先对收集到的报文进行预处理, 初步去除掉只携带业务类信息的报文, 生成样本报文集; 2) 利用改进的DBSCAN聚类算法对报文集进行聚类, 使具有相似控制类信息或业务类信息的报文聚类成簇; 3) 在每一个报文簇集合中进行协议关键字提取, 挖掘其协议关键字集合; 4) 进行协议关键字选择, 筛选出具有有效识别能力的协议格式特征用于分类识别。

图 1 系统结构 Figure 1 System construction
2.1 数据预处理

大多数应用协议都具有控制类信息和业务类信息两种协议内容, 且其在报文中的分布有如下特点:携带控制类信息的报文长度相对较短, 内容种类相对固定; 携带业务类信息的报文长度相对较长, 内容分布随机性强, 存在分片传输的可能, 且通常出现在携带控制类信息的报文之后。

基于上述报文分布的特点, 在离散序列报文的条件下提出一种基于报文长度截取的数据预处理算法, 初步剔除只含有业务类信息的报文。具体做法为首先将报文按照方向分成两类, 对同一方向上的报文按照长度进行排列, 之后依据长度阈值L的设定, 假定长度小于L的报文携带控制类信息而予以保留进行下一步骤的协议关键字提取, 而假定长度大于L的报文不携带控制类信息而只携带业务类信息予以舍弃。对于保留的报文, 采用目前常用的方法对每个报文提取前后各k个字节[9, 14]的数据来代替原有报文, 用以提高协议关键字提取的准确性和效率。

2.2 改进的DBSCAN聚类算法

针对离散序列报文的特点, 本文对经过数据预处理的报文提出一种改进的搜索半径自适应的DBSCAN算法来进行聚类, 使得携带有相似信息的报文聚类成簇。算法步骤为:1) 设定输入报文距离中位数的1/8为初始搜索半径rs; 2) 每次迭代时增加一倍的rs为新的搜索半径rs′。重复步骤2) 直至满足终止条件。报文之间的距离采用欧几里得距离来衡量:

$ d({m_i}, {m_j}) = \sqrt {\sum\limits_{n = 1}^l {{{({m_{in}}-{m_{jn}})}^2}} } $ (1)

其中:l为报文长度。为最大限度地利用每一个报文, 同时减少聚类过程中过拟合现象的影响, 本文聚类算法的终止条件设定如下:1) 设定聚类过程中不属于任何一簇的噪点报文数不得超过总报文数的5%;2) 设定聚类簇数的最大值Nmax, 避免过多的过拟合簇产生。

较之传统的DBSCAN算法, 本文的聚类算法只用预先给出代表搜索精细程度的每一簇最小样本数目n, 而搜索半径及聚类簇数自适应确定, 从而减少人工参与, 克服了传统DBSCAN算法参数设定需要人工经验的弊端。

2.3 协议关键字提取

在报文聚类的基础上, 对每一簇报文集中协议关键字的提取主要由频繁模式挖掘算法来完成, 主要用到支持度测度。

定义4  支持度。给定报文集M, mM是其中一个报文, 如果m包含字符串str, 则m(str)=1;否则m(str)=0。称$sup(str) = \frac{1}{{\left| M \right|}}\mathop \sum \limits_{m \in M} m(str)$strM上的支持度, 其中|M|为M中包含的报文总数。

定义5  频繁字符串。给定报文集M, 字符串str及最小支持度minsup∈(0, 1), 当sup(str)≥minsup时, 称该strM中的频繁字符串。M中的所有频繁字符串组成频繁字符串集F

性质1  如果字符串x属于频繁字符串集F, 即xF, 则x的所有子集字符串都属于F; 反之若x∉F, 则x的所有超集字符串都不属于F

文献表明, PrefixSpan算法是比Apriori及FP-growth算法效率更高的频繁模式挖掘算法, 结合本文要挖掘的只含有固定位置协议关键字的协议格式特征目标, 本文提出一种基于PrefixSpan的PositionSpan算法。其基本思想为:以报文中字节位置为依据, 首先按照偏移 (字节距离报文首字节的位置, 规定首字节的偏移量为零) 依次挖掘出报文不同位置上的1-位置频繁字节项; 然后依据PrefixSpan算法的映射思想将1-位置频繁字节项依据位置的先后次序进行映射拼接得到频繁字符串集。下面给出1-位置频繁字节项的定义及PositionSpan算法的详细步骤。

定义6  1-位置频繁字节项。依据报文中各字节距离首字节偏移的位置, 依次挖掘出不同位置上的频繁字节, 使字节值与字节位置相关联, 其结果称为1-位置频繁字节项, 表示为: Byte=(Byte.loc, Byte.val), 其中Byte.loc为字节所在报文的偏移位置, Byte.val为字节内二进制数的值。所有1-位置频繁字节项构成1-位置频繁字节项集B1={Byte1, Byte2, …, Byten-1, Byten}, 其中Byten(1≤nN) 为1-位置频繁字节项。

PositionSpan算法的算法步骤为:1) 首先在第一次扫描数据库时挖掘出所有的1-位置频繁字节项, 并构成1-位置频繁字节项集B1。2) 将B1中的1-位置频繁字节项按照位置的先后顺序进行排序, 将位置最前面的两个不同位置的1-位置频繁字节项组合构成2-位置频繁字节项B2。3) 计算B2的支持度, 若为频繁, 则继续加入第三个位置的1-位置频繁字节项构成3-位置频繁字节项B3; 若为不频繁, 由性质1知此B2为一个频繁字符串同时停止拼接。4) 若此频繁字符串为全新的字符串则加入F否则予以舍弃。迭代步骤2)~4) 直至算法结束得到最终的协议频繁字符串集合F

2.4 协议关键字选择

协议关键字提取得到的关键字还包含很多冗余, 不能作为最后的分类依据。协议关键字只有在满足一定的约束条件下才能构成协议的格式特征:1) 协议格式特征必须是存在于同一个报文中且位置互不重叠的协议关键字组合; 2) 协议格式特征必须具备有效的识别区分能力。针对上述条件1, 由本文PositionSpan算法的设计特性予以满足; 而对条件2, 本文给出如下规则对协议关键字进行初步筛选。

规则1  构成协议格式特征的协议关键字组合必须包含三个或三个以上的不同位置1-位置频繁字节项, 且位置最前的1-位置频繁字节项必须位于报文的前三个字节内。

经过规则1筛选的协议关键字只是剔除了大量的无用关键字, 例如报文中广泛存在的空格或回车换行符或者单纯由这些字符串构成的不具备区分协议能力的协议关键字组合, 但其作为最后的协议格式特征还主要面临两方面问题:1) 同一类协议F中的关键字选择; 2) 不同类协议F间的关键字选择。同一类协议关键字选择主要为剔除关键字组合间的包含关系; 而不同协议间关键字选择主要为剔除关键字组合间的重复关系。为最大限度保留提取出的协议格式特征完整性, 本文提出对同一类协议关键字选择采用规则2进行, 对不同类协议关键字选择采用规则3进行。

规则2  给定字符串xy, 若sup(x)≤sup(y), 则保留y;否则xy都保留。

规则3  两类协议的F1F2, 若字符串xF1xF2, 则从F1F2中同时删除x;否则保留x

3 测试分析

实验环境为一台PC (CPU i5-4430S, 内存2 GB), 操作系统为Windows 7, 利用编程软件Matlab 7.14.0进行程序编写测试。为了验证算法的性能, 利用Wireshark在校园骨干网上采集包含载荷的真实流量, 采集时间为2014年12月8日—13日。随机选取了6个时间段 (每个时间段持续5 min) 的数据, 其中3个作为训练数据集, 3个作为测数据集, 提取其中域名系统 (Domain Name System, DNS)、文件传送协议 (File Transfer Protocol, FTP)、超文本传送协议 (HyperText Transfer Protocol, HTTP)、网际报文存取协议 (Internet Message Access Protocol, IMAP)、邮局协议版本3(Post Office Protocol, POP3)、简单邮件传送协议 (Simple Mail Transfer Protocol, SMTP) 六种协议进行测试, 如表 1所示。本文将进行5个实验来测试SPMbFSC算法的性能, 其中:实验1为算法参数的确定;实验2为算法格式特征提取功能性验证;实验3为算法在报文颗粒度上的性能评估;实验4为算法与AdapSig算法在会话流颗粒度上的性能比较;实验5为算法与AdapSig算法时间复杂度的比较。

表 1 样本会话集 Table 1 Sample database
3.1 参数确定

本文算法参数包括每个报文的字节数k, 截断长度阈值L, 聚类算法每一簇最小的样本数n, 聚类最大簇数Nmax以及支持度阈值minsup。目前比较常用的做法是截取报文前后各20字节[9]的数据, 所以本文选择k=20;截断长度L及聚类最大簇数Nmax的选择目前没有确定的标准, 所以采用实验的方法确定; 依据本文挖掘精度的需要, 设定最小样本数n=10, 以求最大限度地挖掘出所有格式特征; 经过多次实验发现, 取minsup=0.7适合每一个聚类簇中报文的频繁字符串挖掘。

实验1  截断长度L及聚类最大簇数Nmax的确定。本文采用自适应的确定方法, 具体做法为将每种协议的训练集报文平均分成两份:一份作为训练报文;另一份作为测试报文。对L的确定为将训练报文按照长度进行排列, 按照人为给出的截取总报文数量的百分比来自适应确定每一类协议的最佳截断长度L; 对Nmax的确定为不断变换人为给出的聚类簇数值来确定最佳的聚类最大簇数Nmax

本文采用识别率和召回率测度指标[9]来评估提取出的协议格式特征质量。采用本文第2章介绍的SPMbFSC算法, 在训练报文中提取出格式特征, 在测试报文中的识别结果分别如图 2~3所示 (其中图 2Nmax设定为20, 图 3L设定为60%)。

图 2 截断长度L的确定 (Nmax=20) Figure 2 Determination of L (Nmax=20)
图 3 聚类最大簇数Nmax的确定 (L=60%) Figure 3 Determination of Nmax (L=60%) s

由于采用的是报文的识别率, 所以提取出的协议格式特征识别率普遍较低。但从图 2可看出, 协议格式特征的识别率都具有先上升到峰点然后再下降的特点。其原因在于当截断长度L较小时, 得到的报文数过少, 其包含的格式特征少导致识别率低; 当L过大时, 混入了过多的纯业务类信息报文, 导致在已有支持度设定的条件下有效特征被淹没, 其识别率降低。

图 3中则可看出格式特征的识别率都经历了先上升后稳定的特点。其原因在于当Nmax较小时, 聚类簇数少于样本中真实的类别数, 簇内混杂程度高, 在高支持度条件下提取出的格式特征较少使得识别率较低; 当Nmax较大时, 聚类簇数大于样本中的真实类别数, 使得提取出的格式特征完备从而识别率稳定。但同时过大的Nmax设定会使样本的聚类出现过拟合倾向。

图 2~3中可看出当截断长度L为全部报文数量的60%及Nmax为20时, 绝大多数协议的识别率都达到最大值, 所以设定每一类协议报文数60%所对应的长度为截断长度L, 选取聚类最大簇数Nmax的值为20。

3.2 性能分析

格式特征提取得到的结果如表 2所示, 为便于比较, 表中也列出了AdapSig[9]和L7-Filte[16]获得的格式特征。其中AdapSig算法为目前已知最先进的协议格式特征自动提取算法, 其与本文SPMbFSC算法的区别为AdapSig算法以完整会话为单位进行格式特征提取, 从每个会话相同位置偏移的报文中挖掘协议的格式特征; L7-Filter为一款主要依靠人工分析来制定识别特征规则的网络流量分类识别软件, 其识别单位为完整会话, 利用端口号、用户行为特征等会话流信息及少量的报文载荷中协议关键字的匹配实现了非常高的识别率[17], 被认为是最精确的。为保证实验条件的公平性, 本文不使用L7-Filter中任何会话流特征来进行辅助识别, 仅使用其报文载荷中提取出的协议格式特征进行实验, 其特征用正则表达式 (Regular Expression, RegExp) 表示。

表 2 训练报文集格式特征提取结果 Table 2 Format signature results extracted from training message set

实验2  格式特征提取功能性验证。用本文提出的SPMbFSC算法与AdapSig算法对训练集协议数据进行特征提取后, 结果如表 2所示 (其中AdapSig算法支持度设置为与文献中一致的0.02)。

表 2可以看出, 本文SPMbFSC算法和AdapSig算法提取出的协议格式特征均达到了对L7-Filter特征的覆盖, 即证明了本文算法功能的正确性, 其中表 2中三条特征:“220\x20, \x0d\x0a”“USER\x20, \x0d\x0a”和“PASS\x20, \x0d\x0a”由关键字选择规则3不予添加, 其原因在于FTP和SMTP协议中均挖掘出了“220\x20, \x0d\x0a”特征而FTP和POP3协议中均挖掘出了后两条特征。

除IMAP及SMTP协议本文SPMbFSC算法和AdapSig算法提取出的格式特征差别较大, 其他四种协议本文提取的协议格式特征实现了对AdapSig算法提取特征的全覆盖。深入查看数据, 发现IMAP及SMTP协议提取的格式特征差别较大的原因在于实验中收集到的IMAP及SMTP协议报文数量相对较少, 但格式种类相对较多, 使本文聚类算法在小搜索半径时的聚类簇数超出了Nmax的上限设置, 从而导致搜索半径过大,同时较高支持度阈值的设置又使得提取出的协议格式特征少, 而AdapSig算法则由于非常低的支持度阈值及缺少聚类算法的限制, 所以提取出的协议格式特征较多。后期进行了降低支持度阈值及提高Nmax阈值设定的实验, 实现了对AdapSig算法协议格式特征的提取。

实验3  性能评估。将六种协议的测试数据集合并成为最终的测试数据集, 用本文SPMbFSC算法提取的协议格式特征与L7-filter的特征在报文颗粒度上进行性能评估, 由于AdapSig算法无法在非完整会话基础上挖掘协议格式特征所以不参与对比, 以识别率与召回率为指标进行评估, 其结果分别如图 4~5所示。

图 4 报文识别率对比 Figure 4 Comparison of messag precision
图 5 报文召回率对比 Figure 5 Comparison of message recall

图 4中看出本文提取的协议格式特征的识别率普遍较高且均不低于L7-filter, 即提取的协议格式特征是正确的, 其中L7-filter对FTP及SMTP协议识别率较低的原因在于两协议均含有“220\x20, \x0d\x0a”特征, 从而彼此产生误判。而从图 5中看出本文及L7-filter特征的召回率普遍较低其原因有两点:1) 协议产生的会话中带有业务类信息的报文数量较多而带有控制类信息的报文数量较少, 在以报文为颗粒度的计算中召回率低下, 例如HTTP及POP3协议; 2) 本文算法提取出的协议格式特征及L7-filter的特征较少, 不足以充分覆盖协议报文, 使得召回率较低。

实验4  与AdapSig算法性能比较。分别利用本文SPMbFSC算法提取出的协议格式特征, AdapSig算法提取出的协议格式特征及L7-filter的特征进行分类识别来进行算法性能的比较, 结果以识别率与召回率为指标进行评估。为统一指标的可比性, 计算都以会话为单位进行。实验结果分别如图 6~7所示。

图 6 会话识别率对比 Figure 6 Comparison of session precision
图 7 会话召回率对比 Figure 7 Comparison of session recall

图 6~7中可看出,从以会话为单位的识别率和召回率来看,本文提出的SPMbFSC算法均为最高, 且所有协议的识别率及召回率均达到了90%以上, 从而验证了本文算法在会话为单位的协议识别上的有效性。其中:图 6中FTP协议本文的识别率略高于AdapSig算法, 原因在于本文提取的协议格式特征多于AdapSig算法; 而L7-filter对FTP及SMTP协议识别率较低的原因为缺少了会话流信息的辅助,同时两协议均含有“220\x20, \x0d\x0a”特征而引起误判。图 7中L7-filter对FTP及HTTP协议召回率较低则是由于其特征较少, 无法覆盖协议会话; IMAP及SMTP协议本文与AdapSig算法召回率一致则是由于相同会话中带有控制字段的报文数较少但类别较多, 从而导致AdapSig算法虽然提取出了较多的协议格式特征但两算法的召回率一致。

实验5  与AdapSig算法时间复杂度对比。在minsup相同的条件下, 通过本文SPMbFSC算法与AdapSig算法挖掘出协议关键字所耗费的时间为指标评估本文算法的效率。实验结果如图 8所示。

图 8 效率比较 Figure 8 Comparison of efficiency

图 8中看出, 除了FTP和HTTP协议外, 本文SPMbFSC算法效率均高于AdapSig算法, 同时在FTP及HTTP协议中当minsup较高时 (大于0.1), 本文算法的效率也高于AdapSig算法。其原因在于FTP及HTTP协议的报文不仅数量庞大, 同时携带的内容种类也多, 使SPMbFSC算法运算的报文集规模比AdapSig算法大, 同时在minsup较低时, SPMbFSC算法的运算次数十分巨大, 导致效率较低, 但当minsup增大到一定程度后, 其运算次数急剧减小, 从而使算法在较高支持度时效率高于AdapSig算法。但在其他条件下本文算法效率均高于AdapSig算法也证明了本文算法的高效性。

4 结语

本文提出的SPMbFSC算法能够在离散序列报文的条件下自动发现协议关键字同时筛选出格式特征, 其前提条件更宽泛,更贴近实际的网络环境, 同时减少了人工参与, 提高了自动化程度。选择目前较流行的应用协议流量进行测试取得了不错的效果。然而本文方法是否适用于其他的协议, 尤其是目前增长十分迅速的P2P类应用协议及某些领域内的私有类型协议仍需要广泛的验证。同时由于协议关键字选择规则方面研究较少, 本文实际操作中也出现了选择规则过于简单的现象, 如何在已有协议关键字提取的基础上充分利用其识别性能而产生更高效严谨的协议关键字选择规则也是下一步的研究目标。

参考文献
[1] VOLZ B, CAIN E, KOHLER E, et al. Service name and transport protocol port number registry[EB/OL].[2012-06-06]. http://www.iana.org/assignments/port-numbers. http://pike.lysator.liu.se/docs/ietf/rfc/17/rfc1700.xml
[2] HUANG S, CHEN K, LIU C. A statistical-feature-based approach to Internet traffic classification using machine learning[C]//ICUMT 2009: Proceedings of the 2009 International Conference on Ultra Modern Telecommunications & Workshops. Piscataway, NJ: IEEE, 2009: 1-6.
[3] KARAGIANNIS T, PAPAGIANNAKI K, FALOUTSOS M. BLINC: multilevel traffic classification in the dark[C]//SIGCOMM 2005: Proceedings of the 2005 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. New York: ACM, 2005: 229-240.
[4] MOORE A W, PAPAGIANNAKI K. Toward the accurate identification of network applications[C]//PAM 2005: Proceedings of the 6th International Conference on Passive and Active Network Measurement. Berlin: Springer, 2005: 41-54.
[5] WANG Y, XIANG Y, YU S-Z. Automatic application signature construction from unknown traffic[C]//Proceedings of the 201024th IEEE International Conference on Advanced Information Networking and Applications. Piscataway, NJ: IEEE, 2010: 1115-1120.
[6] LUO J Z, YU S Z, CAI J. Capturing uncertainty information and categorical characteristics for network payload grouping in protocol reverse engineering[J]. Mathematical Problems in Engineering, 2015, 2015 (6) : 1-9.
[7] 刘兴彬, 杨建华, 谢高岗, 等. 基于Apriori算法的流量识别特征自动提取方法[J]. 通信学报, 2008, 29 (12) : 51-59. ( LIU X B, YANG J H, XIE G G, et al. Automated mining of packet signatures for traffic identification at application layer with Apriori algorithm[J]. Journal on Communications, 2008, 29 (12) : 51-59. )
[8] AGRAWAL R, SRIKANT R. Fast algorithms for mining association rules in large databases[C]//VLDB 1994: Proceedings of the 20th International Conference on Very Large Data Bases. San Francisco: Morgan Kaufmann Publishers, 1994: 487-499.
[9] 王变琴, 余顺争. 自适应网络应用特征发现方法[J]. 通信学报, 2013, 34 (4) : 127-137. ( WANG B Q, YU S Z. Adaptive extraction method of network application signatures[J]. Journal on Communications, 2013, 34 (4) : 127-137. )
[10] 朱玉娜, 韩继红, 袁霖, 等. SPFPA:一种面向未知安全协议的格式解析方法[J]. 计算机研究与发展, 2015, 52 (10) : 2200-2211. ( ZHU Y N, HAN J H, YUAN L, et al. SPFPA: a format parsing approach for unknown security protocols[J]. Journal of Computer Research and Development, 2015, 52 (10) : 2200-2211. )
[11] HAN J, PEI J, YIN Y, et al. Mining frequent patterns without candidate generation: a frequent-pattern tree approach[J]. Data Mining & Knowledge Discovery, 2004, 8 (1) : 53-87.
[12] ESTER M, KRIEGEL H P, SANDER J, et al. A density-based algorithm for discovering clusters in large spatial databases with noise[C]//Proceedings of the Second International Conference on Knowledge Discovery and Data Mining. Menlo Park, CA: AAAI Press, 1996: 226-231.
[13] PEI J, HAN J, MORTAZAVI-ASL B, et al. Mining sequential patterns by pattern-growth: the PrefixSpan approach[J]. IEEE Transactions on Knowledge and Data Engineering, 2004, 16 (11) : 1424-1440. doi: 10.1109/TKDE.2004.77
[14] HAFFNER P, SEN S, SPATSCHECK O, et al. ACAS: automated construction of application signatures[C]//MineNet 2005: Proceedings of the 2005 ACM SIGCOMM Workshop on Mining Network Data. New York: ACM, 2005: 197-202.
[15] ERMAN J, ARLITT M, MAHANTI A. Traffic classification using clustering algorithms[C]//MineNet 2006: Proceedings of the 2006 SIGCOMM Workshop on Mining Network Data. New York: ACM, 2006: 281-286.
[16] Application layer packet classifier for Linux[EB/OL].[2012-06-02]. http://l7-filter.sourceforge.net/.
[17] Application layer packet classifier for Linux-HOWTO[EB/OL].[2012-06-03]. http://17-filter.sourceforge.net/documents.