CN112822187B - 网络攻击的检测方法及装置 - Google Patents
网络攻击的检测方法及装置 Download PDFInfo
- Publication number
- CN112822187B CN112822187B CN202011639519.6A CN202011639519A CN112822187B CN 112822187 B CN112822187 B CN 112822187B CN 202011639519 A CN202011639519 A CN 202011639519A CN 112822187 B CN112822187 B CN 112822187B
- Authority
- CN
- China
- Prior art keywords
- sentence
- statement
- tested
- attack
- language
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Abstract
本申请公开了一种网络攻击的检测方法及装置。该方法包括:将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的关键字集合中包含语言的注入攻击语句中包含的关键字;在待测语句与多种语言的关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果;基于多个判断结果判断待测语句是否为注入攻击类型的语句。通过本申请,解决了相关技术中检测网络攻击语句的方法效率低、准确度低的问题。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种网络攻击的检测方法及装置。
背景技术
在网络安全领域,如何准确的检测出流量报文中注入的网络攻击语句,是有效识别网络攻击操作,在攻击扩散之前阻止恶意流量的通信,从而维护网络安全的关键。
在相关技术中主要是将流量报文中的待测语句与已经检测出的历史攻击语句进行分析对比,根据二者相之间的似度程度确定待测语句是否是攻击语句,但是,相关技术中的检测方式,对历史攻击语句的依赖度高,在历史攻击语句较长的情况下,不容易检测出待测语句是否是攻击语句,在历史攻击语句较短、数量较多的情况下,检测效率低,且容易产生误报。
针对相关技术中检测网络攻击语句的方法效率低、准确度低的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种网络攻击的检测方法及装置,以解决相关技术中检测网络攻击语句的方法效率低、准确度低的问题。
根据本申请的一个方面,提供了一种网络攻击的检测方法。该方法包括:将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的关键字集合中包含语言的注入攻击语句中包含的关键字;在待测语句与多种语言的关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果;基于多个判断结果判断待测语句是否为注入攻击类型的语句。
可选地,在将待测语句与多种语言的关键字集合中的关键字匹配之前,方法还包括:将待测语句与多种语言的攻击字符串的规则进行匹配,其中,攻击字符串的规则包括用于表征注入攻击特征的字符串以及用于表征注入攻击特征的表达;在待测语句与多种语言的攻击字符串的规则均不匹配成功的情况下,执行将待测语句与多种语言的关键字集合中的关键字匹配的步骤;在待测语句与至少一个攻击字符串的规则匹配成功的情况下,确定待测语句为注入攻击类型的语句。
可选地,在将待测语句与多种语言的攻击字符串的规则进行匹配之前,方法还包括:确定待测语句所属的报文;并判断报文的目的地址是否与第一白名单中的地址匹配;报文的目的地址与第一白名单中的地址不匹配成功的情况下,执行将待测语句与多种语言的攻击字符串的规则进行匹配的步骤。
可选地,在待测语句与多种语言的多个关键字匹配成功的情况下,对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果包括:采用第一分词规则对待测语句进行分词,得到多个词,分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,并分别判断多个词中的每个词是否满足对应的语法规则,得到多组判断结果;或分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,分别采用每种语言对应的第二分词规则对待测语句进行分词,得到多个词,并分别判断多个词中的每个词是否满足语言对应的语法规则,得到多组判断结果。
可选地,在分别判断每个词是否满足语法规则,得到多个判断结果之前,方法还包括:获取匹配到的关键字对应的语言对应的第二白名单中的字符串的最短长度;判断待测语句的字符串长度是否小于第二白名单中的字符串的最短长度,并在小于最短长度的情况下,执行分别判断每个词是否满足语法规则,得到多个判断结果的步骤。
可选地,在匹配到的关键字对应的语言为SQL语言的情况下,分别判断每个词是否满足语法规则,得到多个判断结果包括:对每个词进行第一标准化处理,得到第一处理结果,其中,第一标准化处理方式至少包括以下之一:删除回车符、删除运算符以及删除注释;第一处理结果与语言对应的攻击串规则进行匹配,并在不匹配成功的情况下,分析第一处理结果的注入点,并基于每个注入点对第一处理结果进行SQL注入点的闭合,得到至少一个闭合后的结果;分别对至少一个闭合后的结果进行第二标准化处理,得到至少一个第二处理结果;将至少一个第二处理结果与语言对应的攻击串规则进行匹配,并在至少一个第二处理结果中存在与语言对应的攻击串规则不匹配的第二处理结果情况下,判断第二处理结果是否符合SQL语言的语法规则。
可选地,基于多个判断结果判断待测语句是否为注入攻击类型的语句包括:获取对待测语句进行分词得到的词的个数,得到第一数值,并确定满足语法规则的词的个数,得到第二数值;基于第一数值和第二数值确定分词结果满足语法规则的比例,得到第一比例;将第一比例与预设比例进行比较,在第一比例大于预设比例的情况下,确定待测语句为注入攻击类型的语句。
根据本申请的另一方面,提供了一种网络攻击的检测装置。该装置包括:该装置包括:第一匹配单元,用于将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的所述关键字集合中包含所述语言的注入攻击语句中包含的关键字;第一确定单元,用于在所述待测语句与多种语言的所述关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;第一分词单元,用于对所述待测语句进行分词,得到多个词,并分别判断每个词是否满足所述语法规则,得到多个判断结果;第一判断单元,基于所述多个判断结果判断所述待测语句是否为注入攻击类型的语句。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种网络攻击的检测方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种网络攻击的检测方法。
通过本申请,采用以下步骤:将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的关键字集合中包含语言的注入攻击语句中包含的关键字;在待测语句与多种语言的关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果;基于多个判断结果判断待测语句是否为注入攻击类型的语句,解决了相关技术中检测网络攻击语句的方法效率低、准确度低的问题。进而达到了提高检测网络攻击语句的效率和准确度的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的网络攻击的检测方法的流程图;
图2是根据本申请实施例提供的可选的网络攻击的检测方法的流程图;
图3是根据本申请实施例提供的可选的网络攻击的检测方法的流程图;
图4是根据本申请实施例提供的可选的网络攻击的检测方法的流程图;以及
图5是根据本申请实施例提供的网络攻击的检测装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请的实施例,提供了一种网络攻击的检测方法。
图1是根据本申请实施例的网络攻击的检测方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的关键字集合中包含语言的注入攻击语句中包含的关键字。
具体地,待测语句为字符串构成的语句,待测语句可以为注入流量报文包的预设注入位置的语句,例如,可以为URL参数。
其中,多种语言的关键字集合可以包括但不限于PHP(超文本预处理器)的关键字集合,Command(指令提示符语言)的关键字集合,HTML(超文本标记语言)的关键字集合,SQL(结构化查询语言)的关键字集合,Javascript的关键字集合等,每个关键字集合为对应语言的注入攻击语句中包含的关键字的最小集合,例如,SQL的关键字集合可以包括select、insert、and、or等。
为了提高检测效率,可选地,在本申请实施例提供的网络攻击的检测方法中,在将待测语句与多种语言的关键字集合中的关键字匹配之前,方法还包括:将待测语句与多种语言的攻击字符串的规则进行匹配,其中,攻击字符串的规则包括用于表征注入攻击特征的字符串以及用于表征注入攻击特征的表达;在待测语句与多种语言的攻击字符串的规则均不匹配成功的情况下,执行将待测语句与多种语言的关键字集合中的关键字匹配的步骤;在待测语句与至少一个攻击字符串的规则匹配成功的情况下,确定待测语句为注入攻击类型的语句。
具体地,攻击字符串为小于预设字符的短串,若短串的长度太短,容易同正常流量相同,引起误报,为了提高检测性能,本申请实施例将确定的数量有限的短攻击串,以文本、正则等形式放入规则库中统一做匹配,避免误报,同时减少后续对待测语句进行处理时语义分析引擎的流量。
为了过滤容易产生的误报的网站的报文,可选地,在本申请实施例提供的网络攻击的检测方法中,在将待测语句与多种语言的攻击字符串的规则进行匹配之前,方法还包括:确定待测语句所属的报文;并判断报文的目的地址是否与第一白名单中的地址匹配;报文的目的地址与第一白名单中的地址不匹配成功的情况下,执行将待测语句与多种语言的攻击字符串的规则进行匹配的步骤。
具体地,对容易产生误报的网站,获取其网址,将其网址加入第一白名单,在匹配攻击字符串的规则以及关键字之前,将报文的目的地址与白名单匹配,避免误报。
步骤S102,在待测语句与多种语言的关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则。
例如,输入的待测语句为URL匹配SQL的关键字集合中的关键字,则标记为SQL语言,后续通过SQL语言做语法分析。此外,如果同时匹配多种语言的关键字,则打上相应语言的标签,以便后续通过相应语言做语法分析。
步骤S103,对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果。
可选地,在本申请实施例提供的网络攻击的检测方法中,在待测语句与多种语言的多个关键字匹配成功的情况下,对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果包括:采用第一分词规则对待测语句进行分词,得到多个词,分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,并分别判断多个词中的每个词是否满足对应的语法规则,得到多组判断结果;或分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,分别采用每种语言对应的第二分词规则对待测语句进行分词,得到多个词,并分别判断多个词中的每个词是否满足语言对应的语法规则,得到多组判断结果。
具体地,若为了提高分词的效率,可以先做跨语言的分词,再分别判断多个词中的每个词是否满足语言对应的语法规则。若为了提高分词准确度,也可以确定语言后再进行分词,再分别判断多个词中的每个词是否满足语言对应的语法规则。
可选地,在本申请实施例提供的网络攻击的检测方法中,在分别判断每个词是否满足语法规则,得到多个判断结果之前,方法还包括:获取匹配到的关键字对应的语言对应的第二白名单中的字符串的最短长度;判断待测语句的字符串长度是否小于第二白名单中的字符串的最短长度,并在小于最短长度的情况下,执行分别判断每个词是否满足语法规则,得到多个判断结果的步骤。
需要说明的是,每种语言中,存在复杂长字符串为非攻击语句的情况,可以将该类型的长字符串加入第二白名单,在对分词结果进行语义分析之前,通过待测语句的字符串长度大于预定长度的情况下,进行第二白名单的匹配。
可选地,在本申请实施例提供的网络攻击的检测方法中,在匹配到的关键字对应的语言为SQL语言的情况下,分别判断每个词是否满足语法规则,得到多个判断结果包括:对每个词进行第一标准化处理,得到第一处理结果,其中,第一标准化处理方式至少包括以下之一:删除回车符、删除运算符以及删除注释;第一处理结果与语言对应的攻击串规则进行匹配,并在不匹配成功的情况下,分析第一处理结果的注入点,并基于每个注入点对第一处理结果进行SQL注入点的闭合,得到至少一个闭合后的结果;分别对至少一个闭合后的结果进行第二标准化处理,得到至少一个第二处理结果;将至少一个第二处理结果与语言对应的攻击串规则进行匹配,并在至少一个第二处理结果中存在与语言对应的攻击串规则不匹配的第二处理结果情况下,判断第二处理结果是否符合SQL语言的语法规则。
具体地,两阶段的标准化的作用是将待测语句中的冗余部分删除掉,以正规形式实现后续的语义识别,例如,标准化可以为:将注释符”#”后面的文本删除,从而实现最大限度减少漏报,减少人为绕过检测的可能。
需要说明的是,由于SQL语言在注入报文时需要做SQL闭合处理,因而,第一标准化处理可以为初步对待测语句进行正则化,而第二标准化是对SQL语句进行闭合后的字符串进行正则化,例如,“#”如果在字符串内,则忽略,如果在字符串外则理解为注释符号。此外,本实施例可以通过预训练的方式确定所有的闭合点,从而对各个闭合点进行闭合处理,再进行标准化,从而进一步提高了检测性能。
此外需要说明的是,本申请实施例在每次标准化处理后,通过短攻击串库匹配,从而减小了后续语言分析的流量,提高了检测效率。
步骤S104,基于多个判断结果判断待测语句是否为注入攻击类型的语句。
具体地,在每个判断结果均指示词语符合语法规则的情况下,可以待测语句是否为注入攻击类型的语句,在存在部分判断结果指示词语符合语法规则的情况下,也可以待测语句是否为注入攻击类型的语句。
可选地,在本申请实施例提供的网络攻击的检测方法中,基于多个判断结果判断待测语句是否为注入攻击类型的语句包括:获取对待测语句进行分词得到的词的个数,得到第一数值,并确定满足语法规则的词的个数,得到第二数值;基于第一数值和第二数值确定分词结果满足语法规则的比例,得到第一比例;将第一比例与预设比例进行比较,在第一比例大于预设比例的情况下,确定待测语句为注入攻击类型的语句。
具体地,可以根据解析成功的词的比例确定待测语句是否为注入攻击类型的语句,此外,还可以通过其他方式增加待测语句被确定为注入攻击类型的语句的权值,从而综合确定待测语句是否为注入攻击类型的语句。
例如,对SQL语句来说,若语义分析失败前如果解析的足够长,可以增加待测语句被确定为注入攻击类型的语句的权值。若解析到常见攻击手法如SQL注释,也可以增加待测语句被确定为注入攻击类型的语句的权值。
进一步的,在待测语句并非攻击语句的情况下,若待测语句较长,还可以将待测语句添加至第二白名单中。
本申请实施例提供的网络攻击的检测方法,通过将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的关键字集合中包含语言的注入攻击语句中包含的关键字;在待测语句与多种语言的关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;对待测语句进行分词,得到多个词,并分别判断每个词是否满足语法规则,得到多个判断结果;基于多个判断结果判断待测语句是否为注入攻击类型的语句,解决了相关技术中检测网络攻击语句的方法效率低、准确度低的问题。进而达到了提高检测网络攻击语句的效率和准确度的效果。
图2是根据本申请实施例的可选的网络攻击的检测方法的流程图。如图2所示,该方法包括:
获取多种语言的注入关键字,构成对应的注入关键字最小子集,同时,获取多种语言的注入短攻击串规则,并通过获取到的上述数据确定攻击特征规则库。
进一步的,在得到规则库后,输入数据,同时配置第一白名单以及灵敏度参数,其中,第一白名单是指输入数据所在报文的目的地址的白名单。在输入数据对应的地址不符合白名单的情况下,若数据为编码数据,进行解码,并通过攻击特征规则库进行匹配,在匹配到攻击串规则的情况下,上报攻击并结束,在未匹配到攻击串规则的情况,查看是否匹配到关键字最小子集,在未匹配到关键字最小子集的情况下,说明输入数据不是攻击数据,上报非攻击,若检测到关键字最小子集,则标记输入数据可能的语言类型,并通过跨语言的分词技术对输入数据进行分词,同时,根据输入数据可能的语言类型依次检测分词结果的语义。
具体地,如图3所示,由于每种语言中,存在复杂长字符串为非攻击语句的情况,在输入数据大于预设长度时,在根据输入数据可能的语言类型依次检测分词结果的语义之前,将输入数据与复杂的非攻击长字符串所在的白名单进行匹配,在未匹配到的情况下,在对分词结果进行语言检测。
需要说明的是,对于大多数语言,直接进行对分词结果进行语言检测即可,而对SQL语句来说,由于SQL语言在注入报文时需要做SQL闭合处理,因而,本实施例对分词结果做两个阶段的正则化,第一标准化处理可以为初步对待测语句进行正则化,而第二标准化是对SQL语句进行闭合后的字符串进行正则化,并对每个阶段的正则化结果进行短攻击串匹配,不匹配,则进行语法分析,从而得到是否符合语法规则的结果。
进一步的,如图4所示,在得到各个分词结果是否符合语法规则的结果后,在每个判断结果均指示词语符合语法规则的情况下,可以确定输入数据为注入攻击类型的语句,在部分判断结果指示词语符合语法规则的情况下,可以根据解析成功的词的比例确定分值,并对分值进行加权,例如,对SQL语句来说,若语义分析失败前如果解析的足够长,可以增加待测语句被确定为注入攻击类型的语句的权值;若解析到常见攻击手法如SQL注释,也可以增加待测语句被确定为注入攻击类型的语句的权值,从而根据加权后的。
通过本申请实施例,一方面,基于攻击串规则和关键词构成的攻击特征库匹配输入数据,减少了进入语义识别的流量,另一方面,采用语义分析检测未知注入攻击,相比于单一的规则库,减少规则维护频率,提高了检出率,减少了误报率,同时,对应SQL语句,在SQL闭合处理前后设置两个阶段的正则化,防止漏报以及逃逸检测的设置,提高了检测性能。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种网络攻击的检测装置,需要说明的是,本申请实施例的网络攻击的检测装置可以用于执行本申请实施例所提供的用于网络攻击的检测方法。以下对本申请实施例提供的网络攻击的检测装置进行介绍。
图5是根据本申请实施例的网络攻击的检测装置的示意图。如图5所示,该装置包括:
第一匹配单元10,用于将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的上述关键字集合中包含上述语言的注入攻击语句中包含的关键字。
第一确定单元20,用于在上述待测语句与多种语言的上述关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则。
第一分词单元30,用于对上述待测语句进行分词,得到多个词,并分别判断每个词是否满足上述语法规则,得到多个判断结果。
第一判断单元40,基于上述多个判断结果判断上述待测语句是否为注入攻击类型的语句。
本申请实施例提供的网络攻击的检测装置,通过第一匹配单元10,用于将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的上述关键字集合中包含上述语言的注入攻击语句中包含的关键字;第一确定单元20,用于在上述待测语句与多种语言的上述关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;第一分词单元30,用于对上述待测语句进行分词,得到多个词,并分别判断每个词是否满足上述语法规则,得到多个判断结果;第一判断单元40,基于上述多个判断结果判断上述待测语句是否为注入攻击类型的语句,解决了相关技术中检测网络攻击语句的方法效率低、准确度低的问题,进而达到了提高检测网络攻击语句的效率和准确度的效果。
本申请的一种实施例中,上述装置还包括第二匹配单元、第一执行单元和第二确定单元,第二匹配单元用于在将待测语句与多种语言的关键字集合中的关键字匹配之前,将上述待测语句与多种语言的攻击字符串的规则进行匹配,其中,上述攻击字符串的规则包括用于表征注入攻击特征的字符串以及用于表征注入攻击特征的表达;第一执行单元用于在上述待测语句与多种语言的上述攻击字符串的规则均不匹配成功的情况下,执行将待测语句与多种语言的关键字集合中的关键字匹配的步骤;第二确定单元用于在上述待测语句与至少一个上述攻击字符串的规则匹配成功的情况下,确定上述待测语句为上述注入攻击类型的语句。
本申请的另一种实施例中,上述装置还包括第三确定单元、第二判断单元和第二执行单元,第三确定单元用于在将上述待测语句与多种语言的攻击字符串的规则进行匹配之前,确定上述待测语句所属的报文;第二判断单元用于判断上述报文的目的地址是否与第一白名单中的地址匹配;第二执行单元用于在上述报文的目的地址与上述第一白名单中的地址不匹配成功的情况下,执行将上述待测语句与多种语言的攻击字符串的规则进行匹配的步骤。
本申请的再一种实施例中,第一分词单元包括第一分词模块和第二分词模块,第一分词模块用于采用第一分词规则对上述待测语句进行分词,得到多个词,分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,并分别判断上述多个词中的每个词是否满足对应的上述语法规则,得到多组判断结果;或第二分词模块用于分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,分别采用每种语言对应的第二分词规则对待测语句进行分词,得到多个词,并分别判断上述多个词中的每个词是否满足上述语言对应的上述语法规则,得到多组判断结果。
本申请的又一种实施例中,上述装置还包括获取单元和第三判断单元,获取单元用于在分别判断每个词是否满足上述语法规则,得到多个判断结果之前,获取上述匹配到的关键字对应的语言对应的第二白名单中的字符串的最短长度;第三判断单元用于判断上述待测语句的字符串长度是否小于上述第二白名单中的字符串的最短长度,并在小于上述最短长度的情况下,执行分别判断每个词是否满足上述语法规则,得到多个判断结果的步骤。
本申请的一种具体的实施例中,在上述匹配到的关键字对应的语言为SQL语言的情况下,分别判断每个词是否满足上述语法规则,第一分词单元包括第一标准化处理模块、第一匹配模块、第二标准化处理模块和第二匹配模块,第一标准化处理模块用于对每个词进行第一标准化处理,得到第一处理结果,其中,上述第一标准化处理方式至少包括以下之一:删除回车符、删除运算符以及删除注释;第一匹配模块用于将上述第一处理结果与语言对应的攻击串规则进行匹配,并在不匹配成功的情况下,分析上述第一处理结果的注入点,并基于每个上述注入点对上述第一处理结果进行SQL注入点的闭合,得到至少一个闭合后的结果;第二标准化处理模块用于分别对上述至少一个闭合后的结果进行第二标准化处理,得到至少一个第二处理结果;第二匹配模块用于将上述至少一个第二处理结果与语言对应的攻击串规则进行匹配,并在上述至少一个第二处理结果中存在与上述语言对应的攻击串规则不匹配的第二处理结果情况下,判断上述第二处理结果是否符合SQL语言的语法规则。
本申请的另一种具体的实施例中,第一判断单元包括获取模块、第一确定模块和第二确定模块,获取模块用于获取对上述待测语句进行分词得到的词的个数,得到第一数值,并确定上述满足上述语法规则的词的个数,得到第二数值;第一确定模块基于上述第一数值和上述第二数值确定分词结果满足上述语法规则的比例,得到第一比例;第二确定模块用于将上述第一比例与预设比例进行比较,在上述第一比例大于上述预设比例的情况下,确定上述待测语句为上述注入攻击类型的语句。
上述网络攻击的检测装置包括处理器和存储器,上述第一匹配单元、第一确定单元、第一分词单元和第一判断单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中检测网络攻击语句的方法效率低、准确度低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种网络攻击的检测方法。
本申请实施例还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种网络攻击的检测方法。本文中的电子装置可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种网络攻击的检测方法,其特征在于,包括:
将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的所述关键字集合中包含所述语言的注入攻击语句中包含的关键字;
在所述待测语句与多种语言的所述关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;
对所述待测语句进行分词,得到多个词,并分别判断每个词是否满足所述语法规则,得到多个判断结果;
基于所述多个判断结果判断所述待测语句是否为注入攻击类型的语句。
2.根据权利要求1所述的方法,其特征在于,在将待测语句与多种语言的关键字集合中的关键字匹配之前,所述方法还包括:
将所述待测语句与多种语言的攻击字符串的规则进行匹配,其中,所述攻击字符串的规则包括用于表征注入攻击特征的字符串以及用于表征注入攻击特征的表达;
在所述待测语句与多种语言的所述攻击字符串的规则均不匹配成功的情况下,执行将待测语句与多种语言的关键字集合中的关键字匹配的步骤;
在所述待测语句与至少一个所述攻击字符串的规则匹配成功的情况下,确定所述待测语句为所述注入攻击类型的语句。
3.根据权利要求2所述的方法,其特征在于,在将所述待测语句与多种语言的攻击字符串的规则进行匹配之前,所述方法还包括:
确定所述待测语句所属的报文;
并判断所述报文的目的地址是否与第一白名单中的地址匹配;
所述报文的目的地址与所述第一白名单中的地址不匹配成功的情况下,执行将所述待测语句与多种语言的攻击字符串的规则进行匹配的步骤。
4.根据权利要求1所述的方法,其特征在于,在所述待测语句与多种语言的多个关键字匹配成功的情况下,对所述待测语句进行分词,得到多个词,并分别判断每个词是否满足所述语法规则,得到多个判断结果包括:
采用第一分词规则对所述待测语句进行分词,得到多个词,分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,并分别判断所述多个词中的每个词是否满足对应的所述语法规则,得到多组判断结果;或
分别确定匹配到的关键字对应的语言的语法规则,得到多个语法规则,分别采用每种语言对应的第二分词规则对待测语句进行分词,得到多个词,并分别判断所述多个词中的每个词是否满足所述语言对应的所述语法规则,得到多组判断结果。
5.根据权利要求1所述的方法,其特征在于,在分别判断每个词是否满足所述语法规则,得到多个判断结果之前,所述方法还包括:
获取所述匹配到的关键字对应的语言对应的第二白名单中的字符串的最短长度;
判断所述待测语句的字符串长度是否小于所述第二白名单中的字符串的最短长度,并在小于所述最短长度的情况下,执行分别判断每个词是否满足所述语法规则,得到多个判断结果的步骤。
6.根据权利要求1所述的方法,其特征在于,在所述匹配到的关键字对应的语言为SQL语言的情况下,分别判断每个词是否满足所述语法规则,得到多个判断结果包括:
对每个词进行第一标准化处理,得到第一处理结果,其中,所述第一标准化处理至少包括以下之一:删除回车符、删除运算符以及删除注释;
所述第一处理结果与所述语言对应的攻击串规则进行匹配,并在不匹配成功的情况下,分析所述第一处理结果的注入点,并基于每个所述注入点对所述第一处理结果进行SQL注入点的闭合,得到至少一个闭合后的结果;
分别对所述至少一个闭合后的结果进行第二标准化处理,得到至少一个第二处理结果;
将所述至少一个第二处理结果与语言对应的攻击串规则进行匹配,并在所述至少一个第二处理结果中存在与所述语言对应的攻击串规则不匹配的第二处理结果情况下,判断所述第二处理结果是否符合SQL语言的语法规则。
7.根据权利要求1所述的方法,其特征在于,基于所述多个判断结果判断所述待测语句是否为注入攻击类型的语句包括:
获取对所述待测语句进行分词得到的词的个数,得到第一数值,并确定所述满足所述语法规则的词的个数,得到第二数值;
基于所述第一数值和所述第二数值确定分词结果满足所述语法规则的比例,得到第一比例;
将所述第一比例与预设比例进行比较,在所述第一比例大于所述预设比例的情况下,确定所述待测语句为所述注入攻击类型的语句。
8.一种网络攻击的检测装置,其特征在于,包括:
第一匹配单元,用于将待测语句与多种语言的关键字集合中的关键字匹配,其中,每种语言的所述关键字集合中包含所述语言的注入攻击语句中包含的关键字;
第一确定单元,用于在所述待测语句与多种语言的所述关键字集合中的至少一个关键字匹配成功的情况下,确定匹配到的关键字对应的语言的语法规则;
第一分词单元,用于对所述待测语句进行分词,得到多个词,并分别判断每个词是否满足所述语法规则,得到多个判断结果;
第一判断单元,基于所述多个判断结果判断所述待测语句是否为注入攻击类型的语句。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有程序,其中,该程序被处理器执行时实现权利要求1至7中任意一项所述的网络攻击的检测方法。
10.一种电子装置,其特征在于,包含处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器用于运行所述计算机可读指令,其中,所述计算机可读指令运行时执行权利要求1至7中任意一项所述的网络攻击的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639519.6A CN112822187B (zh) | 2020-12-31 | 2020-12-31 | 网络攻击的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639519.6A CN112822187B (zh) | 2020-12-31 | 2020-12-31 | 网络攻击的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822187A CN112822187A (zh) | 2021-05-18 |
CN112822187B true CN112822187B (zh) | 2022-12-09 |
Family
ID=75858078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011639519.6A Active CN112822187B (zh) | 2020-12-31 | 2020-12-31 | 网络攻击的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822187B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722641A (zh) * | 2021-08-30 | 2021-11-30 | 平安国际智慧城市科技股份有限公司 | 基于ai的注入请求保护方法、装置、终端设备及介质 |
CN113992356A (zh) * | 2021-09-28 | 2022-01-28 | 青岛海尔科技有限公司 | Ip攻击的检测方法、装置和电子设备 |
CN113923002B (zh) * | 2021-09-29 | 2024-04-19 | 山石网科通信技术股份有限公司 | 计算机网络入侵防御方法、装置、存储介质及处理器 |
CN115051873B (zh) * | 2022-07-27 | 2024-02-23 | 深信服科技股份有限公司 | 网络攻击结果检测方法、装置和计算可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744802B (zh) * | 2013-12-20 | 2017-05-24 | 北京奇安信科技有限公司 | Sql注入攻击的识别方法及装置 |
CN106355094B (zh) * | 2016-07-08 | 2019-02-22 | 北京卫达信息技术有限公司 | 一种基于语法变换的sql注入攻击防御系统及防御方法 |
CN110147431A (zh) * | 2019-05-05 | 2019-08-20 | 中国银行股份有限公司 | 关键词匹配方法、装置、计算机设备和存储介质 |
CN110427754B (zh) * | 2019-08-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
-
2020
- 2020-12-31 CN CN202011639519.6A patent/CN112822187B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112822187A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822187B (zh) | 网络攻击的检测方法及装置 | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN112511546A (zh) | 基于日志分析的漏洞扫描方法、装置、设备和存储介质 | |
US20200159925A1 (en) | Automated malware analysis that automatically clusters sandbox reports of similar malware samples | |
CN105431859A (zh) | 指示恶意软件的信号标记 | |
CN111262730B (zh) | 一种告警信息的处理方法及装置 | |
CN113271237A (zh) | 工控协议的解析方法、装置、存储介质及处理器 | |
CN107239694A (zh) | 一种基于用户评论的Android应用权限推理方法及装置 | |
WO2023241529A1 (zh) | 漏洞信息处理方法、服务装置和漏洞检测模块 | |
CN115269427A (zh) | 针对web注入漏洞的中间语言表示方法及系统 | |
KR102516454B1 (ko) | Url 클러스터링을 위한 url의 요약을 생성하는 방법 및 장치 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
US9600644B2 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN112131573A (zh) | 安全漏洞的检测方法、装置及存储介质 | |
CN114024761A (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN113778852A (zh) | 一种基于正则表达式的代码分析方法 | |
Zou et al. | SCVD: A new semantics-based approach for cloned vulnerable code detection | |
CN115906086A (zh) | 基于代码属性图的网页后门检测方法、系统及存储介质 | |
CN111125714A (zh) | 一种安全检测方法、装置及电子设备 | |
CN113094706A (zh) | 一种WebShell检测方法、装置、设备及可读存储介质 | |
CN110598115A (zh) | 一种基于人工智能多引擎的敏感网页识别方法及系统 | |
RU168346U1 (ru) | Устройство выявления уязвимостей | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN114595482A (zh) | 一种基于静态检测的软件源代码隐私检测方法及系统 | |
CN113392016A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |