一种识别信息的方法和电子装置的制作方法

文档序号:6437328阅读:260来源:国知局
专利名称:一种识别信息的方法和电子装置的制作方法
技术领域
本发明涉及电子安全技术,特别是指一种识别信息的方法和电子装置。
背景技术
多模式匹配(Multiple Pattern Matching)是计算机科学领域的基本问题,用于快速判断某一数据块中是否包含规则集中的某一或某些规则,广泛应用于文本处理、网络内容分析、入侵检测、信息检索、数据挖掘等领域。解决并行多模式匹配问题的经典方法之一,是基于有限状态机的方法。Aho-Corasick自动机方法(简称AC自动机)1975年产生于贝尔实验室,该方法应用有限自动机巧妙地将字符比较转化为了状态转移。该方法的基本思想如下:在预处理阶段,AC自动机建立三个函数:转向函数goto,失效函数failure和输出函数output,由此构造了一个树型有限自动机。在搜索查找阶段,交叉使用这三个函数扫描文本,定位出关键字在文本中的所有出现位置。现有技术中,AC自动机的一个匹配规则包括至少一个子规则,在具体的搜索过程中,当用AC自动机匹配成功一个子规则后,按子规则标识查找匹配状态表,获得子规则所属匹配规则的子规则总数和最近匹配的子规则顺序号,比较子规则顺序号和最近匹配的子规则顺序号,如果子规则顺序号比最近匹配的子规则顺序号大1,则根据该子规则顺序号和子规则总数判断所述子规则是否是最后一个子规则,如果是,则搜索对象与匹配规则相匹配,如果不是,则更新匹配状态表中最近匹配子规则顺序号为当前匹配的这一子规则的顺序号。在处理诸如11*22*33*44的匹配字符串时,无法检测出11 22 33 22 44这样逻辑上复合匹配字符串的字段;同时,当遇到11 11 22 33 44 33 44时也仅仅能判断出字段1111 22 33 44命中了一次11*22*33*44,而实际上此字段命中了四次匹配字符串,分别为1111 22 33 44,11 22 33 44,11 11 22 33 44 33 44 和 11 22 33 44 33 44。

另外,虽然支持普通通配符*,但不支持特殊通配符?。如果用户想查找11和22之间有任意一个字符的字符串,如果用通配符表示则为11 22,此时,只有诸如llu22这样的字符串才满足要求,而lluu22这样的字符串并不满足要求。并且,搜索方法占用内存过大或搜索速度过慢;现在公开的方法,很难达到单线程Gb/s的处理速度,这样很难应用于存在大量数据交互的移动通信网络。多模式匹配方法搜索速度相对较快,搜索速度与需要查找的内容长度、个数无关,但一般存在着占用内存过大的问题。现有技术中对于病毒的行为分析技术中,针对电子装置病毒的防御大多数都侧重于用户侧,采用在电子装置上安装专门的电子装置病毒查杀软件对电子装置病毒进行防御,从电子装置病毒的行为分析来说,现有还没有专门的技术专利分析具体的实现方法。在电子装置终端处安装查杀软件进行病毒防御的方法存在两个局限:电子装置病毒库需要随时更新,如不更新,则无法防御新的电子装置病毒;对病毒的查杀依赖于客户端软件的安装情况。最容易受感染的用户往往是对电子装置病毒了解较少的用户,他们往往很少,或者根本意识不到电子装置病毒的存在,也不会专门在电子装置上安装专业的软件进行查杀,导致病毒一直发作而不被察觉。发明人发现现有技术存在如下问题:现有的病毒分析方法中,如果子规则顺序号比最近匹配的子规则顺序号大1,则根据该子规则顺序号和子规则总数判断所述子规则是否是最后一个子规则,如果是,则搜索对象与匹配规则相匹配,如果不是,则更新匹配状态表中最近匹配子规则顺序号为当前匹配的这一子规则的顺序号,因此这会造成匹配过程中出现回退操作,这一回退操作会造成无法检测出某一些比较特殊的病毒特征码:以及不支持或不完全支持通配符匹配。而且,厂商都局限于在终端上安装杀毒软件,根据病毒特征码搜索电子装置病毒,用户需及时更新自己电子装置上的病毒特征库才能及时对病毒进行查杀。大部分购买了智能机但对智能机认知不够的用户才是最容易感染病毒的高危人群,依靠在终端上安装杀毒软件进行杀毒的方法显然是无效的,这将影响到他们的使用体验。

发明内容
本发明要解决的技术问题是提供一种识别信息的方法和电子装置,用于解决现有技术中:如果子规则顺序号比最近匹配的子规则顺序号大1,则根据该子规则顺序号和子规则总数判断所述子规则是否是最后一个子规则,如果是,则搜索对象与匹配规则相匹配,如果不是,则更新匹配状态表中最近匹配子规则顺序号为当前匹配的这一子规则的顺序号,因此这会造成匹配过程中出现回退操作,这一回退操作会造成无法检测出某一些比较特殊的病毒特征码;以及不支持或不完全支持通配符匹配的缺陷。为解决上述技术问题,本发明的实施例提供一种识别信息的方法,包括:将一非确定规则拆分为至少一个子规则,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符;为所述非确定规则构建一状态机,所述状态机中包括多个状态节点;在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关;一当前子规则与一病毒特征码匹配成功时,开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配;当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信肩、O所述的方法中,每一个所述状态节点中存放一个顺序号,所述顺序号表示该状态节点在所述状态机中的位置。所述的方法中,所述病毒特征码中至少包括两个特征码;所述一当前子规则与一病毒特征码匹配成功,具体包括:所述当前子规则与所述病毒特征码中的任一特征码匹配成功。所述的方法中,所述通配符包括普通通配符和特殊通配符;当所述病毒特征码携带了第一数量个特殊通配符时,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配包括:当一第二子规则被命中时,以所述第二子规则的首字符的位置减去所述当前子规则的首字符在所述状态机中记录的原信息命中位置,再减去所述当前子规则的长度得到一个位移差,该位移差为所述第一数量时认定所述第二子规则匹配成功;其中,所述第二子规则是所述当前子规则后面的且紧邻所述当前子规则的一个子规则。所述的方法中,存在一终状态节点列表,存放所述非确定规则中各个子规则的类型,其中:第一类型表示匹配到达该子规则的终状态节点时,还需要与后续的子规则进行匹配,第二类型表示匹配到达该子规则的终状态节点时,所述非确定规则匹配成功;当所述非确定规则包括至少两个子规则时,最后一个子规则为第二类型,其余子规则为第一类型,当所述非确定规则只包括一个当前子规则时,所述当前子规则为第二类型,并在所述终状态节点列表的对应的记录里面添加一匹配终结标识。所述的方法中,所述终状态节点列表中还包括:下一子规则的终状态节点的位置;当所述当前子规则为第一类型时,在所述终状态节点列表中更新所述当前子规则对应的记录,更新后的所述记录记载一第二子规则的终状态节点的位置;当所述当前子规则为第二类型时,在所述终状态节点列表中所述当前子规则对应的记录里面添加所述匹配终结标识。所述的方法中,还包括:对病毒的动态行为进行监控,包括监控:操作时间,电子装置短信/彩信发送量,数据流量,短信,以及频繁开关机;当出现异常时,执行检测病毒特征码的操作。一种电子装置,包括:规则拆分单元,用于将一非确定规则拆分为至少一个子规贝U,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符;状态机构建单元,用于为所述非确定规则构建一状态机,所述状态机中包括多个状态节点;命中开关单元,用于在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关;匹配单元,用于一个当前子规则与一病毒特征码匹配成功时,通知所述命中开关单元开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行匹配;当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信息。所述的电子装置,所述匹配单元,还用于在一个当前子规则与一病毒特征码匹配成功的过程中,将所述当前子规则与所述病毒特征码中的任一特征码匹配,且匹配成功。所述的电子装置,匹配单元还包括:特殊通配符匹配模块,用于当所述病毒特征码携带了第一数量个特殊通配符时,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配包括:当一第二子规则被命中时,以所述第二子规则的首字符的位置减去所述当前子规则的首字符在所述状态机中记录的原信息命中位置,再减去所述当前子规则的长度得到一个位移差,该位移差为第一数量时认定所述第二子规则匹配成功;其中,所述第二子规则是所述当前子规则后面的且紧邻所述当前子规则的一个子规则;所述通配符包括普通通配符和特殊通配符。所述的电子装置,还包括:终状态节点列表管理单元,用于存放一终状态节点列表,表中存放所述非确定规则中各个子规则的类型,其中:第一类型表示匹配到达该子规则的终状态节点时,还需要与后续的子规则进行匹配,第二类型表示匹配到达该子规则的终状态节点时,所述非确定规则匹配成功;当所述非确定规则包括至少两个子规则时,最后一个子规则为第二类型,其余子规则为第一类型,当所述非确定规则只包括一个当前子规则时,所述当前子规则为第二类型,并在所述终状态节点列表的对应的记录里面添加一匹配终结标识。
所述的电子装置,终状态节点列表更新单元,所述终状态节点列表中还包括:下一子规则的终状态节点的位置;用于当所述当前子规则为第一类型时,在所述终状态节点列表中更新所述当前子规则对应的记录,更新后的所述记录记载所述第二子规则的终状态节点的位置;当所述当前子规则为第二类型时,在所述终状态节点列表中所述当前子规则对应的记录里面添加所述匹配终结标识。本发明技术方案的有益效果如下:不必再执行现有技术中,如果子规则顺序号比最近匹配的子规则顺序号大1,则根据该子规则顺序号和子规则总数判断所述子规则是否是最后一个子规则,如果是,则搜索对象与匹配规则相匹配,如果不是,则更新匹配状态表中最近匹配子规则顺序号为当前匹配的这一子规则的顺序号,因此匹配过程中不再会出现回退操作。如此,对状态机的构建进行了进一步的限定,将包含通配符的非确定规则分为多个前后关联的子规则,顺位上处于后面的子规则的匹配状态取决于它之前的子规则是否匹配,减少每次查找前需要清空命中次数带来的时间消耗,减少不必要的内存占用。


图1为本发明实施例AC自动机的工作原理示意图;图2为本发明实施例一种识别信息的方法流程示意图;图3为本发明实施例终状态节点列表结构示意图;图4为本发明实施例构建状态机流程示意图;图5为本发明实施例根据分割子规则的通配符的类型判断是否匹配成功流程示意图;图6为本发明实施例判断已扫描过的病毒特征码是否包含某一个或者多个新的子规则流程示意图;图7为本发明实施例动态扫描病毒特征码的方法流程示意图;图8为本发明实施例电子装置结构示意图。
具体实施例方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。为帮助本领域技术人员理解本发明实施例提供的技术方案,首先描述AC自动机的工作原理,AC自动机的两个特点是:一是扫描文本时完全不需要回溯,二是时间复杂度为O (η),换言之,时间复杂度与关键字的数目和长度无关。如图1所示,AC自动机用于状态转移,规则集是用于多模式匹配的匹配规则的集合,规则集为{she, he, hers, his},其中的匹配规则分别是she, he, hers, his。图1中有三种类型的状态节点:初始状态节点、普通状态节点和终状态节点,每个匹配规则都可以由一条从初始状态节点O出发的路径进行标识,该路径的终点为终状态节点;规则集中,匹配规则she由初始状态节点O到状态节点5的路径进行标识,状态节点5为终状态节点;匹配规则he由初始状态节点O到终状态节点2的路径进行标识;hers由初始状态节点O到终状态节点9的路径进行标识;his由初始状态节点O到终状态节点7的路径进行标识。相比于现有的模式匹配方法,AC自动机是经典而且非常优秀的。
在一个具体的实施例中,AC自动机将一个含有通配符的匹配规则分解成多个子规贝U,并逐个检查各个子规则是否按顺序匹配成功,部分解决了 AC自动机处理含有通配符的非确定的匹配规则(简称:非确定规则)所面临的问题,能够很好的处理334566*99000这样的匹配规则;但在匹配较复杂的搜索对象-病毒特征码时存在问题,若有一非确定的匹配规则为:11*22*33*44,病毒特征码为11#$*(#22#*(33#(#*22#*@(44,按照上述方法无法检出匹配的结果,因为匹配过程中遇到状态22第二次出现时,匹配状态表中的最近匹配的子规则顺序号将被从原来的3更新为2,然后,当44被命中时,由于最近匹配子规则为2而非3,不会判定匹配规则被命中。而且,上述方法并不支持所有的通配符,比如无法支持特殊通配符?-即不支持包含任意的单个字符的匹配规则。当匹配规则为:11 22,即11+任意一个字符+22时,无法找到对应的搜索对象。本发明实施例中,与基于终端或者服务器端的电子装置病毒防御方法的着眼点不同,更加侧重于从运营商侧对电子装置病毒进行防御;提供了匹配规则包含通配符?和*的多模式匹配方法,采用改进的AC自动机对包含有通配符的非确定规则进行匹配;同时对病毒检测不仅仅依赖于病毒特征码,还对病毒行为进行分析。现有技术中,如果子规则顺序号比最近匹配的子规则顺序号大I,则根据该子规则顺序号和子规则总数判断所述子规则是否是最后一个子规则,如果是,则搜索对象与匹配规则相匹配,如果不是,则更新匹配状态表中最近匹配子规则顺序号为当前匹配的这一子规则的顺序号。本发明实施例提供一种识别信息的方法,如图2所示,包括:步骤201,将一非确定规则拆分为至少一个子规则,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符; 步骤202,为所述非确定规则构建一状态机,所述状态机中包括多个状态节点;步骤203,在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关;步骤204,当一个当前子规则与一病毒特征码匹配成功时,开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行匹配;当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信息。应用所提供的技术方案,由于不必执行现有技术中采用的判断,而是采用了命中开关控制匹配的过程,因此匹配过程中不再会出现回退操作;并且,进一步限定了如何构建状态机,将包含通配符的非确定规则分为多个前后关联的子规则,顺序上处于后面的子规则的匹配状态取决于它之前的子规则是否匹配,减少每次查找前需要清空命中次数带来的时间消耗,减少了不必要的内存占用。一个状态节点中存放一个顺序号,所述顺序号表示该状态节点在所述状态机中的位置。在一个优选实施例中,步骤204中,一个当前子规则与一病毒特征码匹配成功是指,一个当前子规则与一病毒特征码中的任一特征码匹配成功;其中,病毒特征码中可以包括两个或者两个以上的特征码。

在一个优选实施例中,采用状态表指针数组代替状态数组,减少了内存寻址的时间消耗,命中次数使用数组存储,减少每次查找前需要清空命中次数带来的时间消耗;匹配过程使用的是指针而不需要复制字符串的操作,解决了匹配列表占用内存过大的问题,此夕卜,生成状态表时采用Hash Map预先计算实际状态的数量值,使用该数量值而不是最大状态数量,减少不必要的内存占用。在一个应用场景中,有一非确定规则11*22*33*44,病毒特征码为11#$*(#22#*(33#(#*22#*@(44,* 表示普通通配符,包括:步骤I,将非确定规则拆分为若干个子规则:子规则1:11;子规则2:22;子规则3:33 ;子规则4:44。步骤2,为一非确定规则构建一状态机,状态机中,一个状态节点中存放一个顺序号,所述顺序号表示该状态节点在所述状态机中的位置;两个状态节点之间的连接线处存放各个子规则的字符。步骤3,在每一个子规则的结束字符所对应的状态节点上设置有一个命中开关,默认处于关闭。步骤4,当当前子规则11与病毒特征码11#$*(#22#*(33#(#*22#*@(44中的11匹配成功时,开启当前子规则对应的所述命中开关;步骤5,将病毒特征 码11#$* (#22#* (33# (#*22#*§ (44中的第一个特征码11后面的各个特征码22、33、22、44依次与第二子规则22进行匹配,当匹配成功时,开启状态机中第二子规则对应的命中开关;其中,第二子规则是紧临所述当前子规则之后的一个子规则。步骤6,将病毒特征码中第二子规则后面的特征码33、22、44依次与第三子规则33进行匹配,当匹配成功时,开启第三子规则对应的所述命中开关。步骤7,将病毒特征码中第三子规则后面的特征码22、44依次与第四子规则44进行匹配;当匹配成功时,由于第四子规则44是最后一个子规则,因此认定病毒特征码11#$* (#22#* (33# (#*22#*§ (44与所述非确定规则相匹配。通配符包括:普通通配符*,特殊通配符?。在一个优选实施例中,当需要对携带了一个特殊通配符的病毒特征码进行匹配时,记录当前子规则的首字符的位置;允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配包括:当第二子规则命中时,以第二子规则的首字符的位置减去所述当前子规则的首字符的位置,再减去所述当前子规则的长度得到一个位移差,位移差不为I时,判定病毒特征码不被命中。在一个应用场景中,非确定规则为11 22,那么,当前子规则为11,第二子规则为22,当前子规则的首字符是第一个1,第二子规则的首字符是第一个2,被搜索的病毒特征码11χχ22,匹配过程包括:步骤a,当搜索到第一个X时,当前子规则已被命中。步骤b,搜索到最后一个2时,虽然第二子规则被命中,但是第二子规则的首字符的位置减去当前子规则的首字符的位置,再减去当前子规则的长度2之后,得到的位移差为2。
步骤c,位移差并不是1,因此判定病毒特征码llxx22并不满足非确定规则11 22。在一个优选实施例中,子规则是一个包含通配符的非确定规则中的子集,该子规则为第一类型,或者子规则是一个不包含通配符的非确定规则,该子规则为第二类型;如图3所示,存在一终状态节点列表,存放所述非确定规则中各个子规则的类型,其中:第一类型表示匹配过程到达该子规则的终状态节点时,还需要与后续的子规则进行匹配,第二类型表示匹配·到达该子规则的终状态节点时,所述非确定规则匹配成功;当非确定规则包括至少两个子规则时,最后一个子规则为第二类型,其余子规则为第一类型,当非确定规则只包括一个当前子规则时,当前子规则为第二类型,并在所述终状态节点列表的对应的记录里面添加一匹配终结标识。终状态节点列表中还包括选项:下一子规则的终状态节点的位置;当所述当前子规则为第一类型时,在所述终状态节点列表中更新所述当前子规则对应的记录,更新后的所述记录记载所述第二子规则的终状态节点的位置;当所述当前子规则为第二类型时,在所述终状态节点列表中所述当前子规则对应的记录里面添加所述匹配终结标识。在一个应用场景中,如图4所示,包括:步骤401,确定了一个匹配规则的规则集合;步骤402,对于集合中的任意一个规则,判断该规则是否是一个不包含通配符的原始的非确定规则,如果是,转步骤406,否则转步骤403。步骤403,在终状态节点列表中更新前一子规则的选项-下一子规则的终状态节点的位置。步骤404,判断是否是一个非确定规则的最后一个子规则,如果是,转步骤406,否则转步骤405。步骤405,在终状态节点列表中添加属于本非确定规则的记录,一条记录对应了非确定规则的一个子规则。步骤406,根据非确定规则构建一状态机;或者,根据该些个子规则构建状态机的一部分;结束。应用上述实施例中提供的技术方案,对状态机的构建进行了进一步的限定,将包含通配符的非确定规则分为多个前后关联的子规则,顺序上处于后面的子规则的匹配状态取决于它之前的子规则是否匹配;由于记录了前后两个命中的子规则的位移差,因此不仅支持普通通配符,而且支持特殊通配符通配符,极大方便了对病毒特征码和信令有效载荷中的有效字段的查找。在一个优选实施例中,如图5所示,在构建状态机时,根据分割子规则的是普通通配符还是特殊通配符来判断是否匹配成功;记录一个子规则所属的非确定规则中是根据什么通配符进行分割的,包括:步骤a,读入一个子规则开始进行匹配操作。步骤b,需要确定分割该子规则的通配符是普通通配符*还是特殊通配符?,如果是普通通配符转步骤C,否则转步骤d。
步骤c,分割子规则的是普通通配符*,不需要检测该子规则与前一个子规则之间的位移差。步骤d,分割子规则的通配符是特殊通配符?,需要判断前后两个子规则的位移差是否等于分隔这两个子规则之间特殊通配符的个数。如果分割生成的子规则是由包含通配符的非确定规则产生的,在构建状态机时,属于同一个非确定规则的各个子规则按照在非确定规则中的顺序,每一个子规则的命中与否首先取决于它前面的那个子规则是否命中;即,在每一个子规则的结束字符所对应的状态节点上设置有一个命中开关,这一个命中开关的开启和关闭状态具体可以存放在终状态节点列表中与该子规则对应的位置处,由于终状态节点列表中,总是在前一个子规则对应的记录中记载了当前这一子规则的结束字符的位置,因此可以通过终状态节点列表准确找到当前的子规则的结束字符的位置。在一个优选实施例中,如图6所示,读取搜索对象,采用状态机对搜索对象进行匹配,判断搜索对象中已扫描过的病毒特征码是否包含某一个或者多个新的子规则,具体包括:步骤601,读取搜索对象。步骤602,产生的状态机对搜索对象判断是否已经扫描完成,如果是,转步骤610,否则转步骤603。步骤603,判断已扫描过的病毒特征码是否包含某一个或者多个新的子规则,如果是,转步骤604,否则转步骤601。步骤604,遍历终状态节点列表;终状态节点终状态节点列表记录了各个子规则的下一子规则的终状态节点的位置,因此,终状态节点列表中也必定记录了非确定规则的最后一个子规则N的终状态节点的位置。为方便实现技术方案,可以针对每一个非确定规则制定一个终状态节点列表;也可以将若干个终状态节点列表编辑在一起形成一个大终状态节点列表。步骤605,如果发现这一命中的子规则应当是某一个终状态节点列表中对应的非确定规则的最后一个子规则,转步骤606,否则转步骤607 ;主要是在终状态节点列表中寻找到匹配终结标识。步骤606,该非确定规则被命中,输出该非确定规则;再转步骤601。步骤607,遍历终状态节点列表中的属性项-下一子规则的终状态节点的位置。步骤608,开启与下一子规则之间的命中开关,命中开关此时从默认的关闭状态转为开启状态。步骤609,更新下一子规则的属性项-上一次命中的位移差,即本次命中的字段位置。再转步骤601。步骤610,结束扫描。实施例中,支持特殊通配符?和普通通配符*,且不会因在命中第三规则后和命中第四规则之前再次命中第二规则而出现状态回退,以至于错误地判断第四规则未被匹配,因而避免了漏判;并且优化了状态机的初始化和状态还原,使内存占用大幅降低,搜索速度加快。在搜索速度上,本申请技术方案与几种现在流行的多模式匹配方法进行了对比测试,测试样本中,关键词样本:常用关键词库中的296个关键词,包括政治、淫秽、违反法规等几大类,并且为了提高命中加入了部分高命中词,如“服务器”、“社会”等,共3.6KB大小;为了更好地对比检测结果,以下选用的关键词中统一未包含通配符,但此并不影响速度对t匕,本技术方案的速度只和搜索样本长度相关,和关键词样本数无关。数据样本:为更真实地反映网络中的状况,从IDC服务器托管商的各站点内容中随机选取了 20480个20KB左右的文本文件作为待检测样本,共400多M。测试次数:测5次,结果取平均值;测试的环境和结果如下:测试环境:
权利要求
1.一种识别信息的方法,其特征在于,包括: 将一非确定规则拆分为至少一个子规则,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符; 为所述非确定规则构建一状态机,所述状态机中包括多个状态节点; 在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关; 一当前子规则与一病毒特征码匹配成功时,开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配; 当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信息。
2.根据权利要求1所述的方法,其特征在于,每一个所述状态节点中存放一个顺序号,所述顺序号表示该状态节点在所述状态机中的位置。
3.根据权利要求1所述的方法,其特征在于,所述病毒特征码中至少包括两个特征码;所述一当前子规则与一病毒特征码匹配成功,具体包括: 所述当前子规则与所述病毒特征码中的任一特征码匹配成功。
4.根据权利要求2所述的方法,其特征在于,所述通配符包括普通通配符和特殊通配符; 当所述病毒特征码携带了第 一数量个特殊通配符时,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配包括: 当一第二子规则被命中时,以所述第二子规则的首字符的位置减去所述当前子规则的首字符在所述状态机中记录的原信息命中位置,再减去所述当前子规则的长度得到一个位移差,该位移差为所述第一数量时认定所述第二子规则匹配成功;其中,所述第二子规则是所述当前子规则后面的且紧邻所述当前子规则的一个子规则。
5.根据权利要求1所述的方法,其特征在于,存在一终状态节点列表,存放所述非确定规则中各个子规则的类型,其中: 第一类型表示匹配到达该子规则的终状态节点时,还需要与后续的子规则进行匹配, 第二类型表示匹配到达该子规则的终状态节点时,所述非确定规则匹配成功; 当所述非确定规则包括至少两个子规则时,最后一个子规则为第二类型,其余子规则为第一类型, 当所述非确定规则只包括一个当前子规则时,所述当前子规则为第二类型,并在所述终状态节点列表的对应的记录里面添加一匹配终结标识。
6.根据权利要求5所述的方法,其特征在于,所述终状态节点列表中还包括:下一子规则的终状态节点的位置; 当所述当前子规则为第一类型时,在所述终状态节点列表中更新所述当前子规则对应的记录,更新后的所述记录记载一第二子规则的终状态节点的位置; 当所述当前子规则为第二类型时,在所述终状态节点列表中所述当前子规则对应的记录里面添加所述匹配终结标识。
7.根据权利要求1所述的方法,其特征在于,还包括:对病毒的动态行为进行监控,包括监控: 操作时间,电子装置短信/彩信发送量, 数据流量, 短 目, 以及频繁开关机; 当出现异常时,执行检测病毒特征码的操作。
8.一种电子装置,其特征在于,包括: 规则拆分单元,用于将一非确定规则拆分为至少一个子规则,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符; 状态机构建单元,用于为所述非确定规则构建一状态机,所述状态机中包括多个状态节点; 命中开关单元,用于在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关; 匹配单元,用于一个当前子规则与一病毒特征码匹配成功时,通知所述命中开关单元开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行匹配;当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信息。
9.根据权利要求8所述的电子装置,其特征在于, 所述匹配单元,还用于在一个当前子规则与一病毒特征码匹配成功的过程中,将所述当前子规则与所述病毒特征码中的任一特征码匹配,且匹配成功。
10.根据权利要求9所述的电子装置,其特征在于,匹配单元还包括: 特殊通配符匹配模块,用于当所述病毒特征码携带了第一数量个特殊通配符时,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配包括: 当一第二子规则被命中时,以所述第二子规则的首字符的位置减去所述当前子规则的首字符在所述状态机中记录的原信息命中位置,再减去所述当前子规则的长度得到一个位移差,该位移差为第一数量时认定所述第二子规则匹配成功;其中,所述第二子规则是所述当前子规则后面的且紧邻所述当前子规则的一个子规则;所述通配符包括普通通配符和特殊通配符。
11.根据权利要求8所述的电子装置,其特征在于,还包括: 终状态节点列表管理单元,用于存放一终状态节点列表,表中存放所述非确定规则中各个子规则的类型,其中: 第一类型表示匹配到达该子规则的终状态节点时,还需要与后续的子规则进行匹配, 第二类型表示匹配到达该子规则的终状态节点时,所述非确定规则匹配成功; 当所述非确定规则包括至少两个子规则时,最后一个子规则为第二类型,其余子规则为第一类型, 当所述非确定规则只包括一个当前子规则时,所述当前子规则为第二类型,并在所述终状态节点列表的对应的记录里面添加一匹配终结标识。
12.根据权利要求11所述的电子装置,其特征在于, 终状态节点列表更新单元,所述终状态节点列表中还包括:下一子规则的终状态节点的位置;用于当所述当前 子规则为第一类型时,在所述终状态节点列表中更新所述当前子规则对应的记录,更新后的所述记录记载所述第二子规则的终状态节点的位置; 当所述当前子规则为第二类型时,在所述终状态节点列表中所述当前子规则对应的记录里面添加所述匹配 终结标识。
全文摘要
本发明提供一种识别信息的方法和电子装置,方法包括将一非确定规则拆分为至少一个子规则,每一个子规则是一字符串,所述字符串中的字符连续且不包含通配符;为所述非确定规则构建一状态机,所述状态机中包括多个状态节点;在每一个所述子规则的结束字符所对应的状态节点上设置有一个命中开关;一当前子规则与一病毒特征码匹配成功时,开启所述当前子规则的所述命中开关,允许所述当前子规则后面的子规则继续与所述病毒特征码进行后续的匹配;当所有所述子规则均匹配成功时,认定所述非确定规则与所述病毒特征码匹配成功,且认定包含所述病毒特征码的信息为病毒信息。
文档编号G06F21/56GK103093147SQ20111034205
公开日2013年5月8日 申请日期2011年11月2日 优先权日2011年11月2日
发明者尹启禄, 林淼, 潘广津, 徐舜尧, 孙同伦, 任荣, 陈冬妮, 秦睦迪 申请人:中国移动通信集团广东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1