Ajuster les règles WAF Google Cloud Armor

Règles préconfigurées

Les règles préconfigurées Google Cloud Armor sont des règles complexes de pare-feu d'application Web (WAF, web application firewall) composées de dizaines de signatures, qui sont compilées à partir des normes Open Source. Google propose ces règles en l'état. Elles permettent à Google Cloud Armor d'évaluer des dizaines de signatures de trafic distinctes en se référant à des règles bien nommées, plutôt que de vous obliger à définir chaque signature manuellement.

Le tableau suivant contient une liste complète des règles WAF préconfigurées pouvant être utilisées dans une stratégie de sécurité Google Cloud Armor. La source des règles est l'ensemble de règles de base ModSecurity 3.0.2 (CRS).

Nom de la règle Google Cloud Armor Nom de la règle ModSecurity État actuel
sqli-stable Injection SQL Synchronisée avec sqli-canary
sqli-canary Injection SQL Le plus récent
xss-stable Script intersites Synchronisée avec xss-canary
xss-canary Script intersites Le plus récent
lfi-stable Inclusion de fichiers locaux Synchronisée avec lfi-canary
lfi-canary Inclusion de fichiers locaux Le plus récent
rfi-stable Inclusion de fichiers distants Synchronisée avec rfi-canary
rfi-canary Inclusion de fichiers distants Le plus récent
rce-stable Exécution de code à distance Synchronisée avec rce-canary
rce-canary Exécution de code à distance Le plus récent

Chaque règle préconfigurée se compose de plusieurs signatures. Les requêtes entrantes sont évaluées par rapport aux règles préconfigurées. Une requête correspond à une règle préconfigurée si elle correspond à l'une des signatures associées à la règle préconfigurée. Une correspondance est établie lorsque la commande evaluatePreconfiguredExpr() renvoie la valeur true.

Si vous décidez qu'une règle préconfigurée correspond à plus de trafic que nécessaire ou si la règle bloque le trafic qui doit être autorisé, la règle peut être ajustée afin de désactiver les signatures bruyantes ou autrement inutiles. Pour désactiver des signatures dans une règle préconfigurée particulière, fournissez une liste d'ID des signatures indésirables à la commande evaluatePreconfiguredExpr().

L'exemple suivant exclut deux ID de règle CRS de la règle WAF xss-stable préconfigurée :

evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v020901-id981136-xss', 'owasp-crs-v020901-id981138-xss'])

L'exemple précédent est une expression dans le langage de règles personnalisées. La syntaxe générale est la suivante :

evaluatePreconfiguredExpr(RULE, ['SIGNATURE1', 'SIGNATURE2', 'SIGNATURE3'])

Règles ModSecurity préconfigurées

Injection SQL (SQLi)

ID de signature (ID de règle CRS) Niveau de sensibilité Description
owasp-crs-v030001-id942140-sqli 1 Attaque par injection SQL : noms de base de données courants détectés
owasp-crs-v030001-id942160-sqli 1 Détecte les tests SQLi à l'aveugle à l'aide de la méthode sleep() ou benchmark()
owasp-crs-v030001-id942170-sqli 1 Détecte les tentatives d'injection SQL par les méthodes benchmark et sleep, y compris les requêtes conditionnelles
owasp-crs-v030001-id942170-sqli 1 Détecte les tentatives de collecte d'informations et d'exécution de code MSSQL
owasp-crs-v030001-id942220-sqli 1 Recherche les attaques par dépassement de capacité d'entiers
owasp-crs-v030001-id942170-sqli 1 Détecte les tentatives d'injection de code SQL conditionnel
owasp-crs-v030001-id942240-sqli 1 Détecte les tentatives de basculement de charset MySQL et d'attaque DoS MSSQL
owasp-crs-v030001-id942250-sqli 1 Détecte les injections de code MATCH AGAINST
owasp-crs-v030001-id942270-sqli 1 Recherche l'injection SQL de base, chaîne d'attaque courante pour MySql
owasp-crs-v030001-id942280-sqli 1 Détecte l'injection de Postgres pg_sleep
owasp-crs-v030001-id942290-sqli 1 Recherche les tentatives d'injection SQL MongoDB de base
owasp-crs-v030001-id942220-sqli 1 Détecte les injections de fonctions/procédures stockées MySQL et PostgreSQL
owasp-crs-v030001-id942350-sqli 1 Détecte l'injection de code UDF MySQL et d'autres tentatives de manipulation de données/structures
owasp-crs-v030001-id942360-sqli 1 Détecte l'injection SQL de base concaténée et les tentatives SQLLFI
owasp-crs-v030001-id942110-sqli 2 Attaque par injection SQL : test d'injection commune détecté
owasp-crs-v030001-id942120-sqli 2 Attaque par injection SQL : opérateur SQL détecté
owasp-crs-v030001-id942150-sqli 2 Attaque par injection SQL
owasp-crs-v030001-id942180-sqli 2 Détecte les tentatives de contournement de l'authentification SQL de base 1/3
owasp-crs-v030001-id942200-sqli 2 Détecte les injections MySQL de type comment-/space-obfuscated et d'accent grave
owasp-crs-v030001-id942210-sqli 2 Détecte les tentatives d'injection de code SQL en chaîne 1/2
owasp-crs-v030001-id942260-sqli 2 Détecte les tentatives de contournement de l'authentification SQL de base 2/3
owasp-crs-v030001-id942300-sqli 2 Détecte les commentaires MySQL
owasp-crs-v030001-id942310-sqli 2 Détecte les tentatives d'injection de code SQL en chaîne 2/2
owasp-crs-v030001-id942330-sqli 2 Détecte les sondes d'injection SQL classiques 1/2
owasp-crs-v030001-id942340-sqli 2 Détecte les tentatives de contournement de l'authentification SQL de base 3/3
owasp-crs-v030001-id942380-sqli 2 Attaque par injection SQL
owasp-crs-v030001-id942390-sqli 2 Attaque par injection SQL
owasp-crs-v030001-id942400-sqli 2 Attaque par injection SQL
owasp-crs-v030001-id942410-sqli 2 Attaque par injection SQL
owasp-crs-v030001-id942430-sqli 2 Détection d'anomalies liées à la limite de caractères SQL (args) : nombre de caractères spéciaux dépassé (12)
owasp-crs-v030001-id942440-sqli 2 Séquence de commentaire SQL détectée
owasp-crs-v030001-id942450-sqli 2 Encodage hexadécimal SQL identifié
owasp-crs-v030001-id942251-sqli 3 Détecte les injections de code HAVING
owasp-crs-v030001-id942420-sqli 3 Détection d'anomalies liées à la limite de caractères SQL (cookies) : nombre de caractères spéciaux dépassé (8)
owasp-crs-v030001-id942431-sqli 3 Détection d'anomalies liées à la limite de caractères SQL (args) : nombre de caractères spéciaux dépassé (6)
owasp-crs-v030001-id942460-sqli 3 Alerte de détection d'anomalies liées aux métacaractères – Caractères non textuels répétitifs
owasp-crs-v030001-id942421-sqli 4 Détection d'anomalies liées à la limite de caractères SQL (cookies) : nombre de caractères spéciaux dépassé (3)
owasp-crs-v030001-id942432-sqli 4 Détection d'anomalies liées à la limite de caractères SQL (args) : nombre de caractères spéciaux dépassé (2)


Pour configurer une règle à un niveau de sensibilité particulier, désactivez les signatures à des niveaux de sensibilité supérieurs.

Niveau de sensibilité SQLi 1


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942110-sqli',
  'owasp-crs-v030001-id942120-sqli',
  'owasp-crs-v030001-id942150-sqli',
  'owasp-crs-v030001-id942180-sqli',
  'owasp-crs-v030001-id942200-sqli',
  'owasp-crs-v030001-id942210-sqli',
  'owasp-crs-v030001-id942260-sqli',
  'owasp-crs-v030001-id942300-sqli',
  'owasp-crs-v030001-id942310-sqli',
  'owasp-crs-v030001-id942330-sqli',
  'owasp-crs-v030001-id942340-sqli',
  'owasp-crs-v030001-id942380-sqli',
  'owasp-crs-v030001-id942390-sqli',
  'owasp-crs-v030001-id942400-sqli',
  'owasp-crs-v030001-id942410-sqli',
  'owasp-crs-v030001-id942430-sqli',
  'owasp-crs-v030001-id942440-sqli',
  'owasp-crs-v030001-id942450-sqli',
  'owasp-crs-v030001-id942251-sqli',
  'owasp-crs-v030001-id942420-sqli',
  'owasp-crs-v030001-id942431-sqli',
  'owasp-crs-v030001-id942460-sqli',
  'owasp-crs-v030001-id942421-sqli',
  'owasp-crs-v030001-id942432-sqli']
)
          
Niveau de sensibilité SQLi 2


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
Niveau de sensibilité SQLi 3


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942421-sqli',
         'owasp-crs-v030001-id942432-sqli']
         )
Niveau de sensibilité SQLi 4


evaluatePreconfiguredExpr('sqli-stable')

Script intersites (XSS)

ID de signature (ID de règle) Niveau de sensibilité Description
owasp-crs-v030001-id941110-xss 1 Filtre XSS – Catégorie 1 : vecteur de balise de script
owasp-crs-v030001-id941120-xss 1 Filtre XSS – Catégorie 2 : vecteur de gestionnaire d'événements
owasp-crs-v030001-id941130-xss 1 Filtre XSS – Catégorie 3 : vecteur d'attribut
owasp-crs-v030001-id941140-xss 1 Filtre XSS – Catégorie 4 : vecteur d'URI JavaScript
owasp-crs-v030001-id941160-xss 1 NoScript XSS InjectionChecker : injection de code HTML
owasp-crs-v030001-id941170-xss 1 NoScript XSS InjectionChecker : injection d'attribut
owasp-crs-v030001-id941180-xss 1 Mots clés de la liste noire du valideur de nœuds
owasp-crs-v030001-id941190-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941200-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941210-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941220-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941230-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941240-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941250-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941260-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941270-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941280-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941290-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941300-xss 1 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941310-xss 1 Filtre XSS d'encodage incorrectement formé US-ASCII – Attaque détectée
owasp-crs-v030001-id941350-xss 1 XSS IE d'encodage UTF-7 – Attaque détectée
owasp-crs-v030001-id941150-xss 2 Filtre XSS – Catégorie 5 : attributs HTML non autorisés
owasp-crs-v030001-id941320-xss 2 Possible attaque XSS détectée – Gestionnaire de balises HTML
owasp-crs-v030001-id941330-xss 2 Filtres XSS IE – Attaque détectée
owasp-crs-v030001-id941340-xss 2 Filtres XSS IE – Attaque détectée


Pour configurer une règle à un niveau de sensibilité particulier, désactivez les signatures à des niveaux de sensibilité supérieurs.

Niveau de sensibilité XSS 1


evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v030001-id941150-xss',
  'owasp-crs-v030001-id941320-xss',
  'owasp-crs-v030001-id941330-xss',
  'owasp-crs-v030001-id941340-xss'])
          


Toutes les signatures pour XSS sont inférieures au niveau de sensibilité 2. La configuration suivante fonctionne pour d'autres niveaux de sensibilité :

Niveaux de sensibilité XSS 2/3/4


evaluatePreconfiguredExpr('xss-stable')

Inclusion de fichiers locaux (LFI)

ID de signature (ID de règle) Niveau de sensibilité Description
owasp-crs-v030001-id930100-lfi 1 Attaque par balayage de chemin (/../)
owasp-crs-v030001-id930110-lfi 1 Attaque par balayage de chemin (/../)
owasp-crs-v030001-id930120-lfi 1 Tentative d'accès à un fichier du système d'exploitation
owasp-crs-v030001-id930130-lfi 1 Tentative d'accès à un fichier non autorisé


Toutes les signatures pour LFI sont au niveau de sensibilité 1. La configuration suivante fonctionne pour tous les niveaux de sensibilité :

Niveaux de sensibilité LFI 1/2/3/4


evaluatePreconfiguredExpr('lfi-canary')

Exécution de code à distance (RCE)

ID de signature (ID de règle) Niveau de sensibilité Description
owasp-crs-v030001-id932100-rce 1 Injection de commande UNIX
owasp-crs-v030001-id932105-rce 1 Injection de commande UNIX
owasp-crs-v030001-id932110-rce 1 Injection de commande Windows
owasp-crs-v030001-id932115-rce 1 Injection de commande Windows
owasp-crs-v030001-id932120-rce 1 Commande Windows PowerShell trouvée
owasp-crs-v030001-id932130-rce 1 Expression d'interface système Unix trouvée
owasp-crs-v030001-id932140-rce 1 Commande Windows FOR/IF trouvée
owasp-crs-v030001-id932150-rce 1 Exécution directe de commande UNIX
owasp-crs-v030001-id932160-rce 1 Code d'interface système UNIX trouvé
owasp-crs-v030001-id932170-rce 1 Shellshock (CVE-2014-6271)
owasp-crs-v030001-id932171-rce 1 Shellshock (CVE-2014-6271)


Toutes les signatures pour le RCE sont au niveau de sensibilité 1. La configuration suivante fonctionne pour tous les niveaux de sensibilité :

RCE – Niveaux de sensibilité 1/2/3/4


evaluatePreconfiguredExpr('rce-canary')

Inclusion de fichiers à distance (RFI)

ID de signature (ID de règle) Niveau de sensibilité Description
owasp-crs-v030001-id931100-rfi 1 Paramètre d'URL utilisant une adresse IP
owasp-crs-v030001-id931110-rfi 1 Nom commun du paramètre vulnérable RFI utilisé avec la charge utile d'URL
owasp-crs-v030001-id931120-rfi 1 Charge utile d'URL utilisée avec le caractère de point d'interrogation de fin (?)
owasp-crs-v030001-id931130-rfi 2 Référence/Lien externe


Pour configurer une règle à un niveau de sensibilité particulier, désactivez les signatures à des niveaux de sensibilité supérieurs.

Niveau de sensibilité RFI 1


evaluatePreconfiguredExpr('rfi-canary', ['owasp-crs-v030001-id931130-rfi'])

Toutes les signatures pour RFI sont inférieures au niveau de sensibilité 2. La configuration suivante fonctionne pour d'autres niveaux de sensibilité :

Niveaux de sensibilité RFI 2/3/4


evaluatePreconfiguredExpr('rfi-canary')

Étape suivante