Sie können Regeln optimieren, indem Sie Anfragefelder von der Auswertung ausschließen, um falsch positive Ergebnisse zu reduzieren.
Wenn Sie Ausschlüsse für eine Regel konfigurieren, können Sie die folgenden Felder von der Prüfung ausschließen:
Anfragefelder von der Regelauswertung ausschließen
Wenn Sie einen Anfragefeldausschluss für eine Regel konfigurieren möchten, verknüpfen Sie die Konfiguration mit einer Sicherheitsrichtlinienregel.
Für diese Regeln werden keine Regel-IDs verwendet. Stattdessen können Sie das Flag --target-rule-set mit einem der folgenden Werte konfigurieren:
cel(--target-rule-set "cel"): Wendet Ausschlüsse nur auf benutzerdefinierte CEL-Regeln in dieser Sicherheitsrichtlinienregel an.*(--target-rule-set "*", globaler Ausschluss): Wendet Ausschlüsse auf alle Regeln an, die an diese Sicherheitsrichtlinie angehängt sind, einschließlich benutzerdefinierter CEL-Regeln und Regeln, dieevaluatePreconfiguredWaf()verwenden.
In Backend-Sicherheitsrichtlinien (sowohl global als auch regional) können Sie pro Ziel (cel oder *) jeweils bis zu 100 der folgenden Elemente konfigurieren:
- Anfrageheader
- Anfrage-Cookies
- Anfrage-Abfrageparameter
- Anfrage-URIs
- Anfragetexte
Folgende Feldoperatoren sind verfügbar:
EQUALS: Stimmt überein, wenn der Feldwert mit dem angegebenen Wert übereinstimmt.STARTS_WITH: Der Operator stimmt überein, wenn der Feldwert mit dem angegebenen Wert beginnt.ENDS_WITH: stimmt überein, wenn der Feldwert mit dem angegebenen Wert endet.CONTAINS: Stimmt überein, wenn der Feldwert den angegebenen Wert enthält.EQUALS_ANY: Stimmt überein, wenn der Feldwert ein beliebiger Wert ist.
Anfrageheader
Sie können bestimmte Anfrageheader von der Prüfung während der Regelauswertung ausschließen, indem Sie ihre Headernamen im Ausschlussfeld verwenden.
Wenn ein Anfrageheader mit einem Ausschluss übereinstimmt, wird der gesamte Headereintrag (sowohl Name als auch Wert) vor der Regelauswertung aus der request.headers-Zuordnung entfernt.
Beispiel
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um Anfrageheader, die entweder mit abc beginnen oder mit xyz enden, von der Regelbewertung (cel) auszuschließen:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc" \
--request-header-to-exclude "op=ENDS_WITH,val=xyz"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie
Anfrage-Cookies
Sie können bestimmte Anfrage-Cookies von der Prüfung während der Regelauswertung ausschließen, indem Sie ihre Cookie-Namen in das Ausschlussfeld eingeben.
Wenn ein Anfrage-Cookie mit einem Ausschluss übereinstimmt, wird der gesamte Cookie-Eintrag (sowohl Name als auch Wert) vor der Regelauswertung aus den Anfrageattributen ausgeschlossen.
Beispiel
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um Anfrage-Cookies, die mit session_ beginnen, von der Regelbewertung (cel) auszuschließen:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-cookie-to-exclude "op=STARTS_WITH,val=session_"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie
Anfrage-Abfrageparameter
Sie können bestimmte Anfrageparameter von der Prüfung während der Regelbewertung ausschließen, indem Sie ihre Parameternamen im Ausschlussfeld verwenden. Das Flag --request-query-param-to-exclude gilt sowohl für URL-Abfrageparameter als auch für geparste Anfrage-Textparameter (JSON, Formulardaten und GraphQL).
Wenn ein Parameter mit einem Ausschluss übereinstimmt, wird der gesamte Parametereintrag (sowohl der Schlüssel als auch der Wert) vor der Regelauswertung aus request.params entfernt, sodass has(request.params.param_name) als false ausgewertet wird.
Bei geparsten Anfragetexten können Sie die Punktnotation verwenden, um verschachtelte Felder und Arrayelemente anzusprechen:
- Feld auf oberster Ebene:
val=user - Verschachteltes Feld:
val=user.name - Arrayelement:
val=items.0.name
Beispiel
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um den URL-Suchparameter bad-param, das verschachtelte JSON-Feld user.name und das JSON-Array-Elementfeld items.0.name von der Regelbewertung (cel) auszuschließen:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-query-param-to-exclude "op=EQUALS,val=bad-param" \
--request-query-param-to-exclude "op=EQUALS,val=user.name" \
--request-query-param-to-exclude "op=EQUALS,val=items.0.name"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie
Anfrage-URIs
Sie können URIs aus der Anfragezeile (ohne Abfragestringdaten) von der Prüfung während der Regelauswertung ausschließen.
Wenn Sie einen URI ausschließen, wird das gesamte URI-Feld von der Prüfung ausgeschlossen.
Beispiel
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um Anfrage-URIs, die /bad-path enthalten, von der Regelauswertung (cel) auszuschließen:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-uri-to-exclude "op=CONTAINS,val=/bad-path"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie
Anfragetexte
Sie können bestimmte Werte im Anfragetext von der Prüfung während der Regelauswertung ausschließen.
Wenn ein Anfragetext mit einem Ausschluss übereinstimmt, wird das Attribut request.body von der Regelbewertung ausgeschlossen.
Beispiel
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um Anfragetext, der bad-body-value enthält, von der Regelbewertung (cel) auszuschließen:
gcloud compute security-policies rules add-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-body-to-exclude "op=CONTAINS,val=bad-body-value"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie
Feldwerte
Sie müssen einen Feldwert angeben, wenn Sie einen anderen Feldoperator als EQUALS_ANY verwenden.
Für Anfrageheader, Anfrage-Cookies und Anfrageparameter umfasst der zulässige Zeichensatz für Feldwerte die folgenden Zeichen:
!,#,$,%,&,*,+,-,.,^,_,`,|,~- Alphanumerische Zeichen
AbisZ(sowohl Klein- als auch Großbuchstaben) - Ziffern
0bis9
Für Anfragetexte umfasst der zulässige Zeichensatz für Feldwerte alle druckbaren ASCII-Zeichen außer ', \`,(, and)`:
- Leerzeichen (
) und Sonderzeichen:!,",#,$,%,&,*,+,,,-,.,/,:,;,<,=,>,?,@,[,],^,_,`,{,|,},~ - Alphanumerische Zeichen
AbisZ(sowohl Klein- als auch Großbuchstaben) - Ziffern
0bis9
Wenn Sie Ausschlüsse für diese Anfragefelder anwenden, wird der konfigurierte Feldwert (val=) ohne Berücksichtigung der Groß- und Kleinschreibung (nach der Transformation) mit den folgenden Werten verglichen, um zu bestimmen, welche Entitäten von der Prüfung ausgeschlossen werden sollen:
- Anfrageheader: Übereinstimmungen mit dem Headernamen (Schlüssel), um den gesamten Header (Name und Wert) auszuschließen.
- Anfrage-Cookies: Stimmt mit dem Cookienamen überein, um das gesamte Cookie (Name und Wert) auszuschließen.
- Suchparameter der Anfrage: Übereinstimmungen mit dem Parameternamen oder dem verschachtelten JSON-Pfad (Schlüssel), um den gesamten Parameter (Schlüssel und Wert) auszuschließen.
- Anfragetexte: Übereinstimmungen mit dem String des Anfragetextinhalts, um das gesamte
request.body-Attribut auszuschließen.
Wenn Sie ein bestimmtes Zeichen ausschließen möchten, das nicht im zulässigen Zeichensatz enthalten ist, müssen Sie keine zusätzliche Codierung vornehmen.
Für Anfrage-URIs muss der Feldwert in einem URI-Format mit den folgenden Komponentenbeschränkungen angegeben werden:
| Komponente | Einschränkung |
|---|---|
| Schema | Zulässig, aber auf http oder https beschränkt |
| Host | Zulässig (kann eine IP-Adresse sein) |
| Port | Zugelassen |
| Pfad | Zugelassen |
| Abfrage | Nicht zulässig |
| Fragment | Nicht zulässig |
Wenn Sie Ausschlüsse für Anfrage-URIs anwenden, werden die konfigurierten Feldwerte ohne Berücksichtigung der Groß- und Kleinschreibung (nach der Transformation) mit den URIs aus der Anfragezeile verglichen, wobei der Abfragestring ausgeschlossen wird. Die URIs aus der Anfragezeile können relativ oder absolut sein. Berücksichtigen Sie dies beim Konfigurieren von Ausschlüssen für Anfrage-URIs.
Ausschlüsse entfernen
Verwenden Sie den Befehl remove-preconfig-waf-exclusion, um Ausschlüsse von Anfragefeldern aus einer Sicherheitsrichtlinienregel zu entfernen. Sie können bestimmte Feldausschlüsse entfernen, indem Sie die entsprechenden Feldausschluss-Flags angeben. Wenn Sie die Feld-Flags weglassen, werden alle Ausschlüsse für den Zielregelsatz (cel oder *) entfernt.
Beispiele
Im folgenden Beispiel wird die Regel in der Sicherheitsrichtlinie POLICY_NAME für PRIORITY aktualisiert, um den Ausschluss für Anfrageheader, die mit abc beginnen, aus der Regelbewertung (cel) zu entfernen:
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel" \
--request-header-to-exclude "op=STARTS_WITH,val=abc"
Im folgenden Beispiel werden die Feld-Flags weggelassen, um alle Anfragefeldausschlüsse zu entfernen, die für die Regelbewertung (cel) für die Regel unter PRIORITY konfiguriert sind:
gcloud compute security-policies rules remove-preconfig-waf-exclusion PRIORITY \
--security-policy POLICY_NAME \
--target-rule-set "cel"
Ersetzen Sie Folgendes:
PRIORITY: die Priorität der RegelPOLICY_NAME: der Name der Sicherheitsrichtlinie