[ 首页 ] [ 渗透测试 ] [ 黑客接单 ] [ 黑客技术 ] [ 黑客论坛 ] [ 黑客松 ]



标题 : AWS 上的 WAF:基础知识和 3 个关键最佳实践
日期 : 2023-07-16

什么是 AWS WAF?AWS WAF 是一种 Web 应用程序防火墙,用于监控定向到 Amazon CloudFront 分配、Amazon API Gateway REST API、应用程序负载均衡器或 AWS AppSync GraphQL API 的 HTTP(S) 请求。

AWS WAF 还可以控制对 Web 内容的访问。您可以根据条件限制访问,包括:

  • IP地址
  • 请求参数
  • 使用上述组合的规则

与受保护资源关联的服务要么提供所请求的资源(如果 WAF 允许),要么返回 HTTP 403(禁止)状态代码(如果 WAF 不允许)。您还可以将 CloudFront 配置为在请求被阻止时返回自定义错误页面。

AWS WAF 是Amazon 提供的一套云安全服务的一部分,其中还包括 AWS Firewall Manager 和 AWS Shield(Amazon 的分布式拒绝服务 (DDoS) 缓解解决方案)

在本文中:

  • 什么是 AWS Firewall Manager 和 AWS Shield?
    • AWS 防火墙管理器
    • AWS 盾
  • AWS WAF 的工作原理
    • Web ACL
    • 规则
    • 规则组
  • 3 AWS WAF 最佳实践
    • 确保您已做好生产准备
    • 使用计数模式部署 AWS WAF
    • 进行部署后评估

什么是 AWS Firewall Manager 和 AWS Shield?

AWS WAF、AWS Firewall Manager 和 AWS Shield 一起保护 AWS 上部署的 Web 应用程序。

AWS WAF 本身可以让您对 Web 资源的保护进行细粒度控制。通过将 AWS WAF 与 Firewall Manager 相结合,您可以在 AWS 账户之间使用 WAF 并自动执行 AWS WAF 配置。

通过将 AWS 与 WAF 相结合,您可以保护 Web 应用程序免受分布式拒绝服务 (DDoS) 攻击。

AWS 防火墙管理器

Firewall Manager 简化了多个账户和资源的管理和维护,以实现各种保护,包括 AWS WAF、AWS Shield Advanced、Amazon VPC 安全组、AWS 网络防火墙和 Amazon Route 53 Resolver DNS 防火墙。 

使用 Firewall Manager,您只需设置一次保护,该服务就会自动将保护应用于整个 AWS 账户及其所有资源,包括设置保护后添加的新资源,以及支持多个 AWS 账户的能力。

AWS 盾

您可以使用 AWS WAF Web 访问控制列表 (ACL) 来最大限度地减少分布式拒绝服务 (DDoS) 攻击的影响。AWS Shield 有两个版本: 

  • AWS Shield Standard自动包含在 AWS 账户中,无需额外费用。
  • AWS Shield Advanced需额外付费。它为 Amazon EC2 实例、Elastic Load Balancing 负载均衡器、CloudFront 分配、Route 53 托管区域和 AWS Global Accelerator 提供扩展的 DDoS 攻击保护。

AWS WAF 的工作原理

AWS WAF 让您可以控制 AWS 产品响应 HTTP 请求的方式,包括 Amazon CloudFront 分配、Amazon API Gateway API、应用程序负载均衡器和 AWS AppSync GraphQL API。

Web ACL

Web 访问控制列表有助于保护一组 AWS 资源。您可以在创建 Web ACL 时添加规则来定义防御策略 – 这些规则定义 AWS 如何检查 Web 请求。您可以设置默认操作来指示 ACL 是否应根据检查规则允许或阻止请求。 

允许或阻止请求的标准可能包括其来源 IP、来源国家/地区、已识别的恶意脚本、正则表达式或请求大小。您还可以在五分钟内阻止超过限制的请求。 

规则

每个规则组和 Web ACL 使用规则来定义 Web 请求检查和响应。规则必须具有顶级语句——有时包含嵌套语句。规则采用 JSON 格式并提供检查说明。

用于管理 HTTP 请求的 Web ACL 规则可能使用各种标准,例如可疑脚本、恶意 IP 地址和地址范围、地理来源、查询字符串长度、可疑 SQL 代码等。这些规则可以帮助防止各种攻击,包括跨站点脚本和 SQL 注入。您还可以重复使用现有 Web ACL 规则中的标签。

规则组

规则组是 Web ACL 可以重用的规则的集合。您可以使用 AWS 托管、第三方托管或您维护的自定义规则组。Web ACL 和规则组都包含以相同方式定义的规则。但是,规则组与 Web ACL 不同,因为它缺少引用语句,并且可以在不同的 ACL 中重用(Web ACL 不可重用)。

规则组还缺少默认操作 – 您必须为每个规则定义操作。与 Web ACL 的另一个区别是,您不直接将规则组与 AWS 资源关联 — 您必须使用 ACL 中的规则组来保护资源。

3 AWS WAF 最佳实践

以下是一些可帮助您充分利用 AWS WAF 的最佳实践:

部署到生产之前进行测试

测试 WAF 实施并验证其在临时环境中工作后,您可以确定何时将其部署到生产环境。选择您预计用户流量最少的日期和时间。安全和应用程序开发团队应在部署实施之前评估您的操作准备情况。考虑回滚程序并确保仪表板具有正确配置的指标和警报。

创建事件响应操作手册来解释您的团队如何执行回滚和其他缓解任务。确保每个团队成员都知道如何应对安全威胁,包括实施配置更新、在不同帐户中部署、解决问题和补救威胁。操作手册应概述您的团队应采取的所有步骤。

使用计数模式部署 AWS WAF

计数模式是 AWS WAF 中的一个选项,它报告将被您的规则阻止的 Web 请求的数量,但实际上并不阻止它们。这是在启用规则之前了解规则对生产影响的好方法。

一旦您做好了运营准备,您就可以为要保护的生产终端节点部署 AWS WAF。选择您要首先试用的规则,并使用计数模式来识别生产环境中可能未出现在暂存环境中的误报。这种方法可以帮助您确保合法流量顺利流动,尤其是在首次部署 WAF 规则时。

请注意,应用程序可能容易受到计数模式下的规则本来会阻止的攻击。只有当您推动规则阻止模式时,才能确保真正的保护。如果您对规则的有效性充满信心并且预计不会出现很多误报,那么您可能不想在生产中试用规则。

使用计数模式时,请检查仪表板和指标以验证规则是否符合其预期目的。一旦看到规则正确运行,请将它们切换到阻止模式。

进行部署后评估

部署 AWS WAF 后定期监控和检查应用程序。在此阶段,安全和开发团队应定期检查仪表板,以建立正常应用程序流量的基线。您可以利用 AWS WAF 日志以及 Athena、OpenSearch Service 和外部 SIEM 解决方案等工具来分析流量模式并识别潜在的威胁变化。

这些工具提供详细信息,帮助您了解异常情况、检测新威胁或识别误报。检查您的操作手册以使其保持最新状态。定期练习操作手册以了解其表现如何,并让团队成员熟悉安全响应程序。

定期渗透测试是跟上新威胁和解决零日漏洞的另一种有用方法。保持您的 WAF 规则处于最新状态,以确保它们保护您的应用程序免受最新威胁。使用托管规则将帮助您减少使 WAF 保持最新状态所需的技术工作。AWS 和第三方 WAF 提供商会定期更新托管规则,但是,您还应该主动升级自定义或特定于应用程序的 WAF 规则。

结论

在本文中,我们讨论了 AWS WAF(亚马逊云中的托管 Web 应用程序防火墙)的基础知识。

我们还推出了两项相关的 Amazon 服务 – AWS Firewall Manager(可帮助您管理跨大量资源和多个 Amazon 账户的 WAF 配置)和 AWS Shield(利用 WAF ACL 来防御 DDoS 攻击)。

最后,我们提供了三种最佳实践,您可以使用它们来更有效地使用 AWS WAF:

  • 部署到生产之前进行测试– 在临时环境中测试 WAF 规则,并在关闭期间部署到生产以确保规则正常工作。
  • 使用计数模式– 最初使用“计数模式”将 WAF 部署到生产环境,该模式报告将被您的规则阻止的 Web 请求数量,但尚未实际阻止它们。
  • 进行部署后评估– 即使在打开规则后,也要定期评估 WAF 以查看它是否阻止合法流量并相应地调整规则。

LvBug可以帮助您识别应用程序漏洞并智能定义WAF规则。了解有关 LvBug 安全评估的更多信息。