DPI和DFI相结合的网络协议自动识别系统构建

2018-01-31 15:04蔡乐石荣许都
现代电子技术 2018年3期
关键词:支持向量机安全防护

蔡乐+石荣+许都

摘 要: 目前常用的网络协议识别软件大多采用单一方法,且只能针对特定的网络数据包或数据流进行识别,自动化程度低,识别准确度不高。针对上述情况构建了一种新的协议识别系统,该系统将DPI深度包检测和DFI深度流检测相结合,对非加密的数据使用深度包检测方法,在特征字提取之后进行自动推理识别;对未知的加密数据则采用深度流检测方法,提取数据流特征之后使用支持向量机进行识别。测试数据表明,所构建的系统在保证准确率的情况下,不仅可以识别多层网络协议,而且提高了识别的自动化程度,从而为网络传输数据分析、状态监控、安全防护提供了新的技术手段。

关键词: 深度包检测; 深度流检测; 协议识别; 自动推理; 支持向量机; 安全防护

中图分类号: TN915?34; TN971 文献标识码: A 文章编号: 1004?373X(2018)03?0101?06

Abstract: Most commonly?used network protocol identification softwares use single method, can only identify the specific network data packet or data stream, and has low automation degree and identification accuracy. Therefore, a new protocol identification system is proposed, which is based on the combination of deep packet inspection (DPI) and deep flow inspection (DFI). The DPI method is used to perform the automatic reasoning for the unencrypted data after character word extraction. The DFI method is used to identify the unknown encrypted data with support vector machine (SVM) after data stream feature extraction. The test data shows that the constructed system can recognize the multi?layer network protocol and improve the recognition automatic degree while ensuring the accuracy, and provides a new technical means for network transmission data analysis, state monitoring and security protection.

Keywords: DPI; DFI; protocol identification; automatic reasoning; SVM; security protection

0 引 言

随着信息技术的高速发展,网络通信成为人们日常生活的主要交流方式,随之而来的则是木马、入侵等网络信息安全问题,计算机网络的完整性、安全性、保密性均受到了非常大的挑战。虽然传统的网络安全技术能够解决一部分问题,但是对于网络管理员或者用户来说,能够准确地识别通信数据所使用的协议具有重要的意义,其是研究区分服务、入侵检测[1]、流量监控以及分析用户行为的前提和基础。

目前,网络协议识别技术得到了快速的发展和应用,主要包括基于端口、负载[2]以及协议行为进行识别,其识别对象主要集中在应用层协议。但是随着网络协议种类的不断增加,协议规范的不断变化,加上网络代理和协议加密等技术的应用,使得网络协议的识别更加困难,传统的单一识别技术已经无法有效地识别众多的协议。因此,本文提出了DPI和DFI[3]相结合的网络协议自动识别方法,针对不同的协议数据进行分类识别,并在综合分析模块中加入了自动推理等技术手段,形成了一套完整的协议识别系统,下面对该系统的构建方法与识别效果进行详细的阐述。

1 系统组成与工作原理

针对单一协议识别技术的缺陷和协议特征库自动更新困难的问题,结合深度包检测和深度流检测技术,在原有识别模块的基础上加入了反馈机制。该系统由以下几部分组成:数据预处理模块、特征提取模块、协议识别模块、综合分析模块。

整个系统架构如图1所示。

图1中各个模块的主要功能和工作流程概述如下:

1) 数据预处理模块:整个识别系统针对的数据类型是以太帧,预处理阶段是将训练数据和待识别数据以帧格式进行输入,后续处理模块也是以帧为单位进行处理。系统识别的对象是两层以上的协议,包括网络层、传输层以及应用层的协议。

2) 特征提取模块:此模块主要包括深度包检测和深度流检测两部分,其特征提取流程如图2所示。

由图2可知,未加密数据流主要采用深度包检测进行特征字提取,得到数据包特征;而对于加密数据流则采用深度流检测进行特征提取,得到数据的流特征。同时对于新兴或者未知协议的数据流进行双重的特征识别,得到包和流的特征向量,其中新兴的或者未知协议数据可能是综合分析模块通过反馈机制发送回来的数据,此时在特征提取之后对未知数据的协议类型进行自定义命名并存入特征库中,达到对特征库进行更新和补充的目的。

3) 协议识别模块:协议识别模块整体流程类似于特征提取模块,其识别流程如图3所示,区别在于特征提取模块是对被识别数据进行有针对性的特征提取,而协议识别模块需要再通过对特征库中的特征向量进行“特征比对”,从而得到数据特征。例如,包特征检测部分则是直接针对特征库中的特征字进行匹配,判断被识别数据是否具有此特征字,若匹配成功则将该特征字作为此数据的数据包特征,最后输入到综合分析模块中处理。endprint

另外,协议识别模块中的数据是不确定协议类型的网络原始数据,而特征提取模块中的数据是特定的协议数据。

4) 综合分析模块:此模块主要由自动推理模块和SVM模块构成,其中,自动推理模块主要应用于DPI系统中,推理模块中的推理机由推理模型[4]和推理规则构成。首先将数据及其特征进行组合生成RDF[5](Resource

Description Framework)格式数据作为推理机的输入,然后将自定义推理规则作为推理依据进行数据推理。SVM模块主要应用于DFI系统中,首先用提取的数据流特征作为训练集对SVM进行训练,随后直接输入待识别数据的流特征进行协议识别。

5) 特征库:特征库主要分为包特征向量和流特征向量两个部分,这两部分数据主要由特征提取模块获得。除此之外,对于互联网中大部分已有的协议如IP,TCP,UDP等都有明确的格式和规范,因此,规范中定义的字段值可以直接作为协议识别的特征字存入特征库中,同样地,对于已有协议的流特征也可以存入特征库中,此部分特征称为先验知识。

2 数据包特征的提取

2.1 特征提取流程

对于未加密协议数据采用深度包检测技术进行协议特征字提取,特征提取流程分为两部分:频繁集提取、关联规则分析。其流程如图4所示。

由图4可知,首先对数据流进行频繁集提取,在提取过程中将出现次数超过设定阈值的特征字符串集称为频繁集。在分析过程中,由于数据流都是按照协议标准进行组织的,所以特定位置上的特定序列不会随着数据内容的改变而改变,并且同一帧中的频繁序列之间也存在着关联关系,如协议首部某些字段的位置和内容是固定不变的。因此,采用关联规则分析算法对频繁序列之间的关联关系进行分析,从而得出关联规则。关联规则不仅能够直接作为协议识别的特征向量,而且可以剔除错误的特征集,保留识别效率高的频繁序列作为协议识别的特征字。

2.2 频繁集提取算法

频繁集的提取一般采用多模式匹配算法[6],常用的多模式匹配算法有AC[7]算法,AC?BM算法,Wu?Manber算法。其中,AC算法是模式匹配问题中最经典的算法,该算法应用有限自动机巧妙地将字符比较转换为状态转移。AC?BM算法则是在AC算法的基础上,引入了BM[8]单模式匹配算法中的跳跃思想,结合好后缀和坏字符规则,加快了匹配的速度。Wu?Manber算法则完全不同于AC算法,在性能上也明显优于AC算法,两者的区别主要体现在对模式序列的预处理上,Wu?Manber算法用字典结构代替自动状态机,对于数量较大的模式序列,这样处理节省了大量的时间和空间资源。由于本文在进行多模式匹配中使用的是穷举模式序列的方法,将会产生数量较大的模式集,因此采用Wu?Manber算法进行频繁集提取。

频繁集提取流程如图5所示。

1) 首先定义需要提取的频繁序列的长度范围此范围根据网络协议特征字段允许长度而定,可以随着不同的对象进行调整,然后穷举所有符合长度范围的十六进制序列作为模式序列;

2) 输入模式序列和数据流进行匹配,对于匹配成功的模式序列进行个数统计,并记录模式序列出现在相应帧的位置;

3) 当所有的数据帧匹配完成之后,统计出现次数大于或者等于所设定阈值的模式序列,并将其规定为频繁集。

2.3 关联规则挖掘算法

关联规则(Association Rules)是对一个事物和其他事物的相互依存和关联关系的一种描述。本文中的关联规则表示的是特征向量的关联关系,当两个或多个特征向量同时出现的次数超过所设定阈值时,就认为此协议必须要同时具有这两个或多个特征向量,即在判断过程中,同时具有此两个或多个特征向量的数据才被判定为此协议。

关联规则挖掘的算法主要分为两类:Apriori[9]算法,FP?Growth[10]算法。FP?Growth算法将数据I/O次数降低为两次,相比于Apriori算法在时间效率上有较大的提高。除此之外,FP?Growth算法不需要产生候选项集,减少了产生和测试候选项集的时间,并且采用分而治之的方式对数据库进行挖掘,减少了搜索时间。因此本文采用FP?Growth算法进行关联规则分析。

关联规则挖掘过程如下:首先将频繁序列以及频繁序列在各个帧中出现的位置情况作为输入;然后利用FP?Growth进行关联规则的挖掘,记录频繁序列在所给数据中的关联情况,包括关联序列出现的次数和位置;最后經过分析将确定有效的协议特征存入特征库中。

3 数据流特征的提取

3.1 特征提取流程

数据流分析主要针对应用层协议。其提取流程如图6所示。

1) 训练数据是由网络抓包工具wireshark抓取的原始网络数据,之后将其处理为十六进制格式并以帧为单位进行存储。

2) 将训练数据输入深度包检测系统,此系统结合L7?filter[11]中pat文件对训练数据进行信息提取,以七元组的格式输出,保存在packetMessage.txt文件中。七元组为:应用层协议、源/目IP、源/目端口、TCP/UDP、pid;其中pid是对每一帧数据的惟一标识。

3) 流特征提取:对packetMessage.txt文件进行处理,提取五元组信息(源/目IP、源/目端口、传输层协议)并去重,区分TCP、UDP数据。

4) 对抓取的数据根据五元组信息进行分类,提取每一类中前15帧数据的三个基本特征(传输方向、包到达时间间隔、包大小)以及协议类型作为该协议的训练特征集,而对于待识别数据则只需提取传输方向和包大小。

3.2 数据流协议的识别

针对数据流进行识别主要采用SVM[12]分类器实现,如图7所示。其处理流程如下:endprint

猜你喜欢
支持向量机安全防护
基于改进支持向量机的船舶纵摇预报模型
基于SVM的烟草销售量预测
动态场景中的视觉目标识别方法分析
论提高装备故障预测准确度的方法途径
基于熵技术的公共事业费最优组合预测
基于等级保护的电网云计算安全防护分析
目标中心战中信息网络安全防护问题研究
基于支持向量机的金融数据分析研究
电力工程中二次系统的安全防护技术