Verwendung verwalteter Regelsätze

Sie können verwaltete Regelsätze auf Zonen- oder Instanzebene mithilfe von CLI, API oder Terraform bereitstellen.

Sie können einen verwalteten Regelsatz mit benutzerdefiniertem Verhalten (Änderungen, die zusätzlich zur Standardkonfiguration ausgeführt werden) bereitstellen, indem Sie ihn überschreiben. Weitere Informationen finden Sie unter "Überschreiben verwalteter Regelsätze ".

Implementierungsworkflow

Verwenden Sie den folgenden Workflow, um einen verwalteten Regelsatz in einer Phase auf Zonenebene zu implementieren:

  1. Rufen Sie Ihre Zonen-ID ab.
  2. Führen Sie die Regelsatzoperation Zone auflisten aus, um die verfügbaren Regelsätze abzurufen.
  3. Suchen Sie die Regelsatz-ID des verwalteten Regelsatzes, den Sie bereitstellen möchten.
  4. Geben Sie die Phase an, in der Sie den verwalteten Regelsatz implementieren wollen. Stellen Sie sicher, dass der verwaltete Regelsatz zu derselben Phase gehört, in der Sie ihn bereitstellen möchten.
  5. Fügen Sie dem Regelsatz für den Einstiegspunkt der Zonenebene eine Regel hinzu, die den verwalteten Regelsatz ausführt.

Bereitstellen von verwalteten Regelsätzen in der Konsole

Gehen Sie folgendermaßen vor, um verwaltete Regelsätze in der Konsole CIS bereitzustellen:

  1. Navigieren Sie in der Konsole CIS zum Abschnitt Sicherheit.

  2. Wählen Sie die Registerkarte WAF aus.

  3. Klicken Sie auf Ausnahme hinzufügen, um das Seitenfenster Ausnahme hinzufügen zu öffnen.

  4. Geben Sie einen Namen für Ihre verwaltete Regelausnahme ein.

  5. Definieren Sie die Übereinstimmungsbedingung, indem Sie einen Ausdruck erstellen:

    • Wählen Sie das Anforderungsfeld, wählen Sie einen Operator und geben Sie einen Wert ein.
    • Sie können auch den Expression Builder verwenden, um Ausdrücke manuell zu schreiben
    • Kombinieren Sie mehrere Bedingungen mit den Operatoren Und und Oder, um eine komplexe Logik zu erstellen.
  6. Wählen Sie, ob Anfragen, die dem Ausdruck entsprechen, protokolliert werden sollen.

  7. Legen Sie fest, wie sich der Regelsatz bei passenden Anfragen verhalten soll:

    • Alle verbleibenden Regeln überspringen oder

    • Bestimmte Regeln aus einem verwalteten Regelsatz überspringen

      Wenn Sie bestimmte Regeln überspringen möchten, klicken Sie auf Regeln durchsuchen, wählen Sie einen Regelsatz und dann die zu überspringenden Regeln aus.

  8. Klicken Sie auf Bereitstellen, um die Konfiguration zu aktivieren.

    Nach der Bereitstellung können Sie jederzeit zurückkehren, um die Konfiguration Ihres verwalteten Regelsatzes zu bearbeiten.

Verwendung verwalteter Regelsätze über die Befehlszeilenschnittstelle

Sie können verwaltete Regelsätze über die Befehlszeilenschnittstelle bereitstellen.

Auflistung verwalteter Regelsätze von der CLI

Gehen Sie folgendermaßen vor, um alle zonenverwalteten Regelsätze über die CLI aufzulisten:

  1. Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.

  2. Melden Sie sich über die CLI bei Ihrem Konto an. Nachdem Sie das Passwort eingegeben haben, werden Sie vom System aufgefordert, das Konto und die Region anzugeben, die Sie verwenden möchten:

    ibmcloud login --sso
    
  3. Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Regel zu erstellen:

    ibmcloud cis managed-waf rulesets DNS_DOMAIN_ID [-i, --instance INSTANCE] [--output FORMAT]
    

    Befehlsoptionen

    DNS_DOMAIN_ID
    Die ID der Domäne.
    -i, --instance
    Instanzname oder ID.
    --output
    Legt das Ausgabeformat fest; es wird ausschließlich JSON unterstützt.

Aktualisierung des bereitgestellten Regelsatzes von der CLI

Gehen Sie folgendermaßen vor, um einen bereitgestellten Regelsatz über die CLI zu aktualisieren:

  1. Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.

  2. Melden Sie sich über die CLI bei Ihrem Konto an. Nachdem Sie das Passwort eingegeben haben, werden Sie vom System aufgefordert, das Konto und die Region anzugeben, die Sie verwenden möchten:

    ibmcloud login --sso
    
  3. Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Regel zu erstellen:

    ibmcloud cis managed-waf deployment-add-ruleset DNS_DOMAIN_ID RULESET_ID [--match EXPRESSION] [--enabled true|false] [--override-action ACTION] [--override-status STATUS] [--paranoia-level LEVEL] [--override-rules RULE] [-i, --instance INSTANCE] [--output FORMAT]
    

    Befehlsoptionen

    DNS_DOMAIN_ID
    Die ID der Domäne.
    --match
    Die Bedingungen, die erfüllt sein müssen, damit die Regel ausgeführt wird. Unter Verwendung von Feldern, Funktionen und Ausdrücken finden Sie eine Liste der übereinstimmenden Werte.
    --enabled
    Gibt an, ob die Regel aktiv ist. Der Standardwert ist true.
    --overide-action
    Die Regel-Aktion aller Übersteuerungen. Gültige Werte sind managed_challenge, block, js_challenge, log, challenge.
    --paranoia-level
    Die OWASP-Paranoia-Stufe. Gültige Werte sind PL1, PL2, PL3, PL4. Dies ist nur für CIS OWASP Core Ruleset verfügbar.
    override-rules
    Die Regeloptionen der Überschreibungen. Zum Beispiel --override-rules rule=RULE_ID,action=ACTION,enabled=STATUS.
    -i, --instance
    Der Instanzname oder die Instanz-ID.
    --output
    Legt das Ausgabeformat fest; es wird ausschließlich JSON unterstützt.

Befehlsbeispiel

Dieses Beispiel zeigt, wie man den Regelsatz efb7b8c949ac4650a09736fc376e9aee einsetzt und die im Regelsatz vorhandene Regel außer Kraft setzt. Es ist auch übergeordnete Regeln mit der Kategorie Wordpress.

ibmcloud cis managed-waf deployment-add-ruleset $domain efb7b8c949ac4650a09736fc376e9aee --match "(http.cookie eq \"example.com/contact?page=1234\")" --action execute --enabled false --override-action block --override-status false --override-rules rule=5de7edfa648c4d6891dc3e7f84534ffa,action=log,enabled=true --override-rules action=managed_challenge,rule=e3a567afc347477d9702d9047e97d760

Verwendung verwalteter Regelsätze mit der API

Sie können verwaltete Regelsätze über die API bereitstellen.

Abrufen des benutzerdefinierten Regel-Einstiegspunkts für die API

Alle API-Vorgänge für benutzerdefinierte Regeln erfordern eine RULESET_ID des Einstiegsregelsatzes für die Phase der benutzerdefinierten Regeln. Dieser Einstiegsregelsatz kann bereits existieren oder muss erstellt werden, wenn er nicht existiert.

Gehen Sie folgendermaßen vor, um den Regelsatz für den benutzerdefinierten Einstiegspunkt zu erhalten:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:

CRN: Der vollständige URL-kodierte Cloud Resource Name (CRN) der Dienstinstanz.

ZONE_ID: Die Domänen-ID.

  1. Wenn alle Variablen initiiert sind, erhalten Sie den Einstiegspunkt-Regelsatz:
curl -X GET "https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--header "X-Auth-User-Token: Bearer <API_TOKEN>" \
--header "Content-Type: application/json"

Die Regelsatz-ID wird in der Antwort auf die erfolgreiche Anfrage enthalten sein. Wenn der vorangegangene Aufruf eine 404-Not-Found-Antwort zurückgibt, verwenden Sie die folgende API, um den Einstiegspunkt-Regelsatz für die benutzerdefinierte Regelphase zu erstellen:

curl -x POST https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets \
--header "X-Auth-User-Token: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
  "name": "Zone-level phase entry point",
  "kind": "zone",
  "description": "WAF managed rule entrypoint ruleset.",
  "phase": "http_request_firewall_managed"
}'

Auflisten von verwalteten Regelsätzen mit der API

Gehen Sie folgendermaßen vor, um verwaltete Regelsätze mit der API aufzulisten:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:

CRN: Der vollständige URL-kodierte Cloud Resource Name (CRN) der Dienstinstanz.

ZONE_ID: Die Domänen-ID.

RULESET_ID: Die ID des Regelsatzes für den benutzerdefinierten Einstiegspunkt.

  1. Wenn alle Variablen initiiert sind, listen Sie alle zonenverwalteten Regelsätze auf:
curl -X GET \
  https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets \
  -H 'content-type: application/json' \
  -H 'accept: application/json' \
  -H 'x-auth-user-token: Bearer xxxxxx'

Aktualisierung der Einstiegsregelsätze mit der API

Führen Sie die folgenden Schritte aus, um einen Einstiegspunkt-Regelsatz mit der API zu aktualisieren:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:

CRN: Der vollständige URL-kodierte Cloud Resource Name (CRN) der Dienstinstanz.

ZONE_ID: Die Domänen-ID.

RULESET_ID: Die ID des Regelsatzes für den benutzerdefinierten Einstiegspunkt.

  1. Wenn alle Variablen initiiert sind, aktualisieren Sie den Regelsatz für den Einstiegspunkt:
curl -X PUT \
  https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/phases/$RULESET_PHASE/entrypoint \
  -H 'content-type: application/json' \
  -H 'accept: application/json' \
  -H 'x-auth-user-token: Bearer xxxxxx' \
  -d '{"rules":[{"action":"execute","action_parameters":{"id":"4814384a9e5d4991b9815dcfc25d2f1f"},"expression":"true","description":"Execute WAF OWASP ruleset"}]}'

Dabei gilt:

  • $RULESET_PHASE ist die Regelsatzphase, die bereitgestellt wird. Verwenden Sie http_request_firewall_managed, um verwaltete WAF-Regelsätze bereitzustellen.
    • d ist das Objekt der Attribute, die zum Erstellen des Regelsatzes erforderlich sind.
    • regeln ist die Reihe von Regeln, die mit dem Regelsatz bereitgestellt werden. Zum Beispiel:
      • action ist die Aktion, die die Regel ausführen soll. Eine Beschreibung der verwendbaren Aktionen finden Sie unter Regelaktionen.
      • action_parameters ist das Objekt für die Definition, worauf die Aktion angewendet werden soll.
        • id ist die ID des auszuführenden Regelsatzes. Diese ID wird aus der Operation list zone rulesets abgerufen.
    • ausdruck ist die Bedingung, unter der die Regel ausgeführt wird. Die Verwendung von true bedeutet, dass diese Regel immer ausgeführt wird.
    • description definiert die Zusammenfassung der Leistung Ihrer Regel.

Bereitstellung von verwalteten Regelsätzen mit Terraform

Auflisten von verwalteten Regelsätzen mit Terraform

Das folgende Beispiel listet verwaltete Regelsätze mit Hilfe von Terraform auf:

data "ibm_cis_rulesets" "tests" {
    cis_id    = ibm_cis.instance.id
    domain_id = data.ibm_cis_domain.cis_domain.domain_id
    }

Für weitere Informationen über die Argumente und Attribute siehe ibm_cis_rulesets in der Terraform-Registrierung.

Auflistung aller Regeln eines verwalteten Regelsatzes

Das folgende Beispiel listet alle Regeln eines verwalteten Regelsatzes unter Verwendung von Terraform auf:

resource "ibm_cis_ruleset" "config" {
    cis_id    = ibm_cis.instance.id
    domain_id = data.ibm_cis_domain.cis_domain.domain_id
    ruleset_id = "943c5da120114ea5831dc1edf8b6f769"
}

Für weitere Informationen über die Argumente und Attribute siehe ibm_cis_ruleset in der Terraform-Registrierung.

Vorrangige Regel

Das folgende Beispiel setzt eine Regel mit Hilfe von Terraform außer Kraft:

resource "ibm_cis_ruleset_entrypoint_version" "test" {
    cis_id    = ibm_cis.instance.id
    domain_id = data.ibm_cis_domain.cis_domain.domain_id
    phase = "http_request_firewall_managed"
    rulesets {
      description = "Entrypoint ruleset for managed ruleset"
      rules {
        action =  "execute"
        description = "Deploy CIS managed ruleset"
        enabled = true
        expression = "true"
        action_parameters  {
          id = "efb7b8c949ac4650a09736fc376e9aee"
          overrides {
            action = "block"
            enabled = true
            override_rules {
              rule_id = "var.overriden_rule.id"
              enabled = true
              action = "block"
            }
            categories {
              category = "wordpress"
              enabled = true
              action = "block"
            }
          }
        }
      }
    }
  }

Für weitere Informationen über die Argumente und Attribute siehe ibm_cis_ruleset_entrypoint_version in der Terraform-Registrierung.