架构概述 - AWS WAF 的安全自动化

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

架构概述

本节提供了此解决方案所部署组件的参考实施架构图。

架构图

使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。

CloudFormation 模板部署 AWS WAF 和其他 AWS 资源来保护您的 Web 应用程序免受常见攻击。

aws waf 架构概述

设计的核心是 AWS WAF Web ACL,它充当 Web 应用程序所有传入请求的中心检查和决策点。在 CloudFormation 堆栈的初始配置过程中,用户定义要激活哪些保护组件。每个组件独立运行,并向 Web ACL 添加不同的规则。

该解决方案的组件可以分为以下保护区域。

注意

群组标签不反映 WAF 规则的优先级。

  • AWS 托管规则 (A)-此组件包含 AWS 托管规则 IP 信誉规则组基准规则组特定于用例的规则组。这些规则组可以防止对常见应用程序漏洞或其他有害流量的利用,包括 OWASP 出版物中描述的漏洞,而无需自己编写规则。

  • 手动 IP 列表(B 和 C)-这些组件创建了两个 AWS WAF 规则。使用这些规则,您可以手动插入要允许或拒绝的 IP 地址。您可以使用亚马逊 EventBridge规则和 Amazon DynamoD B 配置 IP 保留并删除允许或拒绝的 IP 集上的过期 IP 地址。有关更多信息,请参阅在允许和拒绝的 AWS WAF IP 集上配置 IP 保留

  • SQL 注入 (D) 和 XSS (E)-这些组件配置了两个 AWS WAF 规则,这些规则旨在防止 URI、查询字符串或请求正文中常见的 SQL 注入或跨站脚本 (XSS) 模式。

  • HTTP Flood (F)-此组件可防范由来自特定 IP 地址的大量请求构成的攻击,例如 Web 层 DDo S 攻击或暴力登录尝试。使用此规则,您可以设置配额,该配额定义了在默认五分钟内允许来自单个 IP 地址的最大传入请求数(可使用 Athena Query 运行时间计划参数进行配置)。突破此阈值后,将暂时阻止来自该 IP 地址的其他请求。您可以通过使用基于 AWS WAF 速率的规则来实现此规则,也可以使用 Lambda 函数或 Athena 查询处理 AWS WAF 日志。有关与 HTTP 洪水缓解选项相关的权衡的更多信息,请参阅日志解析器选项。

  • S@@ canner and Probe (G)-此组件解析应用程序访问日志,搜索可疑行为,例如源生成的异常数量错误。然后,它会在客户定义的一段时间内屏蔽这些可疑的源 IP 地址。您可以使用 Lambda 函数或 Athena 查询来实现此规则。有关与扫描器和探测器缓解选项相关的权衡的更多信息,请参阅日志解析器选项。

  • IP 信誉列表 (H)-此组件是 IP Lists Parser Lambda 函数,它每小时检查第三方 IP 信誉列表,寻找要屏蔽的新范围。这些列表包括 Spamhaus Don't Route Or Peer (DROP) 和 Extended DROP (EDROP) 列表、Proofpoint 新兴威胁 IP 列表和 Tor 退出节点列表。

  • Ba@@ d Bot (I)-除了蜜罐机制外,此组件还通过监控与应用程序负载均衡器 (ALB) 或 Amazon CloudFront 的直接连接来增强恶意机器人的检测。如果机器人绕过蜜罐尝试与 ALB 或交互 CloudFront,则系统会分析请求模式和日志以识别恶意活动。当检测到恶意机器人时,系统会提取其 IP 地址并将其添加到 AWS WAF 阻止列表中,以防止进一步访问。恶意机器人检测通过结构化的逻辑链运行,确保全面的威胁覆盖:

    • HTTP Flood Protection Lambda 日志解析器 — 在洪水分析期间 IPs 从日志条目中收集恶意机器人。

    • Scanner & Probe Protection Lambda 日志解析器 — IPs 从与扫描仪相关的日志条目中识别不良机器人。

    • HTTP Flood Protection Athena 日志解析器 — 使用跨查询运行的分区 IPs 从 Athena 日志中提取恶意机器人。

    • Scanner & Probe Protection Athena 日志解析器 — 使用相同的分区策略 IPs 从与扫描仪相关的 Athena 日志中检索恶意机器人。

    • 回退检测-如果同时禁用 HTTP 洪水防护和扫描器和探测器保护,则系统将依赖日志 Lambda 解析器,该解析器基 WAF 标签筛选器记录机器人活动。

此解决方案中的三个自定义 Lambda 函数均向发布运行时指标。 CloudWatch有关这些 Lambda 函数的更多信息,请参阅组件详细信息。