一种基于回馈和监督学习的WAF检测方法及系统与流程

文档序号:14216603阅读:208来源:国知局

本发明涉及通信技术领域,尤其涉及一种基于回馈和监督学习的waf检测方法及系统。



背景技术:

waf(webapplicationfirewall)是指web应用防火墙,也被称为web应用防护系统或网站应用级入侵防御系统。利用国际上公认的一种说法,web应用防火墙是通过执行一系列针对http/https的安全策略来专门为web应用提供保护的一款产品。

http(hypertexttransferprotocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。所有的www文件都必须遵守这个协议标准。设计http最初的目的是为了提供一种发布和接收html页面的方法。1960年,美国人tednelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了http超文本传输协议标准架构的发展根基。tednelson组织协调万维网协会(worldwidewebconsortium)和互联网工程工作小组(internetengineeringtaskforce)共同合作研究,最终发布了一系列的rfc,其中著名的rfc2616定义了http1.1。

监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。即监督学习是从标记的训练数据来推断一个功能的机器学习任务。所述训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为向量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。

随着信息技术的发展,互联网走进了千家万户。作为最主要的互联网服务之一的http/https技术也成为日常生活不可或缺的部分。http/https技术使用浏览器/服务器的服务模式,即浏览器将访问者的请求格式化后通过tcp连接传输到服务器端,服务器端通过访问本地资源并进行一定处理后回传给浏览器,之后由浏览器展示给访问者。

浏览器/服务器的服务模式的一大弊端就是服务器的性能和稳定性成为整个系统的瓶颈,一旦服务器遭到攻击,所有的访问者都受到影响,甚至使服务中断,造成巨大的损失。针对这种情况,网络防护机制应运而生,waf就是其中一种。waf主要针对http/https层的攻击,通过检查客户端发送的访问内容,判断和拦截攻击请求,以保证服务器提供安全的服务。

现有的waf机制主要通过扫描每一条请求的请求头和请求体,将其与安全规则进行逐条匹配。通常有安全专家根据已知安全漏洞和可能存在的安全漏洞配置安全规则,这些安全规则通常是正则表达式。通过将每一条请求的请求数据(即请求头和请求体)与这些安全规则进行逐一匹配。如果某一条请求的请求数据匹配成功,则按照攻击请求进行拦截。如果所有安全规则都不能匹配,则此次请求为正常请求,予以放行,由服务器继续进行处理。这种方式可以保证较高检出率,但是会消耗大量的waf系统资源(内存和cpu)。而且已经出现一些专门针对waf系统的攻击,通过快速连续发送大量超大的请求导致waf系统在检查过程中耗尽系统资源,出现拒绝服务的现象。

由上可知,现有的waf机制的缺点主要体现在:

1、在日常情况中,正常请求占访问量的90%以上,而每个正常请求都要与所有的安全规则进行规则匹配,以致浪费大量waf系统资源;

2、当攻击者快速连续发送大量超大的请求时,对这些请求的检查会导致waf系统资源耗尽无法进行服务。然而,由于这些请求是通过程序批量发送,请求内容通常是相似或相同的,事实上并不需要完整的检查。



技术实现要素:

针对上述不足,本发明的目的是提供一种基于回馈和监督学习的waf检测方法系统,能够有效减少waf系统的资源消耗,以保证waf系统能够有效检测攻击者发送的攻击请求;同时,该方法减少了人工干预,提高了waf系统对于新的攻击的响应速度。

为达上述目的,本发明所采用的技术方案为:

一种基于回馈和监督学习的waf检测方法,其步骤包括:

对欲访问http/https服务器的请求进行检测,通过分类器对所述请求进行特征提取,并根据提取的特征对所述请求进行分类;

若所述请求为攻击请求,则对该攻击请求直接进行拦截操作;

若所述请求为非攻击请求,则对该非攻击请求直接进行放行操作;

若所述请求为不确定请求,则将该不确定请求输入匹配器进行规则匹配,以得到匹配结果,并根据该匹配结果对该不确定请求进行拦截或放行操作;

将所述特征、匹配结果以及攻击请求和非攻击请求的判定结果作为训练数据,使所述分类器进行周期性的监督学习并得到更新。

进一步地,所述特征是指由所述请求的一种或多种属性组合成的向量。

进一步地,所述属性包括客户端ip、ua(用户代理)、url(统一资源定位符)、host(主机)、refer(引用页)、头部字段数、头部总长度、头部md5值、协议版本、请求体长度、请求体md5值、请求体参数个数、请求方法(get/post/head/put)。

进一步地,所述规则匹配是指所述匹配器根据其内部的所有安全规则对不确定请求的内容进行匹配,如果该不确定请求的内容与至少一条安全规则匹配,则该不确定请求为攻击请求,否则为非攻击请求。

进一步地,所述分类器将训练数据存放到一先进先出的队列中,且该队列只保存最后δt时间内的训练数据。

进一步地,所述分类器每隔δt时间从所述队列中选取最后δt时间内的训练数据重新进行监督学习,其中δt<δt。

一种基于回馈和监督学习的waf检测系统,包括:

一分类器,对欲访问http/https服务器的请求进行特征提取,并根据提取的特征对所述请求进行分类,将属于攻击请求/非攻击请求的进行拦截/放行操作;并根据匹配结果以及攻击请求和非攻击请求的判定结果进行周期性的监督学习及更新;

一匹配器,对所述分类器判定的不确定请求进行规则匹配,并根据匹配结果对该不确定请求进行拦截或放行操作。

本发明提供一种基于回馈和监督学习的waf检测方法,该方法通过增加分类机制,在对访问者欲访问http/https服务器的请求进行规则匹配前先提取其特征,并将提取的特征经过分类器进行分类得到分类结果。由于提取的特征具有资源消耗极低的特点,且只对那些不能明确判断为攻击或非攻击的请求进行规则匹配,因此,该方法极大地减少了waf系统的资源消耗。同时,该方法还通过增加回馈和学习的机制,用最后δt时间内所有请求的特征和匹配结果作为训练数据重新训练分类器。因此本发明的优点主要体现在:

1、分类器能够判定大多数请求是攻击请求还是正常请求(即非攻击请求),这些请求不需要经过规则匹配的处理,有效减少了规则匹配使用次数。且特征和分类器的引入在极大地降低资源消耗的同时也降低了用户时延。

2、针对waf系统的拒绝服务攻击,由于攻击者发送的大量攻击请求具有相同或相似的特征,这些攻击请求可以被分类器以较小的计算代价立刻识别,不再逐个进行规则匹配。

3、将waf系统的判定结果和所有请求的特征实时回馈给分类器,并通过这些判定结果和特征周期性重新训练分类器,以使本发明方法能够自动适应新的攻击请求,相较于人工干预,本发明方法极大的提高了新的攻击的响应速度和拦截效果。

4、本发明提取消耗资源少的特征代替使用原始请求数据进行分类,极大地降低了waf系统的资源消耗。

附图说明

图1为本发明提供的一种基于回馈和监督学习的waf系统部署示意图。

图2为本发明提供的一种基于回馈和监督学习的waf检测方法流程图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

本发明的核心构思为:通过增加基于特征分类的分类器(分类器会实时更新),先对每一条访问者的请求进行快速分类,然后只对那些不能明确判断是攻击请求还是非攻击请求的不确定请求进行规则匹配,极大地减少waf系统的资源消耗。同时,通过增加利用回馈请求的特征和判定结果进行监督学习的机制,周期性重新训练分类器。

本发明提供一种基于回馈和监督学习的waf系统,其部署在http服务器之前,用于在访问者的请求到达http服务器之前对请求的内容进行检测,如图1所示。如果是攻击请求(如图中访问2),则进行拦截操作,不继续发送给http服务器。如果waf系统对该请求检测过且检测结果是正常访问(如图中访问1),则继续转发给http服务器进行处理。

本waf系统在传统系统基础上增加了基于特征分类的分类器,减少了waf系统的资源消耗。结合匹配器,根据请求的特征和判定结果周期性地通过监督学习更新分类器,提高了waf系统对于新攻击的响应能力。

本发明提供一种基于回馈和监督学习的waf检测方法,如图2所示,其步骤包括:

1、访问者(即浏览器)发起请求q,通过网络传递到所述waf系统。

2、waf系统接收到请求q,并不直接通过匹配器进行规则匹配,而是首先经过分类器对请求q进行特征提取,并根据提取的特征对请求q进行分类,得到分类结果。

在本发明中,用s标识请求q的属性集,所述属性集包括请求q的n种属性,这些属性包括客户端ip、ua(用户代理)、url(统一资源定位符)、host(主机)、refer(引用页)、头部字段数、头部总长度、头部md5值、协议版本、请求体长度、请求体md5值、请求体参数个数、请求方法(get/post/head/put)等,这些属性都具有被提取时所消耗资源极少的特点,且提取过程不需要进行解码和正则匹配。

在本发明中,用α表示请求q的特征,所述特征是由n个来自属性集的属性组成的向量,即α=(x1,x2,......xn),其中xi∈s,n≤n。之后分类器根据请求q的特征α对请求q进行分类,其分类结果包括攻击请求、非攻击请求与不确定请求。

3、对于非攻击请求,直接进行放行操作,转发给http服务器进行后续操作。对于攻击请求,则进行拦截操作,并丢弃该请求。

4、对于分类为不确定请求,通过传统规则匹配方式进行规则匹配。即分类器将完整的请求q传入匹配器,其中匹配器中包含大量安全规则,这些安全规则由安全专家根据以往的安全漏洞配置的安全规则和研究分析发现的可能存在的安全漏洞配置的安全规则组成。匹配器检查请求q是否与某一条或几条安全规则匹配。如果匹配,则认为请求q是攻击行为,进行拦截操作并设定匹配结果为攻击请求;如果没有与任何一条安全规则匹配,则认为请求q是正常访问,予以放行并设定匹配结果为非攻击请求,转发到http服务器执行后续操作。

5、无论匹配结果为攻击请求还是非攻击请求,在完成对应的操作(拦截/放行)后,都会将请求q的请求时间t、特征α和上述全部判断结果(含匹配结果)r组成新的训练数据,该训练数据为训练向量β=(t,α,r),并回馈给分类器。分类器会将每一条训练向量β存放到一个先进先出的队列l中,l中只保存最后δt时间内的训练向量,每次加入新的训练向量后,将δt时间前的训练向量删除。每隔δt时间后,分类器从l中选取最近δt时间的训练向量重新进行监督学习。用最近的训练向量周期性地更新分类器,以保证分类器能够适应最新的攻击。其中δt<δt,且δt、δt由检测者根据实际需求进行确定。例如δt为10分钟,δt为1分钟。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1