Règles de protection personnalisées
Le service WAF permet de définir et d'appliquer des règles de protection personnalisées à vos configurations WAF à partir de modules de pare-feu à code source libre, comme les modules ModSecurity. Cette rubrique décrit comment formater, créer et mettre en oeuvre des règles de protection personnalisées dans vos politiques WAF à l'aide de la console et de l'API WAAS. Pour obtenir la liste des règles de protection déjà disponibles dans le service, voir Règles de protection prises en charge.
Syntaxe de règle de protection personnalisée
Fournit des informations sur la syntaxe de règle de protection personnalisée pour le service de pare-feu d'application Web.
Toutes les règles de protection personnalisées sont exprimées dans le langage de règle ModSecurity. Pour plus d'informations sur la syntaxe ModSecurity, voir Création de règles : Syntaxe de base.
De plus, chaque règle doit inclure deux variables de paramètre fictif mises à jour par le service WAF lors de la publication de la règle.
ID :{{id_1}} - Ce champ est mis à jour avec un ID règle unique généré par le service WAF, qui identifie une règle SecRule. Plusieurs SecRule peuvent être définis dans le champ template d'un appel CreateCustomProtectionRule. La valeur du premier SecRule doit être id:{{id_1}} et le champ id de chaque SecRule suivant doit augmenter de un, comme illustré dans l'exemple.
ctl:ruleEngine={{mode}} - Action à exécuter lorsque les critères de la SecRule sont satisfaits : OFF, DETECT ou BLOCK. Ce champ est mis à jour avec la valeur correspondante du champ action de l'objet CustomProtectionRuleSetting lors de l'utilisation de l'opération UpdateWafConfig.
Exemple de format de règle de protection personnalisée :
SecRule REQUEST_COOKIES "regex matching SQL injection - part 1/2" \
"phase:2, \
msg:'Detects chained SQL injection attempts 1/2.', \
id:{{id_1}}, \
ctl:ruleEngine={{mode}}, \
deny"
SecRule REQUEST_COOKIES "regex matching SQL injection - part 2/2" \
"phase:2, \
msg:'Detects chained SQL injection attempts 2/2.', \
id:{{id_2}}, \
ctl:ruleEngine={{mode}}, \
deny"
Actions
Le service WAF peut effectuer une action sur une demande HTTP lorsque les critères d'une règle de protection personnalisée sont satisfaits.
- DETECT - Enregistre la demande lorsque les critères de la règle de protection personnalisée sont satisfaits.
- BLOCK - Bloque la demande lorsque les critères de la règle de protection personnalisée sont satisfaits.
- OFF - La règle de protection personnalisée est inactive et n'effectue aucune action.
Utilisation de la console
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur Règles de protection personnalisées.
- Cliquez sur Créer une règle de protection personnalisée.
- Dans la boîte de dialogue Créer une règle de protection personnalisée, entrez les informations suivantes :
- Nom : Nom unique de la règle de protection.
- Description : Facultative. Description de la règle de protection personnalisée.
- Modèle : Entrez les critères de règle de protection dans le langage de règles ModSecurity. Chaque règle doit inclure deux variables de paramètre fictif : id :{{id_1}} et ctl:ruleEngine={mode}}. Pour plus d'informations sur la syntaxe ModSecurity, voir Création de règles : Syntaxe de base.
- Afficher les options avancées : Cliquez sur ce lien pour afficher les options de marquage. Voir Aperçu du service de marquage.
-
Sélectionnez l'une des versions suivantes :
- Pour créer la règle, cliquez sur Créer.
- Pour créer la règle ultérieurement à l'aide du gestionnaire de ressources, voir Création d'une pile à partir d'une page de création de ressource.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur Règles de protection personnalisées.
- Cliquez sur le nom de la règle de protection personnalisée à modifier.
- Cliquez sur Modifier.
- Apportez les modifications nécessaires, puis cliquez sur Enregistrer les modifications.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur Règles de protection personnalisées.
- Trouvez la règle de protection dans la liste, cliquez sur le menu , puis cliquez sur Déplacer la ressource.
-
Sélectionnez le compartiment de destination dans la liste.
- Cliquez sur Déplacer la ressource.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur Règles de protection personnalisées.
-
Cochez la case correspondant à la règle de protection que vous voulez supprimer.
- Cliquez sur Supprimer.
- Dans la boîte de dialogue de confirmation, cliquez sur Supprimer.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur le nom de la politique WAF pour laquelle vous voulez configurer les paramètres de règle. L'aperçu de la politique WAF s'affiche.
- Cliquez sur Règles de protection.
- Cliquez sur l'onglet Règles personnalisées.
- Cliquez sur Ajouter dans le menu déroulant Actions.
- Dans la boîte de dialogue Ajouter une règle personnalisée, sélectionnez une règle de protection personnalisée dans le menu déroulant. Si la règle de protection personnalisée existe dans un autre compartiment, vous pouvez modifier le compartiment où la règle existe.
- Sélectionnez l'une des actions suivantes à appliquer à la règle :
- Détecter : Les demandes mises en correspondance génèrent une alerte et sont transmises à un mandataire.
- Bloquer : Les demandes mise en correspondance sont bloquées.
- Cliquez sur Ajouter.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur le nom de la politique WAF pour laquelle vous voulez modifier une règle de protection personnalisée.
- Cliquez sur Règles de protection, puis sur l'onglet Règles personnalisées.
- Cochez la case correspondant à la règle personnalisée pour laquelle vous souhaitez modifier l'action.
- Sélectionnez l'action dans le menu déroulant Actions.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Pare-feu d'application Web, sélectionnez Politiques.
- Cliquez sur le nom de la politique WAF pour laquelle vous voulez supprimer une règle de protection personnalisée. L'aperçu de la politique WAF s'affiche.
- Cliquez sur Règles de protection.
- Cliquez sur l'onglet Règles personnalisées.
-
Cochez la case correspondant à la règle personnalisée que vous voulez supprimer.
- Sélectionnez Supprimer dans le menu déroulant Actions.
Utilisation de l'API
Des règles de protection personnalisées peuvent être créées et ajoutées à un compartiment à l'aide de l'appel CreateProtectionRule dans l'API WAAS. À l'aide du formatage du langage de règle ModSecurity, alimentez le champ template avec les critères de la règle.
Exemple :
{
"compartmentId": "ocid1.compartment.region1..<unique_ID>",
"description": "The description text for the rule being created",
"displayName": "Custom Protection Rule Name",
"template": "SecRule REQUEST_URI / \"phase:2, t:none, capture, msg:'Custom (XSS) Attack. Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}', id:{{id_1}}, ctl:ruleEngine={{mode}}, tag:'Custom', severity:'2'\""
}
Ajout de règles de protection personnalisées à une configuration WAF
Des règles de protection personnalisées peuvent être ajoutées à une configuration WAF au moyen de l'appel UpdateWafConfig dans l'API WAAS.
Ajoutez l'OCID et l'action souhaitée à exécuter à l'objet CustomProtectionRuleSetting du schéma UpdateWafConfig.
Exemple :
[
{
"action": "BLOCK",
"id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaalxd4jrws4rbbnddzlnotu3giuzo53kopbj747mbvarttr7vyy7ja"
},
{
"action": "DETECT",
"id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaamx5r72ntmmhwgeaspzpdqcwsgprpuvwsa7xoshnyo3xhtpwcobeq"
}
]
Pour voir la liste des règles de protection personnalisées disponibles dans un compartiment et les OCID correspondants, utilisez l'appel ListCustomProtectionRules dans l'API WAAS.