发明名称 一种基于训练分类的协议识别方法
摘要 本发明公开了一种入侵检测和/或保护产品与防火墙产品中的协议识别方法,用于识别网络中获得的数据文本的协议类别,该方法包括步骤:采用向量空间模型对所获得的数据文本进行划分,以获得表示该数据文本的数据文本向量;将该数据文本向量与训练文本集中的训练文本向量进行比较,以确定与该数据文本向量最相似的预定数目个训练文本向量;以及根据所确定的预定数目个训练文本向量的协议类别来确定该数据文本向量的协议类别。该方法通过分析各种其在网络中捕获的数据流进行协议分析,发现并阻断其中的入侵行为而不需要查询协议端口映射表或类似数据文件且具有极高的协议识别准确率。
申请公布号 CN1612135B 申请公布日期 2012.07.04
申请号 CN200310102293.6 申请日期 2003.10.30
申请人 北京神州绿盟信息安全科技股份有限公司 发明人 陈学理
分类号 G06F17/21(2006.01)I;G06F17/16(2006.01)I;G06F7/08(2006.01)I 主分类号 G06F17/21(2006.01)I
代理机构 中国专利代理(香港)有限公司 72001 代理人 谢建云
主权项 1.一种基于训练分类的协议识别方法,用于识别网络中获得的数据文本的协议类别,该方法包括步骤:采用向量空间模型对所获得的数据文本进行划分,以获得表示该数据文本的数据文本向量;基于该数据文本向量与训练文本集中的训练文本向量的相似度,确定与该数据文本向量最相似的预定数目个训练文本向量,其中所述训练文本集包括多个训练文本向量,每个训练文本向量具有预先确定的协议类别,而且每个训练文本向量是通过采用所述向量空间模型划分训练文本而获得的;以及根据所确定的预定数目个训练文本向量的协议类别来确定该数据文本向量的协议类别,其中所述采用向量空间模型对所获得的数据文本进行划分以获得表示该数据文本的数据文本向量的步骤包括:将所述数据文本划分为若干个连续数据包序列,每个数据包序列为一个特征项;以及以所述特征项作为所述数据文本向量的维数,将所述数据文本向量表示为(W<sub>d1</sub>,W<sub>d2</sub>,W<sub>d3</sub>......W<sub>dn</sub>),其中W<sub>di</sub>为第i个特征项在所述数据文本中的权重,其中所述W<sub>di</sub>采用TF-IDF公式进行计算,其中通过以下步骤来获得所述训练文本集中的训练文本向量:将所述训练文本划分为若干个连续数据包序列,每个数据包序列为一个特征项;以及以所述特征项作为所述训练文本向量的维数,将所述训练文本向量表示为(W<sub>1</sub>,W<sub>2</sub>,W<sub>3</sub>......W<sub>n</sub>),其中W<sub>i</sub>为第i个特征项在所述训练文本中的权重,其中所述W<sub>i</sub>采用TF-IDF公式进行计算,其中所述确定与该数据文本向量最相似的预定数目个训练文本向量的步骤包括:利用下面的相似度计算公式来确定两个文本之间的相似度:<maths num="0001"><![CDATA[<math><mrow><mi>Sim</mi><mrow><mo>(</mo><msub><mi>d</mi><mi>i</mi></msub><mo>,</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>W</mi><mi>ik</mi></msub><mo>&times;</mo><msub><mi>W</mi><mi>jk</mi></msub></mrow><msqrt><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>W</mi><mi>ik</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msubsup><mi>W</mi><mi>jk</mi><mn>2</mn></msubsup><mo>)</mo></mrow></msqrt></mfrac></mrow></math>]]></maths>其中,Sim(d<sub>i</sub>,d<sub>j</sub>)为两个数据向量的相似度。W<sub>ik</sub>表示第K个词在数据向量中的表示。M值为预设值,以及其中根据所确定的预定数目个训练文本向量的协议类别来确定该数据文本向量的协议类别包括:对于所确定的预定数目个训练文本向量,依次计算每个协议类别的权重,计算公式如下:<maths num="0002"><![CDATA[<math><mrow><mi>p</mi><mrow><mo>(</mo><mover><mi>x</mi><mo>&RightArrow;</mo></mover><mo>,</mo><msub><mi>C</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><msub><mover><mi>d</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>&Element;</mo><mi>KNN</mi></mrow></munder><mi>Sim</mi><mrow><mo>(</mo><mover><mi>x</mi><mo>&RightArrow;</mo></mover><mo>,</mo><msub><mover><mi>d</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>)</mo></mrow><mi>y</mi><mrow><mo>(</mo><msub><mover><mi>d</mi><mo>&RightArrow;</mo></mover><mi>i</mi></msub><mo>,</mo><msub><mi>C</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>其中,<img file="FFW00000043914900023.GIF" wi="29" he="36" />为数据文本向量,<img file="FFW00000043914900024.GIF" wi="195" he="59" />为相似度计算公式,<img file="FFW00000043914900025.GIF" wi="176" he="64" />为协议类别属性函数,即,如果<img file="FFW00000043914900026.GIF" wi="37" he="58" />属于类C<sub>j</sub>,那么函数值为1,否则为0;确定权重最大的协议类别,并将其确定为该数据文本的协议类别。
地址 100089 北京市海淀区北洼路4号益泰大厦5层