丰俭由人,WAF部署又添新选择
Amazon WAF是一款托管式的Web应用程序防火墙,可以保护您的 Web服务免遭DDOS攻击和安全渗透。
区别于在EC2实例上部署WAF appliance,托管式的Amazon WAF直接通过Console进行部署和管理,即订即用,无需规划扩展性;一个典型的WAF部署可以在30分钟内完成,1分钟内配置生效;所见即所得,让WAF部署和管理变得轻松有效。
更加有效的是Amazon WAF是一个透明的服务,不需要规划网络地址和进行网络层配置,只需将WAF关联到对应的web服务(如ALB和API Gateway)中就可以了;同时WAF的部署也无需改动客户端的配置,对最终用户来说是无感的。
Amazon WAF服务秉承了亚马逊云科技一贯的Builder风格;入门级的配置十分简单明了,可以完成快速部署;专业级的配置可以做到很细致的颗粒度,应对复杂的7层攻击和侵入。
在监控层面,Amazon WAF提供了数据统计(和CloudWatch服务整合)和日志(和Kinesis实时流服务整合)功能,满足了看板监控和数据分析的需求。一个惊喜是Amazon WAF还提供了sample request功能,用户可以在不开启日志功能的情况下看到实时的经过WAF的HTTP request采样数据。
总的看来,Amazon WAF服务的推出,用户多了一个WAF部署的新选择。
为何选择Amazon WAF?
Amazon WAF是一种Web应用程序防火墙,可帮助保护您的Web应用程序或API免遭常见Web漏洞和机器人程序的攻击,这些漏洞可能会影响您云上资源的可用性、安全性或资源的过度消耗。
Amazon WAF允许您创建丰富的安全规则,从而让您可以控制流量到达您的Web应用程序的方式。您可以自定义特定流量模式的规则进行过滤或限速。您还可以使用Amazon WAF的托管规则快速入门,这是由亚马逊云科技中国区管理的一系列预先配置的规则,可用于解决OWASP 10大安全风险和常见攻击模式(例如SQL注入或跨站点脚本)以及会消耗过多资源、扭曲指标或可能导致停机的自动机器人程序等问题。这些规则会随新问题的出现定期更新。
Amazon WAF包含功能全面的API,借此您可以让安全规则的创建、部署和维护实现自动化。
您可以将Amazon WAF部署到位于Web资源之前的Application Load Balancer、提供REST API的Amazon API Gateway或者是提供GraphQL API的Amazon AppSync上。Amazon WAF仅需按实际使用量付费,定价基于您部署的规则数量和您的应用程序收到的Web请求数量。
Amazon WAF为您提供了如下价值:
及时灵活的Web攻击防护:Amazon WAF规则的生效只需不到一分钟时间,因此您可以在问题出现时在您的环境中快速进行安全更新。WAF支持数百条规则,这些规则可以检查Web请求的任意部分,同时保证最低的处理延迟。例如,您可以筛选Web请求的任意部分,例如IP地址、HTTP标头、HTTP正文或URI字符串。
易于部署和维护:无论部署于Application Load Balancer、API Gateway或者是AppSync上,Amazon WAF都能轻松部署和保护应用程序。 无需修改客户侧配置,无需部署其他软件、无需配置DNS、无需管理SSL/TLS证书,也无需进行反向代理设置。
使用托管规则节省时间:使用Amazon WAF托管规则,您可以快速入门并保护您的Web应用程序或API免遭常见的威胁。有多种规则类型供您选择,例如解决诸如开放式Web应用程序安全项目 (OWASP) 十大安全风险、内容管理系统 (CMS) 特有的威胁、新出现的常见漏洞和泄露 (CVE) 等问题、检测与控制互联网机器人的规则。托管规则会随新问题的出现而自动更新,使得您将精力专注于构建应用程序本身。
轻松监视、阻止机器人程序或限制其速率:利用Amazon WAF Bot Control托管规则,您可以获得常见的互联网机器人程序(如抓取程序、扫描程序和爬虫程序)的可见性和控制。在Amazon WAF控制台中,您可以监控常见的机器人程序,例如搜索引擎爬虫,并获得对机器人程序流量的类别、标识和其他详细信息的详细且实时的可见性。您还可以阻止这些机器人程序的流量或限制其速率。
提高Web流量可见性:Amazon WAF让您能够近乎实时地查看Web流量,并通过这些流量的采集在Amazon CloudWatch中创建新的规则或警报。您可以精确控制指标的颗粒度,可以从规则级别的流量到总体流量进行监控。此外,Amazon WAF提供详细的日志记录和采样数据,提供每个接受检查的Web请求的完整标头数据,用于自动提供安全保护、分析或审计用途。
方便高效的与DevOps流程集成:Amazon WAF中的所有功能都可以通过Amazon WAF API进行配置。因此,可以在应用程序开发流程中直接定义特定于应用程序的WAF规则,并通过API进行部署,从而增强应用系统安全性。您可以将WAF规则编写和部署集成到开发流程链中的多个环节:从撰写代码的开发人员,到部署软件的DevOps工程师,再到跨组织实施安全规则组的安全管理员等。
WAF部署架构
WAF部署架构如下:
Amazon WAF可以和和第三方WAF instance共存,您依旧可以在亚马逊云科技中国区使用既有的WAF instance,同时通过Amazon WAF卸载部分规则以减轻WAF instance的压力。
Amazon WAF可以针对公网流量进行Web防护,同时也可以面向VPC内网流量进行Web防护。如上图,WAF可以防护位于公共子网的ALB负载均衡资源以及防护位于私网的ALB负载均衡资源和实例。
演示1:快速部署WAF应对HTTP Flood攻击
下面我们来动手完成1个小实验,增进对WAF配置的了解。
实验背景:当你发现有突增的HTTP请求量(HTTP Flood),后台EC2实例无法响应,影响了正常用户的HTTP访问。你希望可以通过WAF进行快速响应,在最短时间内恢复服务。
实验拓扑:
配置步骤:
针对源地址做限速,即控制每个源IP地址最大的请求速度,减轻后台服务器的负载,让服务恢复正常。
通过sample request分析HTTP请求数据报文,找出异常字段,并对该类报文做Label标记
通过Label标记对该类数据报文进行过滤
通过WAF monitor页面持续监控HTTP通过请求数的变化。
配置演示:
1. 创建Web ACLs
通过
入口创建Web ACLs
可以定义在北京区域或宁夏区域创建WAF ACLs,必须和关联的资源位于同一个区域。
2. 将Web ACLs和ALB资源进行关联
3. 增加Rules规则
我们首先定义一个限速规则,将每个源IP地址的 最高请求数限定在1000个/5分钟,以缓解后台EC2实例的压力。
选择“Add my own rules and rule groups”
选择“Rate-based rule”
将最高速率设置为1000/5分钟
依次以缺省配置完成step 3/4/5,最终生成Web ACLs
我们来验证一下限速规则是否生效,通过客户端发起了2次数量为10000 的突发http请求,在overview窗口中可以看到第二次的10000突发请求被拒绝了。
4. 通过sample request分析HTTP请求数据报文,找出异常字段在Overview页面中可以看到HTTP请求数据报文的采样信息
点击URI列的“/”,可以看到该数据报文的详细信息:
在Request信息中,我们看到“User-Agent:ApacheBench/2.3”,这个User-Agent并不是我们正常流量的请求报文的值,可以将其过滤掉。
5. 对Web ACLs进行修改,增加新的Rule规则对请求报文中包含“User-Agent:ApacheBench/2.3”进行Label标记
我们并没有直接对这个规则进行Block,而是为它赋予了一个Label标签,然后通过另一个规则对这个Label对应的请求报文做Block。这样的的好处是今后如果发现新的特征字段需要和以前的特征字段做组合(或和与),我们可以直接通过Label进行判别并做出Block或者Allow的action动作;增强了规则的易读性
6. 增加另一个Rule规则,对标记为header: user-agent-ab的Label进行过滤block
7. 对规则进行重新排序
将标记user-agent和label过滤的规则优先级置于限速规则之前
8. 监控WAF规则的过滤
客户端连续发起2次1000个http的请求,均被Block。
9. 确认过滤生效后,可以适当放宽Rate limit规则的上限值。
演示2:通过托管规则Managed Rule进行Web防护
实验背景:您已经在亚马逊云科技中国区部署了基于LAMP的网站,希望增加WAF提供Web防护。
配置步骤:
1. 使用Amazon WAF托管规则,简化部署
2. Amazon WAF托管规则包含一系列的规则组,应对不同场景下的安全隐患;如IP reputation规则组收集了曾经频繁发生Web攻击的源IP地址集,SQL database收集了具备SQL注入特征的HTTP字段。
3.针对LAMP网站,我们使用Linux operation system / Amazon IP reputation list / Known bad inputs / PHP application / SQL database 规则组。
配置演示:
1. 与演示1相同,先创建Web ACLs
2. 点选Add managed rule groups
3. 在对应的规则组边点选“Add to web ACL”,并点击“Add Rules”
4. 可以再增加一条限速规则,应对HTTP Flood的威胁
注意:每一条规则都有一个Capacity,一个Web ACLs相加不能超过1500
以上是一个应对HTTP Flood的WAF防范演示。Amazon WAF还提供了以下增强的特性:
Label标签功能,自由组合Rule规则,应对复杂条件
Scope Down功能:在托管规则中叠加例外和限制条件。
WAF自动化规则部署:结合亚马逊云科技其他服务以及WAF API和实时日志的支持,可以完成后台日志分析 – 找出异常特征 – 动态更新WAF规则的工作流,实现WAF自动化规则部署。
???? 想要了解更多亚马逊云科技最新技术发布和实践创新,敬请关注在上海、北京、深圳三地举办的2021亚马逊云科技中国峰会!点击图片报名吧~
听说,点完下面4个按钮
就不会碰到bug了!