Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Pourquoi AWS WAF bloque-t-il ma requête de chargement légitime ?
Je souhaite charger (POST) un fichier qui utilise une extension bloquée par AWS WAF.
Brève description
AWS WAF peut bloquer une requête POST pour l'une des raisons suivantes :
- La taille de votre fichier est supérieure à la taille maximale du corps de requête qu'AWS WAF peut inspecter. AWS WAF a fixé des quotas de taille d’inspection.
- Les règles d’injection SQL et de scripts inter-site (XSS) sont sensibles aux fichiers dont les métadonnées contiennent des caractères aléatoires. Ces caractères aléatoires peuvent invoquer des règles de liste de contrôle d'accès Web (ACL Web). Cela est dû à leur similitude avec une signature d'injection XSS ou SQL réelle dans AWS WAF.
Commencez par examiner les règles communes susceptibles de bloquer le chargement de fichiers. Si aucune règle courante ne bloque le chargement, envisagez d’autres options permettant d’autoriser les fichiers bloqués.
Les règles suivantes bloquent généralement les chargements de fichiers :
- SQLi_BODY
- CrossSiteScripting_BODY
- WindowsShellCommands_BODY
- GenericLFI_BODY
- SizeRestrictions_BODY
Résolution
Chargements de fichiers bloqués par les règles SQLi_BODY et CrossSiteScripting_BODY
Consultez le champ terminatingRuleMatchDetails dans vos journaux complets d’AWS WAF pour obtenir les informations sur les règles.
Remarque : Le champ terminatingRuleMatchDetails est renseigné uniquement pour les attaques SQLi_BODY et CrossSiteScripting_BODY.
Voici un exemple de valeur matchedData pour CrossSiteScripting_BODY :
"terminatingRuleMatchDetails": [{ "conditionType": "XSS", "location": "BODY", "matchedData": [ "
Voici un exemple de valeur matchedData pour SQLi_BODY :
"terminatingRuleMatchDetails": [{ "conditionType": "SQL_INJECTION", "location": "BODY", "matchedData": [ ")", "*", "(", "0" ]
Pour traiter les chargements bloqués par SQLi_BODY ou CrossSiteScripting_BODY, choisissez l’une des options suivantes.
Ajouter des adresses IP connues à une liste sécurisée
Si vous connaissez la plage d'adresses IP qui accède à votre application, utilisez les conditions de correspondance IP. Les adresses IP sont alors ajoutées à une règle de liste sécurisée.
Utiliser une liste sécurisée avec une condition de correspondance
Utilisez une liste sécurisée avec une condition de correspondance de chaîne ou d’expression régulière (regex) pour autoriser la requête. Créez une liste sécurisée à partir d’un URI, d’en-têtes HTTP ou d’une phrase associée au corps des fichiers AWS WAF.
Utilisez des identifiants uniques dans votre liste sécurisée pour identifier les requêtes qui peuvent être considérées comme légitimes.
Pour créer votre liste sécurisée, créez une nouvelle règle personnalisée. Cette règle bloque les vecteurs XSS ou SQLi avec une condition d'exception. La condition est basée sur les données correspondantes des attributs de requête valides pour le chargement. Modifiez l’action associée aux règles spécifiques au sein des groupes de règles gérées qui causent le faux positif. Pour ces derniers, définissez SQLi_BODY et CrossSiteScripting_BODY sur Comptage.
Pour créer cette règle personnalisée, procédez comme suit :
- Ouvrez la console AWS WAF.
- Dans le volet de navigation, sélectionnez AWS WAF.
- Sélectionnez Packs de ressources et de protection.
- Recherchez votre pack de protection et choisissez Afficher et modifier en regard de Règles.
- Dans le volet droit, sélectionnez Ajouter des règles.
Sélectionnez Règle personnalisée et cliquez sur Suivant.
Sélectionnez à nouveau Règle personnalisée et cliquez sur Suivant. - Définissez l'action de la règle sur BLOQUER.
- Saisissez le nom de votre règle.
- Dans S’il s’agit d’une requête, développez la liste déroulante et choisissez correspond à toutes les instructions (AND).
- Dans Instruction 1, procédez comme suit :
Dans Inspecter, choisissez Inclut une étiquette.
Dans Instruction, sélectionnez Étiquette.
Dans Clé de correspondance, saisissez l’étiquette de la règle qui crée le faux positif.Par exemple, si la règle CrossSiteScripting_BODY crée le faux positif, saisissez awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body. - Pour Instruction 2, procédez comme suit :Pour Inspecter, choisissez Corps.
Dans Instruction, choisissez Gestion des surtailles pour Continuer.
Pour Type de correspondance, sélectionnez Contient la chaîne.
Dans Chaîne à faire correspondre, saisissez la valeur que vous souhaitez associer à la règle.
(Facultatif) Dans Transformation de texte, choisissez une transformation de texte ou sélectionnez Aucune.
Développez Configuration de la règle, sous Instruction négative (NOT), choisissez Passer les résultats de l’instruction en nombre négatif. - Sélectionnez Créer une règle.
- Pour définir la priorité de la règle, sélectionnez Modifier l'ordre des règles dans le volet droit et faites glisser la règle sous le groupe de règles gérées qui bloque la requête. Cela définit d'abord l'étiquette de la règles gérée pour l'inspection du groupe de règles. AWS WAF utilise ensuite l'étiquette dans la priorité de règle suivante.
- Choisissez Enregistrer l'ordre des règles.
Remarque : Il est recommandé de tester les règles dans un environnement hors production en définissant le paramètre Action sur Comptage. Pour évaluer la règle, utilisez les métriques Amazon CloudWatch combinées aux échantillons de requêtes AWS WAF ou aux journaux AWS WAF. Lorsque la règle s'exécute comme prévu, modifiez l'action à Bloquer.
Chargements de fichiers bloqués par la règle WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY
Créez un fichier d’archive HTTP (HAR) lors des chargements de fichiers. Regardez ensuite s’il contient la règle WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY.
Pour autoriser les faux positifs pour WindowsShellCommands_BODY, GenericLFI_BODY ou SizeRestrictions_BODY, définissez d’abord la règle de blocage sur Comptage. Pour obtenir des instructions, consultez la section Remplacement du résultat d’évaluation d’un groupe de règles par Comptage.
Puis, créez une règle personnalisée pour la règle gérée à l’origine du faux positif :
- Ouvrez la console AWS WAF.
- Dans le volet de navigation, sélectionnez AWS WAF.
- Sélectionnez Packs de ressources et de protection.
- Recherchez votre pack de protection et choisissez Afficher et modifier en regard de Règles.
- Dans le volet droit, sélectionnez Ajouter des règles.
Sélectionnez Règle personnalisée et cliquez sur Suivant.
Sélectionnez à nouveau Règle personnalisée et cliquez sur Suivant. - Mettez à jour l'action de la règle sur BLOQUER.
- Saisissez le nom de votre règle.
- Dans S’il s’agit d’une requête, développez la liste déroulante et choisissez correspond à toutes les instructions (AND).
- Dans Instruction 1, procédez comme suit :
Dans Inspecter, choisissez Inclut une étiquette.
Dans Instruction, sélectionnez Étiquette.
Dans Clé de correspondance, saisissez l’étiquette de la règle qui crée le faux positif. Par exemple, si la règle WindowsShellCommands_BODY crée un faux positif, saisissez awswaf:managed:aws:windows-os:WindowsShellCommands_Body. - Dans Instruction 2, procédez comme suit :
Dans Inspecter, choisissez Chemin d’URI. Sous Instruction, pour Type de correspondance, sélectionnez Correspond exactement à la chaîne.
Dans Chaîne à faire correspondre, saisissez le chemin de l’URI où les requêtes sont actuellement émises.
(Facultatif) Dans Transformation de texte, choisissez une transformation de texte ou sélectionnez Aucune.
Développez Configuration de la règle, sous Instruction négative (NOT), choisissez Passer les résultats de l’instruction en nombre négatif. - Sélectionnez Créer une règle.
- Pour définir la priorité de la règle, sélectionnez Modifier l'ordre des règles dans le volet droit et faites glisser la règle sous le groupe de règles gérées qui bloque la requête.
- Choisissez Enregistrer l'ordre des règles.
Remarque : Il est recommandé de tester les règles dans un environnement hors production en définissant le paramètre Action sur Comptage. Pour évaluer la règle, utilisez les métriques CloudWatch combinées aux échantillons de demandes AWS WAF ou aux journaux AWS WAF. Lorsque la règle s'exécute comme prévu, modifiez l'action à Bloquer.
Options supplémentaires pour autoriser les fichiers bloqués
Remarque : Les règles sont traitées dans l'ordre dans lequel elles sont répertoriées. Pour appliquer les bonnes pratiques suivantes, réorganisez les priorités de vos règles le cas échéant.
Choisissez la méthode la mieux adaptée à votre cas d’utilisation :
- Appliquez une exclusion sélective à l’aide d’une instruction de règle de correspondance de chaînes AWS WAF ou d’une condition de correspondance de chaînes AWS WAF Classic. Ajoutez des phrases spécifiques associées au corps des fichiers à votre liste sécurisée. Exemple : Si des faux positifs apparaissent sur un chemin d’URI spécifique, ajoutez le chemin à votre liste sécurisée.
- Utilisez un domaine distinct pour les chargements de fichiers. Vérifiez s'il s'agit d'une option rentable pour votre cas d'utilisation.
- Analysez (par balayage) les fichiers et les images pour obtenir les données et le code intégrés. Vous pouvez effectuer cette action côté client avant de charger les fichiers. Si vous créez une règle d’exclusion, vous pouvez également effectuer cette action en backend après avoir chargé les fichiers.
- Compressez les fichiers avant de les charger.
Remarque : Veillez à ne pas compresser de fichiers malveillants. - Si le chargement est effectué à partir d’une plage d’adresses IP connues, ajoutez ces adresses IP à votre liste sécurisée.
- Utilisez le codage base64 pour coder toutes les données d’image afin qu’AWS WAF n’invoque pas XSS ou SQLi sur les images.
Remarque : Assurez-vous de ne pas encoder des images malveillantes. - Mettez en œuvre des techniques d’optimisation d’image, telles que la suppression de blocs ou la randomisation de bits.
- Balises
- AWS WAF
- Langue
- Français

Contenus pertinents
- demandé il y a un an
- Réponse acceptéedemandé il y a 2 ans
- demandé il y a 5 mois
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a 5 mois