CN113194058B - Web攻击检测方法、设备、网站应用层防火墙及介质 - Google Patents
Web攻击检测方法、设备、网站应用层防火墙及介质 Download PDFInfo
- Publication number
- CN113194058B CN113194058B CN202010038795.0A CN202010038795A CN113194058B CN 113194058 B CN113194058 B CN 113194058B CN 202010038795 A CN202010038795 A CN 202010038795A CN 113194058 B CN113194058 B CN 113194058B
- Authority
- CN
- China
- Prior art keywords
- message
- attack
- detection
- identified
- identification
- 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
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
Abstract
本发明公开了一种WEB攻击检测方法,预先配置了各攻击类型对应的检测引擎,在识别到当前待识别的报文的攻击类型后,自动匹配与当前攻击类型对应的检测引擎,作为目标引擎;调用所述目标引擎对所述待识别报文进行攻击检测,避免了调用各检测引擎对当前报文进行逐一检测识别过程所带来的资源浪费的情况,实现了检测过程调用的资源控制,同时也提升了检测过程的效率,另外,将所述目标引擎输出的识别结果作为WEB攻击检测结果,也避免了多引擎检测结果同时分析对于整体识别结果带来的误报情况,保证了识别准确率。本发明还提供了一种网站应用层防火墙、计算机设备及可读存储介质,具有上述有益效果。
Description
技术领域
本发明涉及网络安全领域,特别涉及一种WEB攻击检测方法、网站应用层防火墙、计算机设备及可读存储介质。
背景技术
随着WEB应用的普及,它也吸引了攻击者越来越多的注意力,例如,SQL注入、XSS、命令注入等安全事件频繁发生,WEB攻击已经成为主要的攻击目标。为了防御这些攻击,网站应用层防火墙(WAF)也应运而生,并成为了应对WEB攻击的主要安全产品。
而这些网站应用层防火墙中传统是基于规则的检测方案,通过规则匹配报文的字符串,满足一定特征则判黑拦截。然而,规则无法应对未知威胁。为此,WAF厂商开始设计基于机器学习模型或者语义分析的检测方案,然而,这些方案一般是直接使用多个威胁检测引擎应对各报文,各报文需要逐一经过各威胁检测引擎的检测才能根据各检测引擎的输出结果进行WEB攻击的判断,导致了计算资源的大量占用,容易引发资源浪费,同时多个输出结果对于WEB攻击的同时分析,若其中一个或多个存在检测误差,则可能会导致整体分析结果的错误,容易造成误报率的升高。
因此,如何在提升WEB攻击识别精度的同时控制识别过程的资源占用,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种WEB攻击检测方法,该方法可以在提升WEB攻击识别精度的同时控制识别过程的资源占用;本发明的另一目的是提供一种网站应用层防火墙、计算机设备及可读存储介质。
为解决上述技术问题,本发明提供一种WEB攻击检测方法,包括:
获取待识别报文;
对所述待识别报文进行攻击类型识别,得到攻击类型;
匹配与所述攻击类型对应的检测引擎,作为目标引擎;
调用所述目标引擎对所述待识别报文进行攻击检测,并将所述目标引擎输出的识别结果作为WEB攻击检测结果。
可选地,对所述待识别报文进行攻击类型识别,包括:
根据预先配置的攻击类型字符串特征对所述待识别报文进行字符串匹配;
若根据所述字符串匹配得到匹配攻击类型,将得到的匹配攻击类型作为所述攻击类型识别的结果;
若根据所述字符串匹配未得到匹配攻击类型,调用攻击类型分类器对所述待识别报文进行字符特征识别,并将所述攻击类型分类器输出的分类结果作为所述攻击类型识别的结果;其中,所述攻击类型分类器为根据多类型攻击报文样本预训练的机器学习模型。
可选地,
所述目标引擎中配置有针对所述攻击类型的多技术检测组合;其中,所述技术检测组合包括:多技术检测串联组合以及多技术检测并联组合;
则相应地,将所述目标引擎输出的识别结果作为WEB攻击检测结果,包括:结合所述多技术检测组合的识别结果进行综合判定,生成所述WEB攻击检测结果。
可选地,在对所述待识别报文进行攻击类型识别之前,还包括:
存储历史识别报文的相关信息;其中,所述相关信息包括识别结果;
对所述待识别报文与所述历史识别报文进行相似度比对,得到比对结果;
若所述比对结果显示所述历史识别报文中存在与所述待识别报文匹配的报文,则将所述与所述待识别报文匹配的报文对应的识别结果,作为所述待识别报文的识别结果;
若所述比对结果显示所述历史识别报文中不存在与所述待识别报文匹配的报文,则执行对所述待识别报文进行攻击类型识别的步骤。
可选地,所述存储历史识别报文的相关信息,包括:存储历史识别报文的关键报文信息哈希值以及对应的识别结果;
则,对所述待识别报文与所述历史识别报文进行相似度比对,包括:
对所述待识别报文进行泛化处理,得到关键报文信息;
利用哈希算法计算所述关键报文信息的哈希值;
判断所述历史识别报文的关键报文信息哈希值中是否存在所述待识别报文的关键报文信息哈希值;
若存在,判定与所述待识别报文的关键报文信息哈希值相同的历史识别报文作为与所述待识别报文匹配的报文;
若不存在,判定所述历史识别报文中不存在与所述待识别报文匹配的报文。
可选地,在对所述待识别报文进行攻击类型识别之前,还包括:
对所述待识别报文基于预设非法字符串匹配规则进行字符串识别。
可选地,在调用所述目标引擎对所述待识别报文进行攻击检测之后,还包括:
若所述目标引擎未输出识别结果,则将所述待识别报文发送至云端进行检测,并将云端检测结果作为所述WEB攻击检测结果。
本发明公开一种网站应用层防火墙,包括:
报文获取单元,用于获取待识别报文;
类型识别单元,用于对所述待识别报文进行攻击类型识别,得到攻击类型;
检测引擎匹配单元,用于匹配与所述攻击类型对应的检测引擎,作为目标引擎;
检测引擎调用单元,用于调用所述目标引擎对所述待识别报文进行攻击检测,并将所述目标引擎输出的识别结果作为WEB攻击检测结果。
本发明公开一种计算机设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现所述WEB攻击检测方法的步骤。
本发明公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述WEB攻击检测方法的步骤。
本发明提出一种WEB攻击检测方法,该方法预先配置了各攻击类型对应的检测引擎,在识别到当前待识别的报文的攻击类型后,自动匹配与当前攻击类型对应的检测引擎,作为目标引擎;调用目标引擎对待识别报文进行攻击检测,避免了调用各检测引擎对当前报文进行逐一检测识别过程所带来的资源浪费的情况,实现了检测过程调用的资源控制,同时也提升了检测过程的效率,另外,将目标引擎输出的识别结果作为WEB攻击检测结果,也避免了多引擎检测结果同时分析对于整体识别结果带来的误报情况,保证了识别准确率。
本发明还提供了一种网站应用层防火墙、计算机设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种WEB攻击检测方法的流程图;
图2为本发明实施例提供的一种WEB攻击检测方法的流程示意图;
图3为本发明实施例提供的一种网站应用层防火墙的结构框图;
图4为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
本发明的核心是提供一种WEB攻击检测方法,该方法在可以提升WEB攻击识别精度的同时控制识别过程的资源占用;本发明的另一核心是提供一种网站应用层防火墙、计算机设备及可读存储介质。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参考图1,图1为本实施例提供的一种WEB攻击检测方法的流程图;该方法主要包括:
步骤s110、获取待识别报文;
需要说明的是,本步骤中获取的报文为可以直接进行信息分析的报文,如若为原始报文,则需进一步进行报文解码操作以还原出报文的真实内容以供后续信息分析。
另外,本实施例中的待识别报文可以为整体报文信息,即在后续报文分析中直接将整体报文信息输入,也可以去除无用的冗余信息,提取有用信息后进行后续的报文分析,本实施例对此不做限定。
可选地,一种原始报文的处理方式如下:获取待识别的HTTP报文,首先依据RFC标准及服务器的处理方式,将报文解析成不同部分,如请求方法、URI,cookie,User-Agent,body等。然后,对每个部分进行解码操作,如base64,unicode等,以还原出报文的真实内容,作为待识别报文。本实施例仅以上述待识别报文的获取方式为例进行介绍,其他获取方式均可参照本实施例的介绍,在此不再赘述。
步骤s120、对待识别报文进行攻击类型识别,得到攻击类型;
传统方法下会将报文依次送入不同的检测引擎进行分析,然而经过申请人分析发现,一个恶意报文通常只含有一种攻击,因此,传统方法一方面浪费了大量的性能,同时,由于只要有任一引擎误报就会误报,因此误报率较高。
为此,本申请提出了识别攻击类型,然后将对应的数据只交给相应的引擎进行分析的方式,将疑似攻击的报文只分发给特定的引擎,以降低识别过程的资源占用的同时提升识别准确率。
本实施例中对于具体的攻击类型的划分不做限定,可以根据检测引擎的检测类型进行划分,也可以根据实际攻击类型的经验值进行相应划分,比如可以将攻击类型划分为XXS(跨站脚本攻击)攻击、SQL攻击以及WEBSHELL(一种以网页文件形式存在的命令执行程序,也称为后门文件)攻击等。
需要说明的是,本实施例中对攻击类型识别的实现方式不做限定,可以根据各中攻击类型对应的攻击特征进行相应的识别,不同的攻击存在不同的字符串特征,因此可以通过字符串识别,也可以通过机器学习进行类别识别等。另外,本实施例中的攻击识别可以采用单种识别方式进行识别,为了提升识别精准度,也可以同时采用多种识别方式,当采用多种识别方式时,可以并行执行,也可以串行执行,本实施例中对此不做限定。
可选地,一种对待识别报文进行攻击类型识别的实现方式具体包括以下步骤:
(1)根据预先配置的攻击类型字符串特征对待识别报文进行字符串匹配;
(2)若根据字符串匹配得到匹配攻击类型,将得到的匹配攻击类型作为攻击类型识别的结果;
(3)若根据字符串匹配未得到匹配攻击类型,调用攻击类型分类器对待识别报文进行字符特征识别,并将攻击类型分类器输出的分类结果作为攻击类型识别的结果;其中,攻击类型分类器为根据多类型攻击报文样本预训练的机器学习模型。
具体的学习模型的类型不做限定,可以参照现有的学习模型类型进行相应调用。
上述识别过程中调用了两种识别方式,字符串识别以及分类器识别,字符串识别检测效率高,实现方式简单,因此上述识别过程中首先调用字符串进行类型识别,为有些报文可能没有明显的字符串特征,为进一步提升识别精准度,在字符串识别无果时调用分类器识别,分类器识别的识别精准度高,且适用各种报文,应用范围广,因此采用上述识别过程进行攻击类型识别可以在保证识别精准的同时提升识别效率。
例如,不同的攻击存在不同的字符串特征,比如“/etc/passwd”关键词经常出现在系统命令注入攻击中,而“alert(xss)”则是XSS攻击中很明显的关键词。首先利用这些关键词特征,通过字符串匹配算法(如AC自动机)快速匹配,命中了相应的字符特征,则确定为相应的攻击类型。而当识别到一个报文具有多种攻击类型的字符串特征时,则可以将各匹配的攻击类型同时输出,将多个匹配的攻击类型同时作为当前待识别报文的攻击类型,以便后续过程中将该报文送入各攻击类型对应的检测引擎,直到某个引擎报黑或者这些引擎都报白。
而部分攻击无法通过字符串匹配确定类型,比如,对于系统命令注入,攻击者可以利用shell语言的特性,混淆隐藏特定关键词,从而绕过检测。一个例子是,“/etc/passwd”可以混淆成“/et?/*asswd”。对于此类攻击,本实施例中使用机器学习模型训练了一个攻击类型分类器,通过调用该分类器实现精准的攻击类型识别。
一种攻击类型分类器的训练过程如下:
1、收集大量正常报文(如网站镜像)及各种类型的攻击报文。其中,攻击报文除了可以通过网上收集,也可以通过安全专家收集。
2、训练分类器。攻击的很多特征都是字符特征,如“*”是命令注入中特有的通配符。我们使用字符特征进行训练。特别地,可以限制报文中各部分(URL、user-agent)的长度,超过的话,直接截断;不足补0。然后,将每个字符映射到相应的ASCII码字符。如果不在ASCII表中(如中文字符),则直接舍弃。然后,拼接各部分的向量表示,用于机器学习、深度学习模型训练。
而在调用分类器进行攻击类型识别过程中,个别攻击类型的字符特征有一定相似之处。比如“()”在命令注入攻击及PHP代码注入攻击中,都有可能表示函数调用。因此在调用分类器进行识别过程中可以输出每个报文在各攻击类别上的分数,只要分数大于特定阈值,则认为该报文有可能属于该种攻击。然后,后续步骤中可以按照分数的高低,依次将报文分发至各个检测引擎,直到某个引擎报黑(显示存在攻击)或者这些引擎都报白(显示不存在攻击),这种做法能够显著提高引擎的性能,且不会新增漏报。
本实施例中仅以上述识别过程为例进行介绍,其它识别过程的实现均可参照本实施例的介绍,在此不再赘述。
步骤s130、匹配与攻击类型对应的检测引擎,作为目标引擎;
步骤s140、调用目标引擎对待识别报文进行攻击检测,并将目标引擎输出的识别结果作为WEB攻击检测结果。
本实施例中为各攻击类型匹配相应的检测引擎,根据漏洞原理,对不同的攻击应用了不同的检测技术,专门用于对于该攻击类型实现攻击检测,比如XSS攻击对应XSS检测引擎,WEBSHELL攻击对应WEBSHELL检测引擎。在报文识别到攻击类型时,仅匹配该攻击类型对应的检测引擎作为目标引擎进行调用,避免了无关检测引擎的检测过程,减少了资源占用,同时也可以避免无关检测引擎对于整体识别结果的干扰,可以提升攻击检测效率。
需要说明的是,本实施例中对各攻击类型下对应的检测引擎中配置的检测手段不做限定,可以根据实际检测需要进行设定。比如可以参照现有的方式使用单一技术(比如规则、语法/语义分析、机器学习)或者简单的组合(比如规则+语法/语义分析、规则+机器学习)来检测某种攻击。但WEB攻击种类多而且变形多,上述每种技术都有自己的优劣势,使用单一技术或简单组合将导致检测的准确率较低。比如WEBSHELL上传中某些常用的危险函数(如assert)也经常被用于正常业务。如果只单独使用语义分析,会导致误报正常业务,而如果只单独使用机器学习,则可能无法识别各种丰富的混淆绕过手段。因此,本申请提出了一种检测方式,以解决上述问题,具体如下:
可选地,所述目标引擎中配置有针对所述攻击类型的多技术检测组合,检测技术包括但不限于各种机器学习、语义分析、异常检测、行为分析、关联分析及虚拟执行等,根据漏洞原理,并综合多种技术的优势,为各种攻击类型配置对应的多技术检测组合,可以在具备高检出的同时,能够保证较低的误报率。
比如可以通过语义分析引擎提取语义特征(如危险函数操作、混淆行为识别等),并将其作为机器学习模型的特征,这能够在语义引擎精确分析地基础上,进一步提升方案的泛化能力,从而增强对未知威胁的检测能力。类似地,也可以在机器学习模型后边,引入语义分析模型或者规则检测,从而降低机器学习模型的误报。同时,借助规则或者语义信息,此种组合增强了机器学习模型的解释性。本实施例中仅以上述几种对检测模块结合以及优势进行介绍,具体适用的攻击类型可以根据实际检测需要进行设定,在此不做限定。
另外,组合形式不做限定,可以为串联组合、并联组合,也可以同时结合串联以及并联,在此不做限定。
两种串联组合形式如下:
1、先使用语义分析引擎提取语义特征(如危险函数操作、混淆行为识别等),再利用机器学习模型进行判断。该种组合形式可以在语义引擎精确分析地基础上,进一步提升方案的泛化能力,从而增强对未知威胁的检测能力,以适配对于未知威胁需求较强的攻击类型。
2、先使用机器学习模型筛选出可疑数据,再引入语义分析模型或者规则检测,从而降低机器学习模型的误报。同时,借助规则或者语义信息,此种组合形式可以增强了机器学习模型的解释性,以适配解释性要求较强的攻击类型。
一种并联组合形式如下:
并行使用多种技术(如语义分析、机器学习及行为分析等)进行检测,再综合多种技术的检测结果(如加权打分、集成学习等)进行判断。
为加深对上述介绍的技术检测组合形式的应用理解,以下以使用不同的攻击类型介绍下这两种技术组合方式(串联以及并联):
1、以下以一种可能的串联实现方式为例说明在WEBSHELL上传中的应用,需要注意的是串联方式具有多种的技术组合(可以预先设置一些串联优化组合等)。在WEBSHELL上传中,先使用语义分析引擎提取特征,后使用机器学习/深度学习提升方案泛化能力。
某些攻击使用的特征也会被用于正常的业务。比如WEBSHELL上传中的assert函数,也常被正常业务使用。为了防止误报,传统检测方案只能使用比较明显的判黑特征,而无法检测特征相对较弱的攻击。为此,方案利用语义分析提取出语义特征后,同时会结合上下文信息,利用机器学习能够精确地检测出弱特征的攻击。同时,得益于机器学习的泛化能力,本发明对于未知威胁也有一定检测能力。本发明以PHP WEBSHELL上传为例,介绍此种技术组合的流程。但此种实现能够广泛应用于各种WEB攻击的检测,不限于WEBSHELL上传。具体流程如下:
(1)语义分析(在语法分析的基础上,对结构上正确的源程序进行上下文有关性质的审查,进行类型审查):
a.识别攻击代码;
流量中除了攻击的代码,还存在其他正常的流量。我们首先识别出可能为代码的字段。
b.词法分析;
将代码解析成一个一个的词法token。比如$k=“ass”.“ert”;$k($_POST[‘cmd’])就会被识别成标识符,字符串,字符串拼接及函数调用等token。
c.语法分析(将单词序列组合成各类语法短语,如“程序、“语句”、“表达式”等,语法分析程序判断源程序在结构上是否正确,源程序的结构由上下文无关文法描述);
判断这些token的组合是否符合PHP的语法。若是,则转到下一步。
d.语义分析;
判断这段代码是否含有危险的语法结构,如危险的函数名等。
上述每个步骤都会输出相应的信息,如词法分析可以生成token序列,语法分析可以生成语法树,语义分析可以识别出危险的语法结构等。
(2)机器学习/深度学习:
a.收集正负样本。
b.根据安全专家经验,或者是利用深度学习自动提取特征,挖掘出有用的特征。
这些特征可以包括语义特征以及上下文特征。语义特征包括词法特征、语法特征及语义特征。上下文特征包括字符串特征、代码出现的位置、是否含有危险函数名等特征。
c.使用上述特征,训练模型,以进行综合判断。
由于使用了上下文特征,并且利用机器学习能够学习到各种特征的权重,这种组合能够更好地检测弱特征的攻击。
2、以下以一种可能的并联实现方式为例说明在WEBSHELL后门检测中的应用,需要注意的是并联方式具有多种的技术组合(可以预先设置一些并联优化组合等)。在WEBSHELL后门中,同时使用机器学习/深度学习检测引擎及语义分析技术。
某些攻击场景复杂,需要使用多种技术分别检测不同的场景。比如WEBSHELL后门流量检测中,既有大马流量也有连接器流量。而且这两种类型的流量差异巨大。攻击者使用浏览器访问WEBSHELL大马,服务器会返回HTML页面给攻击者。该HTML页面包含有各种文本特征,使用机器学习可以较好地分辨。然而,连接器流量的响应包没有明显的机器学习特征。相反地,攻击者会在其请求包中注入代码,以在服务器执行。因此,语义分析适合用来检测连接器流量。本发明使用WEBSHELL后门来介绍并联场景的使用,但是并联的技术组合广泛使用于各种WEB攻击。
(1)机器学习/深度学习检测大马流量:
a.收集黑白样本。
其中白样本是正常业务的响应包流量,黑样本是大马的响应包流量。
b.根据安全专家经验,或者是利用深度学习自动提取特征,挖掘出有用的特征。
这些特征包括是否有知名大马的名字,是否黑客常用的页面布局(如黑色背景)以及是否含有文件操作、数据库操作等文本。
c.使用上述特征,训练模型。
(2)语义分析检测连接器流量:
a.解析请求数据,并首先识别是否含有代码,确定代码片段。
b.对识别出来的代码片段进行词法分析,将代码解析成一个一个的词法token。
比如assert($_POST[‘cmd”])就会被识别成函数、全局标识符及字符串三个token。
c.使用语法分析判断这个token序列是否符合PHP语法。
d.进行语义分析,判断该段代码是否含有危险的语法结构,如关键的函数调用等。若有直接判黑。
只要有机器学习或者语义分析任一技术报黑(即检测存在攻击),就认为此流量为WEBSHELL后门流量。
需要说明的是,每种检测引擎可以根据漏洞原理,自由地选择最优的技术组合。本发明不限定具体的技术,包括但不限于机器学习、语义分析、异常检测、行为分析、关联分析及虚拟执行等。尽管这些技术的量级会相对较高,但是我们的规则模块、相似报文识别模块及威胁分发模块都十分高效,并且已经过滤了绝大部分的流量。因此,整体方案在取得优良的检测效果的同时,仍然能够保持较高的性能。
基于上述介绍,本实施例提供的WEB攻击检测方法,预先配置了各攻击类型对应的检测引擎,在识别到当前待识别的报文的攻击类型后,自动匹配与当前攻击类型对应的检测引擎,作为目标引擎;调用目标引擎对待识别报文进行攻击检测,避免了调用各检测引擎对当前报文进行逐一检测识别过程所带来的资源浪费的情况,实现了检测过程调用的资源控制,同时也提升了检测过程的效率,另外,将目标引擎输出的识别结果作为WEB攻击检测结果,也避免了多引擎检测结果同时分析对于整体识别结果带来的误报情况,保证了识别准确率。
实施例二
由于目前网络流量巨大,为保证网络的安全,往往需要对服务器的接受接收脚本逐一进行攻击检测,这给检测端带来了很大的WEB攻击检测压力。传统方法下是依次检测各个报文,若防火墙设备达到性能压力的阈值或者响应超时,则为了保证WEB应用的可用性,直接不检测后续到来的报文。而该种方式可能会导致大量攻击在性能峰值时被放过。为避免这一问题,同时减少攻击检测压力,在上述实施例的基础上,本实施例中提出了一种检测实现方式。
在对待识别报文进行攻击类型识别之前,可以进一步执行以下步骤:
(1)存储历史识别报文的相关信息;其中,相关信息包括识别结果;
可以申请一个缓冲区,用于存放历史识别报文的相关信息,起始时,该缓冲区为空。
(2)对待识别报文与历史识别报文进行相似度比对,得到比对结果;
(3)若比对结果显示历史识别报文中存在与待识别报文匹配的报文,则将与待识别报文匹配的报文对应的识别结果,作为待识别报文的识别结果;
其中,识别结果可以为判定结果,即是否为攻击,也可以为处理结果,比如是否拦截等。
(4)若比对结果显示历史识别报文中不存在与待识别报文匹配的报文,则执行对待识别报文进行攻击类型识别的步骤。
申请人通过对大量报文的分析发现实际待检测的大量的报文请求是相似的,比如一个网站首页的访问量占据了较大的比重,而相似报文的检测结果也是相似的,本实施例中对于相似报文,直接根据历史的检测结果,做出拦截或放行的决定,避免了相似报文的重复检测,因此具有更高的性能。
上述步骤中对于相似度比对过程的实现过程不做限定,比如可以根据字符串比对实现相似度比对,也可以通过重要字节内容分析等。可选地,可以依据报文哈希值进行相似度比对,则存储历史识别报文的相关信息,包括:存储历史识别报文的关键报文信息哈希值以及对应的识别结果,存放报文哈希值及相应的判定结果,比如格式为(hash(哈希值),action(处理结果))。对待识别报文与历史识别报文进行相似度比对的一种具体实现过程如下:
a.对待识别报文进行泛化处理,得到关键报文信息;
对于新来的每个报文,进行泛化操作,泛化操作指提取报文中关键识别信息,排除非关键性信息的识别干扰。具体的关键报文信息的信息条目不做限定,比如可以包括请求方法、URI、cookie、User-Agent、body等。
本实施例中对具体的泛化处理操作不做限定,比如可以包括:去除固定的字段值(如user-agent大部分取值类似);识别并去除易变且无威胁的值(如时间戳、抽象英文字符、数字等值)。
b.利用哈希算法计算关键报文信息的哈希值;
利用哈希算法,对泛化后的报文表示计算哈希值hash。
c.判断历史识别报文的关键报文信息哈希值中是否存在待识别报文的关键报文信息哈希值;
d.若存在,判定与待识别报文的关键报文信息哈希值相同的历史识别报文作为与待识别报文匹配的报文;
检索存储历史识别报文的关键报文信息哈希值以及对应的识别结果的缓冲区,判断该哈希值是否在缓冲区内,若在,则获取该缓冲区对应的识别结果,也可以为处理方式,比如拦截或者放行),做出同样的操作。
e.若不存在,判定历史识别报文中不存在与待识别报文匹配的报文。
如果该哈希值不在缓冲区内,则进入进行正常的检测判断。根据缓存的更新算法,如LRU(如果数据最近被访问过,那么将来被访问的几率也更高),LFU(如果数据过去被访问多次,那么将来被访问的频率也更高)等,判断结果将被记录到缓冲区中,更新历史处理结果,以便后续查找。
本实施例提供的上述检测方式首先提取出关键的报文信息,利用哈希算法,快速过滤相似请求。然后对于相似请求使用历史检测结果作为当前检测结果,避免了对于当前报文的检测过程,节省了检测资源;对于非相似请求,则识别可能的攻击类型,并根据攻击类型,将数据分发至相应的威胁检测引擎,节省了计算资源,同时提升了检测效率。
实施例三
基于上述实施例,可选地,在对待识别报文进行攻击类型识别之前,可以进一步对待识别报文基于预设非法字符串匹配规则进行字符串识别。
规则检测性能高,但是只能检测已知的攻击,而无法应对混淆变形及未知的攻击。为此,首先基于预设非法字符串匹配规则进行字符串识别快速检测已知的攻击,对于未知的变形样本,则使用量级更高但是更精确的引擎进行检测。
本实施例中在进行高精度的检测引擎识别之前,首先进行字符串识别检测,可以过滤明显攻击,提升检测效率。
需要说明的是,本实施例中在对待识别报文进行攻击类型识别之前,可以对待识别报文进行轻量级识别,本实施例中仅以该轻量级识别为基于预设非法字符串匹配规则进行字符串识别为例,也可以为其他轻量级的识别方式,本实施例中对其他方式下的情况不做限定,均可参照本实施例的介绍。
而若在检测引擎识别后仍未得到明确的识别结果,即无法判定是否为攻击报文时,为进一步保障系统的运行安全性,则在调用目标引擎对待识别报文进行攻击检测之后,可以进一步执行以下步骤:若目标引擎未输出识别结果,则将待识别报文发送至云端进行检测,并将云端检测结果作为WEB攻击检测结果。
对于无法确定黑白的报文,本发明提出了云端的检测机制,将灰样本(即无法确定黑白的报文)上传至云端进行分析,具体地云端可以实现的分析过程不做限定,如虚拟执行,多引擎融合判断,运行沙箱,人工判断等。云端的判断结果下发作为WEB攻击检测结果,通过云端下发,提升全网WAF的防御能力。
本实施例提供的上述两种检测方式可以在控制检测过程占用资源的同时提升检测效果,有效保障系统安全性。
实施例四
为加深对上述实施例中检测过程的理解,本实施例中以一种整体实现方式为例进行介绍,如图2所示为本实施例提供的一种实现流程示意图,具体包括以下步骤:
(1)报文解析及解码,提取出必要的报文信息;
接收待检测的HTTP报文,首先依据RFC标准及服务器的处理方式,将报文解析成不同部分,如请求方法、URI,cookie,User-Agent,body等。然后,对每个部分进行解码操作,如base64,unicode等,以还原出报文的真实内容。
(2)相似性哈希,判断是否已处理过相似报文;
对于新来的每个报文,进行泛化操作,对泛化后的报文表示计算哈希值hash。
判断该哈希值是否在缓冲区内,若在,判定已处理过相似报文,直接调用该相似报文的处理方式进行当前报文的处理。
(3)若不相似,即该哈希值并未在缓冲区内,则使用轻量级的检测引擎(如基于预设非法字符串匹配规则进行字符串识别),快速检测报文;
(4)若该轻量级的检测引擎并未识别出当前报文是否为攻击,此时根据字符串特征识别攻击类型,并根据攻击类型,将报文分发至相应的引擎;
(5)本地检测引擎结合多种技术,包括但不限于各种机器学习模型、语义分析引擎,充分发挥各种技术的优点,进行综合判定;
(6)对于本地检测引擎无法判定的报文,上传云端进行量级更高的检测。
而在得到当前的检测结果后,确定当前报文的哈希值以及判定结果以及处理方式,上传至缓存区,以便后续检测的调用。
本实施例中介绍的上述实现方式提出了一种智能高效的多引擎检测框架,该方法首先设计哈希算法,以避免重复处理相似报文。然后,利用规则快速匹配已知的攻击。此后,根据报文的字符串特征,确定报文可能的攻击类型,并将其分发给相应的攻击检测引擎。特别地,根据漏洞原理,攻击检测引擎可以组合多种技术(如机器学习、语义分析或者规则检测),充分发挥各种技术的优势进行检测。本发明通过精确的多级过滤机制,只由特定攻击检测引擎处理相关报文,能够显著提升准确率。同时,本发明能够避免处理重复的相似数据,因此更加高效。
实施例五
请参考图3,图3为本实施例提供的一种网站应用层防火墙的结构框图;该装置主要包括:报文获取单元210、类型识别单元220、检测引擎匹配单元230以及检测引擎调用单元240。本实施例提供的网站应用层防火墙可与上述WEB攻击检测方法相互对照。
其中,报文获取单元210主要用于获取待识别报文;
类型识别单元220主要用于对待识别报文进行攻击类型识别,得到攻击类型;
检测引擎匹配单元230主要用于匹配与攻击类型对应的检测引擎,作为目标引擎;
检测引擎调用单元240主要用于调用目标引擎对待识别报文进行攻击检测,并将目标引擎输出的识别结果作为WEB攻击检测结果。
本实施例介绍的网站应用层防火墙可以在提升WEB攻击识别精度的同时控制识别过程的资源占用。
实施例六
本实施例提供一种计算机设备,包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述WEB攻击检测方法的步骤,具体可参照上述实施例中对WEB攻击检测方法的介绍,在此不再赘述。
请参考图4,为本实施例提供的一种计算机设备的结构示意图,该计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在计算机设备301上执行存储介质330中的一系列指令操作。
计算机设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的WEB攻击检测方法中的步骤可以由本实施例中计算机设备的结构实现。
实施例七
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如WEB攻击检测方法的步骤,具体可参照上述实施例中对WEB攻击检测方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的WEB攻击检测方法、网站应用层防火墙、计算机设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种WEB攻击检测方法,其特征在于,包括:
获取待识别报文;
对所述待识别报文进行攻击类型识别,得到攻击类型;
匹配与所述攻击类型对应的检测引擎,作为目标引擎;
调用所述目标引擎对所述待识别报文进行攻击检测,并将所述目标引擎输出的识别结果作为WEB攻击检测结果;
其中,对所述待识别报文进行攻击类型识别,包括:
根据预先配置的攻击类型字符串特征对所述待识别报文进行字符串匹配;
若根据所述字符串匹配得到匹配攻击类型,将得到的匹配攻击类型作为所述攻击类型识别的结果;
若根据所述字符串匹配未得到匹配攻击类型,调用攻击类型分类器对所述待识别报文进行字符特征识别,并将所述攻击类型分类器输出的分类结果作为所述攻击类型识别的结果;其中,所述攻击类型分类器为根据多类型攻击报文样本预训练的机器学习模型;
所述目标引擎中配置有针对所述攻击类型的多技术检测组合;其中,所述技术检测组合包括:多技术检测串联组合以及多技术检测并联组合;
将所述目标引擎输出的识别结果作为WEB攻击检测结果,包括:结合所述多技术检测组合的识别结果进行综合判定,生成所述WEB攻击检测结果。
2.如权利要求1所述的WEB攻击检测方法,其特征在于,在对所述待识别报文进行攻击类型识别之前,还包括:
存储历史识别报文的相关信息;其中,所述相关信息包括识别结果;
对所述待识别报文与所述历史识别报文进行相似度比对,得到比对结果;
若所述比对结果显示所述历史识别报文中存在与所述待识别报文匹配的报文,则将所述与所述待识别报文匹配的报文对应的识别结果,作为所述待识别报文的识别结果;
若所述比对结果显示所述历史识别报文中不存在与所述待识别报文匹配的报文,则执行对所述待识别报文进行攻击类型识别的步骤。
3.如权利要求2所述的WEB攻击检测方法,其特征在于,所述存储历史识别报文的相关信息,包括:存储历史识别报文的关键报文信息哈希值以及对应的识别结果;
则,对所述待识别报文与所述历史识别报文进行相似度比对,包括:
对所述待识别报文进行泛化处理,得到关键报文信息;
利用哈希算法计算所述关键报文信息的哈希值;
判断所述历史识别报文的关键报文信息哈希值中是否存在所述待识别报文的关键报文信息哈希值;
若存在,判定与所述待识别报文的关键报文信息哈希值相同的历史识别报文作为与所述待识别报文匹配的报文;
若不存在,判定所述历史识别报文中不存在与所述待识别报文匹配的报文。
4.如权利要求1所述的WEB攻击检测方法,其特征在于,在对所述待识别报文进行攻击类型识别之前,还包括:
对所述待识别报文基于预设非法字符串匹配规则进行字符串识别。
5.如权利要求1所述的WEB攻击检测方法,其特征在于,在调用所述目标引擎对所述待识别报文进行攻击检测之后,还包括:
若所述目标引擎未输出识别结果,则将所述待识别报文发送至云端进行检测,并将云端检测结果作为所述WEB攻击检测结果。
6.一种网站应用层防火墙,其特征在于,包括:
报文获取单元,用于获取待识别报文;
类型识别单元,用于对所述待识别报文进行攻击类型识别,得到攻击类型;
检测引擎匹配单元,用于匹配与所述攻击类型对应的检测引擎,作为目标引擎;
检测引擎调用单元,用于调用所述目标引擎对所述待识别报文进行攻击检测,并将所述目标引擎输出的识别结果作为WEB攻击检测结果;
其中,所述类型识别单元具体为用于执行如下步骤的单元:
根据预先配置的攻击类型字符串特征对所述待识别报文进行字符串匹配;
若根据所述字符串匹配得到匹配攻击类型,将得到的匹配攻击类型作为所述攻击类型识别的结果;
若根据所述字符串匹配未得到匹配攻击类型,调用攻击类型分类器对所述待识别报文进行字符特征识别,并将所述攻击类型分类器输出的分类结果作为所述攻击类型识别的结果;其中,所述攻击类型分类器为根据多类型攻击报文样本预训练的机器学习模型;
其中,所述目标引擎中配置有针对所述攻击类型的多技术检测组合;其中,所述技术检测组合包括:多技术检测串联组合以及多技术检测并联组合;
检测引擎调用单元为用于调用所述目标引擎对所述待识别报文进行攻击检测,并结合所述多技术检测组合的识别结果进行综合判定,生成所述WEB攻击检测结果的单元。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现如权利要求1至5任一项所述WEB攻击检测方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述WEB攻击检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038795.0A CN113194058B (zh) | 2020-01-14 | 2020-01-14 | Web攻击检测方法、设备、网站应用层防火墙及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038795.0A CN113194058B (zh) | 2020-01-14 | 2020-01-14 | Web攻击检测方法、设备、网站应用层防火墙及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113194058A CN113194058A (zh) | 2021-07-30 |
CN113194058B true CN113194058B (zh) | 2023-03-21 |
Family
ID=76972398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010038795.0A Active CN113194058B (zh) | 2020-01-14 | 2020-01-14 | Web攻击检测方法、设备、网站应用层防火墙及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113194058B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709176A (zh) * | 2021-09-06 | 2021-11-26 | 北京华清信安科技有限公司 | 基于安全云平台的威胁检测与响应方法及系统 |
CN114553550B (zh) * | 2022-02-24 | 2024-02-02 | 京东科技信息技术有限公司 | 请求检测方法、装置、存储介质及电子设备 |
CN114567605B (zh) * | 2022-02-28 | 2023-12-01 | 天翼安全科技有限公司 | 一种安全引擎的调度方法、装置及可读存储介质 |
CN116846571A (zh) * | 2022-03-25 | 2023-10-03 | 华为技术有限公司 | 一种处理疑似攻击行为的方法及相关装置 |
CN115296878B (zh) * | 2022-07-27 | 2023-11-03 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN106453438A (zh) * | 2016-12-23 | 2017-02-22 | 北京奇虎科技有限公司 | 一种网络攻击的识别方法及装置 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
CN109413016A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种基于规则的报文检测方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407646B2 (en) * | 2014-07-23 | 2016-08-02 | Cisco Technology, Inc. | Applying a mitigation specific attack detector using machine learning |
-
2020
- 2020-01-14 CN CN202010038795.0A patent/CN113194058B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656886A (zh) * | 2015-12-29 | 2016-06-08 | 北京邮电大学 | 一种基于机器学习的网站攻击行为的检测方法及装置 |
CN106453438A (zh) * | 2016-12-23 | 2017-02-22 | 北京奇虎科技有限公司 | 一种网络攻击的识别方法及装置 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
CN109413016A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 一种基于规则的报文检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113194058A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113194058B (zh) | Web攻击检测方法、设备、网站应用层防火墙及介质 | |
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
CN106961419B (zh) | WebShell检测方法、装置及系统 | |
CN110233849B (zh) | 网络安全态势分析的方法及系统 | |
CN111431939B (zh) | 基于cti的sdn恶意流量防御方法 | |
CN112468520B (zh) | 一种数据检测方法、装置、设备及可读存储介质 | |
CN111835777B (zh) | 一种异常流量检测方法、装置、设备及介质 | |
WO2021017318A1 (zh) | 跨站攻击防护方法、装置、设备及存储介质 | |
CN113079150B (zh) | 一种电力终端设备入侵检测方法 | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN111488590A (zh) | 一种基于用户行为可信分析的sql注入检测方法 | |
CN112839012A (zh) | 僵尸程序域名识别方法、装置、设备及存储介质 | |
Zhang et al. | Cross-site scripting (XSS) detection integrating evidences in multiple stages | |
CN103324886A (zh) | 一种网络攻击检测中指纹库的提取方法和系统 | |
CN112507336A (zh) | 基于代码特征和流量行为的服务端恶意程序检测方法 | |
CN113067792A (zh) | 一种xss攻击识别方法、装置、设备及介质 | |
CN114422271B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN110245195B (zh) | 基于蜜罐系统的结构化查询语言注入检测方法及装置 | |
CN116800518A (zh) | 一种网络防护策略的调整方法及装置 | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN113946823A (zh) | 一种基于url基线偏离度分析的sql注入检测方法及装置 | |
CN115392238A (zh) | 一种设备识别方法、装置、设备及可读存储介质 | |
CN114741692A (zh) | 一种后门流量识别的方法、系统、设备及可读存储介质 | |
CN113114609A (zh) | webshell检测取证方法及系统 | |
CN115801468B (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 |