【Amazon 实验①】使用Amazon WAF做基础 Web Service 防护

发布时间:2023年12月23日

在这里插入图片描述

一、实验介绍

AWS WAF(Web Application Firewall)是一种提供应用程序级别保护的安全服务,旨在保护web应用程序免受网络攻击。AWS WAF可以有效地帮助用户抵御常见的网络攻击,如跨站脚本(XSS)、SQL注入等。它允许用户创建自定义的安全规则,以监控和控制应用程序收到的流量。这些规则可以基于多种条件,包括IP地址、HTTP头部、HTTP正文、或者字符串匹配等来设置。

本实验将演示如何使用托管规则和自定义规则,来抵御网络攻击。

二、实验环境准备

image-20231221173200326

三、验证实验环境

验证Web页面访问:点击CloudFormation堆栈,选中堆栈PartnerEdgeWorkshop,输出输出标签,获得Cloudfront URL,在浏览器中打开Cloudfront URL,如下图所示。

image-20231221173256063
image-20231221173509984

此时,已成功完成实验环境准备工作,接下来将进入下一步: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 信誉列表、已知错误输入和核心规则集。

image-20231221174412389

4.3 防护常见威胁类型(sql注入,XSS)

4.4 实验步骤

4.4.1 创建Web ACL

  1. 打开 AWS WAF 控制台 。
  2. 选择创建 Web ACL。
  3. 将 Resource type (资源类型) 设置为 CloudFront Distribution。
  4. 创建名称 edge-workshop-acl 的Web ACL。
  5. CloudWatch metric name 同样设置为:CloudWatch metric name。
  6. 在关联的 AWS 资源部分中,选择添加 AWS 资源。
  7. 选择在初始化实验环境中创建的Cloudfront 分配,然后选择 Add (添加)。
  8. 选择“下一步”并继续操作,直到“创建 Web ACL”以完成任务。
  9. 在Cloudfront 分配页面,确认已关联WAF。

image-20231221174724847
image-20231221174928265
image-20231221175015253

image-20231221175124704

image-20231221175353112

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>'"

image-20231221175741092

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 按钮。

  1. 添加 Core rule set,该规则集将涵盖 Web 应用程序常见的各种漏洞。

  2. 添加 SQL database,该数据库将提供规则来防止 SQL 数据库漏洞,例如 SQL 注入。

  3. 添加 Known bad inputs,该数据库将提供规则来防止 SQL 数据库漏洞,例如 SQL 注入。

image-20231222102525818

image-20231222102815947

image-20231222102821583

4.4.5 验证

执行步骤:测试用例 中的攻击语句,结果如下:

image-20231222104237398

证明WAF已经有效拦截sql注入和xss攻击。

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_45392321/article/details/135161009
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。