Vorkonfigurierte WAF-Regeln einrichten

Folgen Sie dieser Anleitung, um vorkonfigurierte WAF-Regeln (Web Application Firewall) von Google Cloud Armor einzurichten und anzupassen, damit Ihre Anwendung vor Angriffen geschützt wird. Wenn Sie mit vorkonfigurierten WAF-Regeln nicht vertraut sind, lesen Sie die Übersicht.

Vorkonfigurierte WAF-Regel einrichten

In diesem Abschnitt finden Sie vorkonfigurierte WAF-Regeln, die Sie in die Google Cloud Konsole 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 von höchstens SENSITIVITY aktiviert. Weitere Informationen zur Regel-Sensitivität finden Sie unter Sensitivitätsstufe 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, deaktiviert aber 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. Regelsignaturen können nur aktiviert werden, wenn die Empfindlichkeitsstufe auf 0 festgelegt ist:

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 Ausdrücke zwar mit dem logischen Operator ODER (||) kombinieren, wir empfehlen jedoch, pro Regel nur einen Ausdruck zu verwenden, um die maximale Ausdrucksgröße nicht zu überschreiten.

Prüflimit für vorkonfigurierte WAF-Regeln aktualisieren

Vorkonfigurierte WAF-Regeln für Google Cloud Armor können nur die ersten 64 KB (entweder 8 KB, 16 KB, 32 KB, 48 KB oder 64 KB) eines Anfragetexts 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 POST- und PATCH-Textkörperprüfung.

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

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 in der Richtlinie POLICY_NAME auf 16 kB, 32 kB, 48 kB oder 64 kB festlegen.

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

Wenn eine vorkonfigurierte WAF-Regel in einer Google Cloud Armor-Sicherheitsrichtlinie ausgewertet wird, werden bis zu den ersten 64 KB (entweder 8 KB, 16 KB, 32 KB, 48 KB oder 64 KB) eines Anfrage-Textkörpers 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 Größe des Anfragetexts überschreitet. Der folgende Befehl zeigt, wie diese Regel erstellt wird:

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üfgrenzwerte von 16 kB, 32 kB, 48 kB oder 64 kB in der Größe des Anfrage-Bodys überschreitet. Mit dem folgenden Befehl wird beispielsweise gezeigt, wie diese Regel für das Prüflimit von 64 kB (65.536 Byte) erstellt wird.

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

Die Beispiele in diesem Abschnitt veranschaulichen wichtige Aspekte beim Erstellen und Optimieren vorkonfigurierter WAF-Regeln, einschließlich der Empfindlichkeitsstufe und 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-v33-stable mit einer Empfindlichkeitsstufe unter 4. Daher erstellen Sie die Regel mit 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-v33-stable', {'sensitivity': 3})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('sqli-v33-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 zum Deaktivieren einer oder mehrerer Signaturen erstellen

In diesem Beispiel verwenden Sie fast alle Signaturen der Sensitivitätsstufen 1 und 2 in der WAF-Regel xss-v33-stable, möchten aber die Signatur owasp-crs-v030301-id941370-xss ausschließen, mit der nach globalen JavaScript-Variablen gesucht wird. Daher erstellen Sie die Regel mit Empfindlichkeitsstufe 2 und verwenden das Argument opt_out_rule_ids, um die Signatur owasp-crs-v030301-id941370-xss zu deaktivieren:

Console

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

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

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-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 eine durch Kommas getrennte Liste von Signaturen mit dem Argument opt_out_rule_ids an:

Console

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

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

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 2, 'opt_out_rule_ids': ['owasp-crs-v030301-id941370-xss', 'owasp-crs-v030301-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, mit der eine oder mehrere Signaturen aktiviert werden

In diesem Beispiel wird nur die Signatur owasp-crs-v030001-id941150-xss aus der WAF-Regel xss-v33-stable verwendet. Die Signatur sucht nach nicht zulässigen HTML-Attributen und entspricht der Empfindlichkeitsstufe 2. Daher erstellen Sie die Regel auf Empfindlichkeitsstufe 0 und verwenden das Argument opt_in_rule_ids, um die Signatur owasp-crs-v030001-id941150-xss zu aktivieren. Regelsignaturen können nur aktiviert werden, wenn Sie die Empfindlichkeitsstufe auf 0 festlegen:

Console

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

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

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-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 einfügen 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-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-id941320-xss']})

gcloud

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME  \
    --expression "evaluatePreconfiguredWaf('xss-v33-stable', {'sensitivity': 0, 'opt_in_rule_ids': ['owasp-crs-v030301-id941150-xss', 'owasp-crs-v030301-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