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:
- Rufen Sie Ihre Zonen-ID ab.
- Führen Sie die Regelsatzoperation Zone auflisten aus, um die verfügbaren Regelsätze abzurufen.
- Suchen Sie die Regelsatz-ID des verwalteten Regelsatzes, den Sie bereitstellen möchten.
- 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.
- 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:
-
Navigieren Sie in der Konsole CIS zum Abschnitt Sicherheit.
-
Wählen Sie die Registerkarte WAF aus.
-
Klicken Sie auf Ausnahme hinzufügen, um das Seitenfenster Ausnahme hinzufügen zu öffnen.
-
Geben Sie einen Namen für Ihre verwaltete Regelausnahme ein.
-
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.
-
Wählen Sie, ob Anfragen, die dem Ausdruck entsprechen, protokolliert werden sollen.
-
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.
-
-
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:
-
Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.
-
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 -
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:
-
Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.
-
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 -
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ürCIS OWASP Core Rulesetverfü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:
- Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
- 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.
- 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:
- Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
- 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.
- 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:
- Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
- 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.
- 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 rulesetsabgerufen.
- id ist die ID des auszuführenden Regelsatzes. Diese ID wird aus der Operation
- ausdruck ist die Bedingung, unter der die Regel ausgeführt wird. Die Verwendung von
truebedeutet, 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.