【AWS征文】带你探秘 AWS WAF 如何抵挡各种***来保护你的应用安全

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

一、概述

什么是 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 站点进行测试。

  1. 在 EC2 界面,选择启动一个实例
  2. 选择一个 AMI,我们这里选择 Amazon Linux 2 AMI
  3. 配置实例的一些属性,然后把下面的启动脚本拷贝到用户数据里面
#!/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
  1. 配置好安全组,允许 80 端口流量进入
  2. 启动实例

创建 ALB

因为 WAF 不能直接添加到 EC2 上面,我们需要给 EC2 创建一个 ALB。

  1. 导航到 Load Balancers 界面,选择创建 Application Load Balancer
  2. 选择面向互联网的,监听 80,选好好 EC2 主机所在的子网
  3. 重新创建一个目标组
  4. 注册机器
  5. 创建完成,访问 ALB 的 public DNS

image-20200815110456079

二、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 提供了哪些托管规则组。

image-20200815103846867

image-20200815103904651

使用托管规则组

这里我们做个演示,在没有 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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值