【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.mzph.cn/news/238929.shtml

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

相关文章

融资项目——vue之路由实现

通俗来说&#xff0c;路由就是锚点<a>的升级版。下面举一个例子来了解&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><div id"list"><h1…

【C++】可变参数模板使用总结(简洁易懂,详细,含代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Linux》…

【Unity基础】9.地形系统Terrain

【Unity基础】9.地形系统Terrain 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;地形编辑器Terrain &#xff08;1&#xff09;创建地形 游戏场景中大多数的山川河流地表地貌都是基…

前端项目为什么需要 TypeScript 来强化?

什么是TypeScript? TypeScript 是一个为开发大规模应用程序而设计的语言。它是 JavaScript 的一个超集&#xff0c;包含 JavaScript 全部的功能&#xff0c;并扩展了一些新的特性。具体来说&#xff0c;TypeScript 增加了如类型注解和编译时类型检查等特性&#xff1a; let n…

淘宝通过关键字搜索商品列表API接口对接详细步骤(支持免费测试)

通过关键字搜索商品&#xff0c;批量获取到相关商品&#xff0c;这是几乎所有电商平台购物商城都有的功能。我将此功能封装为API&#xff0c;可供外部软件直接调用&#xff0c;实现通过关键字搜索淘宝商品的功能。 接口名称&#xff1a;item_search-按关键字搜索淘宝商品 请求…

微信小程序promise封装

一. 在utils文件夹内创建一个request.js 写以下封装的 wx.request() 方法 const baseURL https:// 域名 ; //公用总路径地址 export const request (params) > { //暴露出去一个函数&#xff0c;并且接收一个外部传入的参数let dataObj params.data || {}; //…

pytorch中nn.Sequential详解

1 nn.Sequential概述 1.1 nn.Sequential介绍 nn.Sequential是一个序列容器&#xff0c;用于搭建神经网络的模块被按照被传入构造器的顺序添加到容器中。除此之外&#xff0c;一个包含神经网络模块的OrderedDict也可以被传入nn.Sequential()容器中。利用nn.Sequential()搭建好…

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…

一些问题/技巧的集合(仅个人使用)

目录 第一章、1.1&#xff09;前端找不到图片1.2&#xff09;1.3&#xff09;1.4&#xff09; 第二章、2.1&#xff09;2.2&#xff09;2.3&#xff09; 第三章、3.1&#xff09;3.2&#xff09;3.3&#xff09; 第四章、4.1&#xff09;4.2&#xff09;4.3&#xff09; 友情提…

系列一、GitHub搜索技巧

一、GitHub搜索技巧 1.1、概述 作为程序员&#xff0c;GitHub大家应该都再熟悉不过了&#xff0c;很多时候当我们需要使用某一项技能而又无从下手时&#xff0c;通常会在百度&#xff08;面向百度编程&#xff09;或者在GitHub上通过关键字寻找相关案例&#xff0c;比如我想学…

IU5070E线性单节锂电池充电管理IC

IU5070E是一款具有太阳能板最大功率点跟踪MPPT功能&#xff0c;单节锂离子电池线性充电器&#xff0c;最高支持1.5A的充电电流&#xff0c;支持非稳压适配器。同时输入电流限制精度和启动序列使得这款芯片能够符合USB-IF涌入电流规范。 IU5070E具有动态电源路径管理(DPPM)功能&…

第11章 GUI Page403~405 步骤三 设置滚动范围

运行效果&#xff1a; 源代码&#xff1a; /**************************************************************** Name: wxMyPainterApp.h* Purpose: Defines Application Class* Author: yanzhenxi (3065598272qq.com)* Created: 2023-12-21* Copyright: yanzhen…

一款外置MOS开关降压型 LED 恒流控制器应用方案

一、基本概述 TX6121 是一款高效率、高精度的降压型大功率 LED 恒流驱动控制器芯片。芯片采用固定关断时间的峰值电流控制方式&#xff0c;关断时间可通过外部电容进行调节&#xff0c;工作频率可根据用户要求而改变。 通过调节外置的电流采样电阻&#xff0c;能控制高亮度 LE…

火力发电厂电气一次部分初步设计(论文+图纸)

1 原始资料 设计电厂为中型是凝汽式发电厂&#xff0c;共4台发电机组&#xff0c;2台75MW机组&#xff0c;2台50MW机组&#xff0c;总的装机容量为250MW&#xff0c;占系统容量的比例为&#xff1a; 250/(3500250)100%6.7%<15%&#xff0c;未超过电力系统的检修备用容量和…

WebGL在教育和培训的应用

WebGL在教育和培训领域具有广泛的应用&#xff0c;其强大的图形渲染能力和跨平台性使得它成为创建交互式、视觉化的数字内容的理想选择。以下是一些WebGL在教育和培训上的应用示例&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司…

PlatEMO UI 界面

&#x1f389; 博主相信&#xff1a; 有足够的积累&#xff0c;并且一直在路上&#xff0c;就有无限的可能&#xff01;&#xff01;&#xff01; &#x1f468;‍&#x1f393;个人主页&#xff1a; 青年有志的博客 &#x1f4af; Github 源码下载&#xff1a;https://github.…

nmap端口扫描工具安装和使用方法

nmap&#xff08;Network Mapper&#xff09;是一款开源免费的针对大型网络的端口扫描工具&#xff0c;nmap可以检测目标主机是否在线、主机端口开放情况、检测主机运行的服务类型及版本信息、检测操作系统与设备类型等信息。本文主要介绍nmap工具安装和基本使用方法。 nmap主…

【Java】编写一个简单的Servlet程序

Java Servlet 是运行在 Web 服务器或应用服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 使用 Servlet&#xff0c;可以收集来自网页表单的用户输入&#xff0c;呈现来自数据库或者其他源的记录…

在MongoDB中使用数组字段和子文档字段进行索引

本文主要介绍在MongoDB使用数组字段和子文档字段进行索引。 目录 MongoDB的高级索引一、索引数组字段二、索引子文档字段 MongoDB的高级索引 MongoDB是一个面向文档的NoSQL数据库&#xff0c;它提供了丰富的索引功能来加快查询性能。除了常规的单字段索引之外&#xff0c;Mong…