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

在这里插入图片描述

文章目录

  • 一、实验介绍
  • 二、实验环境准备
  • 三、验证实验环境
  • 四、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正文、或者字符串匹配等来设置。

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

二、实验环境准备

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攻击。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/222735.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

csrf自动化检测调研

https://github.com/pillarjs/understanding-csrf/blob/master/README_zh.md CSRF 攻击者在钓鱼站点&#xff0c;可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求&#xff1a; <form action"https://my.site.com/me/something-destructive" metho…

The Cherno C++笔记 03

目录 Part 07 How the C Linker Works 1.链接 2.编译链接过程中出现的错误 2.1 缺少入口函数 注意:如何区分编译错误还是链接错误 注意&#xff1a;入口点可以自己设置 2.2 找不到自定义函数 2.2.1缺少声明 2.2.2自定义函数与引用函数不一致 2.3 在头文件中放入定义 …

编译原理----算符优先级的分析(自底向上)

自底向上分析的分类如下所示&#xff1a; 算符优先分析 算符优先分析只规定算符之间的优先关系&#xff0c;也就是只考虑终结符之间的优先关系。 &#xff08;一&#xff09;若有文法G&#xff0c;如果G没有形如A->..BC..的产生式&#xff0c;其中B和C为非终结符&#xff…

rtsp视频在使用unity三维融合播放后的修正

1 rtsp 接入 我们使用unity UE 等三维渲染引擎中使用c编写插件来接入rtsp 视频。同时做融合的时候&#xff0c;和背景的三维颜色要一致&#xff0c;这就要使用视频融合修正技术。包括亮度&#xff0c;对比度&#xff0c;饱和度的修正。在单纯颜色上的修正可以简单使用rgb->…

NXP iMX8MM 通过 TFTP和 NFS 启动示例

By Toradex秦海 1). 简介 嵌入式 Linux 设备开发调试时候为了方便部署各种配置和修改常用的一种方法就是通过网络启动&#xff0c;具体就是将 Linux Kernel&#xff08;以及 Device tree/Device Tree overlays) 从开发主机的 TFTP 服务加载&#xff0c; Linux rootfs 通过开发…

听GPT 讲Rust源代码--src/tools(18)

File: rust/src/tools/rust-analyzer/crates/ide-ssr/src/from_comment.rs 在Rust源代码中的from_comment.rs文件位于Rust分析器&#xff08;rust-analyzer&#xff09;工具的ide-ssr库中&#xff0c;它的作用是将注释转换为Rust代码。 具体来说&#xff0c;该文件实现了从注…

【即插即用篇】YOLOv8改进实战 | 引入 Involution(内卷),用于视觉识别的新一代神经网络!涨点神器!

YOLOv8专栏导航:点击此处跳转 前言 YOLOv8 是由 YOLOv5 的发布者 Ultralytics 发布的最新版本的 YOLO。它可用于对象检测、分割、分类任务以及大型数据集的学习,并且可以在包括 CPU 和 GPU 在内的各种硬件上执行。 YOLOv8是一种尖端的、最先进的 (SOTA) 模型,它建立在以前成…

Centos7在安装Graylog时新安装MongoDB报错端口不监听服务不启动无法运行启动失败

由于虚拟机服务器上需要安装Graylog需要安装MongoDB&#xff0c;尝试官网下载安装包&#xff0c;和yum安装均无法正常启动&#xff0c;折腾了好几天&#xff0c;重装了十几次&#xff0c;网上搜索了很多很多资料&#xff0c;均无法正常运行&#xff0c;百度上搜索各种文档&…

华为端口隔离简单使用方法同vlan下控制个别电脑不给互通

必须得用access接口&#xff0c;hybrid口不行 dhcp enable interface Vlanif1 ip address 192.168.1.1 255.255.255.0 dhcp select interface interface MEth0/0/1 interface GigabitEthernet0/0/1 port link-type access port-isolate enable group 1 interface GigabitEther…

Node.js-模块化(二)

1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层将系统拆分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 1.2 编程领域中的模块化 编程领域中的模块化&#xff0c;就是遵守固定的规则&…

Python之Django项目的功能配置

1.创建Django项目 进入项目管理目录&#xff0c;比如&#xff1a;D盘 执行命令&#xff1a;diango-admin startproject demo1 创建项目 如果提示diango命令不存在&#xff0c;搜索diango-admin程序的位置&#xff0c;然后加入到环境变量path中。 进入项目&#xff0c;cd demo…

嵌入式开发网络配置——windows连热点,开发板和电脑网线直连

目录 电脑 WiFi 上网&#xff0c;开发板和电脑直连 使用场景 设置VMware虚拟机的网络配置 Ubuntu设置——版本18.04 ​编辑 windows设置 开发板设置 原因&#xff1a;虚拟机Linux移植可执行程序到开发板失败 最后发现虚拟机的Linuxping不通开发板 下面是我的解决方法 …

微软的word文档中内置背景音乐步骤(打开自动播放)

目录 一、前言 二、操作步骤 一、前言 有时候需要在word文档里面打开的时候就自动播放音乐或者音频&#xff0c;那么可以用微软的word来按照操作步骤去这样完成。 如果没有微软office的&#xff0c;可以下载这个是2021专业版的。因为office只能免费使用一段时间&#xff0c…

猜数字游戏 C语言xdoj490

问题描述 猜数字游戏是令游戏机随机产生一个 100 以内的正整数&#xff0c;用户输入一个数对其进行猜测&#xff0c;需要你编写程序自动对其与随机产生的被猜数进行比较&#xff0c;并提示大了&#xff08;“Too big”&#xff09;&#xff0c;还是小了&#xff08;“Too smal…

Java小案例-Sentinel的实现原理

前言 Sentinel是阿里开源的一款面向分布式、多语言异构化服务架构的流量治理组件。 主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 核心概念 要想理解一个新的技…

vue3引入使用高德地图,不显示地图问题

将全局引入的mockjs去除&#xff0c;就可以了。

Springboot+vue的装饰工程管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的装饰工程管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的装饰工程管理系统&#xff0c;采用M&#xff08…

【uniapp】uniapp中本地存储sqlite数据库保姆级使用教程(附完整代码和注释)

数据库请求接口封装 uniapp中提供了plus.sqlite接口&#xff0c;在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {…

.Net Core webapi RestFul 统一接口数据返回格式

在RestFul风格盛行的年代&#xff0c;大部分接口都需要一套统一的数据返回格式&#xff0c;那么我们怎么才能保证使用统一的json数据格式返回呢&#xff0c;下面给大家简单介绍一下&#xff1a; 假如我们需要接口统一返回一下数据格式&#xff1a; {"statusCode": …

任天堂,steam游戏机通过type-c给VR投屏与PD快速充电的方案 三type-c口投屏转接器

游戏手柄这个概念&#xff0c;最早要追溯到二十年前玩FC游戏的时候&#xff0c;那时候超级玛丽成为了许多人童年里难忘的回忆&#xff0c;虽然长大了才知道超级玛丽是翻译错误&#xff0c;应该是任天堂的超级马里奥&#xff0c;不过这并不影响大家对他的喜爱。 当时FC家用机手柄…