随着网上银行、手机银行、电子商城等互联网和移动金融应用的兴起。,针对基于web的应用的攻击层出不穷。据统计,2019年的攻击中,针对基于web应用的攻击约占85.4%,遥遥领先于其他攻击。面对如此多的互联网攻击威胁,传统的从代码层面寻找和开发项目团队修复漏洞的效率远远低于利用漏洞的效率。于是,一种专门用于WEB防护的安全新产品应运而生————WAF(WEB Application FIREWALL),也叫应用防火墙。
WAF应用防火墙虽然叫防火墙,但是工作原理和传统防火墙完全不同。传统防火墙主要工作在网络层和传输层,对源和目的地址、源和目的端口、网络协议五元组进行规则匹配过滤。而应用防火墙工作在应用层,主要通过中间代理的方式拦截网络通信中的HTTP流量,然后通过其过滤规则进行分析拦截。这里需要提醒的是,其保护效果取决于对应用逻辑的理解,与应用逻辑结合越紧密,保护效果越好。WAF应用防火墙是应用层安全保护的第一道防线。
二 WAF应用防火墙部署难题虽然WAF应用防火墙可以大大提高应用的安全级别,但如何部署它让许多网络架构参与者感到困惑。实际部署过程中主要存在三个问题:
与其他安全设备旁路部署的方式不同,应用防火墙的工作原理要求其必须串行部署在Web服务器前面;对于网站启用SSL加解密的,需要部署在SSL解密设备之后、WEB服务器之前,而这样的部署会极大的增加网络的复杂度,对应急排错造成困难;对于存量的WEB类互联网系统,新进行串联部署WAF设备,意味着要将现有网络连接通路断开,在变更的过程中可能带来业务的中断,对变更的方案设计和实施工艺也带来很大的挑战性;应用防火墙和应用逻辑结合紧密,如果策略配置不当,或者WAF应用防火墙本身产品BUG,很容易造成正常数据包被误拦截的情况,导致业务影响事件。三 WAF应用防火墙的工作模式首先介绍了WAF应用防火墙的工作模式、原理和典型部署架构。
1.旁路镜像方式Bypass模式通过镜像将请求流量吐到WAF应用防火墙,WAF只能检测和告警访问流量,不能实时拦截。由于失去了主动验证和拦截的能力,旁路部署的WAF应用的防火墙防护能力大大降低,一般不建议这样部署。但从运维的角度来看,旁路部署是最安全的部署方式。如果只是想学习和测试WAF应用防火墙对WEB流量的检测机制,可以尝试bypass。典型部署如下:
图一。在旁路模式下部署WAF应用防火墙
2.二层透明模式部署WAF应用防火墙可以以桥接的方式工作在二层网络中,通过拦截请求流量来获取访问信息。WAF应用防火墙本身不需要配置IP地址,前端请求可以直接发送到后端服务器。晶片设备对两者都是透明,且可以用作网络电缆。这种部署方法很简单,不需要任何配置。如果设备出现故障,可以直接旁路,非常适合简单的网络部署。
但是,一般大型互联网企业网络都是全冗余架构,这意味着从客户端到服务器永远不会只有一条网络路径。所以如果采用两层代理模式会有三个问题:一是每条路径都需要部署WAF应用防火墙,成本会大大增加;二是前后端请求可能从不同的路径穿越不同的WAF应用防火墙,WAF应用防火墙之间的数据没有同步机制,因此与上下文相关的策略会失效,导致防护能力降低;第三,网络路径确定了,设备数量也就确定了,不能再灵活扩展了。
二层代理部署主要考虑部署在网络流量的集中点或者WEB服务器的前端,所以可以考虑部署在负载均衡或者WEB服务器的前端:
(1)部署在负载均衡前端,WAF应用防火墙需要串联在交换机和负载均衡之间的物理链路上。由于一般网络中部署了多个负载均衡集群,每个负载均衡交换机可能有多条链路,因此需要串联多个WAF应用防火墙。负载均衡备用机前端串联的WAF设备因为没有流量,变成了热备用机,造成了一定的资源浪费。
(2)在WEB服务器前端,WAF应用防火墙串联部署在交换机与WEB服务器之间的物理链路上,WAF应用防火墙设备需要与WEB服务器一一对应。由于WAF应用防火墙设备的价格远高于web服务器,这种部署会带来投入成本的增加,不利于后续的服务器扩容。
图3。双层部署架构2
3.代理模式代理模式把真实服务器的地址映射到代理服务器,看起来客户端访问的是代理服务器的地址。在这种模式下,WAF应用防火墙分别与客户端和后台服务器建立TCP连接,所有流量通过前端网络连接发送到WAF应用防火墙,经过WAF处理后通过后端连接转发到后台服务器。
代理模式的典型部署架构如下。通过多层负载均衡实现SSL、WAF、WEB的集群部署,可以降低三层设备之间的耦合,提供灵活的容量扩展。
图4。反向代理模式的典型部署架构
(1)反向代理部署在反向代理模式下,WAF应用防火墙和交换机只需要单VLAN互联,WAF防火墙和WEB服务器部署在同一个VLAN,默认路由指向前端负载均衡。WEB服务器只能从网络层观察WAF接口的地址,不能直接观察客户端的源地址。建议SSL或负载均衡层在HTTP头中插入XFF字段来插入源地址。
图5。反向代理模式下晶圆连接方式
(2)路由代理部署在某些情况下,服务器需要从网络层观察客户端的IP地址。此时需要路由代理模式,路由代理仍然属于其中一种代理模式。WAF应用防火墙通过两个VLAN连接到交换机,WAF应用防火墙需要配置入站和出站路由,使流量经过WAF后通过路由到达后端WEB服务器。此时WAF转发流量会保留源地址,这样WEB服务器就可以直接观察到客户端的IP地址。
图6。路由代理模式下晶圆连接方式
由于负载均衡、SSL和WAF都可以在代理模式下工作,目前市场上有许多一体化产品,因此它们的架构部署有一些变体:
负载均衡具备SSL加解密功能,直接可以省略掉SSL层,问题是SSL不再具备横向扩展能力,随着业务量的增加,瓶颈将出现在负载均衡设备上;图7。负载平衡具有SSL加密和解密功能
SSL具备负载均衡功能,SSL可以直接给后面的WAF做负载,省略掉一层负载均衡。问题是要求WAF产品需要具备二层原路返回功能(autolasthop),如果无此能力,将会出现来回路径不一致的情况。另外,路径较为复杂,排错定位比较困难。图8。SSL具有负载平衡功能
同时具备负载均衡、SSL、WAF能力,那么可以直接给WEB服务器做负载,架构极为简单,但是由于SSL加解密和WAF规则过滤都极其消耗设备性能,故只能对小业务量应用进行部署。图9。全功能负载平衡
另外需要注意的是,虽然所有的WAF产品都宣称具有SSL加解密能力,但是由于性能原因和实际部署中的解耦要求,WAF厂商通常不建议在自己的产品上启用SSL,所以这种方法只推荐用于功能测试。
四 负载均衡策略设计考虑到模型的普适性,我们仍然建议将WAF应用防火墙部署在路由代理模式下,回归其经典的代理部署架构。在现有环境中增加WAF,实际上是在SSL集群层和WEB集群层之间增加一个新的WAF集群层,通过切换与第二层负载均衡关联的地址池来实现WAF集群的部署,基本可以实现零业务中断。
图10。两层集群变成三层集群
其中,第一层和第三层负载均衡策略保持不变,因为没有架构变化。第二层负载均衡,不是直接加载WEB服务器,而是加载WAF集群。这里,为了考虑需要快速隔离的WAF集群的整体故障,在WAF集群中添加了WEB服务器集群的逃生路线。WAF应用防火墙优先级高,而WEB服务器优先级低,这样当WAF出现故障时,负载均衡可以自动切换到第二层负载均衡,直接加载WEB。所以负载均衡采用优先级+最小连接数。
健康检查方面,建议使用TCP直接监控WAF的业务端口。这里只需要监控WAF级,不需要通过HTTP监控业务级。由于该层考虑到可能需要直接加载WEB服务器,建议会话保持策略与第三层负载均衡保持一致。
这种架构主要通过调整网络级的策略来支持WAF访问。但是日常运维调试涉及网络、SSL加解密应用、安全WAF策略、WEB服务器应用等太多领域。,而且调试还是略显复杂。结合运行维护实践,主要有以下三点建议:
在每一层集群前部署监控,探测每一层的页面返回状态,故障时可以快速定位到具体出现问题的集群;如短时间内无法快速定位到故障点,提前准备预案,优先通过负载均衡隔离WAF集群,降低问题排查维度;WAF应用防火墙需要具备完整的拦截日志和设备状态监控,便于后续的问题深入分析和策略持续优化。至此,我们已经介绍了互联网边界网络的重要组成部分WAF应用防火墙的网络部署架构和具体实现方法。主要针对硬件WAF应用防火墙,一些基于虚拟化环境的软WAF部署更加灵活。另外,本文主要阐述了WAF应用防火墙的网络部署架构。如果对策略部署感兴趣,会考虑引入WAF部署策略。欢迎交流讨论。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)