Comment créer une règle AWS WAF pour empêcher SQLi et XSS ?

Date de la dernière mise à jour : 12/07/2022

Je souhaite empêcher l'injection SQL (SQLi) et le script intersite (XSS). Quelles sont les options proposées par AWS WAF pour prévenir les attaques SQLi et XSS ?

Brève description

AWS WAF offre les protections suivantes pour prévenir les attaques SQLi et XSS :

  • Moteurs SQLi et XSS intégrés
  • AWS Managed Rules disponible pour les attaques par injection SQLi et XSS

Pour configurer ces protections, assurez-vous d'avoir configuré AWS WAF et créé une liste ACL Web.

Remarque : AWS WAF a des limites lors de l'inspection du corps, des en-têtes ou des composants de demande de cookies. Pour plus d'informations, consultez la section Inspection du corps de la demande, des en-têtes et des cookies.

Solution

Important : il est recommandé de tester les règles dans un environnement hors production avec Action définie sur Count (Compter). Évaluez la règle à l'aide des métriques Amazon CloudWatch combinées aux demandes échantillonnées AWS WAF ou aux journaux AWS WAF. Lorsque vous êtes convaincu que la règle fait ce que vous voulez, définissez Action sur Block (Bloquer).

Utilisez les moteurs SQLi et XSS intégrés

Des attaques peuvent être effectuées sur différentes parties de la requête HTTP, telles que l'en-tête HTTP, la chaîne de requête ou l'URI. Configurez les règles AWS WAF pour inspecter différentes parties de la requête HTTP par rapport aux moteurs d'atténuation intégrés.

Instruction de règle d'attaque SQLi

Créez une instruction de règle d'attaque par injection SQL pour détecter tout code SQL malveillant. Pour créer une instruction de règle d'attaque SQLi, procédez comme suit :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sous AWS WAF, choisissez Web ACLs (ACL web).
  3. Pour Region (Région), choisissez la région AWS dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  4. Sélectionnez votre liste ACL web.
  5. Choisissez Règles, puis Ajouter une règle. Sélectionnez Ajouter mes propres règles et groupes de règles dans la liste déroulante.
  6. Pour Name (Nom), saisissez un nom de règle, puis choisissez Regular Rule (Règle régulière).
  7. Pour If a request (Si une demande), choisissez matches the statement (correspond à l'instruction).
  8. Pour Inspect, sélectionnez Demander des composants à évaluer par rapport au moteur d'atténuation intégré de SQLi.
  9. Pour Type de correspondance, sélectionnez Contient des attaques par injection SQL dans la liste déroulante.
  10. Choisissez une transformation de texte.
  11. Pour Action, choisissez Block (Bloquer).
  12. Choisissez Add rule (Ajouter une règle).
  13. Choisissez Enregistrer.

Instruction de règle d'attaque XSS

Créez une instruction de règle d'attaque par script intersite pour détecter la présence de scripts malveillants dans un composant de requête Web. Pour créer une instruction de règle d'attaque XSS, procédez comme suit :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sous AWS WAF, choisissez Web ACLs (ACL web).
  3. Pour Region (Région), choisissez la région AWS dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  4. Sélectionnez votre liste ACL web.
  5. Choisissez Règles, puis Ajouter une règle. Sélectionnez Ajouter mes propres règles et groupes de règles dans la liste déroulante.
  6. Pour Name (Nom), saisissez un nom de règle, puis choisissez Regular Rule (Règle régulière).
  7. Pour If a request (Si une demande), choisissez matches the statement (correspond à l'instruction).
  8. Pour Inspect (Inspecter), sélectionnez Demander des composants à évaluer par rapport au moteur d'atténuation intégré XSS.
  9. Pour Type de correspondance, sélectionnez Contient des attaques par injection XSS dans la liste déroulante.
  10. Choisissez une transformation de texte.
  11. Pour Action, choisissez Block (Bloquer).
  12. Choisissez Add rule (Ajouter une règle).
  13. Choisissez Enregistrer.

Règles d'attaque SQLi et XSS qui s'évaluent par rapport à plusieurs composants de requête

Pour créer une règle d'attaque qui s'évalue par rapport à plusieurs composants de requête, procédez comme suit :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sous AWS WAF, choisissez Web ACLs (ACL web).
  3. Pour Region (Région), choisissez la région AWS dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  4. Sélectionnez votre liste ACL web.
  5. Choisissez Règles, puis Ajouter une règle. Sélectionnez Ajouter mes propres règles et groupes de règles dans la liste déroulante.
  6. Pour Name (Nom), saisissez un nom de règle, puis choisissez Regular Rule (Règle régulière).
  7. Pour Si une demande, choisissez correspond à au moins une des instructions (OU).
  8. Pour Inspecter, sélectionnez Demander des composants à évaluer par rapport au moteur d'atténuation intégré SQLi ou XSS.
  9. Pour Type de correspondance, sélectionnez Contient des attaques par injection SQLi ou Contient des attaques par injection XSS dans la liste déroulante.
  10. Choisissez une transformation de texte.
  11. Répétez les étapes 8 à 10 pour chaque Instruction. Choisissez Ajouter une instruction pour des évaluations de règles supplémentaires.
  12. Pour Action, choisissez Block (Bloquer).
  13. Choisissez Add rule (Ajouter une règle).
  14. Choisissez Enregistrer.

Important : vous devez appliquer les transformations de texte correctes pour que la règle fonctionne comme prévu. Par exemple, si vous inspectez un cookie, utilisez les transformations suivantes associées à un cookie :

  • Décodage d'URL
  • Décodage d'entité HTML
  • Minuscules

Utiliser les règles gérées AWS disponibles pour les attaques par injection SQLi et XSS

Utilisez AWS Managed Rules for AWS WAF pour vous protéger contre les vulnérabilités des applications ou tout autre trafic indésirable sans avoir à écrire vos propres règles.

Remarque : les règles gérées peuvent faire l'objet de modifications de version et d'expiration. Pour plus d'informations, consultez Meilleures pratiques pour la gestion des versions de groupes de règles gérés.

Utilisez le groupe de règles géré par base de données SQL pour vous protéger contre les attaques par injection SQL. Le groupe de règles géré par la base de données SQL (version 1.1 par défaut) comporte les règles suivantes qui fournissent une protection :

  • SQLiExtendedPatterns_QUERYARGUMENTS
  • SQLi_QUERYARGUMENTS
  • SQLi_Body
  • SQLi_COOKIE
  • SQLi_URIPATH

Utilisez le groupe de règles géré Core Rule Set (CRS) pour vous protéger contre les attaques par injection XSS. Le groupe de règles géré par ensemble de règles de base (CRS) (version par défaut 1.3) comporte les règles suivantes qui fournissent une protection :

  • CrossSiteScripting_COOKIE
  • CrossSiteScripting_QUERYARGUMENTS
  • CrossSiteScripting_BODY
  • CrossSiteScripting_URIPATH

Pour ajouter un groupe de règles géré par AWS à votre ACL Web

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sous AWS WAF, choisissez Web ACLs (ACL web).
  3. Pour Region (Région), choisissez la région AWS dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  4. Sélectionnez votre liste ACL web.
  5. Choisissez Règles, puis Ajouter une règle. Sélectionnez Ajouter des groupes de règles gérés dans la liste déroulante.
  6. Développez la section Groupes de règles gérés par AWS.
  7. Localisez le groupe de règles et activez Ajouter à la liste ACL Web.
    Par exemple, vous pouvez activer l'option Ajouter à la liste ACL Web pour la base de données SQL pour la protection SQLi et pour l'ensemble de règles de base pour la protection XSS.
  8. (Facultatif) Choisissez Modifier pour afficher et modifier les paramètres du groupe de règles.
  9. Choisissez Ajouter des règles.
  10. Choisissez Enregistrer.

Pour modifier un groupe de règles géré par AWS existant dans votre ACL Web

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sous AWS WAF, choisissez Web ACLs (ACL web).
  3. Pour Region (Région), choisissez la région AWS dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  4. Sélectionnez votre liste ACL web.
  5. Choisissez Règles, puis Modifier pour afficher et modifier les paramètres.
    Remarque : pour plus d'informations sur la modification des paramètres, consultez la section Utilisation des groupes de règles gérés.
  6. Lorsque vous avez terminé vos modifications, choisissez Enregistrer.

Si vous obtenez des scénarios faussement positifs avec des groupes de règles gérés par AWS, consultez Groupes de règles gérés par AWS pour AWS WAF.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?