Passer au contenu

Comment utiliser AWS WAF pour bloquer les téléchargements de fichiers utilisant des extensions spécifiques ?

Lecture de 5 minute(s)
0

Je souhaite restreindre les téléchargements de fichiers (requêtes HTTP POST) utilisant des extensions spécifiques sur mon serveur Web.

Brève description

Lorsque vous analysez les données POST d'une requête HTTP, le contenu téléchargé peut être de deux types :

  • Données de formulaire
  • Données binaires

Pour restreindre le chargement de fichiers avec des extensions spécifiques (.pdf, .docx, .exe), vous allez créer et configurer une règle de liste de contrôle d'accès Web (ACL Web) personnalisée dans AWS WAF.

Remarque : AWS WAF inspecte les 8 premiers Ko (8 192 octets) du corps de la demande. Pour en savoir plus sur les requêtes plus volumineuses, consultez la section Composants de requêtes Web surdimensionnés dans AWS WAF.

Résolution

Identifier le type de contenu utilisé par les données POST

Les données POST contenues dans les requêtes HTTP utilisent généralement des données de formulaire ou des données binaires.

  • Les données de formulaire incluent toutes les données qu'un utilisateur saisit sur une page Web (ou « formulaire HTML ») que HTTP envoie (ou « publie ») à un serveur Web.
  • Une charge utile binaire est différente d’une charge utile de texte. Par exemple, une charge utile binaire peut être un fichier .jpeg, .gzip ou .xml. Cela inclut des données binaires génériques comme celles d'une application .pdf, d'une image .jpeg ou d'une application .zip. Pour tous les types d'extension de fichier, consultez la section Media Types du site Web de l'Internet Assigned Numbers Authority (IANA).

Pour identifier votre type de requête POST, vérifiez la valeur Content-Type dans l'en-tête HTTP POST. Exemple :

Content-Type: multipart/form-data

En fonction de votre sortie Content-Type, consultez la section appropriée qui correspond à la valeur de votre en-tête.

Créer une règle pour le contenu multipart/form-data

Procédez comme suit :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sélectionnez AWS WAF.
  3. Choisissez Packs de ressources et de protection.
  4. Sélectionnez votre pack de protection.
  5. Dans le pack de protection que vous avez sélectionné, sélectionnez Règles.
  6. Sélectionnez Afficher et modifier en regard de Règles pour afficher ou modifier les règles associées à votre pack de protection.
  7. Dans le volet droit de la section Gérer les règles, choisissez Ajouter des règles.
  8. Choisissez Créer une nouvelle règle.
  9. Choisissez Règle personnalisée, puis sélectionnez Suivant.
  10. Dans Type de règle, choisissez Règle personnalisée, puis sélectionnez Suivant.
  11. Pour configurer votre règle, configurez les valeurs suivantes :
    Dans Action, sélectionnez Bloquer pour les règles personnalisées.
    Dans Nom, saisissez un nom pour identifier cette règle.
    Dans S’il s’agit d’une requête, sélectionnez correspond à l'instruction. Renseignez ensuite les champs suivants pour Instruction :
    Dans Inspecter, choisissez Corps JSON.
    Dans Étendue de la correspondance JSON, sélectionnez Valeurs.
    Dans Action en cas de requêtes de corps JSON non valides, choisissez l'option qui vous convient.
    Dans Contenu à inspecter, sélectionnez Contenu JSON complet.
    Dans Type de correspondance, sélectionnez Correspond à l'expression régulière.
    Dans Expression régulière, saisissez un modèle regex correspondant. Reportez-vous à l’exemple suivant :
(?:.pdf|.doc|.docx|.ppt)
  1. (Facultatif) Dans Transformation de texte, ajoutez une transformation de texte ou conservez la valeur Aucun pour ces champs.
  2. Dans Gestion des surtailles, choisissez l'option adaptée à votre cas d'utilisation.
  3. Sélectionnez Créer une règle.
  4. Sélectionnez Enregistrer.

Créer une règle pour une valeur binaire

Procédez comme suit :

  1. Ouvrez la console AWS WAF.
  2. Dans le volet de navigation, sélectionnez AWS WAF.
  3. Choisissez Packs de ressources et de protection.
  4. Sélectionnez votre pack de protection.
  5. Dans le pack de protection que vous avez sélectionné, sélectionnez Règles.
  6. Sélectionnez Afficher et modifier en regard de Règles pour afficher ou modifier les règles associées à votre pack de protection.
  7. Dans le volet droit de la section Gérer les règles, choisissez Ajouter des règles.
  8. Choisissez Créer une nouvelle règle.
  9. Choisissez Règle personnalisée, puis sélectionnez Suivant.
  10. Dans Type de règle, choisissez Règle personnalisée, puis sélectionnez Suivant.
  11. Pour configurer votre règle, configurez les valeurs suivantes :
    Dans Action, sélectionnez Bloquer pour les règles personnalisées.
    Dans Nom, saisissez un nom pour identifier cette règle.
    Dans S’il s’agit d’une demande, sélectionnez Correspond à l’instruction.
    Renseignez les champs suivants pour Instruction :
    Dans Inspecter, sélectionnez En-tête unique.
    Dans Nom du champ d'en-tête, saisissez Type de contenu.
    Dans Type de correspondance, sélectionnez Correspond à l'expression régulière.
    Dans Expression régulière, saisissez un modèle regex correspondant.
    Consultez l'exemple suivant pour les fichiers .pdf et .jpeg :
(?:pdf|jpeg)
  1. (Facultatif) Dans Transformation de texte, ajoutez une transformation de texte ou conservez la valeur Aucun pour ces champs.
  2. Sélectionnez Créer une règle.

Remarque : Pour restreindre la règle à un chemin d'URL de téléchargement spécifique, utilisez une instruction AND dans la règle Web ACL.

AWS OFFICIELA mis à jour il y a 7 mois