基于规则对网络数据包进行识别的方法和装置的制造方法_2

文档序号:9870282阅读:来源:国知局
br>[0021] 为了实现上述W及相关目的,本文结合下面的描述和附图来描述某些说明性方 面,运些方面指示了可W实践本文所公开的原理的各种方式,并且所有方面及其等效方面 旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述 W及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的 部件或元素。
[0022] 图1示出了根据本发明一个实施例的基于规则对网络数据包进行识别的方法100 的流程图;
[0023] 图2示出了根据本发明一个实施例的训练过程中的状态机转移图;
[0024] 图3示出了根据本发明一个实施例的在规则集合中捜索目标节点的对比示意图; W及
[0025] 图4示出了根据本发明一个实施例的基于规则对网络数据包进行识别的装置400 的示意图。
【具体实施方式】
[0026] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可W W各种形式实现本公开而不应被运里阐述的实施例 所限制。相反,提供运些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0027] 图1示出了根据本发明一个实施例的基于规则对网络数据包进行识别的方法100 的流程图。如图1所示,该方法100始于步骤S110,根据第一规则集合构造第二规则集合。 [00%]在本实施例中,可W将每一条规则都理解成一个状态空间,每条规则定义了网络 数据包的多个属性中的一个或者多个属性的取值W及相对应的数据包类型。根据本发明的 一种实现方式,网络数据包的属性至少包括W下属性中的一种或多种:

[0031]在本方法中,由于需要对特征规则集合进行增减操作,故而设计了两个规则集合。 其中,第一规则集合包括一条或者多条上述规则,或者说,第一规则集合中包含了几乎所有 的规则,可W理解为传统算法中无序无规则的状态空间。而第二规则集合是由第一规则集 合经过训练得到,第二规则集合中包含独立的子集,运些子集是根据网络数据包的预定属 性分类得到的。网络数据包的预定属性包括:网络层协议类型layers. protocol、传输层协 议layer4. protocol、传输层端口 layer4.port。例如,畑CP和SNMP协议中 layer4. protocol 都为UDP,那么,根据本方法,就可W把D肥P和SNMP合并到第二规则集合中的一个子集中。
[0032] 在构造出第二规则集合后,就可W进行后续接收数据包、捜索、匹配的处理过程, W识别数据包类型。
[0033] 在步骤S120中,对接收的网络数据包进行内容分析,W获取该网络数据包的属性 值。
[0034] 具体地,当数据流量经过主机时,利用开源工具Iibpcap捕捉数据报文,依次去掉 数据包的数据链路层包头、网络层包头、传输层包头并且记录各层匹配时需要的属性数据, 最后得到应用层报文Iaye^. pay load。
[0035] 随后在步骤S130中,在第二规则集合中捜索与该网络数据包的上述属性值匹配的 规则。
[0036] 例如,从步骤S120中获取网络层协议类型layers, protocol、传输层协议类型 layer4 .protocol、传输层端口 layer4 . port(也就是layer4 . sp/laye;r4 . dp),先根据 layer3. protocol、layer4. protocol、layer4. sp/layer4. dp运些预定属性值确定要进行捜 索的第二规则集合的子集;然后在所确定的子集中捜索与该网络数据包的属性值匹配的规 则。
[0037] 例如,可W利用应用层报文layer? .pay load与子集中的每一条规则匹配 1过yer7.S ign过ture D
[0038] 又例如,DHCP报文的第236至241字段的值分别为638253633501,那么在DHCP协议 的捜索匹配时的伪代码示例如下,其中,y代表子集,Y代表第二规则集合,P代表第二规则集 合中的每一条规则: to y in Y jf(y. !巧er4.protocol eq 'UDP')
[0039] chose y h巧浊' } for P in y if(p.layer?.length ge 244 and \ p.layer7.payloa过[23食,241] mat泌 i|63 纪巧的 B 01|)
[0040] { packet.appprotocol = 'DHCP' break }
[0041] 随后在步骤S140中,在查找到与该网络数据包的属性值相匹配的规则时,将该网 络数据包识别为与该规则相对应的数据包类型。
[0042] 但是,如果只是W经过分类构造出的固定的第二规则集合进行数据包识别的话, 实际上只是一种穷举算法,匹配过程还是过于机械,并且在规则集合很大、且不可预测的情 况下,识别效率会非常低。故而在本方法100中,在构造第二规则集合时,会利用经验选择最 优的匹配规则集合,通过反复训练提取出最优的第二规则集合,W达到提高网络数据包识 别性能的目的。
[0043] 通过第一规则集合构造训练第二规则集合的过程具体阐述如下,如图2,示例性地 示出了训练过程的状态机转移图。
[0044] 首先,步骤1中,根据上述预定属性,从第一规则集合中随机选择第一预定个规则 进行分类并构造第二规则集合。运里对第一预定的数目不做限定,可W根据情况随机选择, 例如可W选取第一规则集合中的所有规则构建第二规则集合。
[0045] 然后,当接收到数据包时,在步骤2中,如图2所示,第一次匹配的时候训练模式打 开:停止^开始,统计每一次匹配的结果,记录处理的数据包总数total_count、第二规则集 合中每条规则的匹配次数match_count。
[0046] 接着在步骤3中,当所处理的数据包总数total_count达到第一预定数量(例如,设 置第一预定数量为N = SOOOO)的整数倍时,训练模式由开始^暂停,计算数据包的识别率: hit_rate = match_count/total_count,将识别率与基准匹配率,也就是第一阔值进行比 较,在本实施例中,第一阔值选取0.15。
[0047] 如果比较结果是数据包的识别率不高于第一阔值,则从第一规则集合中另外随机 选择第二预定个规则加入到第二规则集合中,并根据它们的预定属性将其分类到对应的规 则子集中;
[0048] 如果比较结果是数据包的识别率高于第一阔值,则从第二规则集合中删除一部分 匹配次数较少的规则,在本实施例中,可W设置第二阔值作为删除数目阔值,按照匹配次数 依次删除匹配次数最少的规则,直到达到第二阔值为止。例如在一次匹配中,设置第二阔值 为10,即使有很多未匹配的规则,也只删除未匹配的10条规则。
[0049] 当完成一次对第二规则集合的增减操作后,训练模式由暂停^开始,然后重复步 骤2和步骤3的操作处理,直到所处理的数据包达到第二预定数量(例如,选取第二预定数量 为M=SOOOOOO)时,训练模式进入结束状态,停止训练进入到正常的识别数据包的模式。
[0050] 应当注意的是,该识别方法100在应用于网络中时,训练第二规则集合的过程(即, 步骤1、步骤2、步骤3)和数据包识别的过程(即,步骤S120、S130、S140)是相对独立的。先从 网络中选取第二预定数量个网络数据包用于步骤SllO中根据第一规则集合构造第二规则 集合的处理,随后在同一网络中利用所构造的第二规则集合对后续接收的网络数据包进行 步骤S120、S130、S140中内容分析、规则捜索和数据包识别的处理步骤。运样,一方面训练过 程和数据包识别过程是相对独立进行的,另一方面,又可W确保训练过程是在和数据包识 别过程同样的网络环境中进行的,运样训练出的第二规则集合在包识别过程中会有更好的 效果和说服力。
[0051] 为了进一步说明本方案提高了包识别效率,图3示出了根据本发明一个实施例的 在规则集合中捜索目标节点与传统算法中捜索目标节点的对比示意图。假设在第一规则集 合和第二规则集合中,都采用红黑树结构存储规则。如图3,第一规则集合为:
[0052] {A:guilwars,B:QQ,C:D肥P,D = MapleStoiT ,D = MapleStoiT ,E:TFTP,F = Batt
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1