Configurer des règles WAF préconfigurées

Suivez ces instructions pour configurer et ajuster les règles de pare-feu d'application Web (WAF) préconfigurées de Google Cloud Armor afin de protéger votre application contre les attaques. Si vous ne connaissez pas les règles WAF préconfigurées, consultez la présentation.

Configurer une règle WAF préconfigurée

Cette section fournit des modèles de règles WAF préconfigurées que vous pouvez copier dans la console Google Cloud et personnaliser en fonction de votre cas d'utilisation. Dans chaque exemple de commande gcloud, vous configurez une stratégie de sécurité avec le nom POLICY_NAME et la priorité PRIORITY.

Le premier exemple configure une règle avec un nom de règle RULE_NAME et un niveau de sensibilité de SENSITIVITY, ce qui active toutes les signatures dont la sensibilité est inférieure ou égale à SENSITIVITY. Pour en savoir plus sur la sensibilité des règles, consultez la section Choisir un niveau de sensibilité.

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Le deuxième exemple est semblable au premier, mais il désactive les signatures de règles SIGNATURE_1 et SIGNATURE_2. Cela signifie que ces deux signatures ne sont pas évaluées lorsque la règle du WAF est évaluée:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Le troisième exemple est semblable au deuxième, mais au lieu de désactiver deux signatures, vous activez deux signatures de règle. Notez que vous ne pouvez activer les signatures de règle que lorsque vous définissez le niveau de sensibilité sur 0:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Dans tous les exemples précédents, vous n'utilisez qu'une seule expression par règle. Bien que vous puissiez combiner des expressions à l'aide de l'opérateur logique ||, nous vous recommandons de n'utiliser qu'une seule expression par règle pour éviter de dépasser la taille maximale d'expression.

Examples

Les exemples de cette section mettent en avant des aspects importants de la création et de l'ajustement des règles WAF préconfigurées, y compris le niveau de sensibilité et les exceptions de signature. Dans tous les exemples de commandes gcloud, vous créez une stratégie de sécurité avec le nom POLICY_NAME avec la priorité PRIORITY.

Créer une règle à un niveau de sensibilité donné

Dans cet exemple, vous souhaitez utiliser toutes les signatures de la règle WAF sqli-v33-stable avec un niveau de sensibilité inférieur à 4. Vous créez donc la règle au niveau de sensibilité 3, qui inclut toutes les signatures dont le niveau de sensibilité est inférieur ou égal à trois:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Créer une règle qui désactive une ou plusieurs signatures

Dans cet exemple, vous souhaitez utiliser presque toutes les signatures au niveau de sensibilité 1 et 2 dans la règle WAF xss-v33-stable, mais vous souhaitez exclure la signature owasp-crs-v030301-id941370-xss, qui recherche les variables globales JavaScript. Vous devez donc créer la règle au niveau de sensibilité 2 et utiliser l'argument opt_out_rule_ids pour désactiver la signature owasp-crs-v030301-id941370-xss:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Si vous souhaitez exclure deux signatures ou plus d'une règle, fournissez une liste de signatures séparées par une virgule avec l'argument opt_out_rule_ids, comme dans l'exemple suivant:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Créer une règle qui active une ou plusieurs signatures

Dans cet exemple, vous ne souhaitez utiliser que la signature owasp-crs-v030001-id941150-xss de la règle WAF xss-v33-stable. La signature recherche des attributs HTML non autorisés et est au niveau de sensibilité 2. Vous devez donc créer la règle au niveau de sensibilité 0 et utiliser l'argument opt_in_rule_ids pour activer la signature owasp-crs-v030001-id941150-xss. Notez que vous ne pouvez activer les signatures de règle que lorsque vous définissez le niveau de sensibilité sur 0:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Si vous souhaitez inclure deux signatures ou plus d'une règle, fournissez une liste de signatures séparées par une virgule avec l'argument opt_in_rule_ids, comme dans l'exemple suivant:

Console

Sélectionnez Mode avancé, puis utilisez l'exemple d'expression suivant dans le champ Correspondance:

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

Étape suivante