一种基于应用网关的Web应用防火墙方法及系统与流程

文档序号:20780250发布日期:2020-05-19 21:10阅读:209来源:国知局
一种基于应用网关的Web应用防火墙方法及系统与流程

本发明属于网络安全技术领域,尤其涉及一种基于应用网关的web应用防火墙方法及系统。



背景技术:

目前,最接近的现有技术:web2.0技术的广泛使用为用户和相关系统带来了越来越大的潜在威胁。现在的web应用程序和在线服务都基于web2.0技术,如javascript和ajax,因此也出现了一系列的针对应层的安全攻击。在web安全变得愈发重要之下,web应用防火墙(waf)应运而生。

web应用程序在机构的威望中占据了绝对的主导地位。针对web应用程序的攻击愈发增加,internet上提供的服务项目也逐渐增多。由于开发中缺乏对web应用程序安全性的关注和认识,并且没有使用安全的软件开发技术,web应用程序已经成为当前攻击的首要目标。大约百分之七十的基于web的攻击是成功的。即使传统的防火墙能够成功阻止网络层的攻击,但他们在基于web的对web应用程序的攻击并不是有效的。因此,在防止信息泄露和互联网上无法提供安全环境的弱点方面,web应用程序有安全需求。

在互联网行业,google将安全做到基础设施里面,素来是安全学习的榜样。在web方面,通过gfe(googlefront-end)同意对外发布,业务只需要在gfe登记,gfe就回调取正确的证书,保障用户到gfe的tls连接安全。此外,microsoft在web方面,有一款叫做azureapplicationgateway的产品,提供了同意的web路由、负载均衡,以及waf(web应用防火墙)功能。但这几款产品均不能用于私有化部署,googlefront-end和azureapplicationgateway只服务于他们自身业务以及他们自己的云客户。想要使用他们的产品,得使用他们的云服务,不然就只能望然兴叹了。

此外,web应用程序使用超文本传输协议(typertexttransferprotocal,http),因此攻击也来自http。关于检测http流量和显示异常请求的研究有很多。存在像webapplicationsecurityconsortium这样的组织为万维网(www)开发安全标准。也有另外的类似的一个小组thinkingstone,他们开发了modsecurity,这是一个apacheweb服务器的开源模块。modsecurity实现了基于签名的检测,所以它对已知类型的攻击有效,但对day0攻击无效。

再者,经济利益成为安全攻击的驱动力,这改变了整个互联网的安全图景,攻击变得“工业化”,具有庞大的组织、资金,更聚焦,并具有自动化能力。在此图景下,web安全事件不断暴露出来,waf解决方案应运而生,而为了更系统地进行web安全防护,各类法规、政策陆续出现,这更有力地推动了waf的需求和技术发展。但业内对waf的需求特点并不完全一样,所以业内厂商的waf技术发展也不完全一样,产品走出了不一样的发展轨迹。

为统一web应用安全隐患,加强对web应用安全的意识,业内web应用安全项目提出“web应用的十大安全隐患”,总结了目前web应用最常受到的10种攻击手段,并且按照攻击发生的概率进行了排序。针对web应用的10大安全隐患,业界提出了web应用防火墙,它可以防范大多数的web应用攻击,是当前主要的web应用安全解决方案。

另外,由于最初攻击主要是针对银行信用卡在线支付,现有技术中,已经对信息安全策略进行了统一,发布了:支付卡行业数据安全标准(paymentcardindustrydatasecuritystandard,缩写pcidss)。这就是对waf产品发展产生持续、强大驱动力的pcidss,最早是version1.0,2006年9月升级为version1.1,2008年10月升级为version1.2,目前最新的pcidss是2017年8月发布的version3.1。

现有企业遭遇网页篡改事件已经时有出现,成了waf的主要驱动力。最早先出现的是网页防篡改系统,包括:agent程序(安装在web服务器上)和集中管理程序。但经过实践证明,它只对保护静态页面有很好的效果,而对于动态页面没办法保护。waf弥补了网页防篡改系统的不足,其深入分析http协议流量,全面防御各种web安全威胁的同时,对web服务器没有任何干扰,实际上是治本的网页防篡改解决方案。

虽然从2008年开始,waf市场陆续有不少安全公司开始开发web应用防火墙,但预防效果仍不理想。

web应用防火墙在网络中位于web应用服务器前,用于保护防火墙之后的应用服务器。waf工作在应用层,基于对http/https流量的双向分析,客户端向服务器发送请求,web应用防火墙解析http/https协议、分析用户请求数据,将解析出的内容与http攻击特征库进行检索比对,如发现攻击则阻断,否则转发给服务器,服务器对请求做出响应,web应用防火墙同样解析协议,分析响应数据,实现攻击检测和阻断,为web应用提供实时的防护。

客户端通过http请求与服务器端进行交互,因此,waf的核心技术之一在于对http的本质理解。超文本传输协议是一个基于请求与响应模式的、无状态的、应用层的协议,基于tcp的连接方式,给出一种持续连接的机制,大多数的web开发都是构建在http协议之上的web应用。客户端向服务器发送一个请求,请求头包含请求的方法、url、协议版本以及包含请求修饰符、客户信息和内容的类似于mime的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本、成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。

http的头域包括通用头、请求头、响应头和实体头四个部分。通用头域包含请求和响应消息都支持的头域,通用头域包含cache-control、connection、date、pragma、transfer-encoding、upgrade、via。请求消息的第一行的格式为:methodrequest-urihttp-versioncrlf。method表示对于request-uri完成的方法,包括options、get、head、post、put、delete、trace;request-uri是一个统一资源标识符;http-version表示请求的http协议版本;crlf表示回车和换行。请求头域可能包含下列字段accept、accept-encoding、accept-language、authorization、from、host、proxy-authorization、range、referer、user-agent。响应消息的第一行为下面的格式:http-versionstatus-codereason-phrasecrlf。http-version表示支持的http版本,如http/1.1。status-code是一个三个数字的结果代码。reason-phrase给status-code提供一个简单的文本描述。status-code主要用于机器自动识别,reason-phrase主要用于帮助用户理解。响应头域包含age、location、proxy-authenticate、public、retry-after、server、vary、warning、www-authenticate。请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括allow、content-base、content-encoding、content-language、content-length、content-location、content-md5、content-range、content-type、expires、last-modified、extension-header等。实体可以是一个经过编码的字节流,它的编码方式由content-encoding或content-type定义,它的长度由content-length或content-range定义。

web应用的核心安全问题是用户可提交任意输入,即任意输入都可能是web攻击的注入点。get、post、cookies、referer、user-agent、请求头都是常见的web攻击注入点。大多数waf的检测方法是采取模式匹配来识别攻击,但是一些web攻击会绕过采取模式匹配的检测方法,原因是:

http协议解析漏洞。如果攻击者构造异常http数据包,则不能正常提取变量,从而不能进入到模式匹配阶段,绕过waf检测。

模式匹配的先天不良。无论是正则匹配或者是配合一定的逻辑匹配,由于模式是固定的,导致了各种侧漏。

目前已知的应用层和网络层攻击方法很多,分析针对web应用各种不同种类的攻击对设计和部署一个web应用防火墙有很强的借鉴意义。表1列出了这些最常见的攻击手法和绕过方式。

表1

综上所述,现有技术存在的问题是:传统的waf中,如agent模式的waf需要在目标主机上安装agent,维护管理工作量比较大,造成维护成本增加;纯网络层waf以及第三方反向代理waf,需要支持https需要提供证书给服务商,证书扩散会导致信息泄漏等问题。

而且现有技术中,没有进行签名检测和异常检测,造成阻止web应用层的恶意攻击效果差。

解决上述技术问题的难度:根据中国国家信息安全漏洞库cnnvd统计,对web网站的黑客攻击约占所有网络攻击的70%以上。web攻击可造成用户重要数据被窃取,甚至服务器被完全控制等后果,给用户带来巨大损失。web应用防火墙作为专业的网站防护产品可以为用户提供重要保障。本专利能够在关键的路径上,切断典型的入侵尝试,挡住大部分探测payload,大幅提高入侵难度,同时从一开始就能够利用此作为网关基础设施推广使用https,保护外网数据传输安全。

解决上述技术问题的意义:本发明实现天然支持https,不需要将证书私钥提供给第三方,保证了证书的安全,不需要在目标主机上安装agent,大大减轻了维护管理工作,提供负载均衡和统一的we化管理入口。本发明采用了基于签名的检测方法和基于异常请求的检测方法,消除了这两种方法的不足。基于签名的检测工作更快,但它不是有效的对零日攻击。另一方面,异常检测方法对零日攻击是有效的。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于应用网关的web应用防火墙方法、系统。

本发明是这样实现的,一种基于应用网关的web应用防火墙方法,利用具有统一网络入口的防火墙网关,配合负载均衡进行调度,拦截web入侵行为、数据泄露;

步骤:http请求经过gateway,gateway的waf模块对其进行检测,若签名检测模块和异常检测模块均通过,则请求通过到达应用层;若请求存在恶意,则将其阻断,并将其发送到拦截日志中,警告waf管理人员。

使用异常检测方法,对day0进行防御;并进行联动检测,对证书进行管理以及进行私钥保护,不将证书文件、私钥文件直接明文的存放在服务器某个目录下,进行浏览器配置。

进一步,所述防火墙网关配置有多个节点,配合负载均衡进行调度。

进一步,所述异常检测方法包括请求计数分析、请求长度分析和请求频率分析,对重要的异常评分信息,选择合理的异常评分计算参数,进行异常数据的检测。

进一步,所述请求计数分析的方法包括:对于不同的地方发送相同的请求次数,根据应用程序判读请求是否受到攻击。正常请求次数远远低于异常请求(特别是暴力破解攻击,其请求次数是正常请求的几百上千倍)次数,异常请求还会请求很多不存在的页面(增加了其请求次数)。

进一步,所述请求长度分析方法包括:根据web应用程序的体系结构,进入web站点的请求内存溢出和跨站点脚本攻击的请求值大于正常请求;由kruegel和vigna使用平均值和方差值进行评估;

p:概率;σ:方差,为请求长度的方差值;l:检测到的请求长度值;u:请求的平均值;

根据web应用程序获得请求长度异常检测所示的值;根据上述公式,http请求长度的0值表示异常极限值;每个请求的异常概率值小于长度值为0的请求的异常值,则将请求定义为异常。

进一步,所述请求频率分析方法包括:利用字符分布模型(在字母文本中,字母不是均匀分布的,而是以不同的频率出现)确定请求的字符频率值;构成web应用程序正常请求的字符的字母频率值高于异常请求的字母频率值;ascii字符用于字符分发。

进一步,字符频率值确定中,通过字母频率分析检测每个字符的请求总数和平均值;如使用像index.php?secim=9&mid=50请求,得到该表达式中字母的频率值和平均值;

当将发送给web应用程序的100个请求的频率值从最小排序为最大时,平均频率值小于0.9的请求被确定为异常。

进一步,联动检测中,包括签名检测,根据攻击技术对签名数据库进行更新,使异常检测运行有效,否则,无效。

本发明的另一目的在于提供一种实施所述基于应用网关的web应用防火墙方法的基于应用网关的web应用防火墙系统,所述基于应用网关的web应用防火墙系统包括:

异常检测模块,包括请求计数分析模块、请求长度分析模块和请求频率分析模块对重要的异常评分信息;选择合理的异常评分计算参数,进行异常数据的检测;

签名检测模块,根据攻击技术对签名数据库进行更新,使异常检测运行有效,否则,无效。

进一步,请求计数分析模块,对于不同的地方发送相同的请求次数,根据应用程序判读请求是否受到攻击;

请求长度分析模块,根据web应用程序的体系结构,进入web站点的请求进行评估异常;

请求频率分析模块,利用字符分布模型确定请求的字符频率值。

综上所述,本发明的优点及积极效果为:本发明利用gfe和azure应用网关,设计了一种应用安全基础的防火墙网关,使其有统一的网络入口,可以有多个节点,配合负载均衡进行调度。除了具备waf功能,如可拦截常见的web入侵行为、数据泄露事件等,还使用异常检测方法,对day0进行有效的防御,能够进行联动检测(进行请求和响应关联检查),将证书管理起来,把私钥保护起来,不再将证书文件、私钥文件直接明文的存放在服务器某个目录下(防止黑客偷走私钥),进行浏览器配置,省去了agent安装,降低维护成本。

本发明对http协议和常见的web应用层的攻击及绕过方式进行详细的分析,提出基于签名检测和异常检测的方法,经测试可以有效的阻止常见的web应用层的恶意攻击。

本发明实验结果表明,该web应用防火墙可以有效防御各种变形的sql注入攻击、暴力破解和扫号攻击webshell检测、xss跨站脚本攻击、信息泄露等主流web应用层的攻击。当打算从零开始构建立体的安全防御体系(特别是应用安全防御体系)的时候,本系统能够在关键的路径上,切断典型的入侵尝试,挡住大部分探测payload,大幅提高入侵难度,同时从一开始就能够利用此作为网关基础设施推广使用https,保护外网数据传输安全。

附图说明

图1是本发明实施例提供的基于应用网关的web应用防火墙方法流程图。

图2是本发明实施例提供的基于应用网关的web应用防火墙方法原理图。

图3是本发明实施例提供的基于应用网关的web应用防火墙系统示意图。

图中:1、异常检测模块;1-1、请求计数分析模块;1-2、请求长度分析模块;1-3、请求频率分析模块;2、基于签名检测模块。

图4是本发明实施例提供的请求重复次数示意图。

图5是本发明实施例提供的请求长度异常检测图。

图6是本发明实施例提供的平均请求频率示意图。

图7是本发明实施例提供的web攻击在本发明配置中签名定义界面图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

传统的waf中,如agent模式的waf需要在目标主机上安装agent,维护管理工作量比较大,造成维护成本增加;纯网络层waf以及第三方反向代理waf,需要支持https需要提供证书给服务商,证书扩散会导致信息泄漏等问题。而且现有技术中,没有进行签名检测和异常检测,造成阻止web应用层的恶意攻击效果差。

针对现有技术存在的问题,本发明提供了一种基于应用网关的web应用防火墙方法、系统,下面结合附图对本发明作详细的描述。

如图1所示,本发明实施例提供的基于应用网关的web应用防火墙方法设计具有统一的网络入口,可以有多个节点,配合负载均衡进行调度,即应用网关(applicationgateway);具有waf(web应用防火墙)功能,可拦截常见的web入侵行为(如sql注入/命令注入/xss/webshell上传或连接)、数据泄露事件等。本发明还将其设计成不需要安装agent的架构,agent维护起来比较麻烦,用浏览器配置可以更简单。还要能够把证书管理起来,把私钥保护起来,不再将证书文件、私钥文件直接明文的存放在服务器某个目录下(防止黑客偷走私钥);只让网关管理人员申请和配置证书,业务人员不用接触证书文件就可以启用https。

具体包括以下步骤:

s101,利用具有统一网络入口的防火墙网关,配合负载均衡进行调度,拦截web入侵行为、数据泄露。

s102,使用异常检测方法,对day0进行防御。

s103,进行联动检测,对证书进行管理以及进行私钥保护,不将证书文件、私钥文件直接明文的存放在服务器某个目录下,进行浏览器配置。

图2是本发明实施例提供的基于应用网关的web应用防火墙方法原理。

如图3本发明实施例提供的基于应用网关的web应用防火墙系统(waf应用网关)所示,应用网关提供统一的网络入口,可以配置成多个节点实现负载均衡。frontend可以直接在浏览器上配置,解决了安装agent的步骤,可直接在上面配置应用、签名检测规则等。backend主要是来进行数据库配置以及初始化、加载配置应用到data,之后data里面的数据会发送给utils(工具集),utils可以生成证书,并且会输出错误到日志里面。waf是整个应用网关的核心部分,waf主要由signaturedetection(基于签名检测模块2)和anomalydetection(异常检测模块1)两个部分组成。

在本发明实施例中,异常检测模块1,包括请求计数分析模块、请求长度分析模块和请求频率分析模块对重要的异常评分信息。选择合理的异常评分计算参数,提高系统的成功率。

在本发明实施例中,请求计数分析模块1-1,由于不同的用户可以从不同的地方发送相同的请求,所以正常的请求会根据网站的访问量不断重复。攻击请求的重复概率低于正常请求。

如图4请求重复次数所示,给出了重复次数高达20次的请求计数。从图4可以看出,攻击重复发生的概率,小数量的概率要比大数量的概率大。根据所开发的应用程序,重复超过15次的请求不受攻击。

在本发明实施例中,请求长度分析模块1-2,根据web应用程序的体系结构,进入web站点的请求具有一定的结构。请求结构的特征之一是请求长度。内存溢出和跨站点脚本攻击的请求值大于正常请求。由kruegel和vigna进行评估,使用平均值和方差值。

p:概率。σ:方差(请求长度的方差值)。l:检测到的请求长度值。u:请求的平均值。

使用开发的应用程序,可以获得图5请求长度异常检测所示的值。根据公式,http请求长度的0值表示异常极限值。如果每个请求的异常概率值小于长度值为0的请求的异常值,则将请求定义为异常。

在本发明实施例中,请求频率分析模块1-3,利用字符分布模型确定请求的字符频率值。构成web应用程序正常请求的字符的字母频率值高于异常请求的字母频率值。ascii字符用于字符分发。

在本发明中,通过字母频率分析来检测每个字符的请求总数和平均值。如果使用像index.php?secim=9&mid=50这样的请求,得到该表达式中字母的频率值和平均值。虽然频率值表示所有请求的每个字母的数量,但是平均值是通过将每个字符的总价值除以请求的数量得到的。

当将发送给web应用程序的100个请求的频率值从最小排序为最大时,平均频率值小于0.9的请求将被确定为异常。评估请求的平均频率值如图6所示。

在本发明实施例中,签名检测模块2根据攻击技术对签名数据库进行更新,以保证系统的有效性。否则,它将是无效的攻击。

签名基检测也称为误用检测。基于签名的系统通常运行速度更快,但它们对仅存在于签名数据库中的攻击是有效的。入侵检测系统和防病毒程序通常工作在基于签名的检测中。

web攻击(如sql注入和跨站点脚本攻击)的在本发明配置中签名定义如图7所示。使用上面定义的关键字阻止包含攻击的http请求。

下面结合测试与分析对本发明作进一步描述。

测试环境为:centos7、nginx、存在漏洞的系统pikachu靶站平台作为被攻击测试对象。应用层发包工具burpsuite和sql扫描器sqlmap。

测试实验过程中使用burpsuite和sqlmap来模拟应用层攻击,对wafgateway做全面的测试。

实验结果表明,该web应用防火墙可以有效防御各种变形的sql注入攻击、暴力破解和扫号攻击webshell检测、xss跨站脚本攻击、信息泄露等主流web应用层的攻击。当打算从零开始构建立体的安全防御体系(特别是应用安全防御体系)的时候,本系统能够在关键的路径上,切断典型的入侵尝试,挡住大部分探测payload,大幅提高入侵难度,同时从一开始就能够利用此作为网关基础设施推广使用https,保护外网数据传输安全。

下面结合效果对本发明作进一步描述。

本发明分析http协议,以及分析了主web应用的攻击及其绕过方式,针http协议的缺陷和模式匹配的不足,采用基于特征码的侦测与异常请求侦测相结合的方法,开发了一个混合型系统。该系统采用了基于签名的检测方法和基于异常请求的检测方法,消除了这两种方法的不足。基于签名的检测工作更快,但它不是有效的对零日攻击。另一方面,异常检测方法对零日攻击是有效的。将waf集成在gateway上,使其有统一的网络入口,具备负载均衡功能,提高了运用的高可用性,并且天然支持https,不需要将证书放置在服务器下,有效的防止了私钥被盗用,提高了安全性能。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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