CN111182060A - 报文的检测方法及装置 - Google Patents
报文的检测方法及装置 Download PDFInfo
- Publication number
- CN111182060A CN111182060A CN201911399962.8A CN201911399962A CN111182060A CN 111182060 A CN111182060 A CN 111182060A CN 201911399962 A CN201911399962 A CN 201911399962A CN 111182060 A CN111182060 A CN 111182060A
- Authority
- CN
- China
- Prior art keywords
- rule
- service request
- message
- interception
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- H04L63/0227—Filtering policies
-
- 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
- H04L63/0281—Proxies
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种报文的检测方法及装置,其中,该方法包括:监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;根据所述拦截规则检测所述业务请求报文。通过本发明,解决了相关技术中web应用的防护效率低的技术问题,使得web应用在不需要重新部署和不变更原来的架构的前提下,获得自定义的安全防护功能,提高了web应用的安全性,降低了因web应用攻击带来的损失和网站安全开发的成本。
Description
技术领域
本发明涉及网络安全领域,尤其是一种报文的检测方法及装置。
背景技术
相关技术中,我国正在积极推进互联网信息安全建设和公民隐私保护制度,用户信息安全和隐私的保护是业界亟待解决的问题,积极推进web应用防火墙相关技术的实现和改进,提升信息安全防护等级和防护效率。然而当前市面上已有的相关服务种类繁杂,功能欠缺,自定义规则灵活性差,防护程序稳定性差。
相关技术中,web应用防火墙都是基于通用的防护规则,采用本地配置文件的方式进行规则更新,效率比较低,web应用防火墙集成在web客户端或者是代理服务器上,更新需要重启相关模块重新加载配置文件,更新复杂,健壮性不高,命令行操作危险系数高,业务拦截效果不够理想,相应的与访问控制结合性也较差,并不能满足对于web应用防火墙的业务需求。
此外,各企业业务体量的增加,除防御传统web应用攻击外,还需要阻止爬虫抓取网站内容和“薅羊毛”等恶意访问。面对恶意访问,企业往往通过在web应用中添加检测代码来进行防御。但这样做会增加业务功能与安全功能的耦合,而且增删检测代码需要重新验证和部署web应用,这些都增加了web应用的维护成本。同时进行检测往往需要在全站范围内对符合条件的访问进行筛选和统计,web应用往往采用web服务器集群的模式工作,添加此功能会不可避免地带来架构复杂性和开发成本。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
为解决相关技术中web应用的防护效率低的技术问题,本发明实施例提供了一种报文的检测方法及装置。
根据本发明的一个实施例,提供了一种报文的检测方法,包括:监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;根据所述拦截规则检测所述业务请求报文。
可选的,根据所述json字符串配置WAF的拦截规则包括:对所述json字符进行反序列化解析,得到至少一个规则索引,其中,每个所述规则索引通过键值映射一个规则内容;将所述规则索引***红黑树的树节点。
可选的,在将所述规则索引***红黑树的树节点之前,所述方法还包括:确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;基于所述优先级信息对所述规则索引进行排序,其中,所述规则索引的排序位置与所述红黑树的遍历顺序对应。
可选的,在所述根据所述json字符串配置web应用防火墙WAF的拦截规则之后,所述方法还包括:向所述分布式集群发送租约申请;接收所述分布式集群基于所述租约申请反馈的租约时间;基于所述租约时间配置所述拦截规则在WAF服务器上的有效时间。
可选的,根据所述拦截规则检测所述业务请求报文包括:解析所述业务请求报文,得到所述业务请求报文的报文特征;根据所述拦截规则遍历查询所述报文特征;若所述报文特征命中所述拦截规则,拦截所述业务请求报文;若所述报文特征未命中所述拦截规则,将所述业务请求报文转发至web服务器。
可选的,根据所述拦截规则遍历查询所述报文特征包括:基于红黑树的树节点的排布顺序依次遍历查询所述报文特征,其中,所述拦截规则的规则内容与所述树节点一一对应;若所述报文特征命中所述拦截规则的任一规则内容,停止遍历操作,确定所述报文特征命中所述拦截规则;若所述报文特征未命中所述拦截规则的任一规则内容,确定所述报文特征未命中所述拦截规则。
可选的,接收代理服务器转发的业务请求报文包括:接收所述代理服务器转发的第一业务请求报文,其中,所述第一业务请求报文为protobuffer格式的脚本报文;将所述第一业务请求报文转换为json格式的第二业务请求报文。
可选的,在根据所述拦截规则检测所述业务请求报文之后,所述方法还包括:将检测结果反馈给所述代理服务器,其中,所述检测结果用于指示所述业务请求报文是否为恶意报文。
可选的,所述特性信息包括以下至少之一:IP地址,令牌Token,物理MAC地址,账号信息、代码序列。
根据本发明的另一个实施例,提供了一种报文的检测装置,包括:监听模块,用于监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;配置模块,用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;接收模块,用于接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;检测模块,用于根据所述拦截规则检测所述业务请求报文;和/或,所述特性信息包括以下至少之一:IP地址,令牌Token,物理MAC地址,账号信息、代码序列。
可选的,所述配置模块用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则,具体用于:对所述json字符进行反序列化解析,得到至少一个规则索引,其中,每个所述规则索引通过键值映射一个规则内容;将所述规则索引***红黑树的树节点。
可选的,所述配置模块在将所述规则索引***红黑树的树节点之前,还用于:确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;基于所述优先级信息对所述规则索引进行排序,其中,所述规则索引的排序位置与所述红黑树的遍历顺序对应。
可选的,所述配置模块在所述根据所述json字符串配置web应用防火墙WAF的拦截规则之后,还用于:向所述分布式集群发送租约申请;接收所述分布式集群基于所述租约申请反馈的租约时间;基于所述租约时间配置所述拦截规则在WAF服务器上的有效时间。
可选的,所述检测模块根据所述拦截规则检测所述业务请求报文,具体用于:解析所述业务请求报文,得到所述业务请求报文的报文特征;根据所述拦截规则遍历查询所述报文特征;若所述报文特征命中所述拦截规则,拦截所述业务请求报文;若所述报文特征未命中所述拦截规则,将所述业务请求报文转发至web服务器;和/或,
所述检测模块用于根据所述拦截规则遍历查询所述报文特征时,具体用于:基于红黑树的树节点的排布顺序依次遍历查询所述报文特征,其中,所述拦截规则的规则内容与所述树节点一一对应;若所述报文特征命中所述拦截规则的任一规则内容,停止遍历操作,确定所述报文特征命中所述拦截规则;若所述报文特征未命中所述拦截规则的任一规则内容,确定所述报文特征未命中所述拦截规则;和/或,
所述检测模块在根据所述拦截规则检测所述业务请求报文之后,还用于:将检测结果反馈给所述代理服务器,其中,所述检测结果用于指示所述业务请求报文是否为恶意报文。
可选的,所述接收模块接收代理服务器转发的业务请求报文,具体用于:接收所述代理服务器转发的第一业务请求报文,其中,所述第一业务请求报文为protobuffer格式的脚本报文;将所述第一业务请求报文转换为json格式的第二业务请求报文。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本实施例的方案,监听分布式集群的json字符串,若json字符串已经更新,然后根据json字符串配置web应用防火墙WAF的拦截规则,接收代理服务器转发的业务请求报文,其中,代理服务器与web客户端连接,最后根据拦截规则检测业务请求报文,通过在代理服务器和部署WAF服务,可以基于业务需求在不重启和更换代理服务器的条件下,快速进行拦截规则的实时同步,热加载最新的规则,解决了相关技术中web应用的防护效率低的技术问题,降低业务功能与安全功能的耦合性,保持web应用中安全与业务的隔离,使得web应用在不需要重新部署和不变更原来的架构的前提下,获得自定义的安全防护功能,提高了web应用的安全性,降低了因web应用攻击带来的损失和网站安全开发的成本。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1是本发明实施例的一种WAF服务器的硬件结构框图;
图2是根据本发明实施例的一种报文的检测方法的流程图;
图3是本发明实施例的网络构架图;
图4是本发明实施例的分布式集群更新规则的流程示意图;
图5是本发明实施例将规则索引***树节点的示意图;
图6是本发明实施场景一的流程示意图;
图7是本发明实施场景二的流程示意图;
图8是根据本发明实施例的报文的检测装置的结构框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
本申请实施例一所提供的方法实施例可以在安全服务器、WEB服务器、WAF服务器或者类似的运算装置中执行。以运行在WAF服务器上为例,图1是本发明实施例的一种WAF服务器的硬件结构框图。如图1所示,WAF服务器10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述WAF服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述WAF服务器的结构造成限定。例如,WAF服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储WAF服务器程序,例如,应用软件的软件程序以及模块,如本发明实施例中的报文的检测方法对应的WAF服务器程序,处理器102通过运行存储在存储器104内的WAF服务器程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至WAF服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括WAF服务器10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种报文的检测方法,图2是根据本发明实施例的一种报文的检测方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,监听分布式集群的状态信息,其中,状态信息用于表征分布式集群的json字符串是否更新,json字符串携带待拦截报文的特性信息;
本实施例的,特性信息可以但不限于为:IP地址,令牌Token,物理MAC地址,账号信息、代码序列。代码序列可以包括静态序列和动态序列,Token可以用于发现代码漏洞的利用行为。
步骤S204,若json字符串已经更新,根据json字符串配置web应用防火墙WAF的拦截规则;
本实施例的拦截规则应用在应用防火墙WAF(WAF,Web Application Firewall)服务器,该WAF服务器部署在代理服务器和业务服务器之间;若json字符串未更新,则不更新当前的拦截规则。
步骤S206,接收代理服务器转发的业务请求报文,其中,代理服务器与web客户端连接;
业务请求报文在web客户端发起,通过代理服务器与web服务器进行交互,请求该业务在web服务器上的内容。
步骤S208,根据拦截规则检测业务请求报文。
通过上述步骤,监听分布式集群的json字符串,若json字符串已经更新,然后根据json字符串配置web应用防火墙WAF的拦截规则,接收代理服务器转发的业务请求报文,其中,代理服务器与web客户端连接,最后根据拦截规则检测业务请求报文,通过在代理服务器和部署WAF服务,可以基于业务需求在不重启和更换代理服务器的条件下,快速进行拦截规则的实时同步,热加载最新的规则,解决了相关技术中web应用的防护效率低的技术问题,降低业务功能与安全功能的耦合性,保持web应用中安全与业务的隔离,使得web应用在不需要重新部署和不变更原来的架构的前提下,获得自定义的安全防护功能,提高了web应用的安全性,降低了因web应用攻击带来的损失和网站安全开发的成本。
本实施例可以应用在防火墙拦截规则的更新,也可以应用到其它规则更新的场景中,如流量限速、权限管理,能够在不重启程序的情况下更新最新的规则。可以结合业务的实际场景针对某一类请求进行拦截,如跳转图灵验证、黑白名单拦截、限速限流。
图3是本发明实施例的网络构架图,如图3所示,分布式集群包括ectd集群(服务端)和ectd的客户端,WAF服务器(waf_sever),代理服务器(nginx),代理服务器与运行浏览器的web客户端连接,WAF服务器与web服务器连接,其中,WAF服务器提供规则热更新、基础规则与业务规则进行分离、黑白名单等功能,分布式集群进行规则下发。利用nginx自带的传输控制协议(TCP,Transmission Control Protocol)协议接口将web客户端通过nginx的业务请求报文转发给waf_server上,然后同步等待waf_server的返回业务请求报文的检测结果。
图4是本发明实施例的分布式集群更新规则的流程示意图,如图4所示,分布式集群为etcd,配置服务设置在分布式集群,将配置规则(待拦截报文的特性信息)写入etcd后,反馈写入结果,然后WAF服务器(waf_sever)读取配置规则并同步,并进行实时配置更新,可以使用Golang编程语言实现请求判定程序,包括规则解析引擎,请求解析引擎,请求过滤判定引擎,同时通过etcd_client_watcher监听etcd中某个关键字对应的值的变化。etcd分布式键值对存储:利用etcd基于Raft协议的分布式键值对存储***,增强了平台在分布式环境下的可靠性,基于Http+Json的api接口,方便进行更新和维护。
在本实施例中,根据json字符串配置WAF的拦截规则包括:
S11,对json字符进行反序列化解析,得到至少一个规则索引,其中,每个规则索引通过键值映射一个规则内容;
在本实施例的一个实施方式中,在将规则索引***红黑树(RB Tree,Red BlackTree)的树节点之前,还包括:确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;基于优先级信息对规则索引进行排序,其中,规则索引的排序位置与红黑树的遍历顺序对应。
S12,将规则索引***红黑树的树节点。
图5是本发明实施例将规则索引***树节点的示意图,红黑树包括9个树节点,规则索引为其id号,即规则标识,从根节点到叶子节点,分别为:20020,20010,20030,20080,20015,20025,21000,20050,21005。利用红黑树的每个节点来存放规则id,通过规则id的大小进行排序。由于使用红黑树结构,本实施例可以在O(log2 N)时间内做查找,***和删除,其中,N为规则总数。从而利用红黑树提高规则***、排序的效率。使用红黑树的数据结构可以将当前数据结构替换成任何业务需要的数据结构,方便完成快速的增删改查的功能。
在本实施例中,还可以对WAF服务器上的拦截规则设置一个有效时间。在根据json字符串配置web应用防火墙WAF的拦截规则之后,还包括:向分布式集群发送租约申请;接收分布式集群基于租约申请反馈的租约时间;基于租约时间配置拦截规则在WAF服务器上的有效时间。
在本实施例中,根据拦截规则检测业务请求报文包括:
S21,解析业务请求报文,得到业务请求报文的报文特征;
S22,根据拦截规则遍历查询报文特征;
在本实施例的一个实施方式中,根据拦截规则遍历查询报文特征包括:基于红黑树的树节点的排布顺序依次遍历查询报文特征,其中,拦截规则的规则内容与树节点一一对应;若报文特征命中拦截规则的任一规则内容,停止遍历操作,确定报文特征命中拦截规则;若报文特征未命中拦截规则的任一规则内容,确定报文特征未命中拦截规则。
在一个示例中个,拦截规则包括abc三个规则内容,分别***在红黑树的树节点1,2,3上,排布顺序分别为树节点1,树节点3,树节点2,按照顺序,首先判断报文特征是否与规则内容a匹配,若匹配,停止遍历操作,确定报文特征命中拦截规则,否则继续判断报文特征是否与规则内容c匹配,直到遍历完所有的树节点;
S23,若报文特征命中拦截规则,拦截业务请求报文;若报文特征未命中拦截规则,将业务请求报文转发至web服务器。
在本实施例中,代理服务器和WAF服务器之间可以通过lua报文进行交互,基于嵌入式脚本,以减少与原业务报文的调整。接收代理服务器转发的业务请求报文包括:接收代理服务器转发的第一业务请求报文,其中,第一业务请求报文为protobuffer格式的脚本报文;将第一业务请求报文转换为json格式的第二业务请求报文。其中,protobuffer是一种数据描述语言,protobuffer格式的脚本报文通过lua语言编写,能够将结构化的数据序列化,并且可以将序列化的数据进行反序列化恢复原有的数据结构,本实施例用在代理服务器与WAF服务器之间的数据存储以及通信协议转换。
可选的,在根据拦截规则检测业务请求报文之后,还包括:将检测结果反馈给代理服务器,其中,检测结果用于指示业务请求报文是否为恶意报文。代理服务器可以进一步对业务请求报文进行处理,在后续直接拦截类似报文,或者代理服务器将检测结果反馈到web客户端,提示用户当前操作存在风险或违法。
图6是本发明实施场景一的流程示意图,在WAF服务器添加一条30分钟有效时长的黑名单规则,添加限时黑名单规则的步骤包括:
S61,相关业务部门提供需要拉黑的ip地址或者其他特征。
S62,根据业务部门提供的黑名单ip进行waf规则的编写,然后生成相应的json字符串。
S63,根据etcd提供的http+json的api接口,将对应的黑名单ip生成的规则json字符串写入到etcd集群中。
S64,根据etcd集群的返回值确认规则json字符串是否写入成功,如果失败,查看日志,继续添加直至etcd返回成功的日志信息。
S65,etcd集群更新规则成功后,waf_server根据监听Key键值的变化,waf_server会自动解析json字符串,获得需要更新的规则id,然后根据红黑树快速查找、***的特性,将这条规则***到相应的位置,在下一次请求被检验的时候,就会使用新的规则集合来检验nginx转发的请求,完成ip黑名单的拦截功能。
S66,利用etcd申请一个30分钟的租约,etcd返回一个lease(租约)值,将这个lease值赋予刚才生成的规则json字符串,这条规则就是一条带有租约时间限制的配置文件了。
S67,利用etcd的带有租约的配置文件功能,etcd会在30分钟过后将这条规则json字符串自动删除。与此同时,waf-server根据监听Key键值的变化,获得需要删除的规则id,然后根据红黑树快速查找、***的特性,将这条规则从规则集中删除,在下一次请求被检验的时候,就会使用没有这条黑名单ip的规则集合来检验nginx转发的请求,解除ip黑名单的拦截功能。完整得实现带有时间限制的ip黑名单封禁功能。
采用etcd的http客户端(etcd在web端的入口)进行更新,根据etcd的更新事件建立一条规则的添加记录,将这条规则的json字符串进行反序列化后,使用规则id作为红黑树的键值,即规则的索引。根据规则的索引可以查找出上述对应的规则内容,在红黑树的排序特性下能够快速定位出该条规则应该***的位置。本发明给予红黑树能直接一次性将对应的规则放到对应的位置上,无需任何多余的遍历,***效率较高。同时根据业务规则的重要性,优先匹配的规则id的值较小,可以尽快匹配,尽快进行封禁,更符合实际的业务需要,同时减少不必要的规则匹配,提高waf的拦截效率和请求检测效率。
图7是本发明实施场景二的流程示意图,在WAF服务器添加虚拟补丁,步骤包括:
S71,***门发现相关业务使用某个有漏洞的开源库,***门提交漏洞给研发部门,确定修复漏洞排期。
S72,***门发现该漏洞涉及的业务部门较多,范围较大,修复时间较长,根据漏洞的利用原理、及利用该漏洞的请求特征,设计针对该漏洞的waf拦截规则。
S73,***门将该规则同步到etcd的规则中去,设计好相应的规则id,确定规则的检验权重和流程,利用etcd的http的api接口将规则的json字符串更新上去。
S74,等待研发部门将漏洞修复完成后,将该规则删除,恢复waf原始状态,完成虚拟补丁的全部过程。
随着业务开发的复杂程度越来越高,有很多的项目可能或多或少的使用了开源的一些代码,在这些代码中可能存在着没有被纰漏指出的一些漏洞,非常有可能被其他黑客人员利用,对业务的信息安全造成危害。但与此同时,根据最新暴露出的漏洞,有些业务进行漏洞修复可能需要较长的时间,在修复漏洞的这段时间内,业务的服务不方便暂停,所以在这段修复漏洞的时间内,让waf直接拦截利用公司业务现存在漏洞的请求,起到一个虚拟补丁的作用,等待业务项目修复漏洞完成之后,waf使用etcd的http的api接口将这条虚拟补丁规则删除,恢复waf的原始状态。守护业务服务安全、可靠的实现漏洞修复的过程。
waf的虚拟补丁功能完成了业务部门在特殊情况下过渡阶段的安全任务,该功能同样利用了etcd集群的热更新特性和红黑树的***、排序快的特性,将最新出现的漏洞攻击拦截在请求到达后端服务之前,有效的缓解了漏洞被黑客利用的风险,同时利用该功能可以检测和识别异常的客户端和有恶意行为的组织,结合已有的拦截数据还能进行人工智能大数据分析,提前发现和预防其他的恶意攻击行为。
本实施例提出一种waf基于业务需求快速更新防护规则的解决方案,达到处理性能与成本的权衡,更加方便的将实际业务与安全结合起来。在当前互联网安全背景下,采用nginx+lua+etcd+RBtree等技术方式实现了实时热更新waf安全规则的解决方案,提供了一种web应用防火墙,同时由于etcd的分布式特点,使得各个nginx节点数据同步方式大大简约,同时使用红黑树的数据结构提高了规则***、排序的效率。在不影响nginx高并发性能的前提下,使用了nginx转发给请求检测服务器的架构模式,方便更新waf程序,减少nginx的重启频率,优化了业务方面的转发效率,也减少了手动重启nginx的危险性。
本实施例针对waf应用的安全规则更新方案,具备以下有益效果:它将安全与业务隔离,降低业务功能与安全功能的耦合性。可以在保持web应用中安全与业务的隔离,使得web应用在不需要重新部署和不变更原来的架构的前提下,获得所需的自定义安全防护功能。降低了因web应用攻击带来的损失和网站安全开发的成本,提高了规则的更新效率和匹配效率,提高了waf的性能。结合本公司的具体业务需求,产生只符合本公司的安全规则,深刻结合业务需求,waf检测请求更加具有针对性和特殊性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种报文的检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的报文的检测装置的结构框图,如图8所示,该装置包括:监听模块80,配置模块82,接收模块84,检测模块86,其中,
监听模块80,用于监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;
配置模块82,用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;
接收模块84,用于接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;
检测模块86,用于根据所述拦截规则检测所述业务请求报文。
可选的,所述特性信息包括以下至少之一:IP地址,令牌Token,物理MAC地址,账号信息、代码序列。
可选的,所述配置模块用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则,具体用于:对所述json字符进行反序列化解析,得到至少一个规则索引,其中,每个所述规则索引通过键值映射一个规则内容;将所述规则索引***红黑树的树节点。
可选的,所述配置模块在将所述规则索引***红黑树的树节点之前,还用于:确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;基于所述优先级信息对所述规则索引进行排序,其中,所述规则索引的排序位置与所述红黑树的遍历顺序对应。
可选的,所述配置模块在所述根据所述json字符串配置web应用防火墙WAF的拦截规则之后,还用于:向所述分布式集群发送租约申请;接收所述分布式集群基于所述租约申请反馈的租约时间;基于所述租约时间配置所述拦截规则在WAF服务器上的有效时间。
可选的,所述检测模块根据所述拦截规则检测所述业务请求报文,具体用于:解析所述业务请求报文,得到所述业务请求报文的报文特征;根据所述拦截规则遍历查询所述报文特征;若所述报文特征命中所述拦截规则,拦截所述业务请求报文;若所述报文特征未命中所述拦截规则,将所述业务请求报文转发至web服务器。
可选的,所述检测模块用于根据所述拦截规则遍历查询所述报文特征时,具体用于:基于红黑树的树节点的排布顺序依次遍历查询所述报文特征,其中,所述拦截规则的规则内容与所述树节点一一对应;若所述报文特征命中所述拦截规则的任一规则内容,停止遍历操作,确定所述报文特征命中所述拦截规则;若所述报文特征未命中所述拦截规则的任一规则内容,确定所述报文特征未命中所述拦截规则。
可选的,所述检测模块在根据所述拦截规则检测所述业务请求报文之后,还用于:将检测结果反馈给所述代理服务器,其中,所述检测结果用于指示所述业务请求报文是否为恶意报文。
可选的,所述接收模块接收代理服务器转发的业务请求报文,具体用于:接收所述代理服务器转发的第一业务请求报文,其中,所述第一业务请求报文为protobuffer格式的脚本报文;将所述第一业务请求报文转换为json格式的第二业务请求报文。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;
S2,若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;
S3,接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;
S4,根据所述拦截规则检测所述业务请求报文。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;
S2,若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;
S3,接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;
S4,根据所述拦截规则检测所述业务请求报文。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和***。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (15)
1.一种报文的检测方法,其特征在于,包括:
监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;
若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;
接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;
根据所述拦截规则检测所述业务请求报文。
2.根据权利要求1所述的方法,其特征在于,根据所述json字符串配置WAF的拦截规则包括:
对所述json字符进行反序列化解析,得到至少一个规则索引,其中,每个所述规则索引通过键值映射一个规则内容;
将所述规则索引***红黑树的树节点。
3.根据权利要求2所述的方法,其特征在于,在将所述规则索引***红黑树的树节点之前,所述方法还包括:
确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;
基于所述优先级信息对所述规则索引进行排序,其中,所述规则索引的排序位置与所述红黑树的遍历顺序对应。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述json字符串配置web应用防火墙WAF的拦截规则之后,所述方法还包括:
向所述分布式集群发送租约申请;
接收所述分布式集群基于所述租约申请反馈的租约时间;
基于所述租约时间配置所述拦截规则在WAF服务器上的有效时间。
5.根据权利要求1所述的方法,其特征在于,根据所述拦截规则检测所述业务请求报文包括:
解析所述业务请求报文,得到所述业务请求报文的报文特征;
根据所述拦截规则遍历查询所述报文特征;
若所述报文特征命中所述拦截规则,拦截所述业务请求报文;若所述报文特征未命中所述拦截规则,将所述业务请求报文转发至web服务器。
6.根据权利要求5所述的方法,其特征在于,根据所述拦截规则遍历查询所述报文特征包括:
基于红黑树的树节点的排布顺序依次遍历查询所述报文特征,其中,所述拦截规则的规则内容与所述树节点一一对应;
若所述报文特征命中所述拦截规则的任一规则内容,停止遍历操作,确定所述报文特征命中所述拦截规则;若所述报文特征未命中所述拦截规则的任一规则内容,确定所述报文特征未命中所述拦截规则。
7.根据权利要求1所述的方法,其特征在于,接收代理服务器转发的业务请求报文包括:
接收所述代理服务器转发的第一业务请求报文,其中,所述第一业务请求报文为protobuffer格式的报文;
将所述第一业务请求报文转换为json格式的第二业务请求报文。
8.根据权利要求1所述的方法,其特征在于,在根据所述拦截规则检测所述业务请求报文之后,所述方法还包括:
将检测结果反馈给所述代理服务器,其中,所述检测结果用于指示所述业务请求报文是否为恶意报文。
9.根据权利要求1所述的方法,其特征在于,所述特性信息包括以下至少之一:
IP地址,令牌Token,物理MAC地址,账号信息、代码序列。
10.一种报文的检测装置,其特征在于,包括:
监听模块,用于监听分布式集群的状态信息,其中,所述状态信息用于表征所述分布式集群的json字符串是否更新,所述json字符串携带待拦截报文的特性信息;
配置模块,用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则;
接收模块,用于接收代理服务器转发的业务请求报文,其中,所述代理服务器与web客户端连接;
检测模块,用于根据所述拦截规则检测所述业务请求报文;和/或,
所述特性信息包括以下至少之一:IP地址,令牌Token,物理MAC地址,账号信息、代码序列。
11.根据权利要求10所述的装置,其特征在于,所述配置模块用于若所述json字符串已经更新,根据所述json字符串配置web应用防火墙WAF的拦截规则,具体用于:
对所述json字符进行反序列化解析,得到至少一个规则索引,其中,每个所述规则索引通过键值映射一个规则内容;
将所述规则索引***红黑树的树节点。
12.根据权利要求11所述的装置,其特征在于,所述配置模块在将所述规则索引***红黑树的树节点之前,还用于:
确定业务规则的优先级信息,其中,每个业务规则对应一个规则索引;
基于所述优先级信息对所述规则索引进行排序,其中,所述规则索引的排序位置与所述红黑树的遍历顺序对应。
13.根据权利要求10所述的装置,其特征在于,所述配置模块在所述根据所述json字符串配置web应用防火墙WAF的拦截规则之后,还用于:
向所述分布式集群发送租约申请;
接收所述分布式集群基于所述租约申请反馈的租约时间;
基于所述租约时间配置所述拦截规则在WAF服务器上的有效时间。
14.根据权利要求10所述的装置,其特征在于,所述检测模块根据所述拦截规则检测所述业务请求报文,具体用于:
解析所述业务请求报文,得到所述业务请求报文的报文特征;
根据所述拦截规则遍历查询所述报文特征;
若所述报文特征命中所述拦截规则,拦截所述业务请求报文;若所述报文特征未命中所述拦截规则,将所述业务请求报文转发至web服务器;
和/或,
所述检测模块用于根据所述拦截规则遍历查询所述报文特征时,具体用于:
基于红黑树的树节点的排布顺序依次遍历查询所述报文特征,其中,所述拦截规则的规则内容与所述树节点一一对应;
若所述报文特征命中所述拦截规则的任一规则内容,停止遍历操作,确定所述报文特征命中所述拦截规则;
若所述报文特征未命中所述拦截规则的任一规则内容,确定所述报文特征未命中所述拦截规则;
和/或,
所述检测模块在根据所述拦截规则检测所述业务请求报文之后,还用于:将检测结果反馈给所述代理服务器,其中,所述检测结果用于指示所述业务请求报文是否为恶意报文。
15.根据权利要求10所述的装置,其特征在于,所述接收模块接收代理服务器转发的业务请求报文,具体用于:
接收所述代理服务器转发的第一业务请求报文,其中,所述第一业务请求报文为protobuffer格式的脚本报文;
将所述第一业务请求报文转换为json格式的第二业务请求报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399962.8A CN111182060A (zh) | 2019-12-30 | 2019-12-30 | 报文的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399962.8A CN111182060A (zh) | 2019-12-30 | 2019-12-30 | 报文的检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111182060A true CN111182060A (zh) | 2020-05-19 |
Family
ID=70658290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911399962.8A Pending CN111182060A (zh) | 2019-12-30 | 2019-12-30 | 报文的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111182060A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112182590A (zh) * | 2020-11-16 | 2021-01-05 | ***股份有限公司 | 一种Web应用的漏洞更新方法及装置 |
CN112367214A (zh) * | 2020-10-12 | 2021-02-12 | 成都精灵云科技有限公司 | 基于etcd的主节点快速检测和切换方法 |
CN113709112A (zh) * | 2021-07-30 | 2021-11-26 | 武汉思普崚技术有限公司 | 一种访问控制列表快速过滤方法及装置 |
CN114785621A (zh) * | 2022-06-17 | 2022-07-22 | 上海斗象信息科技有限公司 | 漏洞检测方法、装置、电子设备及计算机可读存储介质 |
CN115277224A (zh) * | 2022-07-29 | 2022-11-01 | 北京天融信网络安全技术有限公司 | 确定应用防护规则的方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036641A (zh) * | 2011-09-29 | 2013-04-10 | 北京新媒传信科技有限公司 | 数据交换方法、***及反序列化方法 |
CN104268229A (zh) * | 2014-09-26 | 2015-01-07 | 北京金山安全软件有限公司 | 一种基于多进程浏览器的资源获得方法及装置 |
CN105227571A (zh) * | 2015-10-20 | 2016-01-06 | 福建六壬网安股份有限公司 | 基于nginx+lua的web应用防火墙***及其实现方法 |
US20160366096A1 (en) * | 2015-06-15 | 2016-12-15 | Tempered Networks, Inc. | Overlay network with position independent insertion and tap points |
CN109246064A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 安全访问控制、网络访问规则的生成方法、装置及设备 |
-
2019
- 2019-12-30 CN CN201911399962.8A patent/CN111182060A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036641A (zh) * | 2011-09-29 | 2013-04-10 | 北京新媒传信科技有限公司 | 数据交换方法、***及反序列化方法 |
CN104268229A (zh) * | 2014-09-26 | 2015-01-07 | 北京金山安全软件有限公司 | 一种基于多进程浏览器的资源获得方法及装置 |
US20160366096A1 (en) * | 2015-06-15 | 2016-12-15 | Tempered Networks, Inc. | Overlay network with position independent insertion and tap points |
CN105227571A (zh) * | 2015-10-20 | 2016-01-06 | 福建六壬网安股份有限公司 | 基于nginx+lua的web应用防火墙***及其实现方法 |
CN109246064A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 安全访问控制、网络访问规则的生成方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
王宇等: "Web应用防火墙的设计与实现", 《信息安全与通信保密》 * |
翟涵: "基于网络爬虫的Web安全扫描工具的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367214A (zh) * | 2020-10-12 | 2021-02-12 | 成都精灵云科技有限公司 | 基于etcd的主节点快速检测和切换方法 |
CN112367214B (zh) * | 2020-10-12 | 2022-06-14 | 成都精灵云科技有限公司 | 基于etcd的主节点快速检测和切换方法 |
CN112182590A (zh) * | 2020-11-16 | 2021-01-05 | ***股份有限公司 | 一种Web应用的漏洞更新方法及装置 |
CN113709112A (zh) * | 2021-07-30 | 2021-11-26 | 武汉思普崚技术有限公司 | 一种访问控制列表快速过滤方法及装置 |
CN113709112B (zh) * | 2021-07-30 | 2023-04-18 | 武汉思普崚技术有限公司 | 一种访问控制列表快速过滤方法及装置 |
CN114785621A (zh) * | 2022-06-17 | 2022-07-22 | 上海斗象信息科技有限公司 | 漏洞检测方法、装置、电子设备及计算机可读存储介质 |
CN114785621B (zh) * | 2022-06-17 | 2022-11-01 | 上海斗象信息科技有限公司 | 漏洞检测方法、装置、电子设备及计算机可读存储介质 |
CN115277224A (zh) * | 2022-07-29 | 2022-11-01 | 北京天融信网络安全技术有限公司 | 确定应用防护规则的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853434B2 (en) | System and method for creating and executing breach scenarios utilizing virtualized elements | |
CN111182060A (zh) | 报文的检测方法及装置 | |
US10929538B2 (en) | Network security protection method and apparatus | |
CN112383546B (zh) | 一种处理网络攻击行为的方法、相关设备及存储介质 | |
US8978137B2 (en) | Method and apparatus for retroactively detecting malicious or otherwise undesirable software | |
Parampalli et al. | A practical mimicry attack against powerful system-call monitors | |
US7464407B2 (en) | Attack defending system and attack defending method | |
CN111737696A (zh) | 一种恶意文件检测的方法、***、设备及可读存储介质 | |
JP2016201115A (ja) | マルウェアに対処するための方法及び装置 | |
US10129289B1 (en) | Mitigating attacks on server computers by enforcing platform policies on client computers | |
US11290484B2 (en) | Bot characteristic detection method and apparatus | |
WO2017107830A1 (zh) | 一种安装应用软件的方法、装置及电子设备 | |
Pan et al. | I do not know what you visited last summer: Protecting users from third-party web tracking with trackingfree browser | |
US20210258283A1 (en) | Document Tracking Method, Gateway Device, and Server | |
CN110880983A (zh) | 基于场景的渗透测试方法及装置、存储介质、电子装置 | |
US11627164B2 (en) | Multi-perspective security context per actor | |
JP6450022B2 (ja) | 解析装置、解析方法、および、解析プログラム | |
CN104796386A (zh) | 一种僵尸网络的检测方法、装置和*** | |
CN106919844B (zh) | 一种Android***应用程序漏洞检测方法 | |
CN111901325B (zh) | 蜜罐节点的服务扩展方法、装置、电子装置和存储介质 | |
CN113824678B (zh) | 处理信息安全事件的***、方法和非暂时性计算机可读介质 | |
US20180091461A1 (en) | Method and device for securing network communications using self-erasing messages | |
Hirata et al. | INTERCEPT+: SDN support for live migration-based honeypots | |
Marengereke et al. | Cloud based security solution for android smartphones | |
CN116938605B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |