Comment utiliser AWS WAF pour bloquer les requêtes HTTP qui ne contiennent pas d'en-tête User-Agent ?

Date de la dernière mise à jour : 06/12/2019

Je souhaite bloquer les requêtes HTTP qui n'ont pas d'en-tête User-Agent ou dont la valeur d'en-tête User-Agent est vide. Comment puis-je utiliser AWS WAF pour bloquer ces requêtes ?

Brève description

Par défaut, les filtres AWS WAF ne vérifient pas le paramètre de requête HTTP. Cependant, vous pouvez créer une règle avec l'une des conditions suivantes pour vérifier les demandes HTTP :

Résolution

Méthode 1 : Créer une règle avec une condition de correspondance de regex

Tout d'abord, créez la condition de correspondance regex :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, choisissez String and Regex matching (Correspondance de regex et de chaîne).
  3. Choisissez Create condition (Créer une condition).
  4. Pour Name (Nom), entrez UA-condition.
  5. Pour Region (Région), choisissez la région dans laquelle vous avez créé votre liste de contrôle d'accès web (ACL web).
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour Amazon CloudFront.
  6. Pour Type, choisissez Regex match (Correspondance de regex).
  7. Pour Part of the request to filter on (Partie de la requête à filtrer), choisissez Header (En-tête).
  8. Pour Header (En-tête), choisissez User-Agent.
  9. Pour Transformation, choisissez None (Aucune).
  10. Pour Regex patterns to match to request (Modèles de regex à faire correspondre à la requête), conservez la sélection par défaut de Create regex pattern set (Créer un ensemble de modèles de regex).
  11. Pour New pattern set name (Nouveau nom d'ensemble de modèles), entrez testpattern.
  12. Entrez une expression régulière .+ et choisissez le symbole plus (+).
    Remarque : l'expression régulière (regex) correspond à n'importe quel caractère, à l'exception d'un terminateur de ligne.
  13. Choisissez Create pattern set and add filter (Créer un ensemble de modèles et ajouter un filtre).
  14. Choisissez Create (Créer).

Ensuite, créez une règle et ajoutez-lui la condition :

  1. Dans le volet de navigation, choisissez Rules (Règles).
  2. Sélectionnez Create rule (Créer une règle).
  3. Pour Name (Nom), entrez UA-Rule (Règle UA).
    Remarque : le nom de la métrique Amazon CloudWatch est automatiquement renseigné en fonction de votre saisie dans le champ Name (Nom).
  4. Pour Rule type (Type de règle), choisissez Regular rule (Règle régulière).
  5. Pour Region (Région), choisissez la région dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour CloudFront.
  6. Pour Add conditions (Ajouter des conditions), choisissez does not et faites correspondre au moins l'un des filtres de la condition de correspondance de chaîne.
  7. Choisissez UA-condition (Condition UA) dans le menu déroulant des conditions.
  8. Choisissez Create (Créer).

Enfin, ajoutez cette règle à votre liste ACL web :

  1. Dans le volet de navigation, choisissez Web ACLs (ACL web).
  2. Choisissez le nom de votre ACL web.
  3. Sélectionnez l'onglet Rules (Règles) et choisissez Edit web ACL (Modifier l'ACL web).
  4. Pour Rules (Règles), choisissez UA-Rule (Règle UA).
  5. Choisissez Add rule to web ACL (Ajouter une règle à l'ACL web).
  6. Vérifiez que Block (Bloc) est sélectionné pour Action.
  7. Pour Default action (Action par défaut), choisissez Allow all requests that don't match any rules (Autoriser toutes les requêtes qui ne correspondent à aucune règle).
  8. Choisissez Update (Mettre à jour).

Méthode 2 : Créer une règle avec une condition de contrainte de taille

Remarque : par défaut, le nombre d'ensembles de modèles par compte est de 5. Si vous avez dépassé cette limite AWS WAF, vous pouvez utiliser la solution de contrainte de taille suivante.

Commencez par créer la condition de contrainte de taille :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, choisissez Size constraints (Contraintes de taille).
  3. Choisissez Create condition (Créer une condition).
  4. Pour Name (Nom), entrez UA-condition2 (Condition UA 2).
  5. Pour Region (Région), choisissez la région dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour CloudFront.
  6. Pour Part of the request to filter on (Partie de la requête à filtrer), choisissez Header (En-tête).
  7. Pour Header (En-tête), entrez User-Agent.
  8. Pour Comparison operator (Opérateur de comparaison), choisissez Greater than or equal (Supérieur ou égal).
  9. Pour Size (Bytes) (Taille [octets]), conservez la valeur par défaut 0.
  10. Pour Transformation, choisissez None (Aucune).
  11. Choisissez Add filter (Ajouter un filtre).
  12. Choisissez Create (Créer).

Ensuite, créez une règle et ajoutez-lui la condition :

  1. Dans le volet de navigation, choisissez Rules (Règles).
  2. Sélectionnez Create rule (Créer une règle).
  3. Pour Name (Nom), entrez UA-Rule2 (Règle UA 2).
    Remarque : le nom de la métrique CloudWatch est automatiquement renseigné en fonction de votre saisie dans le champ Nom.
  4. Pour Rule type (Type de règle), choisissez Regular rule (Règle régulière).
  5. Pour Region (Région), choisissez la région dans laquelle vous avez créé votre liste ACL web.
    Remarque : sélectionnez Global si votre liste ACL web est configurée pour CloudFront.
  6. Pour Add conditions (Ajouter des conditions), choisissez does not et faites correspondre au moins l'un des filtres de la condition de contrainte de taille.
  7. Choisissez UA-condition2 (Condition UA 2) dans le menu déroulant de condition.
  8. Choisissez Create (Créer).

Enfin, ajoutez cette règle à votre liste ACL web :

  1. Dans le volet de navigation, choisissez Web ACLs (ACL web).
  2. Choisissez le nom de votre ACL web.
  3. Sélectionnez l'onglet Rules (Règles) et choisissez Edit web ACL (Modifier l'ACL web).
  4. Pour Rules (Règles), choisissez UA-Rule (Règle UA).
  5. Choisissez Add rule to web ACL (Ajouter une règle à l'ACL web).
  6. Vérifiez que Block (Bloc) est sélectionné pour Action.
  7. Pour Default action (Action par défaut), choisissez Allow all requests that don't match any rules (Autoriser toutes les requêtes qui ne correspondent à aucune règle).
  8. Choisissez Update (Mettre à jour).

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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?