CN113645224A - 一种网络攻击检测方法、装置、设备及存储介质 - Google Patents
一种网络攻击检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113645224A CN113645224A CN202110907958.9A CN202110907958A CN113645224A CN 113645224 A CN113645224 A CN 113645224A CN 202110907958 A CN202110907958 A CN 202110907958A CN 113645224 A CN113645224 A CN 113645224A
- Authority
- CN
- China
- Prior art keywords
- attack
- field
- request
- analyzed
- target
- 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.)
- Granted
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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种网络攻击检测方法、装置、设备及存储介质。该装置包括:解析及交互模块,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;攻击检测模块,用于接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。本实施例中通过将攻击检测模块与解析及交互模块拆分开来,并且两个模块之间的通信采用cosocket技术,可以实现非阻塞的同步操作可大幅提高WAF的并发处理能力,并且,结合语义识别攻击提高了攻击识别的准确性和效率。
Description
技术领域
本发明涉及网络攻击检测领域,特别涉及一种网络攻击检测方法、装置、设备及存储介质。
背景技术
目前,WAF(Web应用防护系统,Web Application Firewall)主要实现方式为使用Apache ModSecurity进行安全防护,实现原理为服务端接收HTTP请求,将HTTP请求和ModSecurity的规则进行匹配,如果HTTP请求和规则中描述的攻击特征匹配成功,则证明该请求为攻击请求,服务端可根据匹配结果进行拦截或者放行。攻击类型包含XSS(跨站脚本攻击)、SQLI(SQL语句注入)等多种攻击类型,每种攻击类型包含多种攻击特征,为使用ModSecurity实现较为全面的攻击检测和防护,需要添加大量的规则用来描述攻击特征。由于ModSecurity进行攻击的检测是通过遍历规则的方式,如果规则数量达到成百上千条,就会导致程序运行速度较慢,影响WAF的处理能力。并且,由于攻击检测耗时较长,会影响到HTTP请求的接收能力,降低了整体性能。
发明内容
有鉴于此,本发明的目的在于提供一种网络攻击检测方法、装置、设备及介质,能够提高WAF的并发处理能力,实时、准确的识别网页攻击。其具体方案如下:
第一方面,本申请公开了一种网络攻击检测装置,包括:
解析及交互模块,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;
攻击检测模块,用于接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
可选的,所述解析及交互模块,包括:
请求解析单元,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段;所述解析后字段包括请求路径字段、请求参数字段、请求头域字段和请求体字段。
可选的,所述解析及交互模块,包括:
交互单元,用于按照预设组合配置对所述解析后字段进行组合,并添加相应的字段参数信息以得到待发送数据包,然后利用cosocket机制将所述待发送数据包发送给所述攻击检测模块。
可选的,所述交互单元,还用于接收所述攻击检测模块反馈的所述检测结果,并根据在所述检测结果为存在攻击行为时向相应的客户端发送HTTP拦截响应。
可选的,所述攻击检测模块,包括:
请求解码单元,用于利用所述目标攻击类型对应的解码方式对所述解析后字段进行解码,以得到解码后字段,以便利用所述目标攻击类型对应的语义分析规则对所述解码后字段进行检测并生成检测结果。
可选的,所述攻击检测模块,包括:
语义分析单元,用于利用不同的所述目标攻击类型对应的语义分析规则,依次对所述解析后字段进行检测并生成检测结果;
其中,所述目标攻击类型包括SQL注入攻击、跨站脚本攻击、命令注入攻击、文本文件攻击、表达式攻击,所述语义分析规则包括词法分析、语法分析和语义分析。
可选的,若所述目标攻击类型为SQL注入攻击,所述语义分析单元包括:
词法分析子单元,用于识别所述解析后字段中的符号和单词;
语法分析子单元,用于根据SQL语句语法规则确定所述符号和所述单词分别与目标字符的映射关系,将所述解析后字段转义为字符串;
语义分析子单元,用于利用预先基于AC算法构建的字典树与所述字符串进行匹配,若匹配成功则判定所述HTTP请求包含网络攻击行为。
第二方面,本申请公开了一种网络攻击检测方法,包括:
通过解析及交互模块获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;
通过攻击检测模块接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的网络攻击检测方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的网络攻击检测方法。
本申请中,通过解析及交互模块,获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;通过攻击检测模块,接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。可见,本实施例中通过将攻击检测模块与解析及交互模块拆分开来,并且两个模块之间的通信采用cosocket技术,可以实现非阻塞的同步操作,既能在发送HTTP请求之后非阻塞的等待检测结果,又能在获得检测结果之后同步之前的操作,即检测到结果之后决定当前请求时阻塞还是放行,继续执行请求的处理代码。将整个安全防护过程划分为不同模块,解析HTTP请求通过一个程序实现,攻击检测通过另一个程序实现,避免攻击检测模块的耗时影响请求解析及交互模块的运行,可大幅提高WAF的并发处理能力,并且,结合语义识别攻击提高了攻击识别的准确性和效率,可实时、准确的识别网页攻击。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种网络攻击检测装置结构示意图;
图2为本申请提供的一种具体的网络攻击检测装置结构示意图;
图3为本申请提供的一种具体的字典树结构示意图;
图4为本申请提供的一种网络攻击检测方法流程图;
图5为本申请提供的一种具体的网络攻击检测方法流程图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,使用ModSecurity实现较为全面的攻击检测和防护,需要添加大量的规则用来描述攻击特征,导致程序运行速度较慢,影响WAF的处理能力。并且,由于攻击检测耗时较长,会影响到HTTP请求的接收能力,降低了整体性能。为克服上述技术问题,本申请提出一种网络攻击检测装置,能够提高WAF的并发处理能力,实时、准确的识别网页攻击。
本申请实施例公开了一种网络攻击检测装置,参见图1所示,该装置包括:
解析及交互模块11,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块。
本实施例中,首选由解析及交互模块11获取客户端发送的HTTP请求,然后按照目标解析规则对上述HTTP请求进行解析以得到解析后字段,再利用cosocket机制将上述解析后字段发送给攻击检测模块以进行攻击检测。也就是说,解析及交互模块11主要负责请求的接收及解析,并不执行检测,且解析及交互模块11通过cosocket机制将数据发送给攻击检测模块12。Openresty cosocket是非阻塞的同步操作,当发送请求之后,如果无法立即得到检测结果,CPU不会阻塞等待,可以继续处理新的请求,直到检测结果返回,利用cosocket的这种特性,可将解码和检测耗时从接受请求的模块卸载下来,将大大提高接受请求的模块的处理能力。即通过openresty cosocket这种非阻塞的同步操作将解析后的HTTP请求信息发送给另一个程序,由另一个程序负责HTTP请求信息的安全检测,并返回检测结果。
本实施例中,所述解析及交互模块11,可以包括:请求解析单元111,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段;所述解析后字段包括请求路径字段、请求参数字段、请求头域字段和请求体字段。例如图2所示,解析及交互模块11可以包括请求解析单元111和交互单元112。请求解析单元11用于按照目标解析规则对HTTP请求进行解析以得到解析后字段。
具体的,根据HTTP协议规范,从所述HTTP请求的请求行中提取出请求路径,以得到所述请求路径字段;根据HTTP协议规范,对所述HTTP请求的请求行中的参数名和参数值进行分割提取,以得到所述请求参数字段;根据HTTP协议规范,对所述HTTP请求的请求头部中的参数名和参数值进行分割提取,以得到所述请求头域字段;识别所述HTTP请求的请求体的类型,根据所述类型确定目标分隔方法,然后利用所述目标分隔方法对所述请求体进行分割提取,以得到所述请求体字段。
可以理解的是,请求路径作为一个完整的字段;请求参数根据HTTP协议规范,按照键值对进行分隔,即键和值分别作为单独的字段;请求头域中除请求头Cookie之外,请求头域值作为单独的字段,Cookie头域值可以根据HTTP协议规范,按照键值对进行分隔。请求体根据请求体类型做不同处理分隔,如json体、form-data,按照键值对进行分隔,其他类型请求体均按照urlencoded请求体进行分隔。
例如,如下请求体类型为json的HTTP请求报文:
POST/bodgeit/basket.jsp?a=1&b=2HTTP/1.1
Host:www.testwaf.com:8080
Referer:https://www.google.com/search?hl=en&q=testing
User-Agent:Mozilla/5.0 Chrome/89.0.4389.90Safari/537.36
Cookie:JSESSIONID=129372B19E820295BD84255B7629AB40;b_id=88
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type:application/json
{"country":"china","city":"beijing"};
解析后的请求路径字段为:/bodgeit/basket.jsp;
解析后的请求参数字段为:a,1,b,2;
解析后的请求头域为:www.testwaf.com:8080,https://www.google.com/search?hl=en&q=testing,Mozilla/5.0 Chrome/89.0.4389.90Safari/537.36,JSESSIONID,129372B19E820295BD84255B7629AB40,b_id,88,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json;
解析后的请求体字段为:country,china,city,beijing;其中,解析后字段用逗号分隔。
例如,请求体类型为form-data,请求体如下:
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition:form-data;name="city_id"
1
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition:form-data;name="company_id"
2
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition:form-data;name="file";filename="chrome.png"
Content-Type:image/png
PNG...content of chrome.png...
------WebKitFormBoundaryyb1zYhTI38xpQxBK--
解析后的请求体字段为:city_id,1,company_i,2,file,chrome.png,PNG...content of chrome.png...。
例如,请求体类型为urlencoded,请求体如下:
a=1&b=2&c=3
解析后的请求体字段为:a,1,b,2,c,3。
本实施例中,所述解析及交互模块11,可以包括:交互单元112,用于按照预设组合配置对所述解析后字段进行组合,并添加相应的字段参数信息以得到待发送数据包,然后利用cosocket机制将所述待发送数据包发送给所述攻击检测模块。
本实施例中,解析后,通过交互单元按照预设组合配置对解析后字段进行组合,并添加相应的字段参数信息以得到待发送数据包,然后利用cosocket机制将待发送数据包发送给所述攻击检测模块。可以理解的是,请求交互模块的核心技术是cosocket,具体通过使用openresty ngx.socket.tcp函数族实现,利用ngx.socket.tcp创建一个socket,利用该socket和socket服务端(即攻击检测模块)建立连接,以用于发送数据接收数据。其中,发送的数据内容是HTTP请求解析后的字段,字段的组合方式可以由请求交互模块自定义,一种具体的发送数据包格式定义的如下:
表格中的每个单元格的后面的括号表示当前字段占用的内存长度,总长度即包体长度,不包含当前总长度参数的四个字节;类型1、2、3、4:取值分别为1、2、3、4,分别表示请求路径、请求参数、请求头域、请求体;类型1长度即请求路径包含的所有字段的长度,其他类型的长度同理。
本实施例中,所述交互单元,还可以用于接收所述攻击检测模块12反馈的所述检测结果,并根据在所述检测结果为存在攻击行为时向相应的客户端发送HTTP拦截响应。具体的,接收数据包的格式定义可以如下所示:
总长度即包体的长度,不包含当前总长度参数的四个字节;攻击取值为0或1,0表示不是攻击,后面攻击等级、类型、攻击字符串长度、攻击字符串内容为空;1表示是攻击,后面的所有字段填写对应的值;攻击等级为1,2,3,分别表示对服务器的威胁程度为低、中、高;类型取值为1、2、3、4,分别表示请求路径、请求参数、请求头域、请求体。攻击字符串内容用于存储具体攻击字符串。解析及交互模块11收到检测结果之后,WAF即可根据检测结果和相关配置决定当前HTTP请求是阻塞还是放行。
本实施例中,所述网络攻击检测装置,还可以包括:日志收集模块113,用于记录检测结果以及与所述检测结果对应的拦截行为。即将攻击相关日志保存在本地或者发送给远程服务器,以便后续分析。
攻击检测模块12,用于接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
本实施例中,通过攻击检测模块12通过cosocket机制接收解析及交互模块11发送的解析后字段,并利用目标攻击类型对应的语义分析规则对上述解析后字段进行检测并生成检测结果。
本实施例中,所述攻击检测模块12,可以包括:请求解码单元121,用于利用所述目标攻击类型对应的解码方式对所述解析后字段进行解码,以得到解码后字段,以便利用所述目标攻击类型对应的语义分析规则对所述解码后字段进行检测并生成检测结果。由于直接对解析后字段进行攻击检测不能检测出编码绕过攻击,因此,为了有效解决HTTP请求通过字符串编码绕过攻击的问题,在攻击检测之前,对解析后字段进行解码,以此提高检测的准确度。
也就是说,请求解码单元121对交互单元112发送的数据包中的字段进行解码。为防止编码后的字符串绕过攻击检测,需要根据字段类型和待检测的攻击类型进行不同的编码组合,本实施例中公开了一种解码组合如下:
需要说明的是,解码组合为按顺序进行的,如第一行表示当对字段进行SQL注入攻击检测前,对字段进行的解码组合,解码组合中前一个解码函数的输出作为后一个解码函数的输入,即依次进行解码,为了避免黑客等将攻击字符串进行多次编码绕过攻击。其中,SQL Inject为SQL语句注入攻击;XSS为跨站脚本攻击;Command Inject为命令注入攻击,如bash等命令注入;Webshell为文本文件攻击,根据文本中的编程语言可分为php webshell、jsp webshell等;OGNL为Struts2框架中的OGNL表达式攻击;Spring el为Spring框架中的表达式攻击。其中,htmlEntityDecode表征将编码为HTML实体的字符进行解码;urlDecodeUni表征解码URL编码的输入字符串,同时支持Microsoft特定的%u编码;base64Decode表征解码Base64编码的字符串;cssDecode表征解码使用CSS 2.x转义规则编码的字符syndata.html#characters;jsDecode表征解码JavaScript转义序列。
本实施例中,所述攻击检测模块12,可以包括:语义分析单元122,用于利用不同的所述目标攻击类型对应的语义分析规则,依次对所述解析后字段进行检测并生成检测结果;其中,所述目标攻击类型包括SQL注入攻击、跨站脚本攻击、命令注入攻击、文本文件攻击、表达式攻击,所述语义分析规则包括词法分析、语法分析和语义分析。
本实施例中通过语义分析单元122对字符串依次进行已知的攻击类型进行检测,如对解析后的HTTP请求中的字段依次进行SQL注入检测、XSS检测等,在每次进行检测的时候进行语法语义分析,返回检测结果,如是否是攻击、攻击类型等信息,获得检测结果之后,将检测结果组合成交互单元112识别的数据包发送出去。语义分析单元可支持多种攻击类型的检测,如SQL注入攻击、跨站脚本攻击、命令注入攻击、文本文件攻击、表达式攻击等。语义分析的过程具体分为三个部分,词法分析、语法分析、语义分析。
可以理解的是,为解决ModSecurity运行速度慢的问题,引入语义分析单元。语义分析安全单元采用语法和语义分析的方式,对HTTP请求进行分析,判断是否符合XSS、SQLI等类型的攻击,返回攻击类型和攻击等级(如低、中、高,表示可能造成的后果的严重程度)。针对一个HTTP请求字段(如HTTP请求路径),语义分析安全模块一种类型的攻击检测仅需检测一次,而不像ModSecurity需要匹配多个包含XSS攻击特征的规则,进而提高检测速度,并且对于单个字符串而言,相比ModSecurity单纯依靠匹配特征的粗暴方式而言语义分析单元的准确度更高。
本实施例中,若所述目标攻击类型为SQL注入攻击,所述语义分析单元22可以包括:词法分析子单元,用于识别所述解析后字段中的符号和单词;语法分析子单元,用于根据SQL语句语法规则确定所述符号和所述单词分别与目标字符的映射关系,将所述解析后字段转义为字符串;语义分析子单元,用于利用预先基于AC算法构建的字典树与所述字符串进行匹配,若匹配成功则判定所述HTTP请求包含网络攻击行为。
以SQL攻击语义分析模块为例,先对字符串进行测法分析,比如SQL语句:“'UNIONALL DISTINCT SELECT NULL,NULL,NULL,NULL,NULL,NULL--”;首先进行词法分析,分析单个单词和符号,如识别出符号单引号(‘)、逗号(,)、注释符(--),识别单词UNION、ALL、DISTINCT、SELECT。其次对单词进行语法分析,根据SQL语句语法规则,对单词和字符做映射,如单引号映射为s,UNION ALL DISTINCT映射为U,SELECT映射为E,连续的NULL映射为v,注释符映射为c。映射结束之后,可以获得字符串sUEvc。由于SQL注入会提供一个特征比对库,具体通过利用AC(Aho-Corasick)算法构建的字典树进行匹配,如图3所示构建的一棵字典树,如果sUEvc是攻击,则会在字典树中匹配成功,如果匹配失败,则不是攻击字符串。由此完成SQL注入攻击的检测,当完成所有目标攻击类型的检测后生成相应的检测结果。由此,解决了WAF安全检测耗时过长阻塞程序运行导致系统运行速度较慢并发处理能力低的问题,以及攻击检测效率低的问题,以及输入字符串不进行解码导致漏防较多的问题。
由上可见,本实施例中通过将攻击检测模块与解析及交互模块拆分开来,并且两个模块之间的通信采用cosocket技术,可以实现非阻塞的同步操作,既能在发送HTTP请求之后非阻塞的等待检测结果,又能在获得检测结果之后同步之前的操作,即检测到结果之后决定当前请求时阻塞还是放行,继续执行请求的处理代码。将整个安全防护过程划分为不同模块,程序之间的交互采用非阻塞的异步方式,避免攻击检测模块的耗时影响请求解析及交互模块的运行,极大的提高了WAF的吞吐能力和容错能力,并且,结合语义识别攻击提高了攻击识别的准确性和效率,可实时、准确的识别网页攻击。
本申请实施例公开了一种具体的网络攻击检测方法,参见图4所示,该方法可以包括以下步骤:
步骤S11:通过解析及交互模块获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块。
本实施例中,所述通过解析及交互模块获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,可以包括:通过请求解析单元获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段;所述解析后字段包括请求路径字段、请求参数字段、请求头域字段和请求体字段。
本实施例中,所述利用cosocket机制将所述解析后字段发送给攻击检测模块,可以包括:通过交互单元按照预设组合配置对所述解析后字段进行组合,并添加相应的字段参数信息以得到待发送数据包,然后利用cosocket机制将所述待发送数据包发送给所述攻击检测模块。
本实施例中,还包括通过上述交互单元接收所述攻击检测模块反馈的所述检测结果,并根据在所述检测结果为存在攻击行为时向相应的客户端发送HTTP拦截响应。
步骤S12:通过攻击检测模块接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
本实施例中,所述通过攻击检测模块接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果,包括:利用所述目标攻击类型对应的解码方式对所述解析后字段进行解码,以得到解码后字段,以便利用所述目标攻击类型对应的语义分析规则对所述解码后字段进行检测并生成检测结果。
本实施例中,所述利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果,包括:利用不同的所述目标攻击类型对应的语义分析规则,依次对所述解析后字段进行检测并生成检测结果;其中,所述目标攻击类型包括SQL注入攻击、跨站脚本攻击、命令注入攻击、文本文件攻击、表达式攻击,所述语义分析规则包括词法分析、语法分析和语义分析。
本实施例中,若所述目标攻击类型为SQL注入攻击,所述利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果,包括:识别所述解析后字段中的符号和单词;根据SQL语句语法规则确定所述符号和所述单词分别与目标字符的映射关系,将所述解析后字段转义为字符串;利用预先基于AC算法构建的字典树与所述字符串进行匹配,若匹配成功则判定所述HTTP请求包含网络攻击行为。
完整的检测流程如图5所示,客户端利用浏览器等程序发送HTTP请求,并接收HTTP响应。WAF接收客户端的请求,并判断请求中是否存在攻击,如果存在攻击且设置攻击拦截,则直接拦截客户端的请求,通常发送HTTP响应码为403的响应;如果不存在攻击或未设置拦截,则将请求转发给后端服务端。服务端接收WAF进行检测后的HTTP流量,正常执行业务逻辑,返回业务响应。
由上可见,本实施例中通过解析及交互模块,获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;通过攻击检测模块,接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。可见,本实施例中通过将攻击检测模块与解析及交互模块拆分开来,并且两个模块之间的通信采用cosocket技术,可以实现非阻塞的同步操作,既能在发送HTTP请求之后非阻塞的等待检测结果,又能在获得检测结果之后同步之前的操作,即检测到结果之后决定当前请求时阻塞还是放行,继续执行请求的处理代码。将整个安全防护过程划分为不同模块,解析HTTP请求通过一个程序实现,攻击检测通过另一个程序实现,避免攻击检测模块的耗时影响请求解析及交互模块的运行,可大幅提高WAF的并发处理能力,并且,结合语义识别攻击提高了攻击识别的准确性和效率,可实时、准确的识别网页攻击。
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的网络攻击检测方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括HTTP请求在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的网络攻击检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的网络攻击检测方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种网络攻击检测方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种网络攻击检测装置,其特征在于,应用于Web应用防护系统,包括:
解析及交互模块,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;
所述攻击检测模块,用于接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
2.根据权利要求1所述的网络攻击检测装置,其特征在于,所述解析及交互模块,包括:
请求解析单元,用于获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段;所述解析后字段包括请求路径字段、请求参数字段、请求头域字段和请求体字段。
3.根据权利要求1所述的网络攻击检测装置,其特征在于,所述解析及交互模块,包括:
交互单元,用于按照预设组合配置对所述解析后字段进行组合,并添加相应的字段参数信息以得到待发送数据包,然后利用cosocket机制将所述待发送数据包发送给所述攻击检测模块。
4.根据权利要求3所述的网络攻击检测装置,其特征在于,所述交互单元,还用于接收所述攻击检测模块反馈的所述检测结果,并根据在所述检测结果为存在攻击行为时向相应的客户端发送HTTP拦截响应。
5.根据权利要求1所述的网络攻击检测装置,其特征在于,所述攻击检测模块,包括:
请求解码单元,用于利用所述目标攻击类型对应的解码方式对所述解析后字段进行解码,以得到解码后字段,以便利用所述目标攻击类型对应的语义分析规则对所述解码后字段进行检测并生成检测结果。
6.根据权利要求1至5任一项所述的网络攻击检测装置,其特征在于,所述攻击检测模块,包括:
语义分析单元,用于利用不同的所述目标攻击类型对应的语义分析规则,依次对所述解析后字段进行检测并生成检测结果;
其中,所述目标攻击类型包括SQL注入攻击、跨站脚本攻击、命令注入攻击、文本文件攻击、表达式攻击,所述语义分析规则包括词法分析、语法分析和语义分析。
7.根据权利要求6所述的网络攻击检测装置,其特征在于,若所述目标攻击类型为SQL注入攻击,所述语义分析单元包括:
词法分析子单元,用于识别所述解析后字段中的符号和单词;
语法分析子单元,用于根据SQL语句语法规则确定所述符号和所述单词分别与目标字符的映射关系,将所述解析后字段转义为字符串;
语义分析子单元,用于利用预先基于AC算法构建的字典树与所述字符串进行匹配,若匹配成功则判定所述HTTP请求包含网络攻击行为。
8.一种网络攻击检测方法,其特征在于,应用于Web应用防护系统,包括:
通过解析及交互模块获取HTTP请求,并按照目标解析规则对所述HTTP请求进行解析以得到解析后字段,然后利用cosocket机制将所述解析后字段发送给攻击检测模块;
通过攻击检测模块接收所述解析后字段,并利用目标攻击类型对应的语义分析规则对所述解析后字段进行检测并生成检测结果。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求8所述的网络攻击检测方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求8所述的网络攻击检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907958.9A CN113645224B (zh) | 2021-08-09 | 2021-08-09 | 一种网络攻击检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907958.9A CN113645224B (zh) | 2021-08-09 | 2021-08-09 | 一种网络攻击检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645224A true CN113645224A (zh) | 2021-11-12 |
CN113645224B CN113645224B (zh) | 2022-12-09 |
Family
ID=78420223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110907958.9A Active CN113645224B (zh) | 2021-08-09 | 2021-08-09 | 一种网络攻击检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645224B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301697A (zh) * | 2021-12-29 | 2022-04-08 | 山石网科通信技术股份有限公司 | 数据攻击检测方法及装置 |
CN114363023A (zh) * | 2021-12-23 | 2022-04-15 | 国家电网有限公司 | 一种Web安全防护系统实施及策略调优方法、系统 |
CN114500053A (zh) * | 2022-01-27 | 2022-05-13 | 安徽华云安科技有限公司 | 一种代码注入检测方法、装置、电子设备及可读存储介质 |
CN115086026A (zh) * | 2022-06-14 | 2022-09-20 | 盐城工业职业技术学院 | 网络安全分析系统 |
CN115801456A (zh) * | 2023-01-31 | 2023-03-14 | 天翼云科技有限公司 | 网络攻击检测方法、装置、电子设备及存储介质 |
CN115913789A (zh) * | 2023-02-21 | 2023-04-04 | 北京微步在线科技有限公司 | 一种网络攻击的识别方法及装置 |
CN117640259A (zh) * | 2024-01-25 | 2024-03-01 | 武汉思普崚技术有限公司 | 一种脚本分步检测方法、装置、电子设备及介质 |
CN117640259B (zh) * | 2024-01-25 | 2024-06-04 | 武汉思普崚技术有限公司 | 一种脚本分步检测方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833270A (zh) * | 2012-09-18 | 2012-12-19 | 山石网科通信技术(北京)有限公司 | Sql注入攻击的检测方法、装置和具有该装置的防火墙 |
CN107426211A (zh) * | 2017-07-25 | 2017-12-01 | 北京长亭科技有限公司 | 网络攻击的检测方法及装置、终端设备和计算机存储介质 |
CN109167754A (zh) * | 2018-07-26 | 2019-01-08 | 北京计算机技术及应用研究所 | 一种网络应用层安全防护系统 |
CN110515975A (zh) * | 2019-07-17 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 风险检测系统、方法以及装置 |
CN110636085A (zh) * | 2019-11-12 | 2019-12-31 | 中国移动通信集团广西有限公司 | 基于流量的攻击检测方法、装置及计算机可读存储介质 |
WO2021008028A1 (zh) * | 2019-07-18 | 2021-01-21 | 平安科技(深圳)有限公司 | 网络攻击源定位及防护方法、电子设备及计算机存储介质 |
-
2021
- 2021-08-09 CN CN202110907958.9A patent/CN113645224B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833270A (zh) * | 2012-09-18 | 2012-12-19 | 山石网科通信技术(北京)有限公司 | Sql注入攻击的检测方法、装置和具有该装置的防火墙 |
CN107426211A (zh) * | 2017-07-25 | 2017-12-01 | 北京长亭科技有限公司 | 网络攻击的检测方法及装置、终端设备和计算机存储介质 |
CN109167754A (zh) * | 2018-07-26 | 2019-01-08 | 北京计算机技术及应用研究所 | 一种网络应用层安全防护系统 |
CN110515975A (zh) * | 2019-07-17 | 2019-11-29 | 阿里巴巴集团控股有限公司 | 风险检测系统、方法以及装置 |
WO2021008028A1 (zh) * | 2019-07-18 | 2021-01-21 | 平安科技(深圳)有限公司 | 网络攻击源定位及防护方法、电子设备及计算机存储介质 |
CN110636085A (zh) * | 2019-11-12 | 2019-12-31 | 中国移动通信集团广西有限公司 | 基于流量的攻击检测方法、装置及计算机可读存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363023A (zh) * | 2021-12-23 | 2022-04-15 | 国家电网有限公司 | 一种Web安全防护系统实施及策略调优方法、系统 |
CN114301697A (zh) * | 2021-12-29 | 2022-04-08 | 山石网科通信技术股份有限公司 | 数据攻击检测方法及装置 |
CN114500053A (zh) * | 2022-01-27 | 2022-05-13 | 安徽华云安科技有限公司 | 一种代码注入检测方法、装置、电子设备及可读存储介质 |
CN114500053B (zh) * | 2022-01-27 | 2023-12-05 | 安徽华云安科技有限公司 | 一种代码注入检测方法、装置、电子设备及可读存储介质 |
CN115086026A (zh) * | 2022-06-14 | 2022-09-20 | 盐城工业职业技术学院 | 网络安全分析系统 |
CN115801456A (zh) * | 2023-01-31 | 2023-03-14 | 天翼云科技有限公司 | 网络攻击检测方法、装置、电子设备及存储介质 |
CN115801456B (zh) * | 2023-01-31 | 2023-06-23 | 天翼云科技有限公司 | 网络攻击检测方法、装置、电子设备及存储介质 |
CN115913789A (zh) * | 2023-02-21 | 2023-04-04 | 北京微步在线科技有限公司 | 一种网络攻击的识别方法及装置 |
CN115913789B (zh) * | 2023-02-21 | 2023-05-26 | 北京微步在线科技有限公司 | 一种网络攻击的识别方法及装置 |
CN117640259A (zh) * | 2024-01-25 | 2024-03-01 | 武汉思普崚技术有限公司 | 一种脚本分步检测方法、装置、电子设备及介质 |
CN117640259B (zh) * | 2024-01-25 | 2024-06-04 | 武汉思普崚技术有限公司 | 一种脚本分步检测方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113645224B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113645224B (zh) | 一种网络攻击检测方法、装置、设备及存储介质 | |
US9413776B2 (en) | System for finding code in a data flow | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
US20070016897A1 (en) | Methods, apparatus and computer programs for optimized parsing and service invocation | |
CN107862039B (zh) | 网页数据获取方法、系统和数据匹配推送方法 | |
CN111835777B (zh) | 一种异常流量检测方法、装置、设备及介质 | |
CN109862021B (zh) | 威胁情报的获取方法及装置 | |
CN105302885B (zh) | 一种全文数据的提取方法和装置 | |
CN110022308B (zh) | 一种物联网设备识别方法、系统、电子设备及存储介质 | |
CN106909846B (zh) | 一种基于虚拟解析的漏洞检测方法及其装置 | |
AU2018298640B2 (en) | Determination device, determination method, and determination program | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN113660250B (zh) | 基于web应用防火墙的防御方法、装置、系统和电子装置 | |
CN114095274B (zh) | 一种攻击研判方法及装置 | |
CN114465741B (zh) | 一种异常检测方法、装置、计算机设备及存储介质 | |
CN115580494B (zh) | 一种弱口令的检测方法、装置和设备 | |
WO2020082763A1 (zh) | 基于决策树的钓鱼网站检测方法、装置及计算机设备 | |
JP6548823B2 (ja) | 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション | |
CN104317847A (zh) | 一种识别网络文字信息的语种的方法及系统 | |
CN107426211B (zh) | 网络攻击的检测方法及装置、终端设备和计算机存储介质 | |
CN108259416B (zh) | 检测恶意网页的方法及相关设备 | |
CN114900492B (zh) | 异常邮件检测方法、装置、系统与计算机可读存储介质 | |
US20230353595A1 (en) | Content-based deep learning for inline phishing detection | |
CN115913655A (zh) | 一种基于流量分析和语义分析的Shell命令注入检测方法 | |
CN113051876A (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 |