资讯中心

如何使用 Amazon Athena 查询分析 AWS WAF 日志,并提供所需的可见性以进行威胁检

2026-01-27 13:49:26
8次

使用 Amazon Athena 查询分析 AWS WAF 日志以检测威胁

关键要点

AWS WAF 提供实时监控和屏蔽潜在的网络请求威胁。通过使用 Amazon Athena 分析 AWS WAF 日志,可以获得有关恶意流量的重要见解。配置 AWS WAF 日志记录并实施适当的日志查询是有效的威胁检测的关键步骤。本文将展示利用 Athena 进行日志分析的多个实际示例。

Web 应用程序安全是一个持续的过程。AWS WAF 允许实时监控并阻止潜在有害的网络请求。Bot 控制和欺诈控制利用机器学习 (ML) 来检测和防范复杂威胁。根据估算,机器人流量可能占总网络流量的 30 到 50 甚至更多。在启用 AWS WAF 后,评估网络流量中的假阳性和假阴性,识别流量模式,识别新的攻击特征,并更好理解进入您应用程序的网络流量是非常必要的。为了确保最优的安全性,定期评估和改进您的 AWS WAF 配置至关重要,通过使用流量洞察可以增强您应用程序的安全性,并有效缓解恶意流量。

本篇文章将提供有关如何使用 Amazon Athena 分析发布到 Amazon S3 存储桶中的 AWS WAF 日志的信息,以获取潜在攻击的洞察。如果您将 AWS WAF 日志发布到 Amazon CloudWatch Logs,请参考分析 AWS WAF 日志在 Amazon CloudWatch 中的记录。使用 Athena,您可以轻松实施对 AWS WAF 的持续分析,识别例如访问您应用程序的前 10 个 IP 地址、访问的前 10 个 URI、根据令牌拒绝的顶部 IP 地址、客户端会话跟踪等众多场景。

AWS WAF 仪表板

AWS WAF 提供 Web ACL 流量概览仪表板,以提供网络流量的总览。这些仪表板分为四个不同的类别:所有流量、机器人控制、账户接管保护及账户创建欺诈预防。例如,如果您想要了解前 10 个国家的请求、令牌状态或客户端会话阈值,您可以使用默认仪表板。但是,若要进行更深入的网络流量分析并为自定义用例生成数据,您需要分析 AWS WAF 日志。Athena 为您提供了运行查询的适当集成。

AWS WAF 日志记录

通过 AWS WAF 日志记录,您可以查看访问受保护资源的流量的元数据JSON 格式,包括客户端 IP 地址、请求资源等。请参阅 日志字段,以获取可用数据的完整列表。这些信息使您能够从多个维度分析流量,例如客户端 IP、URI、主机、客户端 IP 国家、HTTP 头和 AWS WAF 规则,提供对您的 Web 应用程序安全的重要见解。AWS WAF 为每个处理的 HTTP 请求生成唯一的 JSON 日志条目,可供存储和分析。您可以将 AWS WAF 日志发送到多个目的地,包括 S3 存储桶、CloudWatch,或通过使用 Amazon Kinesis Data Firehose 将日志发送到第三方解决方案,如 Datadog 或 Splunk。一旦创建了 Kinesis Data Firehose 传输流,您可以通过 AWS CLI 或 AWS WAF 控制台将其与 AWS WAF 网页访问控制列表 (ACL) 关联,从而使 AWS WAF 将实时日志发送到所需的目的地。

使用 AWS WAF 日志和 Athena 进行威胁检测分析的示例

本文提供七个示例,例如按不同标准的高流量主机、具有额外细节的高流量主机、指定日期的各种机器人流量统计、按 IP 地址统计不同标签、网站抓取和攻击、按 IP 地址进行 AWS WAF 令牌分析、会话跟踪等。这些情境帮助您深入了解跨单个或多个附有 Web ACL 的 AWS 资源的 AWS WAF 流量。

如前所述,AWS WAF 日志包含分析用户请求详情所需的元数据。AWS 考虑中止和不中止规则操作来停止或继续处理请求,按配置的规则优先级顺序进行。当分析机器人流量时,理解 AWS WAF 令牌特征和 标签 有助于利用 AWS WAF 智能威胁检测。AWS WAF 令牌作为名为 awswaftoken 的 cookie 保存。对于 CAPTCHA 和挑战请求,AWS WAF 会检查令牌状态。如果请求具有有效令牌,则视为不终止匹配;如果令牌无效因为缺失、过期或被拒绝,AWS WAF 将向客户端呈现 CAPTCHA 或挑战页面。

前提条件

启用 AWS WAF 日志记录:按 AWS rePost 中的说明 启用,并直接从 AWS WAF 发布日志到 S3 存储桶或使用 Kinesis Data Firehose。建议使用 Kinesis Data Firehose 以更好地控制日志传输。配置 Athena:AWS WAF 已知结构以预先指定分区方案。请遵循 查询 AWS WAF 日志 中的说明,在 Athena 中创建参照 AWS WAF 结构的表。在创建 Athena 表时需注意的要点:建议使用按日期的 分区架构 创建 Athena 表。如果您直接使用 Amazon S3 日志交付而非 Kinesis,请考虑按区域分区。请确保指定正确的 S3 存储桶位置来存储 AWS WAF 日志,如前一步所配置的。AWS WAF 会在新功能推出时定期更新日志字段,因此您需要更新查询架构,以使用 Athena 获取最新数据。

示例 1:按不同标准的高流量主机

高流量主机指的是生成最多网络流量或对您的应用程序造成最大潜在威胁的设备、机器人或用户。例如,您可以开始查看 CloudWatch 指标,以识别过去几天内对您的应用程序请求数量的激增。随后,深入挖掘这些请求,以依据 IP 地址、URI 或 HTTP 头等类别了解其来源。top10ipsql 查询帮助您获取前 10 个 IP 来源。 top10urisql 查询帮助获取访问的前 10 个 URI。您可以使用 httprequesturi 或 httprequesthttpmethod 等附加过滤器,获取每个 HTTP 属性的高流量主机。有关更多示例请参阅 查询 AWS WAF 日志。

图1:前 10 个 IP 源的 Athena 查询输出

图2:前 10 个访问的 URI 的 Athena 查询输出

如何使用 Amazon Athena 查询分析 AWS WAF 日志,并提供所需的可见性以进行威胁检

如果您想查看来自客户端的所有流量,包括令牌获取之前和之后的流量。alltrafficbyipincludingtokensql 查询提供了来自给定客户端 IP 的所有流量信息,包括令牌获取之前、造成获取令牌的流量及获取令牌后的流量。

图3:来自客户端 IP 地址的所有流量的 Athena 查询输出

示例 2:获取指定日期各种机器人流量的统计

您已配置机器人规则组。您希望获得与 Bot 控制规则组中匹配的请求的统计数据。botsql 查询提供您在特定日期内与不同类别的机器人标签匹配的请求的计数输出。

图4:按日期获取的不同类别的机器人流量的 Athena 查询输出

要获取一组 IP 的类似信息,您可以将“按日期分组”的标准替换为“httprequestclientip”,获取相关 IP 的统计数据。botbyipsql 查询提供在特定日期范围内与每个 clientIP 匹配的不同类别的机器人标签。

图5:按 IP 地址的不同类别的机器人流量的 Athena 查询输出

示例 3:获取按 IP 地址的标签计数

您已为每个 Web ACL 配置多个 AWS WAF 规则集。您希望获得与每个规则匹配的请求的统计数据,并从 csv 输出构建图表。alllabelsbyipsql 查询提供了每个 IP 地址或特定日期的每个标签匹配的计数输出。截至当前,AWS WAF 提供大约 400 个以上的标签,您可以根据自己的用例自定义查询以添加或移除标签。

图6:按 IP 地址计数的每个 AWS WAF 标签的 Athena 查询输出。

示例 4:具有额外细节的高流量主机

您已为每个 Web ACL 配置多个 AWS WAF 规则集。您希望获得生成最多请求的 IP 及其匹配的每个规则的详细统计。toptrafficsql 查询在一定日期范围内提供按 IP 的流量计数和相应的 terminatingruleids。

图7:按 IP 地址和匹配的 AWS WAF 终止规则的流量计数的 Athena 查询输出

示例 5:网站抓取与攻击

网站抓取是从网站提取数据的过程,涉及使用软件和算法导航网站以尝试提取特定数据。恶意机器人攻击网站的意图是降低网站性能并破坏安全。通过前面的示例,您获得了以降序排列的 IP 地址和总请求量的输出。要了解特定 IP 地址是否正在攻击您的网站,请使用 httprequestclientip 作为过滤器并运行 alltrafficbyipsql 查询,以识别该 IP 正在尝试访问的 URLs。确保在查询中将 INSERTIPADDRESS 替换为有效的 IP 值。

轻云加速器

图8:按 IP 匹配的终止规则和标签访问的不同 URI 的 Athena 查询输出

示例 6:AWS WAF 令牌分析按 IP 和令牌滥用活动

AWS WAF 提供一个独特的令牌,基于配置的免疫时间最小 60 秒到最大 3 天。在免疫期过后,AWS WAF 会向用户呈现 CAPTCHA 或挑战。恶意用户可以生成一个令牌并通过其脚本重用它以发发出大量请求或将请求散布到多个 IP 地址上。由于令牌对每个客户端 IP 是唯一的,以下查询提供了令牌 ID 以及发送相同令牌的 IP 数量的输出。期望每个 AWS WAF 令牌对应的 IP 数量较少。使用 waftokenbyipsql 查询,以查找您是否存在令牌滥用的情况。每个 AWS WAF 令牌的唯一 IP 的例外情况是当用户在旅行并获得不同 IP 但令牌免疫期尚未过期时。

图9:令牌 ID 和唯一 IP 地址的数量的 Athena 查询输出

如果您启用了挑战、CAPTCHA 或机器人控制,有助于了解生成最多流量的 IP 是否具有有效的 AWS WAF 令牌。waftokenanalysissql 查询将澄清 AWS WAF 令牌是否缺失、过期或域名无效。

图10:客户端 IP 地址和匹配的令牌状态的 Athena 查询输出

示例 7:会话跟踪 客户请求的生命周期按令牌的客户端会话活动

使用示例 6 中的查询,您可以获得不同 IP 使用的令牌列表。一旦 AWS WAF 令牌被发放,使用 alltrafficbywaftokensql 查询查找使用特定令牌的请求。运行查询前,请将 INSERTTHETOKENIDHERE 替换为查询中的 AWS WAF 令牌。

图11:使用特定 AWS WAF 令牌 ID 的所有客户端流量的 Athena 查询输出

使 Athena 查询更快的技巧

要改善查询性能,请参考 [Athena 性能调优](https//docsaws

全国咨询热线

13594780017

轻云加速器【官网入口】|轻云加速器

联系电话:13594780017

联系人:李总

邮箱:ascorbic@icloud.com

公司地址:芜湖市闪欲峡谷14号


微信扫一扫

手机官网