Web 应用程序安全是一个持续的过程。AWS WAF 允许实时监控并阻止潜在有害的网络请求。Bot 控制和欺诈控制利用机器学习 (ML) 来检测和防范复杂威胁。根据估算,机器人流量可能占总网络流量的 30% 到 50% 甚至更多。在启用 AWS WAF后,评估网络流量中的假阳性和假阴性,识别流量模式,识别新的攻击特征,并更好理解进入您应用程序的网络流量是非常必要的。为了确保最优的安全性,定期评估和改进您的 AWS WAF 配置至关重要,通过使用流量洞察可以增强您应用程序的安全性,并有效缓解恶意流量。
本篇文章将提供有关如何使用 分析发布到 Amazon 存储桶中的 AWS WAF 日志的信息,以获取潜在攻击的洞察。如果您将 AWS WAF日志发布到 Amazon CloudWatch Logs,请参考分析 AWS WAF 日志在 中的记录。使用 Athena,您可以轻松实施对 AWSWAF 的持续分析,识别例如访问您应用程序的前 10 个 IP 地址、访问的前 10 个 URI、根据令牌拒绝的顶部 IP 地址、客户端会话跟踪等众多场景。
AWS WAF 提供 ,以提供网络流量的总览。这些仪表板分为四个不同的类别:所有流量、机器人控制、账户接管保护及账户创建欺诈预防。例如,如果您想要了解前 10 个国家的请求、令牌状态或客户端会话阈值,您可以使用默认仪表板。但是,若要进行更深入的网络流量分析并为自定义用例生成数据,您需要分析 AWS WAF日志。Athena 为您提供了运行查询的适当集成。
通过 ,您可以查看访问受保护资源的流量的元数据(JSON格式),包括客户端 IP 地址、请求资源等。请参阅 ,以获取可用数据的完整列表。这些信息使您能够从多个维度分析流量,例如客户端 IP、URI、主机、客户端 IP 国家、HTTP 头和 AWS WAF 规则,提供对您的 Web 应用程序安全的重要见解。AWS WAF 为每个处理的 HTTP 请求生成唯一的 JSON日志条目,可供存储和分析。您可以将 AWS WAF 日志发送到多个目的地,包括 S3 存储桶、CloudWatch,或通过使用 将日志发送到第三方解决方案,如 Datadog 或 Splunk。一旦创建了 Kinesis Data Firehose 传输流,您可以通过 或 AWS WAF 控制台将其与 AWS WAF 网页访问控制列表 (ACL) 关联,从而使 AWS WAF 将实时日志发送到所需的目的地。
本文提供七个示例,例如按不同标准的高流量主机、具有额外细节的高流量主机、指定日期的各种机器人流量统计、按 IP 地址统计不同标签、网站抓取和攻击、按 IP地址进行 AWS WAF 令牌分析、会话跟踪等。这些情境帮助您深入了解跨单个或多个附有 Web ACL 的 AWS 资源的 AWS WAF 流量。
如前所述,AWS WAF 日志包含分析用户请求详情所需的元数据。AWS考虑中止和不中止规则操作来停止或继续处理请求,按配置的规则优先级顺序进行。当分析机器人流量时,理解 AWS WAF 令牌特征和 有助于利用 AWS WAF 智能威胁检测。AWS WAF 令牌作为名为 aws-waf-token 的 cookie保存。对于 CAPTCHA 和挑战请求,AWS WAF会检查令牌状态。如果请求具有有效令牌,则视为不终止匹配;如果令牌无效(因为缺失、过期或被拒绝),AWS WAF 将向客户端呈现 CAPTCHA 或挑战页面。
高流量主机指的是生成最多网络流量或对您的应用程序造成最大潜在威胁的设备、机器人或用户。例如,您可以开始查看 CloudWatch指标,以识别过去几天内对您的应用程序请求数量的激增。随后,深入挖掘这些请求,以依据 IP 地址、URI 或 HTTP头等类别了解其来源。 查询帮助您获取前 10 个 IP 来源。 查询帮助获取访问的前 10 个 URI。您可以使用 httprequest.uri或 httprequest.httpmethod 等附加过滤器,获取每个 HTTP 属性的高流量主机。有关更多示例请参阅 。
![Athena 查询查看前 10 个 IP 源的 Web删除)
图1:前 10 个 IP 源的 Athena 查询输出
![Athena 查询查看前 10 个访问的 删除)
图2:前 10 个访问的 URI 的 Athena 查询输出
如果您想查看来自客户端的所有流量,包括令牌获取之前和之后的流量。 查询提供了来自给定客户端 IP的所有流量信息,包括令牌获取之前、造成获取令牌的流量及获取令牌后的流量。
![Athena 查询输出来自客户端 IP删除)
图3:来自客户端 IP 地址的所有流量的 Athena 查询输出
您已配置机器人规则组。您希望获得与 Bot 控制规则组中匹配的请求的统计数据。 查询提供您在特定日期内与不同类别的机器人标签匹配的请求的计数输出。
![Athena删除)
图4:按日期获取的不同类别的机器人流量的 Athena 查询输出
要获取一组 IP 的类似信息,您可以将“按日期分组”的标准替换为“ httprequest.clientip ”,获取相关 IP的统计数据。 查询提供在特定日期范围内与每个 clientIP 匹配的不同类别的机器人标签。
![Athena 查询输出按 IP删除)
图5:按 IP 地址的不同类别的机器人流量的 Athena 查询输出
您已为每个 Web ACL 配置多个 AWS WAF 规则集。您希望获得与每个规则匹配的请求的统计数据,并从 .csv输出构建图表。 查询提供了每个 IP地址或特定日期的每个标签匹配的计数输出。截至当前,AWS WAF 提供大约 400 个以上的标签,您可以根据自己的用例自定义查询以添加或移除标签。
![Athena 查询输出按 IP 地址计数的每个 AWS WAF删除)
图6:按 IP 地址计数的每个 AWS WAF 标签的 Athena 查询输出。
您已为每个 Web ACL 配置多个 AWS WAF 规则集。您希望获得生成最多请求的 IP及其匹配的每个规则的详细统计。 查询在一定日期范围内提供按 IP 的流量计数和相应的 terminatingruleids。
![Athena 查询输出按 IP 地址和匹配的 AWS WAF删除)
图7:按 IP 地址和匹配的 AWS WAF 终止规则的流量计数的 Athena 查询输出
网站抓取是从网站提取数据的过程,涉及使用软件和算法导航网站以尝试提取特定数据。恶意机器人攻击网站的意图是降低网站性能并破坏安全。通过前面的示例,您获得了以降序排列的 IP 地址和总请求量的输出。要了解特定 IP 地址是否正在攻击您的网站,请使用 httprequest.clientip 作为过滤器并运行 查询,以识别该 IP 正在尝试访问的 URLs。确保在查询中将 INSERT_IP_ADDRESS 替换为有效的 IP 值。
![Athena 查询输出按 IP 匹配的终止规则和标签访问的不同 删除)
图8:按 IP 匹配的终止规则和标签访问的不同 URI 的 Athena 查询输出
AWS WAF 提供一个独特的令牌,基于配置的免疫时间(最小 60 秒到最大 3 天)。在免疫期过后,AWS WAF 会向用户呈现 CAPTCHA或挑战。恶意用户可以生成一个令牌并通过其脚本重用它以发发出大量请求或将请求散布到多个 IP 地址上。由于令牌对每个客户端 IP 是唯一的,以下查询提供了令牌 ID 以及发送相同令牌的 IP 数量的输出。期望每个 AWS WAF 令牌对应的 IP 数量较少。使用 查询,以查找您是否存在令牌滥用的情况。每个 AWS WAF 令牌的唯一 IP 的例外情况是当用户在旅行并获得不同 IP 但令牌免疫期尚未过期时。
![Athena 查询输出令牌 ID 和唯一 IP删除)
图9:令牌 ID 和唯一 IP 地址的数量的 Athena 查询输出
如果您启用了挑战、CAPTCHA 或机器人控制,有助于了解生成最多流量的 IP 是否具有有效的 AWS WAF令牌。 查询将澄清 AWS WAF令牌是否缺失、过期或域名无效。
![Athena 查询输出客户端 IP删除)
图10:客户端 IP 地址和匹配的令牌状态的 Athena 查询输出
使用示例 6 中的查询,您可以获得不同 IP 使用的令牌列表。一旦 AWS WAF 令牌被发放,使用 查询查找使用特定令牌的请求。运行查询前,请将 INSERT_THE_TOKEN_ID_HERE 替换为查询中的 AWS WAF 令牌。
![Athena 查询输出使用特定 AWS WAF 令牌 ID删除)
图11:使用特定 AWS WAF 令牌 ID 的所有客户端流量的 Athena 查询输出
要改善查询性能,请参考 [Athena 性能调优](https://docs.aws
Leave a Reply