CN101442535A - 一种基于关键词序列的应用识别与跟踪方法 - Google Patents
一种基于关键词序列的应用识别与跟踪方法 Download PDFInfo
- Publication number
- CN101442535A CN101442535A CNA2008102201847A CN200810220184A CN101442535A CN 101442535 A CN101442535 A CN 101442535A CN A2008102201847 A CNA2008102201847 A CN A2008102201847A CN 200810220184 A CN200810220184 A CN 200810220184A CN 101442535 A CN101442535 A CN 101442535A
- Authority
- CN
- China
- Prior art keywords
- keyword
- sequence
- application
- observation vector
- keyword sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明提供一种基于关键词序列的应用识别与跟踪方法,包括如下步骤:(1)建立关键词集合;(2)从应用层数据中匹配关键词;(3)对匹配得到的关键词序列进行语法树判决和评估;(4)对关键词序列进行跟踪以及对应用类型进行识别。本发明不需要人工对应用层协议的了解和编程,也不需要人工分析应用的独特特征并写出正则表达式,可以实现对已知或未知应用的自动建模、识别和跟踪,进而实现对应用及其过程的细粒度的流量控制和安全防御。
Description
技术领域
本发明属于网络安全检测与网络流量控制技术领域,特别是涉及一种基于关键词序列的应用识别与跟踪方法。
技术背景
现有应用层协议识别的方法,主要包括基于端口号的识别方法、基于人工建立的正则表达式的方法、基于流的统计特性的方法。基于协议端口号的方法,因为许多标准的应用使用非标准的端口号,非标准的应用使用标准端口号,例如非法应用和攻击冒用熟知端口号(例如80端口),以躲避防火墙的过滤和流量管理设备的限制,使得基于端口号识别应用的方法已经变得不适用。基于正则表达式的应用识别方法,通过对应用层数据的正则表达式匹配,可以识别应用,而无需关心该应用采用什么端口号。但这种方法要求事先经过大量的人工分析来获取应用的独特特征,并用正则表达式来反映这种特征,所以不适合于采用自动的方法来识别应用。基于流特征的方法,其优点是不需要了解应用层数据内容,但其识别的精确性则不够高。在所有这些方法中,还没有见到对应用层协议进行跟踪的技术。防火墙虽然可以对协议状态进行跟踪,但主要还是局限于对传输层及IP层的协议状态的跟踪,而且这种协议状态跟踪实际上是协议过程的再现,也需要事先经过大量的人工分析和编程实现。
通过对应用的识别,在流量控制技术领域,人们就可以实现对不同应用的不同的对待。例如,对某些应用赋予较高的优先级使之占用较多的网络资源,某些应用被限速以提供较小的带宽,甚至某些应用被过滤以避免其对网络的影响。在网络安全检测技术领域,通过提取关键词序列的正常行为,可以发现应用层协议过程的异常行为,从而可以实现对异常应用层协议的限制,避免对网络的攻击,尤其是发现和防御那些未知的应用层攻击。与应用层协议识别的方法相比,对应用层协议过程的跟踪方法,能够了解应用层正在发生的事情,因而可以更细粒度地了解应用层行为,从而发现更隐蔽的应用层攻击行为。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于关键词序列的应用识别与跟踪方法。
为了实现本发明目的,采用的技术方案如下:
一种基于关键词序列的应用识别与跟踪方法,包括如下步骤:
(1)建立关键词集合;
(2)从应用层数据中匹配关键词;
(3)对匹配得到的关键词序列进行语法树判决和评估;
(4)对关键词序列进行跟踪以及对应用类型进行识别。
它获取关键词集的方法,是事先对已知应用层协议的关键词、关键特征进行收集,获得关键词集,或者是通过对未知应用层协议进行数据挖掘,获得关键词集;所述关键词可以是一个字符、一个字符串、一个正则表达式、或者一个可识别的特征;把这些关键词进行编号:{1=keyword1,2=keyword2,......};
它的从应用层数据中匹配已知关键词的方法,是把应用会话过程中两个方向传输的分组都按照出现的时间顺序进行应用层数据重组;关键词匹配方法是采用字符串匹配算法以及正则表达式匹配算法,把已重组的应用层数据与关键词集中的每个关键词进行匹配:设当前被匹配发现的关键词是第t个,关键词是Kt,关键词之间的字节数是Lt,关键词之间字符串特征是At(即0=ASCII字符串,或者1=Binary串),关键词之间的时间间隔是τt,第t个观测向量是Ot=(Lt,At,τt);到目前为止获得的关键词序列是K1,K2,...,Kt,对应的观测向量序列是O1,O2,...,Ot;
本发明的语法树的构成方法,是事先采集大量的关键词序列及其对应的观测向量序列,组成训练集;再利用训练集来训练语法树PPTA(probabi1istic prefixtree acceptor),其方法具体如下:
1、树中每一条路径代表训练集中至少一个关键词序列,每一条从状态i到状态j的转移线(i,j)代表一个关键词;
2、采用这条转移线的概率aij决定于训练集中的关键词序列采用该转移线的频次,且从每个状态转移出去的概率和∑jaij归一化为1;
3、对应于每一条转移线都有观测向量Ot=(Lt,At,τt)的概率分布bij(Ot)=bij(Lt)bij(At)bij(τt);
4、在训练得到语法树PPTA后,对训练集中的所有关键词序列都计算它们的熵;并得到这些熵的均值μ和方差σ。
本发明的计算关键词序列的熵S的方法是:
其中K1,K2,...,Kt是关键词序列,O1,O2,...,Ot是对应的观测向量序列,0代表PPTA的根节点,代表第一个关键词K1出现的概率,代表第j个关键词Kj出现的概率,也即从状态ij-1到状态ij的转移概率,则是在该状态转移过程中获得观测向量Oj的概率。
本发明的对关键词序列进行跟踪的方法,是通过语法树对关键词序列及其观测向量序列进行正常性评估;具体的评估方法是:当一个关键词序列及其观测向量序列的熵是S时,用 对其行为进行评估;M越小,该序列越正常;随着关键词序列及其观测向量序列的增长,其评估值M将发生变化;当一个应用会话结束时,如果它的M仍然很小,则把该关键词序列及其对应的观测向量序列作为样本序列,加入到训练集中,用于后续的PPTA更新。
本发明的对应用类型识别的方法,是当有多种应用时,对每种应用都建立一个PPTA;把一个关键词序列及其观测向量序列归类为使得其评估值M最大的PPTA所代表的应用类型。
与现有方法相比,本发明的基于关键词序列的应用识别方法,只需要知道应用层协议的关键词,就可以通过自动建立语法树,来描述应用层协议的过程,并进一步利用该语法树来对关键词序列及其观测序列进行评估和判决,从而实现对应用的识别和跟踪;它不需要人工对应用层协议的了解和编程,也不需要人工分析应用的独特特征并写出正则表达式。如果采用数据挖掘方法,它还可以从应用层数据中挖掘出关键词,避免了人工收集应用层协议的关键词这一过程,因而可以实现对未知应用的全自动的建模、识别和跟踪。
附图说明
图1为本发明的一个实施例的示意图。
具体实施方式
下面结合附图对本发明做进一步的说明。
本发明如附图1所示,通过采集应用层的关键词序列来识别应用和对应用过程进行跟踪。具体步骤如下:
1.建立关键词集
关键词可以是应用层数据中的一个特定的字符、字符串、或正则表达式表示的复杂的字符之间的逻辑关系、或者一个可识别的字符串特征。关键词集的建立方法包括:
a)人工收集:通过查阅标准文件或者通过对网络上采集的应用层数据的分析,找到已知应用层协议的关键词、关键特征,以获得关键词集;
b)自动采集:通过对网络上采集的已知或未知应用层数据的数据挖掘,获得频繁出现的字符串,以这些字符串构成关键词集;
把关键词集中的关键词进行编号,例如按照出现的先后顺序进行编号,或者按照字典顺序进行编号:{1=keyword1,2=keyword2,......};
2.从应用层数据中匹配已知关键词
a)应用层数据重组:把应用会话过程中两个方向传输的分组都按照出现的时间顺序进行应用层数据重组;重组方法是,把新采集到的分组的数据部分附加到应用层数据的后部;
b)关键词匹配:每采集到一个分组,都对应用层数据进行关键词匹配。即把已重组的应用层数据与关键词集中的每个关键词都进行匹配。匹配算法包括字符串匹配算法以及正则表达式匹配算法;
c)获得观测向量:设当前被匹配发现的关键词是第t个,关键词是Kt,关键词Kt与Kt-1之间的字节数是Lt,关键词之间这个长度为Lt的字符串的特征是At(即这Lt个字符中如果有一个字符的最高位为1,则该字符串的特征为Binary串,因此令At=1,否则为ASCII字符串,令At=0),关键词之间的时间间隔是τt,则第t个观测向量是Ot=(Lt,At,τt);所以,到目前为止获得的关键词序列是K1,K2,...,Kt,对应的观测向量序列是O1,O2,...,Ot;
4.获取训练集
对于一个给定类型的应用,采集其大量的关键词序列及其对应的观测向量序列,组成训练集;
5.用训练集构造语法树
利用训练集来训练语法树PPTA(probabilistic prefix tree acceptor),其方法具体如下:
a)生成语法树PPTA:PPTA初始只有一个状态0;每一个关键词序列都从状态0出发,沿着PPTA树中的路径往前推进:设当前状态是i,当前的关键词是Kt,如果从当前状态向其它状态转移的转移线中,有一条转移线对应于输入值Kt,则沿着该转移线推进到下一个状态;如果没有对应于Kt的转移线,则增加一个状态j,并把转移线(i,j)的输入标记为Kt;如此进行,直到训练集中的每一个关键词序列都能在PPTA中找到一条状态转移路径;
b)计算状态转移概率:在生成语法树PPTA过程中,当训练集中的一个关键词序列通过PPTA中的一条转移线(i,j)时,都对该转移线的计数器Cij加1;在训练集中的所有关键词序列都经过了PPTA之后,令从状态i到状态j的转移概率 即它的每一行都满足 的归一化条件;
c)计算观测向量的概率密度分布:对应于每一条转移线(i,j)都可以类似统计得到观测向量Ot=(Lt,At,τt)的概率密度分布bij(Ot)=bij(Lt)bij(At)bij(τt),其中假定Ot的各分量Lt,At,τt统计独立;
d)计算训练集中所有关键词序列的熵:在训练得到语法树PPTA后,对训练集中的每一个关键词序列都用下式计算它们的熵:
其中K1,K2,...,Kt是第i个关键词序列,O1,O2,...,Ot是对应的观测向量序列,代表第一个关键词K1出现的概率,代表第j个关键词Kj出现的概率,也即从状态ij-1到状态ij的转移概率,则是在该状态转移过程中获得观测向量Oj的概率;
e)计算这些熵的均值μ和方差σ;
6.对应用过程进行正常性评估和跟踪控制
当一个关键词序列及其观测向量序列的熵是S时,用 对其行为进行评估;M越小,该序列越正常;随着关键词序列及其观测向量序列的增长,其评估值M将发生变化;该值的大小可以用作对该应用过程进行流量控制或者安全检测和防御的依据,例如M越小赋给越高的优先权;
7.为PPTA的更新获取新的样本序列
当一个应用会话结束时,如果它的M仍然很小,则把该关键词序列及其对应的观测向量序列作为样本序列,加入到训练集中,用于后续的PPTA更新;
8.对应用进行识别
当网络中有多种应用时,对每种应用都建立一个PPTA;求出一个未知应用的关键词序列及其观测向量序列相对于每一个PPTA的评估值M;最后把该未知应用归类为使得其评估值M最大的那个PPTA所代表的应用类型。
Claims (8)
1、一种基于关键词序列的应用识别与跟踪方法,其特征在于包括如下步骤:
(1)建立关键词集合;
(2)从应用层数据中匹配关键词;
(3)对匹配得到的关键词序列进行语法树判决和评估;
(4)对关键词序列进行跟踪以及对应用类型进行识别。
2、根据权利要求1所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(1)建立关键词集合的具体操作如下:
对已知应用层协议的关键词或关键特征进行收集,获得关键词集;
或者对未知应用层协议进行数据挖掘,获得关键词集。
3、根据权利要求2所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(2)从应用层数据中匹配关键词的具体操作如下:
把应用会话过程中两个方向传输的分组都按照出现的时间顺序进行应用层数据重组,采用字符串匹配算法以及正则表达式匹配算法,把已重组的应用层数据与关键词集的每个关键词进行匹配:设定当前被匹配发现的关键词是第t个,关键词是Kt,关键词之间的字节数是Lt,关键词之间字符串特征是At,关键词之间的时间间隔是τt,第t个观测向量是Ot=(Lt,At,τt),获得的关键词序列是K1,K2,...,Kt,对应的观测向量序列是O1,O2,...,Ot。
4、根据权利要求3所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(3)还包括语法树的构成方法,其通过采集大量的关键词序列及其对应的观测向量序列,组成训练集,再利用训练集来训练语法树PPTA,其具体如下:
(31)树中每一条路径代表训练集中至少一个关键词序列,每一条从状态i到状态j的转移线(i,j)代表一个关键词;
(32)采用这条转移线的概率aij决定于训练集中的关键词序列采用该转移线的频次,且从每个状态转移出去的概率和∑jaij归一化为1;
(33)对应于每一条转移线都有观测向量Ot=(Lt,At,τt)的概率分布bij(Ot)=bij(Lt)bij(At)bij(τt)。
5、根据权利要求4所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(3)在训练得到PPTA后,对训练集中的所有关键词序列都计算它们的熵,并得到这些熵的均值μ和方差σ。
7、根据权利要求6所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(4)对关键词序列进行跟踪通过语法树对关键词序列及其观测向量序列进行正常性评估,具体的评估方法如下:
当一个关键词序列及其观测向量序列的熵是S时,用 对其行为进行评估,M越小,该序列越正常;随着关键词序列及其观测向量序列的增长,其评估值M将发生变化;当一个应用会话结束时,如果它的M仍然很小,则把该关键词序列及其对应的观测向量序列作为样本序列,加入到训练集中,用于后续的PPTA更新。
8、根据权利要求7所述的基于关键词序列的应用识别与跟踪方法,其特征在于所述步骤(4)对应用类型识别的方法,是当有多种应用时,对每种应用都建立一个PPTA,把一个关键词序列及其观测向量序列归类为使得其评估值M最大的PPTA所代表的应用类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102201847A CN101442535B (zh) | 2008-12-19 | 2008-12-19 | 一种基于关键词序列的应用识别与跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102201847A CN101442535B (zh) | 2008-12-19 | 2008-12-19 | 一种基于关键词序列的应用识别与跟踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101442535A true CN101442535A (zh) | 2009-05-27 |
CN101442535B CN101442535B (zh) | 2012-06-27 |
Family
ID=40726774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102201847A Expired - Fee Related CN101442535B (zh) | 2008-12-19 | 2008-12-19 | 一种基于关键词序列的应用识别与跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101442535B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011050545A1 (zh) * | 2009-10-30 | 2011-05-05 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN105721250A (zh) * | 2016-03-03 | 2016-06-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 网络协议识别方法和系统 |
CN105869622A (zh) * | 2015-01-21 | 2016-08-17 | 上海羽扇智信息科技有限公司 | 中文热词检测方法和装置 |
CN107992481A (zh) * | 2017-12-25 | 2018-05-04 | 中科鼎富(北京)科技发展有限公司 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
CN108304369A (zh) * | 2017-05-03 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种文件类型的识别方法和装置 |
CN108462707A (zh) * | 2018-03-13 | 2018-08-28 | 中山大学 | 一种基于深度学习序列分析的移动应用识别方法 |
CN110365645A (zh) * | 2019-06-06 | 2019-10-22 | 国家计算机网络与信息安全管理中心 | 一种车联网协议关键词识别方法及装置 |
CN110445750A (zh) * | 2019-06-18 | 2019-11-12 | 国家计算机网络与信息安全管理中心 | 一种车联网协议流量识别方法及装置 |
CN110546640A (zh) * | 2017-04-25 | 2019-12-06 | 华为技术有限公司 | 用于深度数据包分析的分级模式匹配 |
CN110677313A (zh) * | 2019-08-25 | 2020-01-10 | 北京亚鸿世纪科技发展有限公司 | 一种vpn软件后台服务器的发现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262491A (zh) * | 2008-04-02 | 2008-09-10 | 王京 | 应用层网络分析方法及系统 |
-
2008
- 2008-12-19 CN CN2008102201847A patent/CN101442535B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011050545A1 (zh) * | 2009-10-30 | 2011-05-05 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN105869622A (zh) * | 2015-01-21 | 2016-08-17 | 上海羽扇智信息科技有限公司 | 中文热词检测方法和装置 |
CN105869622B (zh) * | 2015-01-21 | 2020-01-17 | 上海羽扇智信息科技有限公司 | 中文热词检测方法和装置 |
CN105721250B (zh) * | 2016-03-03 | 2019-01-22 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 网络协议识别方法和系统 |
CN105721250A (zh) * | 2016-03-03 | 2016-06-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 网络协议识别方法和系统 |
CN110546640A (zh) * | 2017-04-25 | 2019-12-06 | 华为技术有限公司 | 用于深度数据包分析的分级模式匹配 |
CN110546640B (zh) * | 2017-04-25 | 2021-09-07 | 华为技术有限公司 | 用于深度数据包分析的分级模式匹配 |
CN108304369A (zh) * | 2017-05-03 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种文件类型的识别方法和装置 |
CN108304369B (zh) * | 2017-05-03 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种文件类型的识别方法和装置 |
CN107992481A (zh) * | 2017-12-25 | 2018-05-04 | 中科鼎富(北京)科技发展有限公司 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
CN107992481B (zh) * | 2017-12-25 | 2021-05-04 | 鼎富智能科技有限公司 | 一种基于多叉树的正则表达式匹配方法、装置及系统 |
CN108462707A (zh) * | 2018-03-13 | 2018-08-28 | 中山大学 | 一种基于深度学习序列分析的移动应用识别方法 |
CN110365645A (zh) * | 2019-06-06 | 2019-10-22 | 国家计算机网络与信息安全管理中心 | 一种车联网协议关键词识别方法及装置 |
CN110445750A (zh) * | 2019-06-18 | 2019-11-12 | 国家计算机网络与信息安全管理中心 | 一种车联网协议流量识别方法及装置 |
CN110677313A (zh) * | 2019-08-25 | 2020-01-10 | 北京亚鸿世纪科技发展有限公司 | 一种vpn软件后台服务器的发现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101442535B (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101442535B (zh) | 一种基于关键词序列的应用识别与跟踪方法 | |
CN106341414B (zh) | 一种基于贝叶斯网络的多步攻击安全态势评估方法 | |
CN106375339B (zh) | 基于事件滑动窗口的攻击模式检测方法 | |
CN102271091B (zh) | 一种网络异常事件分类方法 | |
CN102523167B (zh) | 一种未知应用层协议报文格式的最佳分段方法 | |
CN105471882A (zh) | 一种基于行为特征的网络攻击检测方法及装置 | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
CN114143037B (zh) | 一种基于进程行为分析的恶意加密信道检测方法 | |
CN102420723A (zh) | 一种面向多类入侵的异常检测方法 | |
CN106411921A (zh) | 基于因果贝叶斯网络的多步攻击预测方法 | |
CN101488861A (zh) | 一种网络未知应用的关键词提取方法 | |
CN109218321A (zh) | 一种网络入侵检测方法及系统 | |
CN109784668B (zh) | 一种用于电力监控系统异常行为检测的样本特征降维处理方法 | |
CN115643035A (zh) | 基于多源日志的网络安全态势评估方法 | |
CN110768946A (zh) | 一种基于布隆过滤器的工控网络入侵检测系统及方法 | |
CN113392914A (zh) | 一种基于数据特征的权重来构建孤立森林的异常检测算法 | |
CN108683658B (zh) | 基于多rbm网络构建基准模型的工控网络流量异常识别方法 | |
CN110851422A (zh) | 一种基于机器学习的数据异常监测模型构建方法 | |
CN110278150A (zh) | 一种基于边缘节点请求信息特征的域间聚合路径分析方法 | |
CN112787984B (zh) | 一种基于相关分析的车载网络异常检测方法及系统 | |
CN103685184A (zh) | 一种基于小流统计分析的对等僵尸主机识别方法 | |
CN107689899A (zh) | 一种基于比特流的未知协议识别方法及系统 | |
CN103455754B (zh) | 一种基于正则表达式的恶意搜索关键词识别方法 | |
CN109002856B (zh) | 一种基于随机游走的流量特征自动生成方法与系统 | |
CN117240522A (zh) | 基于攻击事件模型的漏洞智能挖掘方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120627 Termination date: 20171219 |