CN111177491B - 正则表达式的匹配方法、装置、电子设备及存储介质 - Google Patents
正则表达式的匹配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111177491B CN111177491B CN201911421987.3A CN201911421987A CN111177491B CN 111177491 B CN111177491 B CN 111177491B CN 201911421987 A CN201911421987 A CN 201911421987A CN 111177491 B CN111177491 B CN 111177491B
- Authority
- CN
- China
- Prior art keywords
- fixed
- length
- regular expression
- character string
- matched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本发明实施例提供了一种正则表达式的匹配方法、装置、电子设备及存储介质,在抽取标识每一正则表达式的字符串后,将字符串划分为定长子串。通过定长子串去过滤与待匹配字符串匹配性较好的目标正则表达式,通过目标正则表达式进一步地确定待匹配字符串是否为网络攻击数据或者病毒。由于对字符串划分了定长子串,过滤器中只需要存储各字符组成长度为定长子串的所有可能字符串。相比于存储每一正则表达式完整的字符串而言,大大降低了所需的存储空间,且定长子串的所有可能字符串所需最大存储空间可控,能够避免过滤器发生内存溢出错误。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种正则表达式的匹配方法、装置、电子设备及存储介质。
背景技术
海量(千万级)正则表达式匹配引擎通常采用过滤方法实现,包含“过滤器”和“验证器”两大核心模块。“过滤器”采用抽取的有效指纹构建自动机实现,“验证器”采用NFA-DFA正则表达式引擎实现。但是,现有的“有效指纹”提取算法,均是针对“连接”操作的关键子串,没有考虑正则表达式的“或”操作,进而过滤能力较低,并且“有效指纹”长度不可控,容易发生内存溢出错误。
由此,在实际应用过程中,由于正则表达式的长度不可控,正则表达式匹配过程中,尤其是存在大规模的正则表达式时,过滤器中需要大量的空间存放正则表达式的“有效指纹”,容易出现内存溢出,发生内存溢出错误。
发明内容
本发明实施例提供一种正则表达式的匹配方法、装置、电子设备及存储介质,用以解决现有技术中的由于正则表达式的长度不可控,正则表达式匹配过程中,尤其是存在大规模的正则表达式时,过滤器中需要大量的空间存放正则表达式的“有效指纹”,容易出现内存溢出,发生内存溢出错误的问题。
针对以上技术问题,第一方面,本发明的实施例提供了一种正则表达式的匹配方法,包括:
抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
第二方面,本发明的实施例提供了一种正则表达式的匹配装置,包括:
划分模块,用于抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
匹配模块,用于获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
确定模块,用于根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
第三方面,本发明的实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述的正则表达式的匹配方法的步骤。
第四方面,本发明的实施例提供一种非暂态可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以上所述的正则表达式的匹配方法的步骤。
本发明的实施例提供了一种正则表达式的匹配方法、装置、电子设备及存储介质,在抽取标识每一正则表达式的字符串后,将字符串划分为定长子串。通过定长子串去过滤与待匹配字符串匹配性较好的目标正则表达式,通过目标正则表达式进一步地确定待匹配字符串是否为网络攻击数据或者病毒。由于对字符串划分了定长子串,过滤器中只需要存储各字符组成长度为定长子串的所有可能字符串。相比于存储每一正则表达式完整的字符串而言,大大降低了所需的存储空间,且定长子串的所有可能字符串所需最大存储空间可控,能够避免过滤器发生内存溢出错误。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的对网络进行深度检测的流程示意图;
图2是本发明另一个实施例提供的一种正则表达式的匹配方法的流程示意图;
图3是本发明另一个实施例提供的正则表达式有效指纹抽取的示意图;
图4是本发明另一个实施例提供的自动过滤器的原理示意图;
图5是本发明另一个实施例提供的正则表达式的过滤方法示意图;
图6是本发明另一个实施例提供的一种正则表达式的匹配装置的结构框图;
图7是本发明另一个实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本实施例介绍之前,先对本实施例提供的方法做简单的背景介绍。图1为本实施例提供的对网络进行深度检测的流程示意图,参见图1,进行深度检测从网络获取待匹配字符串之后,需通过“过滤器”过滤出可能与待匹配字符串匹配的目标正则表达式,然后再由“验证器”进一步验证每一目标正则表达式与待匹配字符串的匹配性,得到最终的匹配结果,通过最终的匹配结果确定待匹配字符串对应流量的安全性。在这一过程中,“过滤器”将待匹配字符串与标识各正则表达式的字符串(即有效指纹)进行对比得到目标正则表达式。
然而,在传统的方法是存储各正则表达式的完整“有效指纹”,由于各正则表达式的“有效指纹”长度不定,且当正则表达式数量较多时,需要消耗较大的内存,会出现内存溢出的情况。另一方面,传统的方法中,在提取“有效指纹”时,当正则表达式中出现“或操作”时,直接将与“或操作”有关的字符丢弃,在一定程度上排除了可能的匹配结果,使得过滤结果不够全面,过滤性能较低。
为了解决上述技术问题,图2为本发明实施例提供的一种正则表达式的匹配方法的流程示意图,参见图2,该方法包括以下步骤:
步骤201:抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
步骤202:获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
步骤203:根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
本实施例提供的方法由网关、服务器、终端或者专用于对网络进行深度检测的设备执行,本实施例对此不做具体限制。标识每一正则表达式的字符串指的是从正则表达式中提取的“有效指纹”,每一字符串的定长子串为正则表达式的“有效指纹子串”。
本实施例提供的方法中,在得到正则表达式的“有效指纹”后,将“有效指纹”划分为多个定长子串。例如:有效子串为“abcdef”,定长为3,有效指纹划分为两个子串“abc”和“def”。此处对定长子串能够防止内存溢出进行介绍。例如,定长子串的长度为3,每一位置处的可能出现的字符种类为256种,则存储所有种类的定长子串仅需要2563个存储位置即可。因而,内存中需要存储定长子串的存储位置仅需要2563个。但是若不对“有效指纹”进行划分,则需要对每一“有效指纹”均分配存储位,则无法估计所需存储位置的多少,且当正则表达式较多时,所需的存储位置的数量也是非常庞大的。由此可知,定长子串的切分不经能够大大降低所需存储空间,还能够预知所需存储空间的上限,合理分配存储空间,避免内存溢出。
待匹配字符串是从网络抓取的数据包,例如,对某一网站进行恶意访问的监测,则待匹配字符串是从访问该网站的数据中抓取的数据。目标定长子串是与待匹配字符串相匹配的子串,例如,待匹配字符串为“abcmnkdef”,存储的长度为3的定长子串中包括“abc”和“def”,但不包括“mnk”,则目标定长子串为“abc”和“def”。
例如,按照输出顺序,目标定长子串为“abc”、“def”,则若存在某一正则表达式的“有效指纹”中包括“abc”和“def”,且“abc”在“def”之前,该正则表达式才能够作为待匹配字符串的目标正则表达式,以在后续的“验证器”中进行进一步地验证。
本实施例提供了一种正则表达式的匹配方法,在抽取标识每一正则表达式的字符串后,将字符串划分为定长子串。通过定长子串去过滤与待匹配字符串匹配性较好的目标正则表达式,通过目标正则表达式进一步地确定待匹配字符串是否为网络攻击数据或者病毒。由于对字符串划分了定长子串,过滤器中只需要存储各字符组成长度为定长子串的所有可能字符串。相比于存储每一正则表达式完整的字符串而言,大大降低了所需的存储空间,且定长子串的所有可能字符串所需最大存储空间可控,能够避免过滤器发生内存溢出错误。
进一步地,在上述实施例的基础上,所述抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串,包括:
对每一正则表达式的字符串,循环执行字符串划分操作,直到所述字符串中,未执行字符串划分操作的剩余字符的长度小于定长子串的长度;
其中,所述字符串划分操作包括:
判断所述字符串的剩余字符中是否存在“或”操作连接的字符,若否,则对剩余字符依次划分定长子串,设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1;
若是,则对“或”操作之前的字符依次划分定长子串,且设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1,并在对“或”操作之前的字符依次划分定长子串之后,对“或”操作连接的各字符串同时划分定长子串,且设置每次划分的各定长子串的索引偏移相同,且等于前一次划分的定长子串的索引偏移加1;
其中,设置对字符串第一次划分的定长子串的索引偏移为0。
其中,对“或”操作之前的字符依次划分定长子串时,若最后一次划分定长子串时剩余的字符的长度小于定长子串的长度,则将最后一次划分定长子串时剩余的字符作为调整字符,将调整字符加入“或”操作连接的每一字符串的开头,对加入了调整字符后的各“或”操作连接的字符串划分定长子串。
其中,在对“或”操作之前的字符依次划分定长子串之后,对“或”操作连接的各字符串同时划分定长子串时,若某一“或”操作连接的某一字符串中剩余的字符长度小于定长子串的长度,则在该字符串中补入指定占位字符,直到对“或”操作连接的字符串中长度最长的字符串划分定长子串结束。
其中,在对“或”操作连接的各字符串同时划分定长子串时,若最后一次划分定长子串的长度小于定长子串的长度,且“或”操作连接的各字符串之后还存在字符,则将“或”操作连接的各字符串之后的字符补入“或”操作连接的各字符串中,以使得最后一次能划分长度等于定长子串的长度的字符串。
其中,循环执行字符串划分操作,直到所述字符串中,未执行字符串划分操作的剩余字符的长度小于定长子串的长度后,丢弃剩余字符。
需要说明的是,在本实施例提供的方法中,当正则表达式中存在“或”操作,是将正则表达式中执行“或”操作的子串进行合并。相对于直接丢弃“或”操作”的方法而言,该方法提取的“有效指纹”中包括了更加全面的可能与待匹配字符串匹配的字符串,从而能够使得过滤器将待匹配字符串与较为完整性的正则表达式进行对比,避免因“或操作”丢弃的字符串对匹配结果的影响,提高匹配结果的准确性。
进一步地,在上述各实施例的基础上,还包括:
对用于标识每一正则表达式的字符串,若正则表达式忽略字母大小写,则将字符串中的大写字母转换为小写字母;
若正则表达式中存在非字节码,则将非字节码的字符转换为通过字节码表示的字符;
若字符串中存在同一字符连续出现的部分,则将同一字符连续出现的部分替换为单次出现的所述同一字符;
若字符串中存在转义字符,则保留所述转义字符中的16进制形式字符、8进制形式字符和无效转义字符。
进一步地,若字符串中的存在不是同一字符连续出现的部分,也不是转义字符的字符,则丢弃该字符。
图3为本实施例提供的正则表达式有效指纹抽取的示意图,参见图3,正则表达式有效指纹抽取过程包括:
(一)正则表达式预处理(用于处理正则表达式匹配“是否忽略大小写”及“非字节编码字符”需求)
如果正则匹配忽略大小写,则需要将“正则表达式”和“待匹配字符串”都预先转换为“小写”。如果正则匹配不能忽略大小写,则正则表达式保持不变。例如:忽略大小写的正则表达式“^aBcD”,处理之后结果为“^abcd”。
如果字符集中存在“非字节码”,例如:“.*中国.*chinese”,则需要将“正则表达式”和“待匹配字符串”都预先转换为“字节码数组”。
(二)定长有效指纹抽取
遍历正则表达式,根据正则表达式中的“运算操作”所属类型分别执行对应“有效指纹”抽取操作。并将最原始的“有效指纹”转化为定长“有效指纹子串”。
(1)抽取最原始的有效指纹(以下介绍对正则表达式中不同的“运算操作”对应的执行过程)
如果为“连接”操作,则将两个子模块的索引连接,后面索引模块,索引值indexValue不变,但是索引偏移indexOffset需要在前面索引模块的基础上递增。例如:“abcdf”。
如果为“或”操作,则每个子串提供相同数量的有效截取串,这几个截取串会共用同一个“位置”,并且如果某个子串不存在有效截取串,则抛弃此“或”模块。将两个子模块的索引合并,索引值indexValue可以不同,但索引偏移indexOffset必须相同。也就是,一个索引偏移indexOffset会同时对应多个不同的索引值indexValue。例如:“(abcd)|(efg)”。
如果为“闭包/量词”,需要进一步分类处理。形如“a{n,m}”,则等价于“a{n}”,n大于等于3,则只截取一个子串,aaa;n小于3,则和后续连接字符关联。形如“a+”,则等价于a。
如果为“转义字符”,则保留“16进制”、“8进制”、“无效转义字符”,其他跳过。如果为其他字符,则全部抛弃。
(2)转换为“有效指纹子串”
将最原始的表达式的字符串(“有效指纹”)划分为多个定长子串(“有效指纹子串”)。例如:“有效指纹”为“abcdef”,定长子串的长度为3,有效指纹划分为两个“有效指纹子串”“abc”和“def”。
在本实施例提供的方法中,划分定长子串后,需要构建过滤机,过滤机的构建过程与现有技术相同,只是本申请采用定长子串进行过滤机的构建。具体地:
在对正则表达式划分定长子串后,需要构建自动机过滤器,通过自动机过滤器筛选出与带匹配字符串匹配的目标定长子串,进一步地,在上述各实施例的基础上,所述获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串,包括:
获取从网络抓取的待匹配字符串,依次按照定长子串的长度扫描所述待匹配字符串,将与所扫描的字符串相同的定长子串作为与所述待匹配字符串相匹配的定长子串作为目标定长子串。
具体的,基于上述(一)和(二),上述过程还包括:
(三)自动机过滤器构建,图4为本实例提供的自动过滤器的原理示意图。利用已划分的“有效指纹子串”集合构建内存可控的“自动机过滤器”。
“有效指纹子串”即为“精确字符串”,因此可以采用“多模精确字符串匹配自动机”实现过滤器。本发明实现采用AC(Aho-Corasick automaton)自动机。
所有“有效指纹子串”均为定长字符串,由此也限定了“自动机过滤器”的最大深度,进而控制了“自动机过滤器”内存空间。
构建自动机,对待匹配字符串需要通过构建的自动机提取目标正则表达式,进一步地,在上述各实施例的基础上,所述根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,包括:
建立表示正则表达式匹配进度的映射关系表,所述映射关系表包括与至少一个目标定长子串匹配的正则表达式,以及与正则表达式对应的匹配进度值;
对任一目标定长子串,判断映射关系表中是否存在包含所述目标定长子串的正则表达式;
若不存在,则获取索引偏移为0的定长子串为所述目标定长子串的正则表达式,将获取的正则表达式添加到所述映射关系表中,且设置匹配进度值为0;
若存在,则获取包含所述目标定长子串的正则表达式,作为候选正则表达式,若在候选正则表达式中所述目标定长子串的索引偏移减1后,等于所述候选正则表达式对应的匹配进度值,则设置所述候选正则表达式的匹配进度值等于当前的匹配进度值加1;
若检测到所述候选正则表达式当前的匹配进度值,等于所述待匹配字符串所包含的目标定长子串的总数减1,则将所述候选正则表达式作为与所述待匹配字符串相匹配的目标正则表达式。
进一步地,若映射关系表中不存在包含所述目标定长子串的正则表达式,且不存在索引偏移为0的定长子串为所述目标定长子串的正则表达式,则不作处理。
进一步地,若映射关系表中存在包含所述目标定长子串的正则表达式,则获取包含所述目标定长子串的正则表达式,作为候选正则表达式,若在候选正则表达式中所述目标定长子串的索引偏移减1后,不等于所述候选正则表达式对应的匹配进度值,则不作处理。
进一步地,还包括:若目标正则表达式表示存在安全问题,则所述待匹配字符串存在安全问题。
确定目标正则表达式的过程,实际上是“定序匹配”的过程,在此以示例的形式对“定序匹配”进行介绍:
例如对正则表达式的字符串进行划分,划分的字符串中包括字符串:“abcdef”、“abclku”、“acdkmn”、“abcdefacdacdkmn”。以定长为3个字符,“abcdef”的定长子串分别为“abc”和“def”。“abclku”的定长子串分别为“abc”和“lku”,“acdkmn”的定长子串分别为“acd”和“kmn”,“abcdefacdacdkmn”的定长子串分别为“abc”、“def”、“acd”、“acd”和“kmn”。
则字符串“abcdef”中,“abc”索引偏移为0,“def”索引偏移为1,;字符串“abclku”中,“abc”索引偏移为0,“lku”索引偏移为1,;字符串“acdkmn”中,“acd”索引偏移为0,“kmn”索引偏移为1;字符串“abcdefacdacdkmn”中,“abc”索引偏移为0,“def”索引偏移为1,第一个“acd”索引偏移为2,第二个“acd”索引偏移为3,“kmn”索引偏移为4。
待匹配字符串为“qweabcdefacdopracdkmn”,扫描到的目标定长子串的总数为5。
对待匹配字符串进行字符依次扫描,当扫描到“abc”才会获得目标定长子串,由于映射关系表当前为空,不存在包含“abc”的正则表达式,且索引偏移为0的定长子串为“abc”的正则表达式包括“abcdef”、“abclku”和“abcdefacdacdkmn”,因此映射关系表(其中,每一正则表达式的右边数值为匹配进度值)如下:
(“abcdef”—“0”)
(“abclku”—“0”)
(“abcdefacdacdkmn”—“0”)
继续扫描,当扫描到“def”又获得目标定长子串。经判断,“def”已出现在映射关系表“abcdef”和“abcdefacdacdkmn”的定长子串中,则“abcdef”和“abcdefacdacdkmn”均为候选正则表达式,且在“abcdef”和“abcdefacdacdkmn”中“def”的索引偏移均为“1”。
在“abcdef”和“abcdefacdacdkmn”中,由于“def”的索引偏移“1”减1后,均与映射关系表中字符串“abcdef”对应的索引偏移“0”相等,。因此,设置“abcdef”和“abcdefacdacdkmn”的匹配进度值增加1,故映射关系表如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“abcdefacdacdkmn”—“1”)
由于“abcdef”和“abcdefacdacdkmn”的匹配进度值均不等于目标定长子串的总数减1(即5-1=4),需继续扫描,当扫描到“acd”又获得目标定长子串,经判断,“acd”所对应的字符串“acdkmn”未出现在映射关系表中,此时,判断“acd”的索引偏移是字符串“acdkmn”的首位定长子串的索引偏移,即为0。“abcdefacdacdkmn”的更新过程不再赘述,故更新正则表达式匹配进度的映射关系表,如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
(“abcdefacdacdkmn”—“1”)
继续扫描,当再次扫描到“acd”又获得目标定长子串,经判断,“acd”所对应的字符串“acdkmn”已出现在映射关系表中,此时获得“acd”的索引偏移为“0”。
由于“acd”的索引偏移“0”与映射关系表中字符串“acdkmn”对应的索引偏移“0”之间的差值为0。故不更新“acdkmn”这一正则表达式的匹配进度值。但是由于“abcdefacdacdkmn”满足更新条件,故映射关系表如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
(“abcdefacdacdkmn”—“2”)
继续扫描,再次扫描到“acd”,根据上述过程,更新映射关系表如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
(“abcdefacdacdkmn”—“3”)
继续扫描,扫描到“kmn”,更新映射关系表如下:
(“abcdef”—“1”)
(“abclku”—“0”)
(“acdkmn”—“0”)
(“abcdefacdacdkmn”—“4”)
此时,由于“abcdefacdacdkmn”的匹配进度值等于目标定长子串的总数减1,因此,“abcdefacdacdkmn”为与待匹配字符串“qweabcdefacdopracdkmn”相匹配的目标正则表达式。
需要说明的是,当扫描过程中一些字符无法组成定长子串,则继续扫描后续的字符。直到获得定长子串,将获取的定长子串作为目标定长子串,才会进行上述的处理过程。
以下对通过自动机筛选出目标正则表达式,即“有效指纹定序比较”的过程进行详细介绍。
(四)有效指纹定序比较,图5为本实施例提供的正则表达式的过滤方法示意图,参见图5,使用“自动机过滤器”得到需要进一步验证的正则表达式集合。
使用“自动机过滤器”匹配“待匹配字符串”,得到“待验证正则表达式filterSuccessRegex”及其“有效指纹子串索引index”。创建存储“待验证正则表达式匹配进度的映射filterSuccessRegexMap”(即映射关系表),键为“待验证正则表达式filterSuccessRegex”,值为“有效指纹子串索引index”。
如果“待验证正则表达式匹配进度的映射filterSuccessRegexMap”没有对应的“待验证正则表达式filterSuccessRegex”(即没有包含目标定长子串的正则表达式),并且存在对应的“有效指纹子串索引index”为0的“待验证正则表达式filterSuccessRegex”,则将该“待验证正则表达式filterSuccessRegex”添加到“待验证正则表达式匹配进度的映射filterSuccessRegexMap”,并设置其值(即匹配进度值)为“0”。
如果“待验证正则表达式匹配进度的映射filterSuccessRegexMap”没有对应的“待验证正则表达式filterSuccessRegex”,并且对应的“有效指纹子串索引index”不为0,,则不做任何操作。
如果“待验证正则表达式匹配进度的映射filterSuccessRegexMap”已有对应的“待验证正则表达式filterSuccessRegex”,并且值等于对应的“有效指纹子串索引index”减1,则将“待验证正则表达式匹配进度的映射filterSuccessRegexMap”键为“待验证正则表达式filterSuccessRegex”单元的值设置为“有效指纹子串索引index”。
如果“待验证正则表达式匹配进度的映射filterSuccessRegexMap”已有对应的“待验证正则表达式filterSuccessRegex”,并且值不等于对应的“有效指纹子串索引index”减1,则不做任何操作。
最终,只有“待验证正则表达式filterSuccessRegex”对应的“有效指纹子串索引index”为正则表达式“有效指纹子串”最大索引偏移时,才会进入验证阶段。
具体地,网络技术不断发展,网络流量不断增长,网络恶意行为的种类也层出不穷,网络安全成为重要的、不能回避的关键问题。实时性要求较高的深度包检测是网络安全规则引擎的核心技术。由于海量规模的正则表达式的编辑结果(NFA/DFA)不可能同时加载到有限内存,因此“过滤-验证”是海量正则表达式匹配引擎的常用解决方案。如果抽取的“有效指纹”不合理,将致使过滤效果不佳。如果过滤算法内存过大,可能引发内存溢出错误,导致网络安全规则引擎不能正常运行。通过本发明,兼顾正则表达式的“连接”操作和“或”操作,采用“截取有效指纹子串”及“定序比较有效指纹子串”的方式,实现了一种高性能超大规模正则表达式匹配算法,具有较好的过滤能力,提高了“自动机过滤”内存空间利用率,不仅保障了网络安全规则引擎正常运行,而且提升了正则表达式匹配引擎性能。
总结来说,本实施例提供的一种正则表达式的匹配方法,兼顾了正则表达式的“连接”操作和“或”操作,提升了过滤能力,限定“自动机过滤器”内存空间,防止出现内存溢出错误。系统模块设计分为四部分:正则表达式预处理、定长有效指纹抽取、自动机过滤器构建、有效指纹定序比较。
图6为本实施例提供的一种正则表达式的匹配装置的结构框图,参见图6,该装置包括划分模块601、匹配模块602和确定模块603,其中,
划分模块601,用于抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
匹配模块602,用于获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
确定模块603,用于根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
本实施例提供的正则表达式的匹配装置适用于上述实施例中提供的正则表达式的匹配方法,在此不再赘述。
本实施例提供了一种正则表达式的匹配装置,在抽取标识每一正则表达式的字符串后,将字符串划分为定长子串。通过定长子串去过滤与待匹配字符串匹配性较好的目标正则表达式,通过目标正则表达式进一步地确定待匹配字符串是否为网络攻击数据或者病毒。由于对字符串划分了定长子串,过滤器中只需要存储各字符组成长度为定长子串的所有可能字符串。相比于存储每一正则表达式完整的字符串而言,大大降低了所需的存储空间,且定长子串的所有可能字符串所需最大存储空间可控,能够避免过滤器发生内存溢出错误。
进一步地,在上述实施例的基础上,所述划分模块还用于:
对每一正则表达式的字符串,循环执行字符串划分操作,直到所述字符串中,未执行字符串划分操作的剩余字符的长度小于定长子串的长度;
其中,所述字符串划分操作包括:
判断所述字符串的剩余字符中是否存在“或”操作连接的字符,若否,则对剩余字符依次划分定长子串,设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1;
若是,则对“或”操作之前的字符依次划分定长子串,且设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1,并在对“或”操作之前的字符依次划分定长子串之后,对“或”操作连接的各字符串同时划分定长子串,且设置每次划分的各定长子串的索引偏移相同,且等于前一次划分的定长子串的索引偏移加1;
其中,设置对字符串第一次划分的定长子串的索引偏移为0。
进一步地,在上述各实施例的基础上,所述划分模块还用于:
对用于标识每一正则表达式的字符串,若正则表达式忽略字母大小写,则将字符串中的大写字母转换为小写字母;
若正则表达式中存在非字节码,则将非字节码的字符转换为通过字节码表示的字符;
若字符串中存在同一字符连续出现的部分,则将同一字符连续出现的部分替换为单次出现的所述同一字符;
若字符串中存在转义字符,则保留所述转义字符中的16进制形式字符、8进制形式字符和无效转义字符。
进一步地,在上述各实施例的基础上,所述匹配模块还用于:
获取从网络抓取的待匹配字符串,依次按照定长子串的长度扫描所述待匹配字符串,将与所扫描的字符串相同的定长子串作为与所述待匹配字符串相匹配的定长子串作为目标定长子串。
进一步地,在上述各实施例的基础上,所述确定模块还用于:
建立表示正则表达式匹配进度的映射关系表,所述映射关系表包括与至少一个目标定长子串匹配的正则表达式,以及与正则表达式对应的匹配进度值;
对任一目标定长子串,判断映射关系表中是否存在包含所述目标定长子串的正则表达式;
若不存在,则获取索引偏移为0的定长子串为所述目标定长子串的正则表达式,将获取的正则表达式添加到所述映射关系表中,且设置匹配进度值为0;
若存在,则获取包含所述目标定长子串的正则表达式,作为候选正则表达式,若在候选正则表达式中所述目标定长子串的索引偏移减1后,等于所述候选正则表达式对应的匹配进度值,则设置所述候选正则表达式的匹配进度值等于当前的匹配进度值加1;
若检测到所述候选正则表达式当前的匹配进度值,等于所述待匹配字符串所包含的目标定长子串的总数减1,则将所述候选正则表达式作为与所述待匹配字符串相匹配的目标正则表达式
图7是示出本实施例提供的电子设备的结构框图。
参照图7,所述电子设备包括:处理器(processor)701、通信接口(CommunicationsInterface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行如下方法:抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (10)
1.一种正则表达式的匹配方法,其特征在于,包括:
抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,根据目标正则表达式判定所述待匹配字符串的安全性;
其中,对用于标识每一正则表达式的字符串,若正则表达式忽略字母大小写,则将字符串中的大写字母转换为小写字母;
若正则表达式中存在非字节码,则将非字节码的字符转换为通过字节码表示的字符;
若字符串中存在同一字符连续出现的部分,则将同一字符连续出现的部分替换为单次出现的所述同一字符;
若字符串中存在转义字符,则保留所述转义字符中的16进制形式字符、8进制形式字符和无效转义字符。
2.根据权利要求1所述的正则表达式的匹配方法,其特征在于,所述抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串,包括:
对每一正则表达式的字符串,循环执行字符串划分操作,直到所述字符串中,未执行字符串划分操作的剩余字符的长度小于定长子串的长度;
其中,所述字符串划分操作包括:
判断所述字符串的剩余字符中是否存在“或”操作连接的字符,若否,则对剩余字符依次划分定长子串,设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1;
若是,则对“或”操作之前的字符依次划分定长子串,且设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1,并在对“或”操作之前的字符依次划分定长子串之后,对“或”操作连接的各字符串同时划分定长子串,且设置每次划分的各定长子串的索引偏移相同,且等于前一次划分的定长子串的索引偏移加1;
其中,设置对字符串第一次划分的定长子串的索引偏移为0。
3.根据权利要求1所述的正则表达式的匹配方法,其特征在于,所述获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串,包括:
获取从网络抓取的待匹配字符串,依次按照定长子串的长度扫描所述待匹配字符串,将与所扫描的字符串相同的定长子串作为与所述待匹配字符串相匹配的定长子串作为目标定长子串。
4.根据权利要求2所述的正则表达式的匹配方法,其特征在于,所述根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,包括:
建立表示正则表达式匹配进度的映射关系表,所述映射关系表包括与至少一个目标定长子串匹配的正则表达式,以及与正则表达式对应的匹配进度值;
对任一目标定长子串,判断映射关系表中是否存在包含所述目标定长子串的正则表达式;
若不存在,则获取索引偏移为0的定长子串为所述目标定长子串的正则表达式,将获取的正则表达式添加到所述映射关系表中,且设置匹配进度值为0;
若存在,则获取包含所述目标定长子串的正则表达式,作为候选正则表达式,若在候选正则表达式中所述目标定长子串的索引偏移减1后,等于所述候选正则表达式对应的匹配进度值,则设置所述候选正则表达式的匹配进度值等于当前的匹配进度值加1;
若检测到所述候选正则表达式当前的匹配进度值,等于所述待匹配字符串所包含的目标定长子串的总数减1,则将所述候选正则表达式作为与所述待匹配字符串相匹配的目标正则表达式。
5.一种正则表达式的匹配装置,其特征在于,包括:
划分模块,用于抽取用于标识每一正则表达式的字符串,并将每一字符串划分为定长子串;
匹配模块,用于获取从网络抓取的待匹配字符串,将与所述待匹配字符串相匹配的定长子串作为目标定长子串;
确定模块,用于根据所述目标定长子串的顺序和内容,确定与所述待匹配字符串相匹配的目标正则表达式,以根据目标正则表达式判定所述待匹配字符串的安全性;
所述划分模块还用于:
对用于标识每一正则表达式的字符串,若正则表达式忽略字母大小写,则将字符串中的大写字母转换为小写字母;
若正则表达式中存在非字节码,则将非字节码的字符转换为通过字节码表示的字符;
若字符串中存在同一字符连续出现的部分,则将同一字符连续出现的部分替换为单次出现的所述同一字符;
若字符串中存在转义字符,则保留所述转义字符中的16进制形式字符、8进制形式字符和无效转义字符。
6.根据权利要求5所述的正则表达式的匹配装置,其特征在于,所述划分模块还用于:
对每一正则表达式的字符串,循环执行字符串划分操作,直到所述字符串中,未执行字符串划分操作的剩余字符的长度小于定长子串的长度;
其中,所述字符串划分操作包括:
判断所述字符串的剩余字符中是否存在“或”操作连接的字符,若否,则对剩余字符依次划分定长子串,设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1;
若是,则对“或”操作之前的字符依次划分定长子串,且设置后一次划分的定长子串的索引偏移,等于前一次划分的定长子串的索引偏移加1,并在对“或”操作之前的字符依次划分定长子串之后,对“或”操作连接的各字符串同时划分定长子串,且设置每次划分的各定长子串的索引偏移相同,且等于前一次划分的定长子串的索引偏移加1;
其中,设置对字符串第一次划分的定长子串的索引偏移为0。
7.根据权利要求5所述的正则表达式的匹配装置,其特征在于,所述匹配模块还用于:
获取从网络抓取的待匹配字符串,依次按照定长子串的长度扫描所述待匹配字符串,将与所扫描的字符串相同的定长子串作为与所述待匹配字符串相匹配的定长子串作为目标定长子串。
8.根据权利要求6所述的正则表达式的匹配装置,其特征在于,所述确定模块还用于:
建立表示正则表达式匹配进度的映射关系表,所述映射关系表包括与至少一个目标定长子串匹配的正则表达式,以及与正则表达式对应的匹配进度值;
对任一目标定长子串,判断映射关系表中是否存在包含所述目标定长子串的正则表达式;
若不存在,则获取索引偏移为0的定长子串为所述目标定长子串的正则表达式,将获取的正则表达式添加到所述映射关系表中,且设置匹配进度值为0;
若存在,则获取包含所述目标定长子串的正则表达式,作为候选正则表达式,若在候选正则表达式中所述目标定长子串的索引偏移减1后,等于所述候选正则表达式对应的匹配进度值,则设置所述候选正则表达式的匹配进度值等于当前的匹配进度值加1;
若检测到所述候选正则表达式当前的匹配进度值,等于所述待匹配字符串所包含的目标定长子串的总数减1,则将所述候选正则表达式作为与所述待匹配字符串相匹配的目标正则表达式。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的正则表达式的匹配方法的步骤。
10.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述的正则表达式的匹配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911421987.3A CN111177491B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的匹配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911421987.3A CN111177491B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的匹配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111177491A CN111177491A (zh) | 2020-05-19 |
CN111177491B true CN111177491B (zh) | 2023-08-25 |
Family
ID=70650738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911421987.3A Active CN111177491B (zh) | 2019-12-31 | 2019-12-31 | 正则表达式的匹配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177491B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084397B (zh) * | 2020-07-14 | 2023-12-05 | 山东中创软件商用中间件股份有限公司 | 一种过滤器注册方法、装置、设备及可读存储介质 |
CN112632343B (zh) * | 2020-12-30 | 2023-12-26 | 深圳大普微电子科技有限公司 | 一种字符串匹配方法、装置、设备及可读存储介质 |
CN113051569A (zh) * | 2021-03-31 | 2021-06-29 | 深信服科技股份有限公司 | 一种病毒检测方法、装置、电子设备及存储介质 |
CN113703715B (zh) * | 2021-08-31 | 2024-02-23 | 深信服科技股份有限公司 | 一种正则表达式匹配方法、装置、fpga及介质 |
CN114238709A (zh) * | 2021-12-02 | 2022-03-25 | 阿里巴巴(中国)有限公司 | 字符串匹配方法、装置、设备和可读存储介质 |
CN114756591B (zh) * | 2022-04-15 | 2022-10-14 | 成都卓讯智安科技有限公司 | 一种基于双向链表的数据筛选方法和系统 |
CN115348189B (zh) * | 2022-10-18 | 2022-12-16 | 戎腾科技(长沙)有限公司 | 基于sav架构的报文匹配方法、装置和计算机设备 |
CN116150442B (zh) * | 2023-02-23 | 2023-09-15 | 成都卓讯智安科技有限公司 | 一种基于tcam的网络数据检测方法和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2820500A1 (en) * | 2005-12-02 | 2007-06-07 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
CN101853301A (zh) * | 2010-05-25 | 2010-10-06 | 华为技术有限公司 | 正则表达式匹配的方法和系统 |
CN108563795A (zh) * | 2018-05-04 | 2018-09-21 | 西安交通大学 | 一种加速压缩流量正则表达式匹配的Pairs方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305391B2 (en) * | 2003-02-07 | 2007-12-04 | Safenet, Inc. | System and method for determining the start of a match of a regular expression |
US20070133593A1 (en) * | 2005-11-21 | 2007-06-14 | Udaya Shankara | Searching Strings Representing a Regular Expression |
US8843508B2 (en) * | 2009-12-21 | 2014-09-23 | At&T Intellectual Property I, L.P. | System and method for regular expression matching with multi-strings and intervals |
-
2019
- 2019-12-31 CN CN201911421987.3A patent/CN111177491B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2820500A1 (en) * | 2005-12-02 | 2007-06-07 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
CN101853301A (zh) * | 2010-05-25 | 2010-10-06 | 华为技术有限公司 | 正则表达式匹配的方法和系统 |
CN108563795A (zh) * | 2018-05-04 | 2018-09-21 | 西安交通大学 | 一种加速压缩流量正则表达式匹配的Pairs方法 |
Non-Patent Citations (1)
Title |
---|
利用关键因子过滤的正则表达式匹配算法;邱涛;王斌;杨晓春;;计算机科学与探索(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111177491A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177491B (zh) | 正则表达式的匹配方法、装置、电子设备及存储介质 | |
US8458354B2 (en) | Multi-pattern matching in compressed communication traffic | |
DE112012002624B4 (de) | Regex-Kompilierer | |
CN105912514B (zh) | 基于指纹特征的文本复制检测系统及方法 | |
US20110154495A1 (en) | Malware identification and scanning | |
KR100960117B1 (ko) | 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체 | |
RU2523112C1 (ru) | Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу | |
CN113194058B (zh) | Web攻击检测方法、设备、网站应用层防火墙及介质 | |
WO2021017318A1 (zh) | 跨站攻击防护方法、装置、设备及存储介质 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
EP3905084A1 (en) | Method and device for detecting malware | |
CN111181980B (zh) | 一种面向网络安全的正则表达式的匹配方法及装置 | |
CN107277109B (zh) | 针对压缩流量的多字符串匹配方法 | |
CN111159362B (zh) | 文本匹配处理方法及装置 | |
CN117940894A (zh) | 用于检测代码克隆的系统和方法 | |
CN111935133A (zh) | 白名单生成方法及装置 | |
US20230112092A1 (en) | Detecting visual similarity between dns fully qualified domain names | |
KR100992440B1 (ko) | 여러 개의 연속된 부분패턴을 이용한 다중 패턴매칭 방법 | |
CN116414976A (zh) | 文档检测方法、装置及电子设备 | |
CN113065419A (zh) | 一种基于流量高频内容的模式匹配算法及系统 | |
CN114024701A (zh) | 域名检测方法、装置及通信系统 | |
CN117201194B (zh) | 一种基于字符串相似性计算的url分类方法、装置及系统 | |
CN115604040B (zh) | 一种基于ip访问序列的异常访问行为识别方法 | |
CN116361517B (zh) | 一种企业字号查重方法、装置、设备和介质 | |
CN108881159B (zh) | 一种安全控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant before: Qianxin Technology Group Co.,Ltd. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |