专利名称:报文特征的检测方法及装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种报文特征的检测方法及装置。
背景技术:
随着网络应用的快速发展,网络环境日益复杂,越来越多的来自于应用层的安全威胁(如病毒、垃圾邮件、流氓软件等)对网络安全造成了巨大的影响。因此,人们越来越多的关注报文第四层以上(特别是应用层)的安全网关设备的网络安全问题。
在现有入侵检测、防病毒网关、反垃圾邮件网关等安全网关设备中,通常采用基于攻击、病毒、垃圾邮件的内容特征来识别相应的攻击、病毒、垃圾邮件等。这里所述的“识别”是通过模式匹配算法实现的。模式匹配是指,针对一段待扫描的文本内容(对安全网关设备来说,针对的是一个报文的净荷部分),查看特征是否出现在待扫描的文本中。
假定病毒特征库中存在一条病毒特征“VirusString”,对于包含以下内容的文件“This is a VirusFile with VirusString”,若文件的内容一次性送入模式匹配引擎进行检测,按照模式匹配的方法,模式匹配引擎能够检测到病毒特征“VirusString”。
但是在应用中,以病毒网关的病毒检测为例,由于网络最大传输单元的限制,若传送某个文件,则需要将所述文件分割成若干个报文,利用所述的若干个报文才能将所述文件发送到另一端的服务器上。另一端的服务器收到这些报文后,根据一定的顺序将这些报文内容重新组合,还原成原来的文件。在这种情况下,可能会造成病毒文件的病毒特征,跨越了两个或者多个报文。那么,对于进行病毒检测的病毒网关等安全网关设备来说,其必须能够支持跨报文的特征匹配,才能实现对跨报文的攻击的检测。
对于报文特征(如病毒特征等)跨报文的情况,即在传输时,将上述“Thisis a VirusFile with VirusString”文件分成三个报文传送,而其中一个报文的分割刚好在“VirusString”位置发生。分割情况如下所示
也即“VirusString”这一报文特征跨越了第二、第三两个报文。如果病毒网关不支持跨报文的特征检测,则此报文特征就会被认为是合法流量。
为解决上述问题,现有技术中存在下述方案来解决报文特征跨报文时,对报文特征的检测问题。
现有技术的方案,是将已检测过的报文内容缓存(缓存内容的大小取决于最长的报文特征的长度),在后续报文内容达到后,将缓存的报文内容跟新到达的报文内容拷贝到一起,一起送入模式匹配引擎进行检测。检测完以后,再将缓存的报文内容和新到达的报文内容一起,拷贝到缓存区进行缓存,等待下一个报文到来。
那么,以分割成
的文件“This isa VirusFile with VirusString”,报文特征为“VirusString”为例,模式匹配引擎对收到的第一个报文
进行检测。将
与“VirusString”进行模式匹配,匹配结果为未发现病毒特征,于是将第一个报文拷贝到缓存中。等第二个报文
送入的时候,与第一个报文
进行拼接,然后再对拼接后的报文
进行检测。模式匹配引擎检测后,仍未发现病毒特征,继续将
缓存,等待下一个报文。收到第三个报文
后,跟
进行拼接,形成
并将
再次进行检测。此时,模式匹配引擎检测到所述病毒特征,认为此文件为病毒文件。
分析现有技术一可知,当报文特征跨报文时,利用现有技术一的方案,需要不断的将检测过的报文进行缓存,并将缓存的报文和接收到的下一个报文进行拼接,再对拼接后的报文进行检测。然后,不断的重复“缓存-拼接-检测”的过程。
在实现本发明的过程中,发明人发现在现有技术中至少存在如下的缺陷 (1)由于在现有技术的技术方案中,需要不断的将匹配过的报文进行缓存,以能够对后续的报文进行匹配。在对报文不断的缓存过程中,占用了大量的内存空间。
(2)由于现有技术中每次只是发送一个或几个字节内容的报文,因此,若已缓存100字节的报文内容,那么有一个新的报文内容到来,将缓存的报文内容跟到来的报文内容拼接起来(此时为101个字节)送入模式匹配引擎进行检测;检测完成后,网关安全设备转发第一个字节的内容,而后100字节继续缓存。下一个字节报文达到时重复进行上述过程。这种情况下,可以看到,每检测101个字节报文内容后,网络安全设备发送一个字节,相当于对报文中的每个字节都进行了100次的模式匹配,网络安全设备的整体性能将数量级下降。
发明内容
一方面,本发明的实施例提供了一种报文特征的检测方法。利用本发明实施例所述的方法,能够提高多报文时的报文特征检测的效率。
本发明的实施例报文特征的检测方法,采用以下技术方案 一种报文特征的检测方法,所述方法包括如下步骤 接收当前分段报文; 获取当前分段报文所对应的模式匹配的起始状态; 将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态; 若有限状态机的当前状态为匹配状态,则所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
本发明的实施例报文特征的检测方法,首先需要获取有限状态机的起始状态,然后将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配。也就是说,在将当前分段报文,与有限状态机进行模式匹配后,只需要保存对当前分段报文进行模式匹配后的有限状态机的当前状态,因此避免了现有技术中需要不断的对送入的报文进行缓存的缺陷,从而减少了对网关设备的内存空间的占用,降低了对网关设备性能的影响,提高了多报文时的报文特征检测的效率。
另一方面,本发明的实施例提供了一种报文特征的检测装置。利用本发明实施例所述的装置,能够提高多报文的报文特征检测的效率。
一种报文特征的检测装置,所述的装置包括有限状态机,匹配单元,接收单元,状态获取单元,以及判断单元;其中, 一种报文特征的检测装置,其特征在于,所述的装置包括有限状态机,匹配单元,接收单元,状态获取单元,以及判断单元;其中, 接收单元,用于接收当前分段报文; 状态获取单元,用于获取当前分段报文所对应的模式匹配的起始状态; 有限状态机单元,用于保存预先设置的有限状态机; 匹配单元,用于将所述当前报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态; 判断单元,用于确定有限状态机的当前状态为匹配状态时,获得所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
本发明的实施例报文特征的检测装置,首先需要由状态获取单元获取有限状态机的起始状态,然后将所述当前分段报文及所述起始状态作为有限状态机的输入,由匹配单元对当前分段报文进行模式匹配。也就是说,在将当前分段报文,与有限状态机进行模式匹配后,只需要保存对当前分段报文进行模式匹配后的有限状态机的当前状态,因此避免了现有技术中需要不断的对送入的报文进行缓存的缺陷,从而减少了对网关设备的内存空间的占用,降低了对网关设备性能的影响,提高了多报文时的报文特征检测的效率。
图1是本发明的实施例报文特征的检测方法的流程图; 图2是本发明的实施例报文特征的检测方法的具体流程图; 图3是本发明的实施例报文特征的检测方法中有限状态机的示意图; 图4是本发明的实施例报文特征的检测装置的结构图; 图5是在图4所示的基础上,本发明的实施例报文特征的检测装置增加定义单元时的示意图; 图6是本发明的实施例报文特征的检测装置的第一实施例的结构图。
具体实施例方式 为解决现有技术中,在对跨报文的报文特征进行检测时,需要不断的缓存检测过的报文而引起的占用内存,以及由于对同一报文的重复检测而影响网关设备性能的问题,从而造成的报文特征检测效率不高的问题,本发明的实施例提供了一种报文特征的检测方法。
本发明的实施例所述的报文特征可以以多种形式存在,例如,病毒特征,攻击特征等。
为使本发明的实施例的技术方案的优点更加清楚,下面结合附图对本发明的实施例做进一步的详细说明。
如图1所示,本发明的实施例报文特征的检测方法,包括如下步骤 S1接收当前分段报文; S2获取当前分段报文所对应的模式匹配的起始状态; S3将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态; S4在所述模式匹配结束后,若有限状态机的当前状态为匹配状态,则所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
本发明的实施例报文特征的检测方法,首先需要获取有限状态机的起始状态,然后将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配。也就是说,在将当前分段报文,与有限状态机进行模式匹配后,只需要保存对当前分段报文进行模式匹配后的有限状态机的当前状态,因此避免了现有技术中需要不断的对送入的报文进行缓存的缺陷,从而减少了对网关设备的内存空间的占用,降低了对网关设备性能的影响,提高了报文特征检测的效率。
此外,为保持对报文特征检测的连续性,如图2所示,所述方法还可包括 S5保存对当前分段报文进行模式匹配后,有限状态机的当前状态,根据有限状态机的当前状态更新所述起始状态。即将有限状态机的当前状态保存到与所述分段报文标识对应的起始状态,以供下一个分段报文检测时作为起始状态输入。
在对下一个报文进行检测的时候,可以通过所述起始状态获取有限状态机的当前状态,并通过将有限状态机的状态回复为所述的当前状态,来获知对当前报文进行匹配的结果,并作为对下一个报文进行模式匹配的起始状态,从而保持对报文特征检测的连续性,避免了对同一报文内容进行多次模式匹配,进一步的提高了对报文特征检测的效率。
如图2所示,在对当前分段报文进行模式匹配之前,本发明的实施例报文特征的检测方法还包括 S0根据预设报文特征,定义有限状态机,以及有限状态机中各状态之间进行转换的条件; S11分别为接收到的分段报文设置标识信息。所述标识信息可以在接收到分段报文后为各个分段报文进行重新设置,也可以采用各分段报文自带的ID或IP地址的标识作为所述标识信息。
在具体应用中,可以以所述预设报文特征中预定长度的字符串为单位,定义有限状态机中各状态之间的转换条件,驱动有限状态机中各状态之间的转换。所述的预定长度可以为一个字符,或两个字符等等。通过以预定长度的字符串为单位,提取进行模式匹配的分段报文中的相应长度的字符串,来驱动有限状态机的状态进行转换。为了保证对报文特征检测的准确性,在本发明的以下实施例中采用以一个字符为单位来定义有限状态机中各状态之间的转换。
上述的有限状态机可以是一个,也可以有多个分别与各接收到的分段报文一一对应的有限状态机。
若定义出多个有限状态机的话,也即对每个报文特征分别定义出一个有限状态机,当接收到当前分段报文的时候,读取所述当前报文所对应的标识信息,将其送入到对应的有限状态机中进行模式匹配。
若只定义出一个有限状态机,也即多个分段报文共用一个有限状态机,在这种情况下,需要分别保存每个报文的当前分段报文与有限状态机进行匹配后的当前状态。在各报文的下一个分段报文到来时,查询所述下一个分段报文所对应的标识信息,并获得该分段报文所对应的有限状态机的当前状态,并作为对该报文的下一个分段报文进行模式匹配的起始状态。
其中,所述获取当前分段报文所对应的模式匹配的起始状态包括 获得当前报文的标识信息; 若所述当前分段报文为首个分段报文,则获得与所述标识信息对应的有限状态机的初始状态为所述起始状态; 若所述当前分段报文不是首个分段报文,则获得与所述标识信息相对应的有限状态机的当前状态为所述起始状态。
在模式匹配过程中,对于不同的当前分段报文,有限状态机的起始状态不同。若当前分段报文为第一个分段报文,则有限状态机的起始状态即为它的初始状态。在这种情况下,在对当前分段报文进行模式匹配的过程中,首先将当前分段报文送入到与其述标识信息相对应的有限状态机中,然后以有限状态机的初始状态为起始状态,提取当前分段报文中与所述转换条件相同长度的字符串,作为有限状态机的驱动,使所述有限状态机进行状态转移,在当前分段报文中的全部字符匹配结束后,获得有限状态的当前状态。
若所述当前分段报文不是第一个分段报文,则所述起始状态为有限状态机对上一个分段报文进行模式匹配后的状态。在这种情况下,在对当前分段报文进行模式匹配的过程中,首先将当前分段报文送入到与其标识信息相对应的有限状态机中,然后以有限状态机对上一个分段报文进行模式匹配后的状态为起始状态,提取当前分段报文中与所述转换条件相同长度的字符串,作为有限状态机的驱动,使所述有限状态机进行状态转移,在当前分段报文中的全部字符匹配结束后,获得有限状态的当前状态。
在对当前分段报文进行模式匹配完成后,若所述的当前分段报文的内容与所述的预设报文特征匹配,则丢弃当前分段报文或者根据设置将所述当前分段报文进行保存;若不匹配,则转发所述当前分段报文或为所述当前分段报文添加告警标识,表明当前分段报文为非法的。
下面详细描述一下本发明实施例的实现过程。
在本发明的实施例中,以Aho-Corasick算法为例说明如何对有限状态机进行定义。当然,实现对有限状态机进行定义的方法并不局限于在本发明实施例中所使用的方法。
采用Aho-Corasick算法编译成的有限状态机可以如图3所示。在图3所示的有限状态机中,显示了两条报文特征所对应的状态转换示意图。
如图3所示的有限状态机表明,有限状态机的初始状态为状态0。以一个字符为单位,定义所述有限状态机之间的状态转换。根据所述的报文特征,按照如下的方式定义各状态之间的转换在0状态时若遇到有限状态机的输入为‘V’则转换到状态1,在状态1时遇到有限状态机的输入为‘i’则转换到状态2,……以此类推,直到转换到与报文特征匹配的状态。在图3所示的例子中,用同心圆表示的状态11、15,表示该状态为一个匹配状态,即若有限状态机运行到该状态,则表示有一条报文特征匹配。
在各状态下若遇到任何不在图3中标出的能明确转换到下一个状态的输入,则重新回到状态0,例如若在状态3下遇到非‘u’的输入,则重新回到状态0。
当有多条报文特征时,例如“VirusString”和“VirusTest”等,那么为了能够将每个报文送入到与其相对应的有限状态机中,可以为接收到的分段报文设置标识信息,对属于同一报文的分段报文其标识信息相同。
例如,预设报文为“This is a VirusFile with VirusString”和“Thisis a VirusTest File”,将上述两个报文分别分割成三个报文进行传输,分割结果如下
报文特征分别为“VirusString”和“VirusTest”,将“This is a VirusFilewith VirusString”的标识信息设置为1,“This is a VirusTest File”的标识信息设置为2。当接收到标识信息为1的报文时,获取有限状态机保存的与标识信息1相对应的状态,而当接收到标识信息为2的报文时,获取有限状态机保存的与标识信息2相对应的状态。
(一)若只将
文件整体送入模式匹配引擎,利用图3所示的有限状态机进行匹配,系统从初始状态状态0开始,经历状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态1,状态2,状态3,状态4,状态5,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态1,状态2,状态3,状态4,状态5,状态6,状态7,状态8,状态9,状态10,状态11。当状态转换到状态11时,说明模式匹配引擎检测到报文特征“VirusString”。
若将分割后的报文送入模式匹配引擎进行匹配,那么按照本发明实施例所述的方法,其具体过程如下。
(1)将第一个报文
送入模式匹配引擎,与有限状态机进行模式匹配。初始状态为状态0,有限状态机对输入的内容,按照图3所示的有限状态机及各状态之间的转换规则,进行模式匹配。状态变化过程为状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,此时第一报文内容均已完成匹配,保存有限状态机的当前状态0状所对应的状态“0”,供后续恢复状态用,然后返回。在对第一个报文进行匹配的时候,发现第一个报文中不存在所述的报文特征,因此,将所述的第一个报文转发。
(2)收到第二个报文
的时候,先获取之前保存的第一个报文与有限状态机进行匹配后,有限状态机的当前状态状态0,将状态0跟第二个报文一起送入模式匹配引擎。模式匹配引擎先进行状态恢复工作,将当前状态设置为0状态,然后再对第二报文进行匹配。有限状态机从0状态开始,经历状态0,状态1,状态2,状态3,状态4,状态5,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态0,状态1,状态2,状态3。此时本次送入的第二个报文内容完成匹配,保存有限状态机的当前状态“状态3”,然后返回。在对第二个报文进行匹配的时候,发现第二个报文中不存在所述的报文特征,因此,将所述的第二个报文转发。
(3)设备收到最后一个报文
时,同样先获取之前保存的第二个报文与有限状态机进行匹配后,有限状态机的当前状态状态3,将状态3与
一起送入模式匹配引擎。模式匹配引擎同样先进行状态恢复工作,将有限状态机的当前状态设置为状态3,然后对最后一个报文进行匹配。有限状态机从状态3开始,经历状态4,状态5,状态6,状态7,状态8,状态9,状态10,状态11。在状态11时,检测到有报文特征“VirusString”被匹配到。因此,将最后一个报文丢弃。
从上面的例子可以看出,通过上述保存有限状态机与当前报文进行匹配的状态、恢复有限状态机与当前报文进行匹配的状态的操作,在特征跨报文的情况下,仍能成功检测到该报文特征“VirusString”的存在。
(二)若同时将上述两个文件送入模式匹配引擎中,则通过所述两个文件的报文特征所对应的标识,分别将其送入到图3所示的有限状态机中对应的部分进行模式匹配。
在对每个文件的分段报文进行模式匹配的过程,与实施例所述的原理相同。不同之处仅在于,在分别对每个文件的当前分段报文进行匹配后,分别保存有限状态机的当前状态。在下一个分段报文到来后,则会根据对应标识去读取存储的对应的当前状态,以作为对下一个分段报文进行模式匹配的起始状态。然后,对各当前分段报文进行模式匹配。
在模式匹配结束后,若有限状态机的当前状态为匹配状态,则说明输入的报文中存在与所述有限状态机相对应的报文特征,则可将该分段报文丢弃或添加标识,以表明该分段报文为非法报文。若有限状态机的当前状态不是匹配状态,则转发或保存当前分段报文。
由上可以看出,当前分段报文进行模式匹配后的有限状态机的当前状态,相比现有技术方案在内存占用上有数量级的减少。在后续报文到达时,将保存的状态跟后到达的报文一起送入模式匹配引擎进行匹配,模式匹配引擎中恢复上次匹配时的状态仅需一个赋值操作,没有其他额外的拷贝代价,也不存在对同一报文进行重复检测的过程,将由于对跨报文的报文特征匹配而产生的对安全网关设备等网关设备性能的影响降到最低(保存状态和恢复状态共两个赋值操作,对网关设备的性能影响可以忽略)。
此外,在对后续报文进行匹配时,要先获取当前分段报文进行模式匹配后的有限状态机的当前状态,从而使得在对后续报文进行匹配时,保持了与已检测过的报文的匹配结果的连续性,保证了对跨报文的报文特征检测的准确性。
此外,本发明的实施例还提供了一种报文特征的检测装置。
如图4所示,本发明的实施例所述的装置包括有限状态机,匹配单元,接收单元,状态获取单元,以及判断单元;其中, 接收单元,用于接收当前分段报文;状态获取单元,用于获取当前分段报文所对应的模式匹配的起始状态;有限状态机单元,用于保存预先设置的有限状态机;匹配单元,用于将所述当前报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态;判断单元,用于确定有限状态机的当前状态为匹配状态时,获得所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
本发明的实施例报文特征的检测装置,首先需要由状态获取单元获取有限状态机的起始状态,然后将所述当前分段报文及所述起始状态作为有限状态机的输入,由匹配单元对当前分段报文进行模式匹配。也就是说,在将当前分段报文,与有限状态机进行模式匹配后,只需要保存对当前分段报文进行模式匹配后的有限状态机的当前状态,因此避免了现有技术中需要不断的对送入的报文进行缓存的缺陷,从而减少了对网关设备的内存空间的占用,降低了对网关设备性能的影响,提高了多报文时的报文特征检测的效率。
如图4中的状态获取单元可包括信息获取模块,用于获得与当前分段报文相对应的标识信息;状态获取模块,用于获得与所述标识信息相对应的有限状态机的起始状态。
此外,如图5所示,本发明实施例所述的装置还包括设置单元,用于根据预设报文特征,定义有限状态机,以及有限状态机中各状态之间的转换条件;标识设置单元,用于所述预设报文特征设置标识信息。
所述定义单元在定义有限状态机,以及有限状态机中各状态之间的转换条件时,以所述的报文特征中预定长度的字符串为单位,定义有限状态机中各状态之间的转换条件。所述的预定长度可以为一个字符串,或其他方式。在本发明的实施例中,可以以一个字符为单位进行定义。
在本实施例中,定义单元定义有限状态机及各状态之间的转换条件的过程,与本发明实施例对跨报文的报文特征进行匹配的方法中的相同,在此不再赘述。
为了对匹配后的当前分段报文进行相应操作,如转发、保存、丢弃等,如图6示,所述装置还包括第一处理单元,用于在所述模式匹配结束后,若有限状态机的当前状态不是匹配状态,转发所述当前分段报文或保存所述当前分段报文; 第二处理单元,用于在所述模式匹配结束后,若有限状态机的当前状态是匹配状态,丢弃所述当前分段报文或为当前分段报文添加标识。
需要注意的是,本发明实施例的技术方案适用于因各种原因导致的预设特征分段,使得待检测内容无法一次性送入特征匹配引擎进行检测的应用场景。所述的应用场景包括但不限于需要进行内容检测的路由器设备、防火墙、入侵检测/防御系统、病毒网关、垃圾邮件网关、Web过滤网关等。
当然,本发明的实施例还可有很多种,在不背离本发明的实施例精神及其实质的情况下,本领域技术人员当可根据本发明的实施例做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的实施例所附的权利要求的保护范围。
权利要求
1、一种报文特征的检测方法,其特征在于,所述方法包括如下步骤
接收当前分段报文;
获取当前分段报文所对应的模式匹配的起始状态;
将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态;
若有限状态机的当前状态为匹配状态,则所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
2、根据权利要求1所述的报文特征的检测方法,其特征在于,所述方法还包括
根据有限状态机的当前状态更新所对应的模式匹配的起始状态。
3、根据权利要求1所述的报文特征的检测方法,其特征在于,在接收当前分段报文的步骤之前还包括
根据预设报文特征,定义有限状态机,以及有限状态机中各状态之间进行转换的条件。
4、根据权利要求3所述的报文特征的检测方法,其特征在于,在接收当前分段报文的步骤之前还包括
分别为接收到的分段报文设置标识信息。
5、根据权利要求1或4所述的报文特征的检测方法,其特征在于,所述获取当前报文所对应的模式匹配的起始状态的步骤包括
获得与当前分段报文相对应的标识信息;
获得与所述标识信息相对应的有限状态机的当前状态。
6、根据权利要求1所述的报文特征的检测方法,其特征在于,所述获取当前分段报文所对应的模式匹配的起始状态包括
获得当前报文的标识信息;
若所述当前分段报文为首个分段报文,则获得与所述标识信息对应的有限状态机的初始状态为所述起始状态;
若所述当前分段报文不是首个分段报文,则获得与所述标识信息相对应的有限状态机的当前状态为所述起始状态。
7、根据权利要求6所述的报文特征的检测方法,其特征在于,所述将当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配的步骤包括
将当前分段报文送入到所述有限状态机中;
以所述起始状态为有限状态机的起始状态,每次提取当前分段报文中与所述转换条件相同长度的字符串,作为有限状态机的驱动,使所述有限状态机进行状态转移;
在当前分段报文中的全部字符匹配结束后,获得有限状态的当前状态。
8、根据权利要求1所述的报文特征的检测方法,其特征在于,所述方法还包括
在所述模式匹配结束后,若有限状态机的当前状态不是匹配状态,则转发或保存所述当前分段报文。
9、一种报文特征的检测装置,其特征在于,所述的装置包括有限状态机,匹配单元,接收单元,状态获取单元,以及判断单元;其中,
接收单元,用于接收当前分段报文;
状态获取单元,用于获取当前分段报文所对应的模式匹配的起始状态;
有限状态机单元,用于保存预先设置的有限状态机;
匹配单元,用于将所述当前报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态;
判断单元,用于确定有限状态机的当前状态为匹配状态时,获得所述分段报文的报文特征为与所述有限状态机相对应的报文特征。
10、根据权利要求9所述的报文特征的检测装置,其特征在于,所述装置还包括
存储单元,用于根据有限状态机的当前状态更新所述起始状态。
11、根据权利要求9所述的报文特征的检测装置,其特征在于,所述装置还包括
第一处理单元,用于在所述模式匹配结束后,若有限状态机的当前状态不是匹配状态,转发所述当前分段报文或保存所述当前分段报文;
第二处理单元,用于在所述模式匹配结束后,若有限状态机的当前状态是匹配状态,丢弃所述当前分段报文或为当前分段报文添加标识。
12、根据权利要求9所述的报文特征的检测装置,其特征在于,所述状态获取单元包括
信息获取模块,用于获得与当前分段报文相对应的标识信息;
状态获取模块,用于获得与所述标识信息相对应的有限状态机的起始状态。
13、根据权利要求12权利要求所述的报文特征的检测装置,其特征在于,所述装置还包括
设置单元,用于根据预设报文特征,定义有限状态机,以及有限状态机中各状态之间的转换条件;
标识设置单元,用于为接收到的分段报文设置标识信息。
全文摘要
本发明提供了一种报文特征的检测方法及装置,涉及通信技术领域,为提高多报文时的报文特征检测的效率而发明。所述方法包括接收当前分段报文;获取当前分段报文所对应的模式匹配的起始状态;将所述当前分段报文及所述起始状态作为有限状态机的输入,对当前分段报文进行模式匹配,获得有限状态机的当前状态;若有限状态机的当前状态为匹配状态,则所述分段报文的报文特征为与所述有限状态机相对应的报文特征。本发明能够减少报文内容对内存的占用,并降低由于对同一报文内容进行多次模式匹配而产生的对网关设备性能的影响,提高多报文时的报文特征检测的效率。
文档编号H04L12/56GK101252444SQ20081008890
公开日2008年8月27日 申请日期2008年4月3日 优先权日2008年4月3日
发明者卞建光 申请人:华为技术有限公司