CN114168954A - 基于正则匹配的入侵检测的方法和装置 - Google Patents

基于正则匹配的入侵检测的方法和装置 Download PDF

Info

Publication number
CN114168954A
CN114168954A CN202111491413.0A CN202111491413A CN114168954A CN 114168954 A CN114168954 A CN 114168954A CN 202111491413 A CN202111491413 A CN 202111491413A CN 114168954 A CN114168954 A CN 114168954A
Authority
CN
China
Prior art keywords
rule
text
detected
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.)
Pending
Application number
CN202111491413.0A
Other languages
English (en)
Inventor
秦金晓
付苗苗
吴淑川
蔡锋
施丽佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111491413.0A priority Critical patent/CN114168954A/zh
Publication of CN114168954A publication Critical patent/CN114168954A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/908Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种用于基于正则匹配的入侵检测的方法和装置。方法包括:从特征规则集的每个规则的正则表达式中提取普通字符的字符串;将提取到的字符串添加到预过滤字符串集中,并去重;将提取到的字符串进行编号,组成编号数组,将编号数组加入到对应的规则中,将字符串作为关键字,编号作为值存入哈希表中;基于预过滤字符串集构建有限状态自动机;通过有限状态自动机对待检测文本进行检测,并得到数字标识集;对特征规则集中的每个规则的编号数组进行顺序遍历,在编号数组为数字标识集的子集的情况下,将规则加入到待匹配规则集中;将待匹配规则集中的正则表达式与待检测文本进行匹配;根据匹配得到的触发规则集执行处理策略。

Description

基于正则匹配的入侵检测的方法和装置
技术领域
本公开涉及网络安全技术领域,特别涉及一种基于正则匹配的入侵检测的方法和装置。
背景技术
随着互联网快速的发展,网络安全事件也随之频发,当前各行业的安全态势愈发严峻。传统的防火墙已无法满足网络对攻击的防护,网络入侵检测系统作为一种主动积极的防护手段应运而生。
目前,大多数入侵检测系统采用基于模式匹配的特征检测方法,将攻击特征使用正则表达式来描述,将每个正则表达式转化为非确定有限自动机(NondeterministicFinite Automata,简称为NFA)或确定有限自动机(Deterministic Finite Automata,简称为DFA)和网络数据包进行匹配,匹配成功则说明该请求具有攻击行为。但随着攻击手法的多样化和不断被挖掘的新漏洞,导致攻击特征的数量不断增多,相应的正则集合也不断增大,加上访问流量越来越大,从而对入侵检测系统的性能的要求也越来越高。
当入侵检测系统的检测速度跟不上网络流量的产生速度时,将产生漏报或者直接影响被防护系统的访问。
发明内容
本公开解决的一个技术问题是:提供一种基于正则匹配的入侵检测的方法,以提高正则检测效率。
根据本公开的一个方面,提供了一种基于正则匹配的入侵检测的方法,包括:从特征规则集的每个规则的正则表达式中提取普通字符的字符串;将提取到的字符串添加到预过滤字符串集中,并对所述预过滤字符串集中的字符串进行去重处理;将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照所述字符串的顺序组成编号数组,将所述编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;基于所述预过滤字符串集构建有限状态自动机;通过所述有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据所述哈希表得到与所述匹配字符串集对应的数字标识集;对所述特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为所述数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;将所述待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得所述待检测文本的触发规则集;以及根据所述触发规则集执行相应的处理策略。
在一些实施例中,基于所述预过滤字符串集构建有限状态自动机的步骤包括:采用Aho-Corasick自动机算法将预过滤字符串集作为模式串集,构建有限状态自动机。
在一些实施例中,所述方法还包括:在通过所述有限状态自动机对待检测文本进行检测之前,根据文本特征将待检测文本进行分段;其中,通过所述有限状态自动机对待检测文本进行检测的步骤包括:通过所述有限状态自动机对所述待检测文本的每段文本进行检测,以得到匹配字符串集。
在一些实施例中,所述处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
在一些实施例中,根据所述触发规则集执行相应的处理策略的步骤包括:在所述触发规则集中存在匹配的规则的情况下,对所述待检测文本执行拦截策略和/或告警策略;在所述触发规则集中不存在匹配的规则的情况下,对所述待检测文本执行放行策略。
在一些实施例中,所述普通字符包括:字母字符、数字字符和标点符号字符。
根据本公开的另一个方面,提供了一种基于正则匹配的入侵检测的装置,包括:字符串提取模块,用于从特征规则集的每个规则的正则表达式中提取普通字符的字符串,将提取到的字符串添加到预过滤字符串集中,并对所述预过滤字符串集中的字符串进行去重处理,将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照所述字符串的顺序组成编号数组,将所述编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;自动机构建模块,用于基于所述预过滤字符串集构建有限状态自动机;预过滤模块,用于通过所述有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据所述哈希表得到与所述匹配字符串集对应的数字标识集,对所述特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为所述数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;正则匹配模块,用于将所述待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得所述待检测文本的触发规则集;以及策略执行模块,用于根据所述触发规则集执行相应的处理策略。
在一些实施例中,所述自动机构建模块用于采用Aho-Corasick自动机算法将预过滤字符串集作为模式串集,构建有限状态自动机。
在一些实施例中,所述装置还包括:待检测文本分段模块,用于根据文本特征将待检测文本进行分段;其中,所述预过滤模块用于通过所述有限状态自动机对所述待检测文本的每段文本进行检测,以得到匹配字符串集。
在一些实施例中,所述处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
在一些实施例中,所述策略执行模块用于在所述触发规则集中存在匹配的规则的情况下,对所述待检测文本执行拦截策略和/或告警策略,在所述触发规则集中不存在匹配的规则的情况下,对所述待检测文本执行放行策略。
在一些实施例中,所述普通字符包括:字母字符、数字字符和标点符号字符。
根据本公开的另一个方面,提供了一种基于正则匹配的入侵检测的装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。
根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现如前所述的方法。
在上述方法中,从特征规则集的每个规则的正则表达式中提取普通字符的字符串;将提取到的字符串添加到预过滤字符串集中,并对预过滤字符串集中的字符串进行去重处理;将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照字符串的顺序组成编号数组,将编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;将预过滤字符串集作为模式串,构建有限状态自动机;通过有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据哈希表得到与匹配字符串集对应的数字标识集;对特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;将待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得待检测文本的触发规则集;以及根据触发规则集执行相应的处理策略。这可以提高预过滤性能,进而提高正则检测效率。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的基于正则匹配的入侵检测的方法的流程图;
图2是示出根据本公开另一些实施例的基于正则匹配的入侵检测的方法的流程图;
图3是示出根据本公开一些实施例的基于正则匹配的入侵检测的装置的结构框图;
图4是示出根据本公开另一些实施例的基于正则匹配的入侵检测的装置的结构框图;
图5是示出根据本公开另一些实施例的基于正则匹配的入侵检测的装置的结构框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的基于正则匹配的入侵检测的方法的流程图。如图1所示,该方法包括步骤S102至S116。
在步骤S102,从特征规则集的每个规则的正则表达式中提取普通字符的字符串。
在一些实施例中,普通字符包括:字母字符、数字字符和标点符号字符等。
例如,可以从特征规则集的每条规则的正则表达式中尽可能多地提取普通字符的字符串,该普通字符的字符串可以称为精确字符串。该精确字符串是指在正则表达式中可以确定的需要匹配的字符串。
在步骤S104,将提取到的字符串(可以称为正则字符串)添加到预过滤字符串集中,并对预过滤字符串集中的字符串进行去重处理。
这里,将从特征规则集的每条规则的正则表达式中提取的字符串添加到预过滤字符串集中并去掉重复字符串,作为第一层过滤集。
在步骤S106,将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照字符串的顺序组成编号数组,将编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中。
在该步骤中,将每个字符串利用编号作为唯一数字标识,这样,每条正则表达式对应的精确字符串(即从该正则表达式中提取出的字符串)的编号组成编号数组(也可以称为标识数组)。将该编号数组按字符串的原序列存于对应的规则中。将提取到的字符串作为关键字(即key),编号(数字标识)作为值(即value)存于哈希表中。
在步骤S108,基于预过滤字符串集构建有限状态自动机。
在一些实施例中,该步骤S108包括:采用Aho-Corasick自动机算法(简称为AC算法)将预过滤字符串集作为模式串集,构建有限状态自动机。这里,AC算法为本领域技术人员已知的算法,这里不再详细描述。
需要说明的是,上述步骤S104、S106和S108为预处理步骤,可以在对文本进行检测前完成。例如,这些步骤可以仅处理一次,从而不占用文本真正检测的时间;当然,也可以处理多次。本公开的范围并不仅限于此。
在步骤S110,通过有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据哈希表得到与匹配字符串集对应的数字标识集。
这里,对待检测文本进行扫描得出匹配字符串集,由于哈希表包含了作为关键字的字符串和作为值的编号,因此可以通过哈希表得到与匹配字符串集对应的数字标识集。
在一些实施例中,所述方法还可以包括:在通过有限状态自动机对待检测文本进行检测之前,根据文本特征将待检测文本进行分段。例如,以网页请求为例:可粗粒度分为请求行、请求头、请求体。在该实施例中,通过对待检测请求文本进行分段缓存,可以减短后续正则匹配的文本长度。
在一些实施例中,通过有限状态自动机对待检测文本进行检测的步骤可以包括:通过有限状态自动机对待检测文本的每段文本进行检测,以得到匹配字符串集。
在步骤S112,对特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中。
例如,遍历特征规则集,对每条规则中的编号数组进行顺序遍历判断该编号数组是否为数字标识集的子集;若是,则将该编号数组对应的规则加入到待匹配规则集中。此处,子集的标准为字符串集为匹配字符串集且字符串的出现顺序保持一致。换言之,编号数组中的编号和编号的顺序与数字标识集的某个子集中的编号和编号的顺序是一致的(即顺序遍历)。
在步骤S114,将待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得待检测文本的触发规则集。
例如,遍历待检测文本分段后的每段文本的待匹配规则集,用其中正则表达式对该段文本进行精确匹配,得出该段文本的触发规则集。
在步骤S116,根据触发规则集执行相应的处理策略。
在一些实施例中,处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
在一些实施例中,该步骤S116可以包括:在触发规则集中存在匹配的规则的情况下,对待检测文本执行拦截策略和/或告警策略;在触发规则集中不存在匹配的规则的情况下,对待检测文本执行放行策略。即,触发规则集中存在匹配的规则,表明待检测文本中存在正则匹配的规则,则进行拦截和/或告警策略;触发规则集中不存在匹配的规则,表明待检测文本中不存在正则匹配的规则,则对待检测文本执行放行策略。
至此,提供了一种基于正则匹配的入侵检测的方法。该方法包括:从特征规则集的每个规则的正则表达式中提取普通字符的字符串;将提取到的字符串添加到预过滤字符串集中,并对预过滤字符串集中的字符串进行去重处理;将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照字符串的顺序组成编号数组,将编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;将预过滤字符串集作为模式串,构建有限状态自动机;通过有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据哈希表得到与匹配字符串集对应的数字标识集;对特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;将待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得待检测文本的触发规则集;以及根据触发规则集执行相应的处理策略。在上述方法中,将待检测文本与提取的字符串进行比较,并转化为预过滤后的数字标识集与每个正则表达式中的精确字符串的编号数组进行比较,提高预过滤性能,进而提高正则检测效率。
再者,在上述方法中,通过尽可能多地提取精确字符串,且保持与正则表达式中字符串相同的顺序,提高预过滤率。
另外,在上述方法中,利用AC算法扫描文本一次且性能与模式串个数无关的特点,可以一次性得出模式串中所有匹配字符串。
图2是示出根据本公开另一些实施例的基于正则匹配的入侵检测的方法的流程图。
在该示例中,如图2所示,特征规则集包含规则s1和s2,下面以规则s1中正则表达式r1为:/javascript:\W*alert\(\d+\);/和规则s2中正则表达式r2为:/<.*?Style.*?[\:=]expression.*?\(/为例展开说明。
首先,如图2所示,提取正则表达式r1中3个精确字符串(即普通字符的字符串)分别为“javascript:”,“alert(”,“);”,提取正则表达式r2中4个精确字符串分别为“<”,“style”,“expression”,“(”。这里,精确字符串是指不包含元字符的可以确定要匹配的普通字符串。提取原则是在字符串的长度≥1的情况下,便可以提取到第一层过滤集中。在示例中,共提取7个精确字符串。此步骤和正则表达式可以一起预先完成存于规则中。
接下来,如图2所示,遍历规则,将规则提取到的上述7个精确字符串添加到预过滤字符串集中。
接下来,如图2所示,将上述7个字符串分别进行数字标识1,2,3,4,5,6,7。将编号数组[1,2,3]存入规则s1中,将编号数组[4,5,6,7]存入规则s2中,并以字符串为key,编号(即数字标识)为value存入哈希表中。
接下来,如图2所示,采用AC算法,将上述7个字符串作为模式串集,构建有限状态自动机。
接下来,将待检测文本按文本特征进行分段,存储到待检测文本列表中。比如一个网络请求是以\r\n作为分隔符分段;分段是为了限制进一步正则匹配时的文本范围。
接下来,对每段检测文本分别使用有限状态自动机进行检测,得出每段对应的匹配字符串表。例如,如图2所示,以某段检测文本为a=<style:expression(alert(1));为例,得出匹配字符串ID(数字标识)集(即,与匹配字符串集对应的数字标识集)c1为[4,5,6,7,2,7,3]。
接下来,采用顺序查找的方式遍历每个规则,得出标识数组为数字标识集子集的规则为下一步需用正则匹配的规则。如图2所示,将规则s1和规则s2的字符串集分别与匹配字符串ID集c1进行比较,得到[4,5,6,7]为其子集而[1,2,3]不是其子集,所以规则s2进入下一步正则匹配。
接下来,将待匹配规则集进行遍历正则匹配,得出最终触发规则集。
接下来,根据最终触发规则集执行拦截、告警或放行策略。
至此,提供了根据本公开另一些实施例的基于正则匹配的入侵检测的方法。在该方法中,从每个规则的正则表达式中尽可能多的提取精确字符串;将提取到的精确字符串添加到预过滤字符串集中,并去重;将提取到的字符串进行编号,将编号数组按正则字符串原序列加入到规则中,将提取到的字符串作为key,编号作为value存入哈希表中;采用AC算法,将预过滤字符串集作为模式串集,构建有限状态自动机;根据文本特征将待检测请求进行分段;将每段文本进行有限状态自动机检测,得到匹配字符串集;采用顺序查找的方式,查找属于匹配字符串集子集的规则;遍历已过滤规则集,进行精确正则匹配;根据触发规则执行拦截、告警或放行策略。该方法可以提高预过滤性能,进而提高正则检测效率。
本公开的上述方法可以用于入侵检测系统中的攻击特征检测装置中,也可以用于其它需要批量进行正则匹配的装置中。
图3是示出根据本公开一些实施例的基于正则匹配的入侵检测的装置的结构框图。如图3所示,该装置包括:字符串提取模块302、自动机构建模块304、预过滤模块306、正则匹配模块308和策略执行模块310。
字符串提取模块302用于从特征规则集的每个规则的正则表达式中提取普通字符的字符串,将提取到的字符串添加到预过滤字符串集中,并对预过滤字符串集中的字符串进行去重处理,将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照字符串的顺序组成编号数组,将编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中。
例如,普通字符包括:字母字符、数字字符和标点符号字符。
自动机构建模块304用于基于预过滤字符串集构建有限状态自动机。
在一些实施例中,自动机构建模块304用于采用Aho-Corasick自动机算法将预过滤字符串集作为模式串集,构建有限状态自动机。
预过滤模块306用于通过有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据哈希表得到与匹配字符串集对应的数字标识集,对特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中。
正则匹配模块308用于将待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得待检测文本的触发规则集。
策略执行模块310用于根据触发规则集执行相应的处理策略。
例如,处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
在一些实施例中,策略执行模块310用于在触发规则集中存在匹配的规则的情况下,对待检测文本执行拦截策略和/或告警策略,在触发规则集中不存在匹配的规则的情况下,对待检测文本执行放行策略。
至此,提供了根据本公开一些实施例的基于正则匹配的入侵检测的装置。在该装置中,将待检测文本与提取的字符串进行比较,并转化为预过滤后的数字标识集与每个正则表达式中的精确字符串的编号数组进行比较,提高预过滤性能,进而提高正则检测效率。
在一些实施例中,如果3所示,所述装置还可以包括待检测文本分段模块312。待检测文本分段模块312用于根据文本特征将待检测文本进行分段。在该实施例中,通过对待检测请求文本进行分段缓存,可以减短后续正则匹配的文本长度。
需要说明的是,在图3中,待检测文本分段模块312以虚线框示出,表示上述装置可以包括该待检测文本分段模块312,也可以不包括该待检测文本分段模块312。优选地,该装置包括待检测文本分段模块312。
在一些实施例中,预过滤模块306可以用于通过有限状态自动机对待检测文本的每段文本进行检测,以得到匹配字符串集。
图4是示出根据本公开另一些实施例的基于正则匹配的入侵检测的装置的结构框图。装置包括存储器410和处理器420。其中:
存储器410可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1所对应实施例中的指令。
处理器420耦接至存储器410,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器420用于执行存储器中存储的指令,通过将待检测文本与提取的字符串进行比较,并转化为预过滤后的数字标识集与每个正则表达式中的精确字符串的编号数组进行比较,可以提高预过滤性能,进而提高正则检测效率。
在一些实施例中,还可以如图5所示,装置500包括存储器510和处理器520。处理器520通过BUS总线530耦合至存储器510。装置500还可以通过存储接口540连接至外部存储装置550以便调用外部数据,还可以通过网络接口560连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,通过将待检测文本与提取的字符串进行比较,并转化为预过滤后的数字标识集与每个正则表达式中的精确字符串的编号数组进行比较,可以提高预过滤性能,进而提高正则检测效率。
在另一个实施例中,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

Claims (14)

1.一种基于正则匹配的入侵检测的方法,包括:
从特征规则集的每个规则的正则表达式中提取普通字符的字符串;
将提取到的字符串添加到预过滤字符串集中,并对所述预过滤字符串集中的字符串进行去重处理;
将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照所述字符串的顺序组成编号数组,将所述编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;
基于所述预过滤字符串集构建有限状态自动机;
通过所述有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据所述哈希表得到与所述匹配字符串集对应的数字标识集;
对所述特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为所述数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;
将所述待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得所述待检测文本的触发规则集;以及
根据所述触发规则集执行相应的处理策略。
2.根据权利要求1所述的方法,其中,基于所述预过滤字符串集构建有限状态自动机的步骤包括:
采用Aho-Corasick自动机算法将预过滤字符串集作为模式串集,构建有限状态自动机。
3.根据权利要求1或2所述的方法,还包括:
在通过所述有限状态自动机对待检测文本进行检测之前,根据文本特征将待检测文本进行分段;
其中,通过所述有限状态自动机对待检测文本进行检测的步骤包括:通过所述有限状态自动机对所述待检测文本的每段文本进行检测,以得到匹配字符串集。
4.根据权利要求1所述的方法,其中,
所述处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
5.根据权利要求4所述的方法,其中,根据所述触发规则集执行相应的处理策略的步骤包括:
在所述触发规则集中存在匹配的规则的情况下,对所述待检测文本执行拦截策略和/或告警策略;
在所述触发规则集中不存在匹配的规则的情况下,对所述待检测文本执行放行策略。
6.根据权利要求1所述的方法,其中,
所述普通字符包括:字母字符、数字字符和标点符号字符。
7.一种基于正则匹配的入侵检测的装置,包括:
字符串提取模块,用于从特征规则集的每个规则的正则表达式中提取普通字符的字符串,将提取到的字符串添加到预过滤字符串集中,并对所述预过滤字符串集中的字符串进行去重处理,将提取到的字符串进行编号,将与每个规则对应的字符串的编号按照所述字符串的顺序组成编号数组,将所述编号数组加入到对应的规则中,并将提取到的字符串作为关键字,编号作为值存入哈希表中;
自动机构建模块,用于基于所述预过滤字符串集构建有限状态自动机;
预过滤模块,用于通过所述有限状态自动机对待检测文本进行检测以得到匹配字符串集,并根据所述哈希表得到与所述匹配字符串集对应的数字标识集,对所述特征规则集中的每个规则的编号数组进行顺序遍历,在该编号数组为所述数字标识集的子集的情况下,将该编号数组对应的规则加入到待匹配规则集中;
正则匹配模块,用于将所述待匹配规则集中的规则的正则表达式与待检测文本进行匹配,以获得所述待检测文本的触发规则集;以及
策略执行模块,用于根据所述触发规则集执行相应的处理策略。
8.根据权利要求7所述的装置,其中,
所述自动机构建模块用于采用Aho-Corasick自动机算法将预过滤字符串集作为模式串集,构建有限状态自动机。
9.根据权利要求7或8所述的装置,还包括:
待检测文本分段模块,用于根据文本特征将待检测文本进行分段;
其中,所述预过滤模块用于通过所述有限状态自动机对所述待检测文本的每段文本进行检测,以得到匹配字符串集。
10.根据权利要求7所述的装置,其中,
所述处理策略包括:拦截策略、告警策略和放行策略中的至少一个。
11.根据权利要求10所述的装置,其中,
所述策略执行模块用于在所述触发规则集中存在匹配的规则的情况下,对所述待检测文本执行拦截策略和/或告警策略,在所述触发规则集中不存在匹配的规则的情况下,对所述待检测文本执行放行策略。
12.根据权利要求7所述的装置,其中,
所述普通字符包括:字母字符、数字字符和标点符号字符。
13.一种基于正则匹配的入侵检测的装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至6任意一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现如权利要求1至6任意一项所述的方法。
CN202111491413.0A 2021-12-08 2021-12-08 基于正则匹配的入侵检测的方法和装置 Pending CN114168954A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111491413.0A CN114168954A (zh) 2021-12-08 2021-12-08 基于正则匹配的入侵检测的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111491413.0A CN114168954A (zh) 2021-12-08 2021-12-08 基于正则匹配的入侵检测的方法和装置

Publications (1)

Publication Number Publication Date
CN114168954A true CN114168954A (zh) 2022-03-11

Family

ID=80484370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111491413.0A Pending CN114168954A (zh) 2021-12-08 2021-12-08 基于正则匹配的入侵检测的方法和装置

Country Status (1)

Country Link
CN (1) CN114168954A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115935961A (zh) * 2022-10-27 2023-04-07 安芯网盾(北京)科技有限公司 一种多模匹配实现多级与的高性能算法及装置
CN116150442A (zh) * 2023-02-23 2023-05-23 成都卓讯智安科技有限公司 一种基于tcam的网络数据检测方法和设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115935961A (zh) * 2022-10-27 2023-04-07 安芯网盾(北京)科技有限公司 一种多模匹配实现多级与的高性能算法及装置
CN116150442A (zh) * 2023-02-23 2023-05-23 成都卓讯智安科技有限公司 一种基于tcam的网络数据检测方法和设备
CN116150442B (zh) * 2023-02-23 2023-09-15 成都卓讯智安科技有限公司 一种基于tcam的网络数据检测方法和设备

Similar Documents

Publication Publication Date Title
US11848913B2 (en) Pattern-based malicious URL detection
US20160048585A1 (en) Bloom filter with memory element
CN114168954A (zh) 基于正则匹配的入侵检测的方法和装置
JP6348656B2 (ja) マルウェア感染端末の検出装置、マルウェア感染端末の検出システム、マルウェア感染端末の検出方法およびマルウェア感染端末の検出プログラム
CN107292189B (zh) 面向文本检索服务的用户隐私保护方法
KR100960117B1 (ko) 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체
EP3077922B1 (en) Method and apparatus for generating a plurality of indexed data fields
US8812480B1 (en) Targeted search system with de-obfuscating functionality
CN103324886A (zh) 一种网络攻击检测中指纹库的提取方法和系统
CN110245297B (zh) 一种面向图书关键词搜索的用户主题隐私保护方法及系统
CN109359481B (zh) 一种基于bk树的反碰撞搜索约减方法
WO2018110997A1 (ko) 네트워크 침입 탐지 규칙을 생성하는 방법 및 장치
CN108256327B (zh) 一种文件检测方法及装置
US10462157B2 (en) Multi-pattern matching algorithm and processing apparatus using the same
CN111556014B (zh) 一种采用全文索引的网络攻击入侵检测方法
CN112347272B (zh) 一种基于音视频动态特征的流式匹配方法和装置
CN113807087B (zh) 网站域名相似度检测方法和装置
KR100992440B1 (ko) 여러 개의 연속된 부분패턴을 이용한 다중 패턴매칭 방법
Han et al. Distributed malware detection based on binary file features in cloud computing environment
CN114398887A (zh) 一种文本分类方法、装置及电子设备
US11025650B2 (en) Multi-pattern policy detection system and method
JP6096084B2 (ja) トラヒック走査装置及び方法
CN110716929B (zh) 一种布控处理方法、装置及设备
CN111353018A (zh) 基于深度包检测的数据处理方法、装置和网络设备
CN112861891A (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