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

Remarque : AWS WAF inspecte les 8 premiers Ko (8 192 octets) du corps de la demande. Il s'agit d'une limite de service stricte que vous ne pouvez pas modifier.

Pour restreindre les téléchargements de fichiers utilisant une extension spécifique comme .pdf, .docx ou .exe, procédez comme suit :

1.    Créez une règle de liste de contrôle d'accès Web (ACL Web) personnalisée pour inspecter le CORPS de la demande.

2.    Créez une condition de correspondance regex dans la règle. Utilisez ce modèle regex pour configurer la règle afin de restreindre plusieurs extensions de fichier.

3.    Définissez l'action de la règle sur BLOQUER.

4.    Définissez la priorité de la règle afin que cette règle personnalisée ait une priorité plus élevée que n'importe quelle règle ACL Web capable de la bloquer.

5.    Vérifiez que la règle bloque correctement l'extension de fichier spécifique.

Résolution

Identification du 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 page Media Types du site Web de l'Internet Assigned Numbers Authority (IANA).

Pour identifier le type de requête POST, voir la valeur Content-Typede l'en-tête HTTP POST. Dans l'exemple suivant, la valeur Content-Type est multipart/form-data :

Content-Type: multipart/form-data

Si l'en-tête « Content-Type » a pour valeur « multipart/form-data », procédez comme suit pour créer une règle :

1.    Ouvrez la console AWS WAF.

2.    Dans le volet de navigation, sous AWS WAF, sélectionnez ACL Web.

3.    Pour Région, choisissez la région AWS dans laquelle vous avez créé votre ACL Web.
**Remarque :**Si vous avez configuré votre ACL Web pour Amazon CloudFront, sélectionnez Global.

4.    Sélectionnez votre ACL Web. Choisissez ensuite l'onglet Règles.

5.    Cliquez sur la liste déroulante Ajouter des règles, puis sélectionnez Ajouter mes propres règles et groupes de règles.

6.    Pour Type de règle, sélectionnez Générateur de règles.

7.    Pour Nom, entrez un nom pour identifier cette règle.

8.    Pour Type, sélectionnez Règle normale.

9.    Pour S’il s’agit d’une demande, sélectionnez Correspond à l’instruction. Renseignez ensuite les champs suivants pour Instruction :
Pour Inspecter, sélectionnez Corps.
Pour Type de contenu, sélectionnez JSON.
Pour Étendue de la correspondance JSON, sélectionnez Valeurs.
Pour Comment AWS WAF doit traiter la demande si le code JSON contenu dans le corps de la demande n'est pas valide, choisissez l'option adaptée à votre cas d’utilisation.
Pour Contenu à inspecter, sélectionnez Contenu JSON complet.
Pour Type de correspondance, sélectionnez Correspond à l'expression régulière.
Pour Expression régulière, entrez un modèle regex correspondant. Consultez l’exemple suivant :

(?:.pdf|.doc|.docx|.ppt)

10.    (Facultatif) Pour Transformation de texte, vous pouvez ajouter une transformation de texte ou conserver la valeur Aucun pour ces champs.

11.    Pour Gestion des surtailles, choisissez l'option adaptée à votre cas d'utilisation.

12.    Pour Action, sélectionnez Bloquer.

13.    Sélectionnez Ajouter une règle.

14.    (Facultatif) Pour Définir la priorité des règles, sélectionnez votre règle et déplacez sa priorité. AWS WAF traite les règles selon leur ordre d’apparition. Pour en savoir plus, voir Ordre de traitement des règles et des groupes de règles dans une ACL Web.

15.    Sélectionnez Enregistrer.

Assurez-vous que la règle fonctionne comme prévu.

Si l'en-tête « Content-Type » affiche une valeur binaire comme « application/pdf » ou « application/ppt », procédez comme suit pour créer une règle :

1.    Ouvrez la console AWS WAF.

2.    Dans le volet de navigation, sous AWS WAF, sélectionnez ACL Web.

3.    Pour Région, choisissez la région AWS dans laquelle vous avez créé votre ACL Web.
**Remarque :**Si vous avez configuré votre ACL Web pour Amazon CloudFront, sélectionnez Global.

4.    Sélectionnez votre ACL Web. Choisissez ensuite l'onglet Règles.

5.    Cliquez sur la liste déroulante Ajouter des règles, puis sélectionnez Ajouter mes propres règles et groupes de règles.

6.    Pour Type de règle, sélectionnez Générateur de règles.

7.    Pour Nom, entrez un nom pour identifier cette règle.

8.    Pour Type, sélectionnez Règle normale.

9.    Pour S’il s’agit d’une demande, sélectionnez Correspond à l’instruction. Renseignez ensuite les champs suivants pour Instruction :
Pour Inspecter, sélectionnez En-tête unique.
Pour Nom du champ d'en-tête, entrez Type de contenu.
Pour Type de correspondance, sélectionnez Correspond à l'expression régulière.
Pour Expression régulière, entrez un modèle regex correspondant. Consultez l'exemple suivant pour les fichiers .pdf et .jpeg :

(?:pdf|jpeg)   

10.    (Facultatif) Pour Transformation de texte, vous pouvez ajouter une transformation de texte ou conserver la valeur Aucun pour ces champs.

11.    Pour Action, sélectionnez Bloquer.

12.    Sélectionnez Ajouter une règle.

13.    (Facultatif) Pour Définir la priorité des règles, sélectionnez votre règle et déplacez sa priorité. AWS WAF traite les règles selon leur ordre d’apparition. Pour en savoir plus, voir Ordre de traitement des règles et des groupes de règles dans une ACL Web.

14.    Sélectionnez Enregistrer.

Assurez-vous que la règle fonctionne comme prévu.

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 OFFICIEL
AWS OFFICIELA mis à jour il y a un an