CN110855676B - 网络攻击的处理方法、装置及存储介质 - Google Patents
网络攻击的处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110855676B CN110855676B CN201911121421.9A CN201911121421A CN110855676B CN 110855676 B CN110855676 B CN 110855676B CN 201911121421 A CN201911121421 A CN 201911121421A CN 110855676 B CN110855676 B CN 110855676B
- Authority
- CN
- China
- Prior art keywords
- attack
- request
- character string
- network
- string
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 23
- 230000011218 segmentation Effects 0.000 claims description 22
- 235000014510 cooky Nutrition 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000000354 decomposition reaction Methods 0.000 claims description 10
- 230000014509 gene expression Effects 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 4
- 238000002347 injection Methods 0.000 description 20
- 239000007924 injection Substances 0.000 description 20
- 238000000605 extraction Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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/1441—Countermeasures against malicious traffic
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种网络攻击的处理方法、装置、电子设备及存储介质;方法包括:获取防火墙拦截的网络攻击请求;对所获取的网络攻击请求进行分解,并将分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串;对所述攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理;将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换为随机字符串;将替换后的攻击部分确定为攻击载荷。通过本发明,能够有效地从网络攻击请求中提取出攻击载荷,从而支持开展针对攻击载荷的应用。
Description
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种网络攻击的处理方法、装置、电子设备及存储介质。
背景技术
近年来,随着网络技术的不断发展,网络(Web)应用给人们的生活带来了便利,但同时,Web应用也成为了网络攻击的重要目标。为了防御各种Web攻击,通常会在Web应用前面部署Web应用防火墙(WAF,Web Application Firewall),其通过检测HTTP/HTTPS报文中的特征,来对恶意的攻击请求进行阻断。
然而,相关技术提供的Web应用防火墙只会记录完整的网络攻击请求和攻击类型等信息,无法给出网络攻击请求中用于进行攻击的攻击载荷,进而导致无法开展对于攻击载荷的应用。
发明内容
本发明实施例提供一种网络攻击的处理方法、装置、电子设备及存储介质,能够有效地从网络攻击请求中提取出攻击载荷,从而支持开展针对攻击载荷的应用。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种网络攻击的处理方法,包括:
获取防火墙拦截的网络攻击请求;
对所获取的网络攻击请求进行分解,并将分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串;
对所述攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理;
将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;
将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换为随机字符串;
将替换后的攻击部分确定为攻击载荷。
本发明实施例提供一种网络攻击的处理装置,包括:
获取模块,用于获取防火墙拦截的网络攻击请求;
分解模块,用于对获取模块获取的网络攻击请求进行分解;
匹配模块,用于对分解模块分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串;
泛化模块,用于对匹配模块确定出的攻击字符串进行泛化处理;
分割模块,用于对泛化模块泛化处理后的攻击字符串进行分割;
所述匹配模块,还用于将分割模块分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;
所述匹配模块,还用于将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换成随机字符串;
确定模块,用于将替换后的攻击部分确定为攻击载荷。
上述方案中,所述获取模块,还用于获取所述网络攻击请求包括的以下内容至少之一:请求客户端的互联网协议地址、请求头、请求体的内容、命中的拦截规则类型、以及拦截规则的身份标识。
上述方案中,所述分解模块,还用于对所述网络攻击请求包括的请求头、Cookies、获取Get参数、以及提交Post参数进行分解,并以键值对的字典形式保存分解后的各个部分。
上述方案中,所述匹配模块,还用于基于正则表达式,将分解后的各个部分逐个与攻击判别数据库中的攻击规则进行匹配。
上述方案中,所述泛化模块,还用于对所述攻击字符串中的内容进行以下的至少一个处理:
将连续的空白字符替换成一个空格;
将数字替换成零;
将以超文本传输协议格式起始的统一资源定位符字符串替换成链接字符串;
将由连续的数字和大小字字母随机组成的哈希串替换成哈希字符串。
上述方案中,所述分割模块,还用于基于预设的特殊符号为分割点,将泛化处理后的攻击字符串进行分割处理。
上述方案中,所述匹配模块,还用于正序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第一关键词时,进行回溯,将回溯到的所述第一关键词之前的相邻符号作为所述攻击部分的开始位置;
倒序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第二关键词时,进行回溯,将回溯到的所述第二关键词之后的相邻符号作为所述攻击部分的结束位置;
其中,所述第一关键词为正序遍历所述攻击字符串时第一个匹配到的关键词,所述第二关键词为倒序遍历所述攻击字符串时第一个匹配到的关键词。
上述方案中,所述装置还包括存储模块,用于将所述攻击载荷存储到区块链网络中。
上述方案中,所述装置还包括响应模块,用于响应于基于所述攻击载荷开展应用的请求,从所述区块链网络中获取被请求的攻击载荷,并发送到应用服务器,以使
所述应用服务器基于所获取的攻击载荷执行以下应用至少之一:
基于所述攻击载荷对防火墙进行测试;
基于所述攻击载荷实现对网络攻击请求的内容分析;
对所述攻击载荷进行打标,作为训练识别网络攻击请求的机器学习模型的数据集。
本发明实施例提供一种网络攻击的处理设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的网络攻击的处理方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的网络攻击的处理方法。
本发明实施例具有以下有益效果:
通过对防火墙拦截的网络攻击请求进行进一步的分解、匹配、泛化处理、分割处理、以及替换处理,从而,能够有效地从网络攻击请求中提取出攻击载荷,从而支持开展针对攻击载荷的应用。
附图说明
图1是本发明实施例提供的网络攻击的处理系统的一个可选的架构示意图;
图2是本发明实施例提供的网络攻击的处理设备的一个可选的结构示意图;
图3是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图;
图4是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图;
图5是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图;
图6是本发明实施例提供的网络攻击的处理系统的一个可选的架构示意图;
图7是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)Web应用防火墙(WAF,Web Application Firewall):也称网站应用级入侵防御系统,其通过检测超文本传输协议(HTTP,Hyper Text Transfer Protocol)或超文本传输安全协议(HTTPS,Hyper Text Transfer Protocol over SecureSocket Layer)报文中的特征,来对恶意的攻击请求进行阻断。
2)攻击载荷(攻击payload):指恶意攻击请求中,用于进行攻击的特定的字符或代码片段。
发明人在实施本发明实施例的过程中发现,相关技术在进行网络攻击处理时,通常采用无监督学习的方法,来识别出同一通用网关接口(CGI,Common Gateway Interface)下不同参数请求的异常程度,从而提取出恶意攻击的参数。然而,该方案仅仅停留在提取出恶意攻击的参数,并没有对提取出的恶意攻击的参数进行进一步的处理。
此外,相关技术也提供了在提取出攻击参数后,将攻击参数中第一个非正常字符开始至最后一个字符构成的字符串作为攻击特征的方案。然而,该方案在某些情况下也会存在攻击payload提取不干净的问题。例如,对于形如“123-456-789'or'1'='”的攻击参数,采用该方案提取出的攻击特征为“-456-789'or'1'='”。可见,提取出的攻击特征中仍存在随机变量“-456-789”,提取的攻击payload不干净。
另外,相关技术还提供了通过人工进行提取、归纳和维护的方案,这在用于WAF测试的场景下比较常见,例如,在一些开源的payload库中。然而,通过人工的方式存在维护成本高、效率低等缺点,特别是针对自动化扫描的情况,人工进行攻击payload提取的成本更高。
对此,考虑在获取防火墙拦截的网络攻击请求后,可以对所获取的网络攻击请求进行进一步的分析,提取出攻击payload,而提取的攻击payload可以用于对WAF进行测试、基于攻击payload实现拦截内容的分析、对攻击payload进行打标,作为训练识别网络攻击请求的机器学习模型的数据集等,故可以获取防火墙拦截的网络攻击请求;对所获取的网络攻击请求进行分解,并将分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串;对所述攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理;将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换为随机字符串;将替换后的攻击部分确定为攻击载荷。
鉴于此,本发明实施例提供一种网络攻击的处理方法、装置、电子设备和存储介质,能够有效地从网络攻击请求中提取出攻击载荷,从而支持开展针对攻击载荷的应用。
下面说明本发明实施例提供的网络攻击的处理设备的示例性应用,本发明实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器或服务器集群,还可以采用由用户终端和服务器协同的方式实施。下面,将说明设备实施为服务器时的示例性应用。
参见图1,图1是本发明实施例提供的网络攻击的处理系统100的一个可选的架构示意图。如图1所示,用户(例如,黑客)通过用户终端400(示例性示出了用户终端400-1和用户终端400-2)上的浏览器410发送HTTP请求,该HTTP请求通过网络300被发送至Web应用防火墙500,网络300可以是广域网或者局域网,又或者是二者的组合。Web应用防火墙500在接收到用户终端400发送的HTTP请求后,会对所接收的HTTP报文中的特征进行检测,判断是否与攻击数据库中的攻击特征匹配,当匹配时,确定为恶意攻击的HTTP请求,并进行拦截。服务器200获取Web应用防火墙500拦截的恶意攻击的HTTP请求,对所获取的HTTP请求进行分解,并将分解后的HTTP请求与攻击判别数据库进行匹配,以确定出攻击字符串。接着,服务器200对攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理,然后,将分割处理后的攻击字符串与关键词列表进行匹配,以确定出攻击字符串中攻击部分。最后,服务器200将确定出的攻击部分与关键词列表进行再次匹配,并将攻击部分中不在关键词列表中的字符串替换为随机字符串,将替换后的攻击部分确定为攻击载荷。
参见图2,图2是本发明实施例提供的服务器200的结构示意图,以网络攻击的处理设备实施为服务器200为例,图2所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220和用户接口230。服务器200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还包括一个或多个输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器250旨在包括任意适合类型的存储器。
在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块253,用于经由一个或多个与用户接口230相关联的输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块254,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的网络攻击的处理装置可以采用软件方式实现,图2示出了存储在存储器250中的网络攻击的处理装置255,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块2551、分解模块2552、匹配模块2553、泛化模块2554、分割模块2555、确定模块2556、存储模块2557和响应模块2558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的网络攻击的处理装置可以采用硬件方式实现,作为示例,本发明实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的网络攻击的处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面将结合本发明实施例提供的网络攻击的处理设备实施为服务器时的示例性应用,说明本发明实施例提供的网络攻击的处理方法。
参见图3,图3是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
在步骤S301中,服务器获取防火墙拦截的网络攻击请求。
这里,所述网络攻击请求包括结构化查询语言(SQL,Structured QueryLanguage)注入攻击请求、跨站脚本攻击请求(XSS,Cross Site Scripting)、以及跨站请求伪造攻击请求(CSRF,Cross-Site Request Forgery)等各种可能导致Web服务器拒绝服务的Web攻击方式。
示例的,以SQL注入攻击请求为例,服务器获取的一个SQL注入攻击请求示例如下:
GET
/cgi-bin/session/checklogin?appid=wxcbc3ab3807acb685&openid=oA0GbjokU2EOG3o_TvAmBNpvodlE&fskey=v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmfWHERE 8610=8610AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1 HTTP/1.1
Host:ifzq.gtimg.cn
User-Agent:Go-http-client/1.1
Content-Type:application/json;charset=utf-8
Cookie:
Accept-Encoding:gzip
其中,Host是主机和端口,User-Agent是客户端浏览器的名称,Content-Type是文档所属的多用途互联网邮件扩展类型(MIME,Multipurpose Internet Mail Extensions),Cookie是保存的Cookie对象,Accept-Encoding是浏览器知道如何解码的数据编码类型。
在步骤S302中,服务器对所获取的网络攻击请求进行分解,并将分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串。
在一些实施例中,服务器在获取到完整的HTTP请求后,对HTTP请求中包括的请求头、Cookies、获取Get参数、以及提交Post参数进行分解,并以键值对的字典形式保存分解后的各个部分。
示例的,以上述SQL注入攻击请求为例,将SQL注入攻击请求中包括的Get参数分解成appid、openid、以及fskey,并将appid、openid、以及fskey作为键,将其对应的参数作为值进行保存,结果如下:
{'appid':['wxcbc3ab3807acb685'],'openid':['oA0GbjokU2EOG3o_TvAmBNpvodlE'],'fskey':["v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1"]}
在另一些实施例中,在进行分解的同时,对分解出来的内容,通过其结构进行判断:如果以{"开头,可能为json串,尝试使用json串的格式进行解析;如果是XML形式,或者URL形式,则进一步的进行分解,以便尽可能地使得在不分割攻击字符串的前提下,完整的定位到攻击字符串的位置。
分解结束后,针对分解后的各个部分,采用正则表达式的形式,逐个进行匹配,以确定攻击字符串。
示例的,以上述分解后的SQL注入攻击请求为例,在确定攻击字符串时,将分解后的SQL注入攻击请求与攻击判别数据库中的攻击规则进行匹配,确定出匹配的位置。在进行匹配时,每一类攻击的攻击规则都有对应的攻击匹配模式,这些攻击匹配模式可以是一些特征的正则表达式。将分解后的各个部分与攻击判别数据库中的攻击匹配模式进行匹配,就能返回匹配的位置,该匹配位置对应的参数就是攻击字符串。例如,将上述分解后的SQL注入攻击请求与攻击判别数据库进行匹配时,返回的匹配位置为fskey,则对应确定出的攻击字符串为:
v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1
在步骤S303中,服务器对所述攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理。
参见图4,图4是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图,在一些实施例中,图3示出的步骤S303可以通过图4示出的步骤S3031至步骤S3035实现,将结合各步骤进行说明。
这里,在确定出攻击字符串后,对攻击字符串中的内容进行一定的处理,以便于对攻击字符串中的一些随机变化的值进行统一。
步骤S3031:将连续的空白字符替换成一个空格。
当确定出的攻击字符串中存在连续的空白字符时,将这些连续的空白字符替换成一个空格。
步骤S3032:将数字替换成零。
当确定出的攻击字符串中存在数字时,将数字均替换成零。
示例的,假设确定出的攻击字符串为:
v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1
则执行步骤S3032后的结果为:
v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0)))wxmf)limit 0
其中,数字8610、4、1均被替换成0。
步骤S3033:将以超文本传输协议格式起始的统一资源定位符字符串替换成链接字符串。
当确定出的攻击字符串中存在形如HTTP://开头的URL字符串时,将其替换成链接字符串{link}。
步骤S3034:将由连续的数字和大小写字母随机组成的哈希串替换成哈希字符串。
当确定出的攻击字符串中存在由连续的数字和大小写字母随机组成的哈希串时,将其替换成哈希字符串{hash}。
示例的,假设确定出的攻击字符串为:
v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1
则执行步骤S3034后的结果为:
{hash}')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1
其中,由连续的数字和大小写字母随机组成的哈希串v0ae789cc105c8d00bfcf5e7fe13a88b被替换成哈希字符串{hash}。
需要说明的是,步骤S3031至步骤S3034不限于以上述的先后顺序执行,可以以任意的先后顺序执行或同时执行。
步骤S3035:基于预设的特殊符号为分割点,将泛化处理后的攻击字符串进行分割处理。
在对攻击字符串中的内容进行泛化处理后,基于预设的特殊符号作为分割点,将其进行进一步的分割处理,其中,所述预设的特殊符号包括::/+&\.!`\|'"-*();@#$<>,{}=。
示例的,以上述泛化处理后的攻击字符串为例,进行分割处理后的结果如下:
["{hash}","'",')',”,'AS',”,'wxmf',”,'WHERE',”,'0','=','0',”,'AND',”,'(','SELECT','*','FROM','(','SELECT','(','SLEEP','(','0',')',')',')','wxmf',')',”,'limit',”,'0']
在步骤S304中,服务器将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分。
在一些实施例中,由于步骤S302确定出的攻击字符串中可能还存在与攻击无关的随机参数,因此需要对确定出的攻击字符串进行进一步的处理,删除与攻击无关的随机参数,仅保留用于攻击的部分。
参见图5,图5是本发明实施例提供的网络攻击的处理方法的一个可选的流程示意图,在一些实施例中,图3示出的步骤S304可以通过图5示出的步骤S3041至步骤S3042实现,将结合各步骤进行说明。
在一些实施例中,上述关键词列表可以通过以下方式得到:示例的,首先对从WAF中提取的攻击字符串进行去重,然后,针对不同的攻击类型,进行词频的统计,提取出一些攻击字符串出现的高频词,同时,也可以从一些文档中收集应用的关键词,形成一个关键词列表,如SQL注入攻击的关键词列表中,包含了xor、insert、limit、load_file、floor、update、updatexml等SQL注入常用的关键词组。
步骤S3041:正序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第一关键词时,进行回溯,将回溯到的所述第一关键词之前的相邻符号作为所述攻击部分的开始位置;其中,所述第一关键词为正序遍历所述攻击字符串时第一个匹配到的关键词。
示例的,以上述分割处理后的攻击字符串为例,将上述分割处理后的攻击字符串从前往后进行正序遍历,匹配到第一关键词AS,进行回溯,保留第一关键词AS前的相邻符号'),将其作为用于攻击的部分的实际开始位置,并删除符号')前面与攻击无关的部分。
步骤S3042:倒序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第二关键词时,进行回溯,将回溯到的所述第二关键词之后的相邻符号作为所述攻击部分的结束位置;其中,所述第二关键词为倒序遍历所述攻击字符串时第一个匹配到的关键词。
示例的,以上述分割处理后的攻击字符串为例,将上述分割处理后的攻击字符串从后往前进行倒序遍历,匹配到第二关键词limit,进行回溯,保留第二关键词limit后的相邻符号0,将其作为用于攻击的部分的实际结束位置,并删除符号0后面与攻击无关的部分。如此,上述分割处理后的攻击字符串经步骤S3041至步骤S3042,得到的攻击部分如下:
')AS wxmf WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0)))wxmf)limit 0
其中,与攻击无关的哈希字符串{hash}被删除,仅保留了用于攻击的部分。
需要说明的是,这里之所以不以关键词作为攻击部分的开始位置和结束位置,而是以关键词前、后的符号作为攻击部分的实际开始位置和实际结束位置,是为了保留原来的攻击特征。
在步骤S305中,服务器将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换为随机字符串。
在一些实施例中,经步骤S3041至步骤S3042确定出的攻击部分中可能还存在一些随机变化的值,因此,需要对这些随机变化的值进行进一步的统一。
示例的,以上述确定出的攻击部分为例,将其与SQL注入攻击请求关键词列表进行再次匹配,将攻击部分中不在SQL注入攻击请求关键词列表中的字符串替换成随机字符串{rand},表示该位置的内容可能不固定,存在参数随机的可能。如此,上述攻击部分经再次匹配和替换后的结果如下:
')AS{rand}WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0))){rand})limit 0
其中,字符串wxmf被替换成随机字符串{rand}。
在另一些实施例中,当攻击部分中不在关键词列表的字符串位于所述攻击部分的开始位置或结束位置时,则将该字符串直接删除。
在步骤S306中,服务器将替换后的攻击部分确定为攻击载荷。
这里,经步骤S301至步骤S305,服务器能够从网络攻击请求中提取出用于进行攻击的攻击载荷,接着,服务器将提取出的攻击载荷对应一个数据包,并将其存储到数据库中。随后,可以基于所存储的攻击载荷开展各种应用,例如:基于所存储的攻击载荷对WAF进行测试、基于所存储的攻击载荷对防火墙拦截的内容进行分析等。
在另一些实施例中,服务器也可以将提取出的攻击载荷保存到区块链(Blockchain)中。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链网络可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链网络的底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参见图6,图6是本发明实施例提供的网络攻击的处理系统的一个可选的架构示意图。如图6所示,用户(例如,黑客)通过用户终端400上的浏览器410发送HTTP请求,该HTTP请求通过网络300被发送至Web应用防火墙500,服务器200从Web应用防火墙500拦截的恶意攻击的HTTP请求中提取出攻击载荷后,将攻击载荷上链存储,即将攻击载荷保存在区块链网络600中(示例性示出了区块链网络600包括的节点610-1、节点610-2和节点610-3)。当应用服务器700向服务器200请求攻击载荷时,服务器200从区块链网络600中获取已保存的攻击载荷并返回给应用服务器700,应用服务器700接收服务器200发送的攻击载荷,并基于所接收的攻击载荷开展各种应用。
在另一些实施例中,服务器200也可以将攻击载荷存储到数据库中,将对应的哈希值保存在区块链网络600中。应用服务器700向数据库获取攻击载荷,并通过服务器200向区块链网络600请求对应的哈希值,如果哈希值验证一致,则基于数据库返回的攻击载荷开展各种应用。
下面继续说明本发明实施例提供的网络攻击的处理装置255实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器250的网络攻击的处理装置255中的软件模块可以包括:获取模块2551、分解模块2552、匹配模块2553、泛化模块2554、分割模块2555、确定模块2556、存储模块2557和响应模块2558。
所述获取模块2551,用于获取防火墙拦截的网络攻击请求;
所述分解模块2552,用于对获取模块2551获取的网络攻击请求进行分解;
所述匹配模块2553,用于对分解模块2552分解后的网络攻击请求与攻击判别数据库进行匹配,以确定攻击字符串;
所述泛化模块2554,用于对匹配模块2553确定出的攻击字符串进行泛化处理;
所述分割模块2555,用于对泛化模块2554泛化处理后的攻击字符串进行分割;
所述匹配模块2553,还用于将分割模块2555分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;
所述匹配模块2553,还用于将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换成随机字符串;
所述确定模块2556,用于将替换后的攻击部分确定为攻击载荷。
在一些实施例中,所述获取模块2551,还用于获取所述网络攻击请求包括的以下内容至少之一:请求客户端的互联网协议地址、请求头、请求体的内容、命中的拦截规则类型、以及拦截规则的身份标识。
在一些实施例中,所述分解模块2552,还用于对所述网络攻击请求包括的请求头、Cookies、获取Get参数、以及提交Post参数进行分解,并以键值对的字典形式保存分解后的各个部分。
在一些实施例中,所述匹配模块2553,还用于基于正则表达式,将分解后的各个部分逐个与攻击判别数据库中的攻击规则进行匹配。
在一些实施例中,所述泛化模块2554,还用于对所述攻击字符串中的内容进行以下的至少一个处理:
将连续的空白字符替换成一个空格;
将数字替换成零;
将以超文本传输协议格式起始的统一资源定位符字符串替换成链接字符串;
将由连续的数字和大小字字母随机组成的哈希串替换成哈希字符串。
在一些实施例中,所述分割模块2555,还用于基于预设的特殊符号为分割点,将泛化处理后的攻击字符串进行分割处理。
在一些实施例中,所述匹配模块2553,还用于正序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第一关键词时,进行回溯,将回溯到的所述第一关键词之前的相邻符号作为所述攻击部分的开始位置;
倒序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第二关键词时,进行回溯,将回溯到的所述第二关键词之后的相邻符号作为所述攻击部分的结束位置;
其中,所述第一关键词为正序遍历所述攻击字符串时第一个匹配到的关键词,所述第二关键词为倒序遍历所述攻击字符串时第一个匹配到的关键词。
在一些实施例中,所述装置还包括存储模块2557,用于将所述攻击载荷存储到区块链网络中。
在一些实施例中,所述装置还包括响应模块2558,用于响应于基于所述攻击载荷开展应用的请求,从所述区块链网络中获取被请求的攻击载荷,并发送到应用服务器,以使
所述应用服务器基于所获取的攻击载荷执行以下应用至少之一:
基于所述攻击载荷对防火墙进行测试;
基于所述攻击载荷实现对网络攻击请求的内容分析;
对所述攻击载荷进行打标,作为训练识别网络攻击请求的机器学习模型的数据集。
需要说明的是,本发明实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明实施例提供的网络攻击的处理装置中未尽的技术细节,可以根据图3-7任一附图的说明而理解。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
相关技术在进行攻击payload提取时,通常采用无监督学习的方法,来识别出同一通用网关接口下不同参数请求的异常程序,从而提取出恶意攻击的参数。然而,该方案仅仅停留在提取出恶意攻击的参数,并没有对提取出的恶意攻击的参数进行进一步的处理。
此外,相关技术也提供了在提取出攻击参数后,将攻击参数中第一个非正常字符开始至最后一个字符构成的字符串作为攻击特征的方案。然而,该方案在某些情况下也会存在攻击payload提取不干净的问题。例如,对于形如“123-456-789'or'1'='”的攻击参数,采用该方案提取出的攻击特征为“-456-789'or'1'='”。可见,提取出的攻击特征中仍存在随机变量“-456-789”,提取的攻击payload不干净。
另外,相关技术还提供了通过人工进行提取、归纳和维护的方案,这在用于WAF测试的场景下比较常见,例如,一些开源的payload库。然而,通过人工的方式存在维护成本高、效率低等缺点,特别是针对自动化扫描的情况,人工进行攻击payload提取的成本更高。
本发明实施例提供的网络攻击处理方法,能够从WAF拦截的完整HTTP请求报文中,提取出特定的攻击payload。在提取出特定的攻击payload后,可以用来进行WAF的测试、拦截内容的分析、以及对攻击payload进行人工打标,作为机器学习的数据集等。
参见图7,图7是本发明实施例提供的网络攻击处理方法的一个可选的流程示意图。如图7所示,所述方法包括以下步骤:
步骤S701:服务器从WAF的拦截日志中拉取恶意请求。
这里,拉取恶意请求包括从WAF的拦截日志中拉取完整的HTTP请求,所述HTTP请求包括请求的客户端IP、请求头、请求体的内容、命中的拦截规则类型、以及拦截规则的ID等。
示例的,以SQL注入攻击请求为例,服务器拉取的恶意请求如下:
GET
/cgi-bin/session/checklogin?appid=wxcbc3ab3807acb685&openid=oA0GbjokU2EOG3o_TvAmBNpvodlE&fskey=v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmfWHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1 HTTP/1.1
Host:ifzq.gtimg.cn
User-Agent:Go-http-client/1.1
Content-Type:application/json;charset=utf-8
Cookie:
Accept-Encoding:gzip
其中,Host是主机和端口,User-Agent是客户端浏览器的名称,Content-Type是文档所属的多用途互联网邮件扩展类型(MIME,Multipurpose Internet Mail Extensions),Cookie是保存的Cookie对象,Accept-Encoding是浏览器知道如何解码的数据编码类型。
步骤S702:服务器对从WAF的拦截日志中拉取的恶意请求进行分解。
这里,服务器对经步骤S701拉取的恶意请求进行分解,包括对请求头、Cookies、GET参数、POST参数进行分解,并以key-value键-值对的字典形式保存分解后的各个部分。在进行分解的同时,对分解出来的内容,通过其结构进行判断:如果以{"开头,可能为json串,尝试使用json串的格式进行解析;如果是XML形式,或者URL形式,则进一步的进行分解,以便尽可能地使得在不分割攻击字符串的前提下,完整的定位到攻击字符串的位置。
示例的,以上述SQL注入攻击请求为例,将其进行分解后得到的结果如下:
{'appid':['wxcbc3ab3807acb685'],'openid':['oA0GbjokU2EOG3o_TvAmBNpvodlE'],'fskey':["v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1"]}
步骤S703:服务器将分解后的恶意请求与攻击判别数据库进行匹配,判断是否存在攻击参数,若存在,则执行步骤S704;若不存在,结束提取。
这里,针对分解后的各个部分,采用正则表达式的形式,逐个进行匹配,以确定出攻击字符串的位置。
示例的,以上述分解后的SQL注入攻击请求为例,调用攻击判别模块,使用SQL注入的正则表达式对其进行匹配,匹配到的攻击字符串如下:
v0ae789cc105c8d00bfcf5e7fe13a88b')AS wxmf WHERE 8610=8610 AND(SELECT*FROM(SELECT(SLEEP(4)))wxmf)limit 1
步骤S704:服务器从匹配出的攻击字符串中确定出攻击payload。
这里,对确定出的攻击字符串进行一定的处理,以便对攻击字符串中一些随机变化的值进行统一。具体的,将数字替换为0;将连续的空白字符,替换成一个空格;对于形如HTTP://开头的URL字符串,替换成{link};对于一些由连续的数字和大小写字母随机构成的hash串,替换成{hash}等。
示例的,以上述SQL注入攻击请求中匹配到的攻击字符串为例,泛化处理后的结果如下:
{hash}')AS wxmf WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0)))wxmf)limit 0
如上所示,开头的v0ae789cc105c8d00bfcf5e7fe13a88b被泛化成{hash},数字8610、4、1均被泛化成0。
在得到泛化处理的攻击字符串后,以特殊符号为分割点,进行攻击字符串的分割,其中,特殊符号包括::/+&\.!`\|'"-*();@#$<>,{}=。
示例的,以上述泛化处理后的攻击字符串为例,进行分割后的结果如下:
["{hash}","'",')',”,'AS',”,'wxmf',”,'WHERE',”,'0','=','0',”,'AND',”,'(','SELECT','*','FROM','(','SELECT','(','SLEEP','(','0',')',')',')','wxmf',')',”,'limit',”,'0']
分割处理后,从前往后正序遍历分割后的攻击字符串,判断字符串是否在预设的关键词列表中,当匹配到一个在关键词列表中的关键词时,进行回溯,将该关键词前的特殊符号作为该攻击字符串中用于攻击部分的开始位置。类似的,再从后往前倒序遍历分割后的攻击字符串,当匹配到一个在关键词列表中的关键词时,进行回溯,将该关键词后的特殊符号作为该攻击字符串中用于攻击部分的结束位置,如此,能够成功确定出该攻击字符串中用于攻击部分的实际开始位置和实际结束位置。此外,这里之所以保留关键词前、后的特殊符号,是为了保留原来的攻击特征。
在一些实施例中,可以通过以下方式得到预设的关键词列表。示例的,首先对从WAF中提取的攻击字符串进行去重,然后,针对不同的攻击类型,进行词频的统计,提取出一些攻击字符串出现的高频词,同时,也可以从一些文档中收集应用的关键词,形成一个关键词列表,如SQL注入攻击的关键词列表中,包含了xor、insert、limit、load_file、floor、update、updatexml等SQL注入常用的关键词组。
示例的,以上述分割处理后的攻击字符串为例,根据统计后的关键词列表,将上述分割后的攻击字符串从前往后正序遍历,匹配到一个关键词AS,同时,向前提取符号');接着,将上述分割后的攻击字符串从后往前倒序遍历,匹配到一个关键词limit,同时,向后提取符号0,最终提取出的用于攻击的部分如下:
')AS wxmf WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0)))wxmf)limit 0
在确定出用于攻击的部分的开始位置和结束位置后,对其进行切割,将切割出来的用于攻击的部分继续使用关键词列表进行匹配。如果该用于攻击的部分中存在不在所述关键词列表中的字符串,且该字符串在上下文中出现的频次极低,则将其替换成一个{rand}字符串,表示在该位置的内容可能不固定,存在参数随机的可能。另外,如果该字符串位于用于攻击的部分的开头或结尾,则将其进行删除。
示例的,以上述提取出的用于攻击的部分为例,进行再次匹配并替换后的结果如下:
')AS{rand}WHERE 0=0 AND(SELECT*FROM(SELECT(SLEEP(0))){rand})limit 0
步骤S705:服务器将提取出的攻击payload进行保存。
这里,对于提取出的攻击payload,将其与一个完整数据包对应,并存储到数据库中。
在另一些实施例中,也可以通过黑白流量的对照来进行攻击payload的提取。如对于一些基于payload拼接类型,如正常请求?id=1,异常请求?id=-1+and+sleep(4),使用类似于异常流量-正常流量的方式,可以识别出恶意的请求为+and+sleep(4),也可以进行payload的提取。
本发明实施例提供的网络攻击的处理方法,能够从WAF拦截的完整HTTP请求报文中,提取出特定的攻击payload。在收集到payload后,可以用于对WAF进行测试、拦截内容的分析、对攻击payload进行打标,作为机器学习的数据集等。
示例的,现有的WAF拦截记录中,只会记录完整HTTP请求、攻击类型、以及命中的规则ID等。然而,对于同一条规则,实际可能收到的攻击类型有很多种。
举例来说,eval($_POST[a])和eval(String.FromChar(xxxx))由于均存在eval而可能命中相同的拦截规则。但是实际上,前者是一个代码执行的攻击语句,而后者是一个跨站脚本攻击的攻击语句。本发明实施例提供的网络攻击的处理方法,能够从攻击请求中提取出特定的攻击payload,因此,可以有效区别上述两种情况,为事后的分析提供帮助。
示例的,在目前的数据领域,有标记的Web攻击数据集数量极少。此外,进行在实验环境中生产的HTTP CSIC 2010数据集,真实的攻击数据集极为缺失。基于本发明实施例提供的网络攻击的处理方法对攻击payload进行提取,并结合机器和人工进行打标,可以快速地获取到大量的攻击样本,用于相关的实验操作。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的网络攻击的处理方法,例如,如图3-5、7示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例具有以下有益效果:
本发明实施例提供的网络攻击的处理方法,能够从WAF拦截的完整HTTP请求报文中,提取出特定的攻击payload。在收集到payload后,可以用于对WAF进行测试、拦截内容的分析、对攻击payload进行打标,作为机器学习的数据集等。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (11)
1.一种网络攻击的处理方法,其特征在于,所述方法包括:
从应用防火墙的拦截日志中获取网络攻击请求;
对所获取的网络攻击请求进行分解,并以键值对的字典形式保存分解后的各个部分;
基于正则表达式,将分解后的各个部分逐个与攻击判别数据库中的攻击规则进行匹配,以确定攻击字符串;
对所述攻击字符串进行泛化处理,并将泛化处理后的攻击字符串进行分割处理;
将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;
将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换为随机字符串;
将替换后的攻击部分确定为攻击载荷。
2.根据权利要求1所述的方法,其特征在于,所述从应用防火墙的拦截日志中获取网络攻击请求,包括:
从应用防火墙的拦截日志中获取所述网络攻击请求包括的以下内容至少之一:请求客户端的互联网协议地址、请求头、请求体的内容、命中的拦截规则类型、以及拦截规则的身份标识。
3.根据权利要求2所述的方法,其特征在于,所述对所获取的网络攻击请求进行分解,包括:
对所述网络攻击请求包括的请求头、Cookies、获取Get参数、以及提交Post参数进行分解。
4.根据权利要求1所述的方法,其特征在于,所述对所述攻击字符串进行泛化处理,包括:
对所述攻击字符串中的内容进行以下的至少一个处理:
将连续的空白字符替换成一个空格;
将数字替换成零;
将以超文本传输协议格式起始的统一资源定位符字符串替换成链接字符串;
将由连续的数字和大小写字母随机组成的哈希串替换成哈希字符串。
5.根据权利要求1所述的方法,其特征在于,所述将泛化处理后的攻击字符串进行分割处理,包括:
基于预设的特殊符号为分割点,将泛化处理后的攻击字符串进行分割处理。
6.根据权利要求1所述的方法,其特征在于,将分割处理后的攻击字符串与关键词列表进行匹配之前,所述方法还包括:
针对不同的攻击类型的词进行词频的统计,将频率高于预设频率的词作为关键词;或者,
从文档中收集应用的关键词,以得到所述关键词列表。
7.根据权利要求6所述的方法,其特征在于,
所述将分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分,包括:
正序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第一关键词时,进行回溯,将回溯到的所述第一关键词之前的相邻符号作为所述攻击部分的开始位置;
倒序遍历所述分割处理后的攻击字符串,当匹配到所述关键词列表中的第二关键词时,进行回溯,将回溯到的所述第二关键词之后的相邻符号作为所述攻击部分的结束位置;
其中,所述第一关键词为正序遍历所述攻击字符串时第一个匹配到的关键词,所述第二关键词为倒序遍历所述攻击字符串时第一个匹配到的关键词;
所述方法还包括:
删除所述攻击部分中的以下字符串至少之一:
不在所述关键词列表中、且位于所述攻击部分的开始位置的字符串;
不在所述关键词列表中、且位于所述攻击部分的结束位置的字符串。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述攻击载荷存储到区块链网络中;
响应于基于所述攻击载荷开展应用的请求,从所述区块链网络中获取被请求的攻击载荷,并发送到应用服务器,以使
所述应用服务器基于所获取的攻击载荷执行以下应用至少之一:
基于所述攻击载荷对防火墙进行测试;
基于所述攻击载荷实现对网络攻击请求的内容分析;
对所述攻击载荷进行打标,作为训练识别网络攻击请求的机器学习模型的数据集。
9.一种网络攻击的处理装置,其特征在于,所述装置包括:
获取模块,用于从应用防火墙的拦截日志中获取网络攻击请求;
分解模块,用于对获取模块获取的网络攻击请求进行分解,并以键值对的字典形式保存分解后的各个部分;
匹配模块,用于基于正则表达式,将分解模块分解后的各个部分逐个与攻击判别数据库中的攻击规则进行匹配,以确定攻击字符串;
泛化模块,用于对匹配模块确定出的攻击字符串进行泛化处理;
分割模块,用于对泛化模块泛化处理后的攻击字符串进行分割;
所述匹配模块,还用于将分割模块分割处理后的攻击字符串与关键词列表进行匹配,以确定所述攻击字符串中攻击部分;
所述匹配模块,还用于将所述攻击部分与所述关键词列表进行再次匹配,并将所述攻击部分中不在所述关键词列表中的字符串替换成随机字符串;
确定模块,用于将替换后的攻击部分确定为攻击载荷。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1-8任一项所述的网络攻击的处理方法。
11.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现权利要求1-8任一项所述的网络攻击的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121421.9A CN110855676B (zh) | 2019-11-15 | 2019-11-15 | 网络攻击的处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121421.9A CN110855676B (zh) | 2019-11-15 | 2019-11-15 | 网络攻击的处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110855676A CN110855676A (zh) | 2020-02-28 |
CN110855676B true CN110855676B (zh) | 2021-08-31 |
Family
ID=69600679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911121421.9A Active CN110855676B (zh) | 2019-11-15 | 2019-11-15 | 网络攻击的处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855676B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113395237A (zh) * | 2020-03-12 | 2021-09-14 | 中国电信股份有限公司 | 攻击检测方法及装置、计算机可存储介质 |
CN111460837A (zh) * | 2020-03-31 | 2020-07-28 | 广州大学 | 一种用于神经机器翻译的字符级对抗样本生成方法及装置 |
CN113472721B (zh) * | 2020-03-31 | 2022-12-06 | 华为技术有限公司 | 一种网络攻击检测方法及装置 |
CN111818067B (zh) * | 2020-07-14 | 2022-07-15 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN112788039B (zh) * | 2021-01-15 | 2023-07-25 | 合肥浩瀚深度信息技术有限公司 | 一种DDoS攻击识别方法、装置及存储介质 |
CN112769963B (zh) * | 2021-04-07 | 2021-07-09 | 暗链科技(深圳)有限公司 | 基于区块分布式区块链的节点通讯方法及电子设备 |
CN113076539A (zh) * | 2021-04-13 | 2021-07-06 | 郑州信息科技职业学院 | 一种基于大数据的计算机安全防护系统 |
CN113660230B (zh) * | 2021-08-06 | 2023-02-28 | 杭州安恒信息技术股份有限公司 | 云安全防护测试方法、系统、计算机及可读存储介质 |
CN114553550B (zh) * | 2022-02-24 | 2024-02-02 | 京东科技信息技术有限公司 | 请求检测方法、装置、存储介质及电子设备 |
CN115065540B (zh) * | 2022-06-20 | 2024-03-12 | 北京天融信网络安全技术有限公司 | 检测web漏洞攻击的方法、装置和电子设备 |
CN115603997B (zh) * | 2022-10-11 | 2023-05-23 | 北京珞安科技有限责任公司 | 一种工业防火墙策略规划方法、系统及电子设备 |
CN117118752B (zh) * | 2023-10-23 | 2024-01-09 | 山东爱书人家庭教育科技有限公司 | 一种信息抗攻击的方法、系统、装置及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166680A (zh) * | 2014-07-12 | 2014-11-26 | 中国信息安全测评中心 | 一种基于开源库与文本挖掘的并行漏洞挖掘方法 |
CN104753916A (zh) * | 2013-12-30 | 2015-07-01 | 凯为公司 | 用于处理有限自动机的方法和装置 |
CN105024987A (zh) * | 2014-04-30 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种web业务日志的监测方法和装置 |
CN106296195A (zh) * | 2015-05-29 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种风险识别方法及装置 |
CN106776946A (zh) * | 2016-12-02 | 2017-05-31 | 重庆大学 | 一种欺诈网站的检测方法 |
CN108228710A (zh) * | 2017-11-30 | 2018-06-29 | 中国科学院信息工程研究所 | 一种针对url的分词方法及装置 |
CN108460280A (zh) * | 2018-02-09 | 2018-08-28 | 北京交通大学 | 一种网络攻击字符匹配方法及装置 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
CN108920668A (zh) * | 2018-07-05 | 2018-11-30 | 平安科技(深圳)有限公司 | 一种统一资源定位符url去重方法及装置 |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070056038A1 (en) * | 2005-09-06 | 2007-03-08 | Lok Technology, Inc. | Fusion instrusion protection system |
CN101677318B (zh) * | 2008-09-18 | 2012-05-23 | 北京启明星辰信息技术股份有限公司 | 匹配规则包含次数指示符的并行多模式匹配的方法及系统 |
CN101902336B (zh) * | 2009-05-27 | 2012-07-18 | 北京启明星辰信息技术股份有限公司 | 一种基于规则模型的安全事件关联分析系统及方法 |
-
2019
- 2019-11-15 CN CN201911121421.9A patent/CN110855676B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753916A (zh) * | 2013-12-30 | 2015-07-01 | 凯为公司 | 用于处理有限自动机的方法和装置 |
CN105024987A (zh) * | 2014-04-30 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种web业务日志的监测方法和装置 |
CN104166680A (zh) * | 2014-07-12 | 2014-11-26 | 中国信息安全测评中心 | 一种基于开源库与文本挖掘的并行漏洞挖掘方法 |
CN106296195A (zh) * | 2015-05-29 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种风险识别方法及装置 |
CN106776946A (zh) * | 2016-12-02 | 2017-05-31 | 重庆大学 | 一种欺诈网站的检测方法 |
CN108881129A (zh) * | 2017-05-16 | 2018-11-23 | 中兴通讯股份有限公司 | 一种高级持续性威胁攻击检测方法及装置 |
CN108228710A (zh) * | 2017-11-30 | 2018-06-29 | 中国科学院信息工程研究所 | 一种针对url的分词方法及装置 |
CN108460280A (zh) * | 2018-02-09 | 2018-08-28 | 北京交通大学 | 一种网络攻击字符匹配方法及装置 |
CN108920668A (zh) * | 2018-07-05 | 2018-11-30 | 平安科技(深圳)有限公司 | 一种统一资源定位符url去重方法及装置 |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110855676A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855676B (zh) | 网络攻击的处理方法、装置及存储介质 | |
CN111651757B (zh) | 攻击行为的监测方法、装置、设备及存储介质 | |
CN112468520B (zh) | 一种数据检测方法、装置、设备及可读存储介质 | |
CN110012005B (zh) | 识别异常数据的方法、装置、电子设备及存储介质 | |
CN111404937B (zh) | 一种服务器漏洞的检测方法和装置 | |
CN114465741B (zh) | 一种异常检测方法、装置、计算机设备及存储介质 | |
CN111353151A (zh) | 一种网络应用的漏洞检测方法和装置 | |
CN115766258B (zh) | 一种基于因果关系图的多阶段攻击趋势预测方法、设备及存储介质 | |
WO2021078062A1 (zh) | Ssl证书校验方法、装置、设备及计算机存储介质 | |
CN110636038A (zh) | 账号解析方法、装置、安全网关及系统 | |
RU2659482C1 (ru) | Способ защиты веб-приложений при помощи интеллектуального сетевого экрана с использованием автоматического построения моделей приложений | |
CN114760083B (zh) | 一种攻击检测文件的发布方法、装置及存储介质 | |
CN113067792A (zh) | 一种xss攻击识别方法、装置、设备及介质 | |
US20230252146A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20230048076A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
Liu et al. | Understanding digital forensic characteristics of smart speaker ecosystems | |
CN114979109A (zh) | 行为轨迹检测方法、装置、计算机设备和存储介质 | |
CN116070191A (zh) | 信息处理方法及其装置、存储介质、程序产品 | |
KR102084516B1 (ko) | 프로파일링 기반의 클라이언트 장치 식별 방법 | |
CN110933064A (zh) | 确定用户行为轨迹的方法及其系统 | |
CN117499163B (zh) | 一种基于WebRTC的服务器远程维护方法、系统及设备 | |
CN114640522B (zh) | 防火墙安全策略的处理方法、装置、设备及存储介质 | |
CN117640164A (zh) | 一种后门行为检测方法、装置、存储介质及电子设备 | |
Bockermann et al. | On the automated creation of understandable positive security models for web applications | |
Бурмака et al. | Сomputer nets аttacks defense tools based on extended information about environment |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022622 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |