Wie werden die Metriken und Protokolle für die Aktion „Regeln zählen“ in AWS WAF formatiert?

Lesedauer: 8 Minute
0

Ich habe AWS WAF eingerichtet und einige der Regeln in meiner Web-ACL befinden sich in der Aktion „Count“. Wie analysiere ich die Amazon-CloudWatch-Metriken und -Protokolle für die Regeln in der Aktion „Regeln zählen“?

Kurzbeschreibung

Sie können die Aktion „Regel zählen“ verwenden, um Regeln zu testen, bevor Sie sie mit ihren normalen Aktionseinstellungen implementieren. AWS WAF wertet die Anforderungen anhand der Regeln in der Aktion „Regel zählen“ aus und meldet Übereinstimmungen in Metriken, Anforderungsbeispielen und Protokollen.

Sie können die Aktion „Regel zählen“ auch verwenden, um Fehler bei Regeln zu beheben, die Fehlalarme generieren. Fehlalarme treten auf, wenn eine Regel oder eine Regelgruppe Datenverkehr blockiert, von dem Sie nicht erwarten, dass er blockiert wird. Wenn Sie eine Regel identifizieren, die Anforderungen blockiert, die zugelassen werden sollen, können Sie die Aktion aktualisieren, damit diese Regel zählt. Dies schließt die Regel aus, auf Ihre Anfragen zu reagieren. Weitere Informationen zum Erkennen und Reduzieren von Fehlalarmen finden Sie unter Wie kann ich durch AWS Managed Rules verursachte Fehlalarme erkennen und sie einer sicheren Liste hinzufügen?

Auflösung

Um zu verstehen, wie die Metriken und Protokolle für die Aktion „Regel zählen“ formatiert werden, betrachten Sie die folgenden drei Szenarien:

  1. Legen Sie die Regelaktion für eine benutzerdefinierte Regel auf den Zählmodus fest.
  2. Legen Sie die Regelaktion für einzelne Regeln auf den Zählmodus in einer AWS-Managed-Rules-Regelgruppe fest.
  3. Überschreiben Sie die Aktion einer ganzen Regelgruppe, um sie zu zählen.

Setzen Sie die Regelaktion für eine benutzerdefinierte Regel auf den Zählmodus

Beispiel

Sie haben eine Web-ACL (Test1-ACL), die über eine einzelne benutzerdefinierte Regel (Geo-Count) mit einer Aktion „Regel zählen“ verfügt. Die Geo-Count-Regel zählt die Anfrage, wenn die Anfrage aus den USA stammt. Wenn die Client-IP zu einem anderen Land gehört, wird die Web-ACL-Standardaktion mit der Aktion „Zulassen“ abgeglichen.

Das Folgende ist die JSON-Darstellung dieser Regel:

{
  "Name": "Geo-Count",
  "Priority": 0,
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ]
    }
  },
  "Action": {
    "Count": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "Geo-Count"
  }
}

Wenn die Anfrage von einer Client-IP in den USA stammt, geschieht Folgendes:

  • Die Anfrage wird gezählt.
  • Die CloudWatch-Metrik für die benutzerdefinierte Regel Geo-Count zeigt einen Datenpunkt in der Metrik CountedRequests an.
    Hinweis: CloudWatch meldet die Metrik CountedRequests nur, wenn ein Wert ungleich Null vorliegt. Um die Daten anzuzeigen, wechseln Sie die Statistik auf der Registerkarte Diagrammmetriken in der CloudWatch-Konsole auf Summe.
  • Da Geo-Count eine benutzerdefinierte Regel mit der Aktion „Count“ ist, zählt AWS WAF die Anforderung.
  • Anschließend wertet AWS WAF die Anforderung anhand der Web-ACL-Standardaktion aus. Da die Web-ACL-Standardaktion auf Zulassen festgelegt ist, ist die Anforderung zulässig.
  • Ein Datenpunkt für diese Aktion wird in der Metrik AllowedRequests für die Web-ACL angezeigt.

Weitere Informationen zu Metriken und Dimensionen, die im AWS WAF-Namespace enthalten sind, finden Sie unter AWS-WAF-Metriken und -Dimensionen.

Wenn Sie die Aktion einer benutzerdefinierten Regel auf „Count“ aktualisieren, wird die Regel aus Sicht der Protokollierung als nicht abbrechende Regel betrachtet. Wenn die Anforderung also einer benutzerdefinierten Regel im Zählmodus entspricht, werden die folgenden Felder protokolliert:

  • nonTerminatingMatchingRules: Die Liste der nicht abbrechenden Regeln, die der Anforderung entsprechen.
  • ruleId: Die ID der Regel, die der Anforderung entsprach und nicht beendet wurde.
  • Aktion: Das ist immer COUNT.
  • ruleMatchDetails: Detaillierte Informationen über die Regel, die der Anforderung entsprach. Dieses Feld wird nur für SQL-Injection (SQLi) und Cross-Site-Scripting-Übereinstimmungsregelanweisungen (XSS) aufgefüllt.

Wenn die Geo-Count-Regel mit der Anforderung übereinstimmt, zeigen die Protokolle die nonTerminatingMatchingRules-Details an, wie im folgenden Beispiel gezeigt:

"nonTerminatingMatchingRules": [{
  "ruleId": "Geo-Count",
  "action": "COUNT",
  "ruleMatchDetails": [

  ]
}]

Weitere Informationen zu allen möglichen Log-Feldern finden Sie unter Protokollfelder.

Informationen zum Aktivieren der Protokollierung für eine Web-ACL finden Sie unter Protokollierung einer Web-ACL verwalten.

Festlegen der Regelaktion für einzelne Regeln auf den Zählmodus in einer AWS-Managed-Rules-Regelgruppe

Sie können die Aktionen der Regeln innerhalb einer Regelgruppe überschreiben und festlegen, dass sie für einige oder alle Regeln zählen. Bei Regelaktionen, die innerhalb der Regelgruppe auf etwas anderes als „Count“ konfiguriert sind, ändert die Überschreibung diese Aktion, sodass nur übereinstimmende Anforderungen gezählt werden.

Wenn eine Webanforderung mit der Regel übereinstimmt, verarbeitet AWS WAF die Übereinstimmung als Zählung und setzt dann die Auswertung der nachfolgenden Regeln in der Regelgruppe fort.

Weitere Informationen zum Festlegen der Regelaktion für die Zählung in einer Regelgruppe finden Sie unter Festlegen der Regelaktionen für die Zählung in einer Regelgruppe.

Beispiel

Sie verfügen über eine Web-ACL (Test2-ACL), die eine AWS-Managed-Rules-Regelgruppe (AWSManagedRulesKnownBadInputsRuleSet) enthält. In dieser Web-ACL gibt es keine weiteren Regeln, und die Web-ACL-Standardaktion ist mit einer Aktion Zulassen konfiguriert.

Sie aktualisieren die Log4JRCE-Regel in der AWSManagedRulesKnownBadInputsRuleSet-Regelgruppe auf eine Aktion „Count“. Wenn nun eine Komponente (wie ein URI, eine Abfragezeichenfolge usw.) in der Clientanforderung eine Log4j-Schwachstelle aufweist, wird diese Anforderung von der Log4JRCE-Regel gezählt. Wenn die Anforderung mit keinen anderen Regeln in der Regelgruppe übereinstimmt, wird sie von der Web-ACL-Standardaktion zugelassen.

Das Folgende ist die JSON-Darstellung dieser Regel:

{
  "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet",
  "Priority": 0,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesKnownBadInputsRuleSet",
      "ExcludedRules": [
        {
          "Name": "Log4JRCE"
        }
      ]
    }
  },
  "OverrideAction": {
    "None": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSManagedRulesKnownBadInputsRuleSet"
  }
}

Wenn Sie festlegen, dass die Regelaktion für Regeln innerhalb der Regelgruppe zählt, werden diese Regeln in der Regelgruppe als ausgeschlossene Regeln betrachtet. Wenn Sie Metriken aktiviert haben, erhalten Sie COUNT-Metriken für jede ausgeschlossene Regel.

Wenn die Anforderung mit der Log4JRCE-Regel übereinstimmt, geschieht Folgendes:

  • Die Anfrage wird gezählt.
  • Die CloudWatch-Metrik für die Log4JRCE-Regel zeigt einen Datenpunkt in der Metrik CountedRequests an.

Wenn keine andere Regel im AWSManagedRulesKnownBadInputsRuleSet mit der Anforderung übereinstimmt, geschieht Folgendes:

  • Die Anforderung wird von der Web-ACL-Standardaktion zugelassen.
  • Ein Datenpunkt wird in der Metrik AllowedRequests für die Web-ACL angezeigt.

Für ausgeschlossene Regeln werden die folgenden Felder in AWS WAF-Protokollen erfasst:

  • excludedRules: Die Liste der Regeln in der Regelgruppe, die Sie ausgeschlossen haben. Die Aktion für diese Regeln ist auf „Count“ festgelegt.
  • exclusionType: Ein Typ, der angibt, dass die ausgeschlossene Regel die Aktion „Count“ hat.
  • ruleId: Die ID der Regel innerhalb der Regelgruppe, die ausgeschlossen ist.

Wenn die Log4JRCE-Regel mit der Anforderung übereinstimmt, zeigen die Protokolle die excludedRules-Details an, wie im folgenden Beispiel gezeigt:

"ruleGroupList":[
  {
    "ruleGroupId":"AWS#AWSManagedRulesKnownBadInputsRuleSet",
    "terminatingRule":null,
    "nonTerminatingMatchingRules":[
      
      ],
    "excludedRules":[
      {
        "exclusionType":"EXCLUDED_AS_COUNT",
        "ruleId":"Log4JRCE"
      }
    ]
  }
]

Wenn eine einzelne Regel innerhalb einer Regelgruppe auf die Aktion „Regel zählen“ aktualisiert wird, geschieht Folgendes:

  • Die Protokolle für den Anforderungsabgleich mit dieser Regel enthalten keine Aktion „Count“ für die Regel im Feld nonTerminatingMatchingRules.
  • In den AWS WAF-Protokollen wird diese Regel im Feld excludedRules angezeigt.

Die Aktion einer ganzen Regelgruppe zum Zählen außer Kraft setzen

Informationen zum Außerkraftsetzen der Aktion einer Regelgruppe zum Zählen finden Sie unter Überschreiben der resultierenden Regelgruppenaktion zum Zählen.

Informationen zum Außerkraftsetzen der Regelgruppe zum Zählen finden Sie unter Überschreiben der zu zählenden Aktion einer Regelgruppe.

Beispiel

Sie verfügen über eine Web-ACL (Test3-ACL), die eine AWS-Managed-Rules-Regelgruppe (AWSManagedRulesKnownBadInputsRuleSet) enthält. In dieser Web-ACL gibt es keine anderen Regeln, und die Web-ACL-Standardaktion ist Zulassen. Alle Regeln in der Regelgruppe AWSManagedRulesKnownBadInputsRuleSet verwenden die in der Regel definierte Standardaktion. Das bedeutet, dass die Regeln innerhalb dieser Regelgruppe nicht auf „Count“ festgelegt sind. Die Option Regelgruppen-Aktion zum Zählen überschreiben ist jedoch aktiviert.

Das Folgende ist die JSON-Darstellung dieser Regel:

{
  "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet",
  "Priority": 0,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesKnownBadInputsRuleSet"
    }
  },
  "OverrideAction": {
    "Count": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSManagedRulesKnownBadInputsRuleSet"
  }
}

Wenn eine Komponente (z. B. ein URI, eine Abfragezeichenfolge usw.) in der Clientanforderung eine Log4j-Schwachstelle aufweist, geschieht Folgendes:

  • Die Anfrage wird durch die Log4JRCE-Regel blockiert.
  • Da Block eine abbrechende Aktion ist, beendet AWS WAF die Auswertung der Regelgruppe und gibt das Ergebnis der abbrechenden Aktion an die Web-ACL zurück.
  • An diesem Punkt wird die Aktion Regelgruppe zum Zählen überschreiben wirksam. Die Abbruchaktion der Regelgruppe wird auf eine Zählung außer Kraft gesetzt.
  • AWS WAF setzt dann die Verarbeitung der restlichen Regeln in der Web-ACL fort.

Wenn eine Anforderung mit der Log4JRCE-Regel (oder einer anderen Regel) innerhalb der Regelgruppe AWSManagedRulesKnownBadInputsRuleSet übereinstimmt, geschieht Folgendes:

  • CloudWatch zeigt einen Datenpunkt in der Metrik CountedRequests an, der dem Regelgruppennamen AWSManagedRulesKnownBadInputsRuleSet entspricht.
  • AWS WAF setzt die Verarbeitung der übrigen Regeln in der Web-ACL fort, nachdem die Überschreibung erfolgt ist. Die Anforderung wird also letztendlich mit der Web-ACL-Standardaktion abgeglichen. Dies wird als Datenpunkt in der Metrik AllowedRequests für die Web-ACL angezeigt.
  • In den AWS WAF-Protokollen enthält die Abgleichsanforderung eine Zählaktion im Feld nonTerminatingMatchingRules.
  • Darüber hinaus zeigt ruleGroupList die Regel innerhalb der Regelgruppe an, die die Anforderung ursprünglich blockiert hat, bevor die abbrechende Aktion außer Kraft gesetzt wurde.
  • Wenn die Log4JRCE-Regel mit der Anforderung übereinstimmt, zeigen die Protokolle die Details RuleGroupList und NonTerminatingMatchingRules an, wie im folgenden Beispiel gezeigt:
"ruleGroupList": [{
  "ruleGroupId": "AWS#AWSManagedRulesKnownBadInputsRuleSet",
  "terminatingRule": {
      "ruleId": "Log4JRCE",
      "action": "BLOCK",
      "ruleMatchDetails": null
    },
  "nonTerminatingMatchingRules": [

  ],
    "excludedRules": null
  }
],
"rateBasedRuleList": [

],
"nonTerminatingMatchingRules": [{
    "ruleId": "AWS-AWSManagedRulesKnownBadInputsRuleSet",
    "action": "COUNT",
    "ruleMatchDetails": [

  ]
}]

Relevante Informationen

Grundlegende Handhabung der Regel- und Regelgruppenaktionen in einer Web-ACL

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren