一、概述
什么是 WAF
AWS WAF 是一种 Web 应用程序防火墙,让您能够监控转发到 一个 Amazon CloudFront 分配、一个 Amazon API Gateway REST API 或一个 应用程序负载均衡器的 HTTP(S) 请求。它有助于保护您的 Web 应用程序或 API 免受可能影响可用性、危害安全性或消耗过多资源的常见 Web ***。
使用 WAF 是向 Web 应用程序添加深度防御的一个很好的方法。一个 WAF 可以帮助降低诸如 SQL 注入、跨网站脚本***和其他常见***的风险。WAF 允许您创建自己的自定义规则,以决定是否在 HTTP 请求到达您的应用程序之前阻止或允许 HTTP 请求。
OWASP Juice Shop
为了测试 WAF 的拦截效果,我们需要准备一个测试站点,目前比较流行的就是 OWASP Juice Shop 。
OWASP Juice Shop 可能是最现代和最复杂的不安全的网络应用程序!它可以用于安全培训、意识演示、 CTFs,也可以作为安全工具的试验品!Juice Shop 包含了整个 OWASP 十大漏洞以及在现实世界应用程序中发现的许多其他安全漏洞!
安装 Juice Shop
因为我们的测试环境在 AWS,我们直接创建 EC2,在 EC2 上面部署 Juice Shop 站点进行测试。
- 在 EC2 界面,选择启动一个实例
- 选择一个 AMI,我们这里选择 Amazon Linux 2 AMI
- 配置实例的一些属性,然后把下面的启动脚本拷贝到用户数据里面
#!/bin/bash
sudo yum update -y
sudo amazon-linux-extras install docker
sudo service docker start
sudo docker pull bkimminich/juice-shop
sudo docker run -d -p 80:3000 bkimminich/juice-shop
- 配置好安全组,允许 80 端口流量进入
- 启动实例
创建 ALB
因为 WAF 不能直接添加到 EC2 上面,我们需要给 EC2 创建一个 ALB。
- 导航到 Load Balancers 界面,选择创建 Application Load Balancer
- 选择面向互联网的,监听 80,选好好 EC2 主机所在的子网
- 重新创建一个目标组
- 注册机器
- 创建完成,访问 ALB 的 public DNS

二、Web ACLs 和 Managed Rules
Web ACLs
Web ACL (Web Access Control List)是 AWS WAF 部署的核心资源。它包含对其接收的每个请求求值的规则。Web ACL 通过 Amazon CloudFront distribution、 AWS API Gateway API 或 AWS Application Load Balancer 与您的 Web 应用程序相关联。
Managed Rules
开始使用 WAF 的最快方法是将 AWS WAF 的 AWS 托管规则组部署到 WebACL。
Managed Rule Groups 是一组规则,由 AWS 或 AWS 市场上的第三方创建和维护。这些规则提供了针对常见类型,或者针对特定的应用程序类型***的保护。
每个托管规则组都可以防范一组常见的***,如 SQL 或命令行***,下面我们看看在 WAF 中 AWS 提供了哪些托管规则组。


使用托管规则组
这里我们做个演示,在没有 WAF 加持的情况下是什么状况,加上 WAF 托管规则又是什么效果。
测试两种类型的模拟***,一种是跨站脚本***,还有一种是 SQL 注入***,如下:
export JUICESHOP_URL=<Your Juice Shop URL>
# This imitates a Cross Site Scripting attack
# This request should be blocked.
curl -X POST $JUICESHOP_URL -F "user='<script><alert>Hello></alert></script>'"
# This imitates a SQL Injection attack
# This request should be blocked.
curl -X POST $JUICESHOP_URL -F "u

本文详细介绍AWS WAF的使用,包括Web应用程序防火墙的基本概念、如何使用托管规则组防止常见***,以及如何创建自定义规则应对特定***。通过实战演示,展示如何通过JSON编辑复杂规则,确保Web应用安全。
最低0.47元/天 解锁文章
657

被折叠的 条评论
为什么被折叠?



