Web应用防火墙,属于硬件级别防火墙(WebApplicationFirewall,简称WAF)主要用于防御针对网络应用层的攻击,像SQL注入、跨站脚本攻击、参数篡改、应用平台漏洞攻击、拒绝服务攻击等
应用场景
防恶意攻击:防止竞争对手恶意攻击或黑客敲诈勒索,导致的请求超时,瞬断,不稳定等问题。
防数据泄露:防止黑客通过SQL注入、网页木马等攻击手段入侵网站数据库,获取核心业务数据。
防网页篡改:防止黑客通过扫描系统漏洞,植入木马后修改页面内容或发布不良信息,影响网站形象。
开放Web应用安全项目(OWASP)所例举的攻击类型,都在WAF实施时考虑的范围内,其中几种比较常见的攻击类型如下:
1.1跨站脚本漏洞(XSS)
攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入在Web页面里的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS大概分为两类:
XSS攻击能够:
1.2SQL注入
SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。比如查询id=1,如果不对输入的id值1做检查,可以被注入id=1or1=1从而得到所有数据。
SQL注入的产生原因通常表现在以下几方面:
1.3Cookie篡改
很多Web应用都会使用Cookie保存用户的Session信息,当用户使用Cookie访问该应用时,Web应用能够识别用户身份,监控用户行为并提供个性化的服务。而如果Cookie的使用缺乏安全机制的话,也很容易被人篡改和盗用,并被攻击者用来获取用户的隐私信息。
1.4未经验证的输入
Web应用往往会依据HTTP的输入来触发相应的执行逻辑。而攻击者则很容易对HTTP的任何部分做篡改,比如URL地址、URL请求参数、HTTP头、Cookies等,以达到攻破Web应用安全策略的目的。
1.5第七层Dos攻击
我们将在下文中详细介绍WAF针对第七层(应用层)的Dos攻击防护。
1.6网页信息检索(Webscraping)
通过一些工具来获取网页内容,并从中提炼出有用的网站数据信息。
WAF可以按照下面几种方式进行部署:
2.1透明代理模式
WAF代理了WEB客户端和服务器之间的会话,并对客户端和server端都透明。从WEB客户端的角度看,WEB客户端仍然是直接访问服务器,感知不到WAF的存在。
这种部署模式的优点是对网络的改动最小,通过WAF的硬件Bypass功能在设备出现故障或者掉电时可以不影响原有网络流量,只是WAF自身功能失效。
缺点是网络的所有流量都经过WAF,对WAF的处理性能要求高。采用该工作模式无法实现负载均衡功能。
2.2反向代理模式
反向代理模式是指将真实服务器的地址映射到反向代理服务器上,此时代理服务器对外就表现为一个真实服务器。当代理服务器收到HTTP的请求报文后,将该请求转发给其对应的真实服务器。后台服务器接收到请求后将响应先发送给WAF设备,由WAF设备再将应答发送给客户端。
这种部署模式需要对网络进行改动,配置相对复杂,除了要配置WAF设备自身的地址和路由外,还需要在WAF上配置后台真实WEB服务器的地址和虚地址的映射关系。
优点则是可以在WAF上实现负载均衡。
2.3路由代理模式
它与网桥透明代理的唯一区别就是该代理工作在路由转发模式而非网桥模式,其它工作原理都一样。由于工作在路由(网关)模式因此需要为WAF的转发接口配置IP地址以及路由。
这种部署模式需要对网络进行简单改动,要设置该设备内网口和外网口的IP地址以及对应的路由。工作在路由代理模式时,可以直接作为WEB服务器的网关,但是存在单点故障问题,同时也要负责转发所有的流量。该种工作模式也不支持服务器负载均衡功能。
WAF可以采用白名单和黑名单两种安全模式,也可以两者相结合。
在白名单安全模式下,所有不在名单中的请求类型都会被拒绝;而黑名单正好相反,只会拒绝在黑名单上的请求类型,其它通通放行。
对于新的、还不为开发人员所知晓的攻击类型,白名单可以很好地工作。
黑名单相对来说更容易实现,但问题是维护成本高,因为很多时候我们并不能够枚举所有的攻击类型。
OWASP是一个开源的、非盈利的全球性安全组织,致力于Web应用的安全研究。其使命是使Web应用更加安全,使企业和组织能够对安全风险作出更清晰的决策。
OWASP曾经例举了10大常见攻击手段:
1)注入
攻击者把包含一段指令的数据发给应用,应用会当做指令执行。比如上面提到的SQL注入。
2)失效的身份认证和会话管理
应用程序没有能够提供正确的身份认证和会话管理功能,导致攻击者可以冒充他人身份。
3)跨站XSS
攻击者通过往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入Web页面里的Script代码会被执行,从而达到恶意攻击用户的目的。
4)不安全的对象直接引用
5)伪造跨站请求(CSRF)
攻击者盗用了用户的身份,以合法用户的名义发送恶意请求。对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以用户的名义发送邮件、发消息。
假设站点A为存在CSRF漏洞的网站,站点B为攻击者构建的恶意网站,CSRF攻击示例如下:
检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
6)安全配置问题
Web应用所在的服务器、平台、数据库、各种管理工具的配置或者账密泄露,导致相应设施暴露出安全风险。
比如:
7)限制URL访问失败
系统虽然明明对url的访问做了权限限制,但这种限制并没有生效。比如系统没有对用户的角色做检查,用户通过修改url能访问到其他用户或者管理员账户才能访问的url。
8)未验证的重定向和转发
先说下重定向和转发的区别。
对于重定向和转发来说,目的url请求中一般会带有参数,如果这些url参数未做验证,那么就很容易被攻击者利用。
9)使用已经被发现存在漏洞的组件
Web应用使用带有已知漏洞的组件,比如库文件、框架或者其它软件模块,可能会导致严重的安全问题。比如数据泄露、服务器被黑客接管等。
10)敏感信息暴露
用户敏感信息比如信用卡号、手机号、身份证号等数据,一旦被攻击者窃取或者篡改,会造成非常严重的后果。敏感数据需要特殊的保护,比如存储和传输过程中加密,以及在和浏览器进行交互时进行特殊的预防措施。
WAF以OWASP提出的各种安全隐患作为具体实施时需要考虑的准则。上面提到的这些安全问题,都在WAF的防范范围之内。
DDos的全称是DistributedDenialofservice。主要依靠一组计算机来发起对一个单一的目标系统的请求,从而造成目标系统资源耗尽而拒绝正常的请求。
根据OSI的7层网络模型,网络可以从上到下分为:
从上图可以发现,数据的发送是从第七层发起,逐层往下传输,并最终回到第七层的。
根据OSI网络模型,最常见的DDos有三类,第三层(网络层)DDos、第四层(传输层)DDos和第七层(应用层)DDos。
WAF主要处理第七层DDos攻击,它在处理第七层DDos攻击时会比其它防护手段更高效一些。WAF会对HTTP流量做详细的分析,这样WAF就能针对正常的访问请求进行建模,然后使用这些模型来区分正常的请求和攻击者使用机器人或者脚本触发的请求。
针对WAF实施的测试需要一个严格的流程。我们需要知道WAF能够有效防止哪些真实的攻击,漏掉了哪些真实的攻击。同时,我们还需要知道哪些有效的访问也被拦截了。
在针对部署了WAF的Web应用做测试时,最好使用WAF测试框架,并根据下面的步骤来测试:
WAF测试工具不但需要能够触发各种攻击,而且能够产生合法的请求,这样才能检测WAF在预防攻击的情况下能够让合法请求顺利通行。
传统防火墙主要用来保护服务器之间传输的信息,而WAF则主要针对Web应用程序。网络防火墙和WAF工作在OSI7层网络模型的不同层,相互之间互补,往往能搭配使用。
属于软件形式,通过软件算法,这就方便了很多站长和服务器运维人员。提供统一的互联网边界、内网VPC边界、主机边界流量管控与安全防护,包括结合情报的实时入侵防护、全流量可视化分析、智能化访问控制、日志溯源分析等能力,网络边界防护与等保合规利器。
精细化访问控制:流量监控、精准访问控制、实时入侵防御等功能,支持全网流量可视和业务间访问关系可视,全面保护您的网络安全。
资产暴露管理:资产包括:开放公网IP、开放端口、开放应用、云产品;详情包括:公网IP、资产实例、应用、端口、7日流量占比、风险评估、协议(云产品)、健康状态(云产品)、所属可用区(云产品)等。
安全正向代理:NAT网关访问互联网的流量会先经过云防火墙安全正向代理,实现对内网IP访问互联网的流量进行访问控制和防护。
入侵检测与防御IPS:支持安全组的统一管控,同时提供安全组配置检查功能
主动外连检测与封禁:支持云内资源的主动外联网络侧检测,协助客户判断恶意外连请求。
流量可视化:支持全网流量可视和业务间访问关系可
网络日志审计:通过云防火墙的所有流量会在日志审计页面记录下来,包括流量日志、事件日志和操作日志
WAF是Web应用不可缺少的基础安全组件之一,能帮助我们预防一些常见的攻击手段。
所有的云服务厂商都提供了基于云服务的WAF,在云服务商的管理后台点击几下就能完成WAF的接入和使用,极大地降低了WAF的使用门槛。