文章目录
- 一、实验介绍
- 二、实验环境准备
- 三、验证实验环境
- 四、Web ACLs 配置 & AWS 托管规则
- 4.1 Web ACLs 介绍
- 4.2 Managed Rules 托管规则
- 4.3 防护常见威胁类型(sql注入,XSS)
- 4.4 实验步骤
- 4.4.1 创建Web ACL
- 4.4.2 测试用例
- 4.4.3 测试结果
- 4.4.4 关联规则到创建的Web ACL
- 4.4.5 验证
一、实验介绍
AWS WAF(Web Application Firewall)是一种提供应用程序级别保护的安全服务,旨在保护web应用程序免受网络攻击。AWS WAF可以有效地帮助用户抵御常见的网络攻击,如跨站脚本(XSS)、SQL注入等。它允许用户创建自定义的安全规则,以监控和控制应用程序收到的流量。这些规则可以基于多种条件,包括IP地址、HTTP头部、HTTP正文、或者字符串匹配等来设置。
本实验将演示如何使用托管规则和自定义规则,来抵御网络攻击。
二、实验环境准备
三、验证实验环境
验证Web页面访问:点击CloudFormation堆栈,选中堆栈PartnerEdgeWorkshop,输出输出标签,获得Cloudfront URL,在浏览器中打开Cloudfront URL,如下图所示。
此时,已成功完成实验环境准备工作,接下来将进入下一步:Web ACL配置
四、Web ACLs 配置 & AWS 托管规则
4.1 Web ACLs 介绍
Web ACL 是 AWS WAF 部署中的核心资源。它包含针对它收到的每个请求评估的规则。Web ACL 通过 Amazon CloudFront 分配、AWS API Gateway、AWS AppSync 或 Application Load Balancer 与您的 Web 应用程序关联。
4.2 Managed Rules 托管规则
托管规则组是 AWS 和 AWS Marketplace 卖家为您编写和维护的预定义、即用型规则的集合。
某些托管规则组旨在帮助保护特定类型的 Web 应用程序,例如 WordPress、Joomla 或 PHP。其他漏洞则针对已知威胁或常见 Web 应用程序漏洞提供广泛的保护,包括 OWASP Top 10 中列出的一些漏洞。如果您受 PCI 或 HIPAA 等法规遵从性的约束,则可以使用托管规则组来满足 Web 应用程序防火墙要求。
AWS 提供了一系列托管规则组。三个示例是 Amazon IP 信誉列表、已知错误输入和核心规则集。
4.3 防护常见威胁类型(sql注入,XSS)
4.4 实验步骤
4.4.1 创建Web ACL
- 打开 AWS WAF 控制台 。
- 选择创建 Web ACL。
- 将 Resource type (资源类型) 设置为 CloudFront Distribution。
- 创建名称 edge-workshop-acl 的Web ACL。
- CloudWatch metric name 同样设置为:CloudWatch metric name。
- 在关联的 AWS 资源部分中,选择添加 AWS 资源。
- 选择在初始化实验环境中创建的Cloudfront 分配,然后选择 Add (添加)。
- 选择“下一步”并继续操作,直到“创建 Web ACL”以完成任务。
- 在Cloudfront 分配页面,确认已关联WAF。
4.4.2 测试用例
#使用Cloudformation创建出的URL
export JUICESHOP_URL=<Your Juice Shop URL>
export JUICESHOP_URL=djbryp4jxosx1.cloudfront.net
# Sql注入语句
curl -X POST $JUICESHOP_URL -F "user='AND 1=1;"
# XSS攻击语句
curl -X POST $JUICESHOP_URL -F "user='<script><alert>Hello</alert></script>'"
4.4.3 测试结果
Sql注入和XSS都正常返回response, 未被Waf Block。
<!DOCTYPE html><html lang="en"><head>
<meta charset="utf-8">
<title>OWASP Juice Shop</title>
<meta name="description" content="Probably the most modern and sophisticated insecure web application">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body class="mat-app-background bluegrey-lightgreen-theme">
<app-root></app-root>
</body></html>
4.4.4 关联规则到创建的Web ACL
在web acl页面,选择 Add rules 按钮。
-
添加 Core rule set,该规则集将涵盖 Web 应用程序常见的各种漏洞。
-
添加 SQL database,该数据库将提供规则来防止 SQL 数据库漏洞,例如 SQL 注入。
-
添加 Known bad inputs,该数据库将提供规则来防止 SQL 数据库漏洞,例如 SQL 注入。
4.4.5 验证
执行步骤:测试用例 中的攻击语句,结果如下:
证明WAF已经有效拦截sql注入和xss攻击。