

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

# 监控机器人控制策略的指南
<a name="monitoring"></a>

对于机器人流量和 Web 应用程序流量，监控和可见性非常重要。它可以帮助您确定活动和安全操作的优先级。如果无法进行详细的日志记录或使用 SIEM 系统，那么一个好的起点是监控所选解决方案或供应商提供的基本指标。

这种可见性对于威胁情报、强化规则、排除误报和响应事件非常有用。有多种监视选项可供选择 AWS WAF。对于高级监控，在中 AWS WAF 提供了流量概述信息 AWS 管理控制台。在您的 Web ACL 中启用机器人控制规则组后，它适用于所有流量以及机器人流量的详细视图。

AWS WAF 为详细[记录 Web ACL 流量](https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)提供了不同的选项。您还可以为请求添加标签，以便于进行日志分析和配置机器人评估规则。通过集成 [Amazon CloudWatch Logs Insigh](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) ts，您可以查询 AWS WAF 日志并可视化结果。

如果您开启详细日志记录，则除了预先配置的 **Bot 控制面板**之外，还会 AWS WAF 提供额外的可见性。使用 AWS WAF 日志对流量进行可视化以及临时调查，可以深入了解 Web 应用程序的流量模式和缓解选项。

您可以将 AWS WAF 日志数据与亚马逊 CloudWatch 日志、亚马逊简单存储服务 (Amazon S3) Service 或 Amazon Data Firehose 集成。有关更多信息，请参阅[开启 AWS WAF 日志记录并将日志发送到 CloudWatch Amazon S3 或 Amazon Data Firehose](https://repost.aws/knowledge-center/waf-turn-on-logging)。您也可以将日志发送到各种目标进行分析，包括发送到 Amazon OpenSearch 服务或[AWS Marketplace](https://aws.amazon.com/marketplace)解决方案。有关更多信息，请参阅 Firehose 文档中的[目标设置](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html)。如果使用多个日志源，则建议使用集中式日志解决方案来关联来源。 

接下来，本指南就如何开始监控机器人流量并通过使用 Amazon 获得可见性提供了建议 CloudWatch。

## 追踪主要规则
<a name="top-rules"></a>

跟踪热门规则可以突出趋势和潜在的异常活动。特定规则的比率提高可能表明您应该调查潜在的误报或有针对性的活动。最常见的跟踪规则是[基于 IP 的控件](static-controls.md#ip-based-controls)地理封锁规则（此处的峰值可能显示来自不寻常国家的流量，这些流量可能不会被自动屏蔽）和。[基于速率的规则](static-controls.md#rate-based-rules)这些规则总是有固有的差异，但是流量模式中的异常可能表明机器人活动。如果您要手动设置阈值，请考虑这一点。

## 追踪热门标签和命名空间
<a name="top-labels"></a>

通过使用 CloudWatch 指标来跟踪热门[标签](https://docs.aws.amazon.com/waf/latest/developerguide/waf-labels.html)，您可以查看哪些 AWS WAF 规则经常被调用。这可以帮助您检测异常情况，例如抓取器活动增加、来自可疑来源的流量或企图滥用应用程序登录页面或 API。

以下是可能令人感兴趣的标签示例：
+ `awswaf:managed:aws:bot-control:signal:non_browser_user_agent `
+ `awswaf:managed:aws:bot-control:bot:category:http_library`
+ `awswaf:managed:aws:bot-control:bot:name:curl`
+ `awswaf:managed:aws:atp:signal:credential_compromised`
+ `awswaf:managed:aws:core-rule-set:NoUserAgent_Header`
+ `awswaf:managed:token:rejected`

以下是可能感兴趣的标签命名空间示例：
+ `awswaf:managed:aws:bot-control:`
+ `awswaf:managed:aws:atp:`
+ `awswaf:managed:aws:anonymous-ip-list:`

## 创建数学表达式
<a name="math-expressions"></a>

在 Amazon 中 CloudWatch，您可以为任何或所有规则创建[数学表达式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)。如果您在数学表达式上设置提醒，则会收到有关某些指标的费率（而不是数量）异常的通知。这是减轻警报疲劳的重要工具。

创建基于数学表达式的自定义指标。查看应用程序请求总数中规则的相对比率。以下是一个常用的数学表达式： 

`[ruleX count * 100]/[All allowed requests + All blocked requests]`

此数学表达式提供了百分比，因此您可以跟踪特定规则并可视化其随时间变化的趋势。

## 使用异常检测
<a name="anomaly-detection"></a>

对任何 CloudWatch 指标使用[CloudWatch异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html)都可以在异常低或高趋势时发出警报，而无需手动设置实际阈值。 这些算法可以持续分析系统和应用程序的指标，确定正常基线，并在最少的用户干预下发现异常。 CloudWatch 在其异常检测功能中应用统计和机器学习算法。 

## 使用亚马逊 CloudWatch 指标
<a name="cloudwatch-metrics"></a>

AWS WAF 处理流量并为与 Web ACL 中定义的规则相匹配的请求添加标签。每个标签都会在中创建一个[指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) CloudWatch。同时，每个 Web ACL 规则还会为其每项可能的操作创建指标。使用这些标签和操作指标来全面了解机器人流量。这是一种经济实惠的趋势可视化方法。有关更多信息，请参阅 CloudWatch 文档中的[查看可用指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)和[绘制指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)。

CloudWatch 提供了向日志收集器或聚合器（无论是第三方解决方案还是第三方解决方案）发送数据的选项。 AWS 服务 从中提取数据 CloudWatch 可以提供更加整合的安全可观测性体验，您可以将来自多个来源的数据关联起来。这可以帮助您调查、查看或设置警报和安全自动化。

## 构建仪表板
<a name="dashboard"></a>

确定要跟踪的重要指标后，创建一个包含最相关指标的仪表板。将它们 side-by-side显示在单个玻璃窗格下可以提供额外的可见性和控制力。

通常最好为异常指标值配置警报和自动化规则。不要依赖人类通过查看仪表板来识别异常。但是，在收到警报后，仪表板可用于调查目的。