Vorkonfigurierte WAF-Regeln einrichten

Mit dieser Anleitung können Sie vorkonfigurierte WAF-Regeln (Web Application Firewall) für Cloud Armor einrichten und optimieren, um Ihre Anwendung vor Angriffen zu schützen. Wenn Sie mit vorkonfigurierten WAF-Regeln nicht vertraut sind, lesen Sie die Übersicht.

Vorkonfigurierte WAF-Regel einrichten

In diesem Abschnitt finden Sie Vorlagen für vorkonfigurierte WAF-Regeln, die Sie in der Google Cloud Console kopieren und an Ihren Anwendungsfall anpassen können. In jedem Beispiel für einen Google Cloud CLI-Befehl konfigurieren Sie eine Sicherheitsrichtlinie mit dem Namen POLICY_NAME und der Priorität PRIORITY.

Im ersten Beispiel wird eine Regel mit dem Namen RULE_NAME und der Empfindlichkeitsstufe SENSITIVITY eingerichtet. Dadurch werden alle Signaturen mit einer Empfindlichkeit kleiner oder gleich SENSITIVITY aktiviert. Weitere Informationen zur Regel-Empfindlichkeit finden Sie unter Empfindlichkeitsstufe auswählen.

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten
  • RULE_NAME: der Name der WAF-Regel, die Sie einrichten möchten
  • SENSITIVITY: die Empfindlichkeitsstufe der WAF-Regel

Das zweite Beispiel ähnelt dem ersten, aber es deaktiviert die Regelsignaturen SIGNATURE_1 und SIGNATURE_2. Das bedeutet, dass diese beiden Signaturen bei der Auswertung der WAF-Regel nicht berücksichtigt werden:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': SENSITIVITY, 'opt_out_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten
  • RULE_NAME: der Name der WAF-Regel, die Sie einrichten möchten
  • SENSITIVITY: die Empfindlichkeitsstufe der WAF-Regel
  • SIGNATURE_1: der Name der WAF-Signatur, die Sie deaktivieren möchten
  • SIGNATURE_2: der Name der WAF-Signatur, die Sie deaktivieren möchten

Das dritte Beispiel ähnelt dem zweiten, aber anstatt zwei Signaturen zu deaktivieren, aktivieren Sie zwei Regelsignaturen. Beachten Sie, dass Sie Regelsignaturen nur aktivieren können, wenn Sie die Empfindlichkeitsstufe auf 0 setzen:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('RULE_NAME', {'sensitivity': 0, 'opt_in_rule_ids': ['SIGNATURE_1', 'SIGNATURE_2']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten
  • RULE_NAME: der Name der WAF-Regel, die Sie einrichten möchten
  • SIGNATURE_1: der Name der WAF-Signatur, die Sie deaktivieren möchten
  • SIGNATURE_2: der Name der WAF-Signatur, die Sie deaktivieren möchten

In allen vorherigen Beispielen verwenden Sie nur einen Ausdruck pro Regel. Sie können zwar Ausdrücke mit dem logischen Operator OR (||) kombinieren, aber wir empfehlen, nur einen Ausdruck pro Regel zu verwenden, um die maximale Ausdrucksgröße nicht zu überschreiten.

Prüflimit für vorkonfigurierte WAF-Regeln aktualisieren

Vorkonfigurierte WAF-Regeln für Cloud Armor können nur die ersten 64 KB (entweder 8 KB, 16 KB, 32 KB, 48 KB oder 64 KB) eines Anfragetextes prüfen. Sie können eine Sicherheitsrichtlinie manuell so konfigurieren, dass eines dieser Prüflimits für Ihre vorkonfigurierten WAF-Regeln verwendet wird.

Mit dem folgenden Befehl wird das Prüflimit aller vorkonfigurierten WAF-Regeln, die in der Richtlinie POLICY_NAME verfügbar sind, mit dem Flag --request-body-inspection-size auf 8 KB festgelegt. Weitere Informationen zu den Prüflimits der vorkonfigurierten WAF-Regeln finden Sie unter Beschränkung der Anfragetextprüfung.

gcloud compute security-policies update POLICY_NAME \
    --request-body-inspection-size=8kB

Ersetzen Sie POLICY_NAME durch den Namen der Sicherheitsrichtlinie, die Sie einrichten möchten.

Ebenso können Sie mit dem Flag --request-body-inspection-size das Prüflimit aller vorkonfigurierten WAF-Regeln, die in der Richtlinie POLICY_NAME verfügbar sind, auf 16 KB, 32 KB, 48 KB oder 64 KB festlegen.

Risiko bei Anfragetexten minimieren, die das konfigurierte Prüflimit überschreiten

Wenn eine vorkonfigurierte WAF-Regel in einer Cloud Armor-Sicherheitsrichtlinie ausgewertet wird, werden bis zu 64 KB (entweder 8 KB, 16 KB, 32 KB, 48 KB oder 64 KB) eines Anfragetextes auf Signaturübereinstimmungen mit den WAF-Regeln geprüft.

Sie können das Risiko von größeren Anfragen minimieren. Erstellen Sie dazu in Ihren Sicherheitsrichtlinien eine Regel, damit keine nicht geprüften Inhalte Ihre Back-Ends erreichen. Erstellen Sie beispielsweise eine Regel, die Traffic ablehnt, der das konfigurierte Prüflimit von 8 KB (8.192 Byte) in der Anfragetextgröße überschreitet. Der folgende Befehl zeigt, wie Sie diese Regel erstellen:

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 8192" \
    --action deny-403 \
    --description "Block requests greater than 8 kB"

Ebenso können Sie eine Regel erstellen, die Traffic ablehnt, der die konfigurierten Prüflimits von 16 KB, 32 KB, 48 KB oder 64 KB in der Anfragetextgröße überschreitet. Der folgende Befehl zeigt beispielsweise, wie Sie diese Regel für das Prüflimit von 64 KB (65.536 Byte) erstellen.

gcloud compute security-policies rules create 10 \
    --security-policy my-policy \
    --expression "int(request.headers['content-length']) > 65536" \
    --action deny-403 \
    --description "Block requests greater than 64 kB"

Beispiele

In den Beispielen in diesem Abschnitt werden wichtige Aspekte des Erstellens und Optimierens vorkonfigurierter WAF-Regeln hervorgehoben, einschließlich der Empfindlichkeitsstufe und der Signaturausnahmen. In allen gcloud CLI-Beispielbefehlen erstellen Sie eine Sicherheitsrichtlinie mit dem Namen POLICY_NAME und der Priorität PRIORITY.

Regel mit einer bestimmten Empfindlichkeitsstufe erstellen

In diesem Beispiel verwenden Sie alle Signaturen in der WAF-Regel sqli-v422-stable mit einer Empfindlichkeitsstufe unter 4. Daher erstellen Sie die Regel mit der Empfindlichkeitsstufe 3, die alle Signaturen mit einer Empfindlichkeitsstufe kleiner oder gleich 3 umfasst:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('sqli-v422-stable', {'sensitivity': 3})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('sqli-v422-stable', {'sensitivity': 3})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten

Regel erstellen, die eine oder mehrere Signaturen deaktiviert

In diesem Beispiel verwenden Sie fast alle Signaturen mit der Empfindlichkeitsstufe 1 und 2 in der WAF-Regel xss-v422-stable, möchten aber die Signatur owasp-crs-v042200-id941370-xss ausschließen, die auf globale JavaScript-Variablen prüft. Daher erstellen Sie die Regel mit der Empfindlichkeitsstufe 2 und verwenden das Argument opt_out_rule_ids, um die Signatur owasp-crs-v042200-id941370-xss zu deaktivieren:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v042200-id941370-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v042200-id941370-xss']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten

Wenn Sie zwei oder mehr Signaturen aus einer Regel ausschließen möchten, geben Sie mit dem Argument opt_out_rule_ids eine durch Kommas getrennte Liste von Signaturen an:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v042200-id941370-xss', 'owasp-crs-v042200-id941380-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v042200-id941370-xss', 'owasp-crs-v042200-id941380-xss']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten

Regel erstellen, die eine oder mehrere Signaturen aktiviert

In diesem Beispiel wird nur die Signatur owasp-crs-v042200-id941150-xss aus der WAF-Regel xss-v422-stable verwendet. Die Signatur prüft auf nicht zulässige HTML-Attribute und hat die Empfindlichkeitsstufe 2. Daher erstellen Sie die Regel mit der Empfindlichkeitsstufe 0 und verwenden das Argument opt_in_rule_ids, um die Signatur owasp-crs-v042200-id941150-xss zu aktivieren. Beachten Sie, dass Sie Regelsignaturen nur aktivieren können, wenn Sie die Empfindlichkeitsstufe auf 0 setzen:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v042200-id941150-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v042200-id941150-xss']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten

Wenn Sie zwei oder mehr Signaturen aus einer Regel einbeziehen möchten, geben Sie mit dem Argument opt_in_rule_ids eine durch Kommas getrennte Liste von Signaturen an:

Console

Wählen Sie Erweiterter Modus aus und verwenden Sie dann den folgenden Beispielausdruck im Feld Abgleich:

evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v042200-id941150-xss', 'owasp-crs-v042200-id941320-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v422-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v042200-id941150-xss', 'owasp-crs-v042200-id941320-xss']})" \
    --action deny-403

Ersetzen Sie Folgendes:

  • PRIORITY: die Priorität der Sicherheitsrichtlinie
  • POLICY_NAME: der Name der Sicherheitsrichtlinie, die Sie einrichten möchten

Nächste Schritte