一种报文检测方法、装置、设备及存储介质制造方法及图纸

技术编号:31019394 阅读:9 留言:0更新日期:2021-11-30 03:05
本申请提供一种报文检测方法、装置、设备及存储介质,其中方法包括:根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,一个第二AC树对应唯一的文件类型;获取待检测报文的报文体;判断所述报文体是否属于所述至少一个文件类型;若是,则基于所述报文体的文件类型对应的第二AC树对所述报文体进行检测;若否,则基于所述第一AC树对所述报文体进行检测。本申请中,将报文体的一棵大的AC树拆分成多棵相对较小的AC树,从而解决了因为AC树庞大而导致AC算法匹配效率降低的问题,从而提高了报文整体的检测效率。报文整体的检测效率。报文整体的检测效率。

【技术实现步骤摘要】
一种报文检测方法、装置、设备及存储介质


[0001]本申请涉及通信
,具体涉及一种报文检测方法、装置、设备及存储介质。

技术介绍

[0002]在互联网快速发展的时代,通常会用到关键词检测功能,以防止用户发表了指定关键字的内容。如游戏的聊天系统,角色名称检测,论坛发帖,直播弹幕等,都需要对用户发布的内容进行检测,以检测是否包含敏感关键字。
[0003]在多模式匹配算法中,AC算法可以有效解决关键词检测的效率问题,时间复杂度为O(n),n为用户发布内容的长度。时间复杂度基本与关键词的数量无关。AC算法用于匹配字符序列,不一定是字符串,可以是任意ASCII字符组成的特征。使用前,将所有待匹配的字符序列(特征)编译成一张状态表,AC算法以查找表的方法对报文快速匹配一次,得到多个匹配结果。因此,很多防御和检测系统都是通过AC算法对报文进行深度检测,尽快识别出网络传输数据中所携带的关键词。
[0004]AC算法匹配报文的过程就是逐字节读取当前报文,并根据ASCII码寻找下一个状态的过程。若下一个状态是终结点,则记录匹配成功的字符序列,并继续往后匹配,直到报文读取完毕。然而现实使用中,一个设备的内存是一定的,所以在实现某个功能时,希望在保证功能和性能要求的情况下,尽可能多的减少内存消耗。当然AC算法也不例外,AC算法的使用需要考虑两个问题,一个是内存问题,一个是匹配效率问题。那么当特征数量较大的情况下,AC算法使用时,在不影响匹配效率的前提下如何尽可能的减少内存消耗是本领域亟需解决的技术问题。
专利技术内容
[0005]本申请的目的是提供一种报文检测方法、装置、设备及存储介质,以提高报文检测效率。
[0006]本申请第一方面提供一种报文检测方法,包括:
[0007]根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,一个第二AC树对应唯一的文件类型;
[0008]获取待检测报文的报文体;
[0009]判断所述报文体是否属于所述至少一个文件类型;
[0010]若是,则基于所述报文体的文件类型对应的第二AC树对所述报文体进行检测;若否,则基于所述第一AC树对所述报文体进行检测。
[0011]本申请第二方面提供一种报文检测装置,包括:
[0012]AC树生成模块,用于根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,一个第二AC树对应唯一的文件类型;
[0013]获取模块,用于获取待检测报文的报文体;
[0014]检测模块,用于判断所述报文体是否属于所述至少一个文件类型;若是,则基于所
述报文体的文件类型对应的第二AC树对所述报文体进行检测;若否,则基于所述第一AC树对所述报文体进行检测。
[0015]本申请第三方面提供一种报文检测设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现如第一方面中所述的方法。
[0016]本申请第四方面提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如第一方面中所述的方法。
[0017]相较于现有技术,本申请提供的报文检测方法、装置、设备及存储介质,根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,一个第二AC树对应唯一的文件类型;获取待检测报文的报文体;判断所述报文体是否属于所述至少一个文件类型;若是,则基于所述报文体的文件类型对应的第二AC树对所述报文体进行检测;若否,则基于所述第一AC树对所述报文体进行检测。本方案中,将报文体的一棵大的AC树拆分成多棵相对较小的AC树,从而解决了因为AC树庞大而导致AC算法匹配效率降低的问题,从而提高了报文整体的检测效率。
附图说明
[0018]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0019]图1示出了双矩阵配合使用下的AC树的示意图;
[0020]图2示出了本申请所提供的一种报文检测方法的流程图;
[0021]图3示出了本申请提供的整个报文的AC树创建的流程图;
[0022]图4示出了本申请提供的整个报文的AC匹配检测的流程图;
[0023]图5示出了本申请所提供的一种报文检测装置的示意图;
[0024]图6示出了本申请所提供的一种报文检测设备的示意图。
具体实施方式
[0025]下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0026]需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
[0027]另外,术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0028]AC模式串匹配算法,简称AC算法,英文全名Anchor Aho

Corasick。
[0029]AC算法的主要思想是用多模式串建立一个确定性的树形有限状态机,以主串作为该有限状态机的输入,使状态机进行状态的转换,当到达某些特定的状态时,说明发生模式匹配。
[0030]AC树的构建:将模式串构建成一个字典树。树的每一个节点赋予一个状态(state);每个节点都有唯一的父节点,反之不然;每个节点到其父节点之间的一条边对应一个ASCII字符。
[0031]图1示出了双矩阵(全矩阵和稀疏矩阵)配合使用下的AC树的示意图,全矩阵方式查找速度很快,但占用内存大;稀疏矩阵方式查找速度较慢,但占用内存小。
[0032]如图1所示,对特征分拆成前导和后继,如特征:abcdefg,分拆成abcd,efg;前导部分的状态表使用全矩阵内存方式存储,后继部分使用稀疏矩阵内存方式存储。由于大部分报文在前导部分就会匹配失败不会进入后继部分匹配,所以后继部分查找性能差不会影响总体的效率。而内存占用量则大大降低,不同的特征配置下,可以灵活调节前导和后继的分配。
[0033]按照特征串所属的基础传输协议、出现在报文的位置等特性,建立多棵AC树,如HTTP、FTP等协议树,HTT本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文检测方法,其特征在于,包括:根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,一个第二AC树对应唯一的文件类型;获取待检测报文的报文体;判断所述报文体是否属于所述至少一个文件类型;若是,则基于所述报文体的文件类型对应的第二AC树对所述报文体进行检测;若否,则基于所述第一AC树对所述报文体进行检测。2.根据权利要求1所述的方法,其特征在于,所述根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树,包括:针对每一个文件类型,从用于检测报文体的特征集合中确定该文件类型对应的特征串;根据该文件类型对应的特征串,通过AC算法生成该文件类型对应的第二AC树;生成各个文件类型对应的第二AC树之后,将所述特征集合中剩余的特征串,通过AC算法生成第一AC树。3.根据权利要求1或2所述的方法,其特征在于,所述根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成第一AC树和至少一个第二AC树之后,还包括:根据AC树中状态节点的数量,确定所述第一AC树和所述至少一个第二AC树中每个AC树的内存分配方式,以在报文检测时根据所需AC树的内存分配方式对AC树进行内存分配。4.根据权利要求3所述的方法,其特征在于,所述根据AC树中状态节点的数量,确定所述第一AC树和所述至少一个第二AC树中每个AC树的内存分配方式,并按照所述内存分配方式进行内存分配,包括:当AC树的状态节点数量在第一范围内时,采用第一数据类型形式的全矩阵存储方式进行内存分配;当AC树的状态节点数量在第二范围内时,采用第二数据类型形式的全矩阵存储方式进行内存分配;当AC树的状态节点数量在第三范围内时,采用第三数据类型形式的全矩阵存储方式进行内存分配。5.根据权利要求1或2所述的方法,其特征在于,所述文件类型包括可执行文件、图片文件、文档文件、浏览器相关文件、脚本文件和媒体文件中的至少一项。6.一种报文检测装置,其特征在于,包括:AC树生成模块,用于根据预设的至少一个文件类型,将用于检测报文体的特征集合通过AC算法生成...

【专利技术属性】
技术研发人员:傅沙沙
申请(专利权)人:新华三信息安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1