Demandez des composants dans AWS WAF - AWS WAF, AWS Firewall Manager, et AWS Shield Advanced

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Demandez des composants dans AWS WAF

Cette section décrit les composants de la requête Web que vous pouvez spécifier pour inspection. Vous spécifiez le composant de demande pour les instructions de règle de correspondance qui recherchent des modèles dans la requête Web. Ces types d'instructions incluent les instructions de correspondance de chaîne, de correspondance régulière, de contrainte de taille et SQL d'attaque par injection. Pour plus d'informations sur l'utilisation de ces paramètres de composant de requête, consultez les instructions de règle individuelles à l'adresse Utilisation des instructions de règles de correspondance dans AWS WAF

Sauf indication contraire, si une requête Web ne possède pas le composant de demande spécifié dans l'instruction de règle, AWS WAF estime que la demande ne correspond pas aux critères de la règle.

Note

Vous spécifiez un composant de demande unique pour chaque instruction de règle qui le requiert. Pour inspecter plusieurs composants d'une demande, créez une instruction de règle pour chacun d'eux.

Le AWS WAF la console et API la documentation fournissent des conseils sur les paramètres des composants de demande aux emplacements suivants :

  • Générateur de règles sur la console : dans les paramètres de déclaration pour un type de règle normal, choisissez le composant que vous souhaitez inspecter dans la boîte de dialogue Inspecter sous Composants de demande.

  • APIcontenu de la déclarationFieldToMatch

Le reste de cette section décrit les options relatives à la partie de la requête Web à inspecter.

HTTPméthode

Inspecte la HTTP méthode utilisée pour la demande. La HTTP méthode indique le type d'opération que la requête Web demande à votre ressource protégée d'effectuer, telle que POST ouGET.

En-tête seul

Inspecte un seul en-tête nommé dans la demande.

Pour cette option, vous spécifiez le nom de l'en-tête, par exemple, User-Agent ouReferer. La chaîne correspondant au nom ne distingue pas les majuscules et minuscules.

Tous les en-têtes

Inspecte tous les en-têtes de demande, y compris les cookies. Vous pouvez appliquer un filtre pour inspecter un sous-ensemble de tous les en-têtes.

Pour cette option, vous devez fournir les spécifications suivantes :

  • Modèles de correspondance : filtre à utiliser pour obtenir un sous-ensemble d'en-têtes à inspecter. AWS WAF recherche ces modèles dans les touches d'en-tête.

    Le paramètre des modèles de correspondance peut être l'un des suivants :

    • Toutes — Faites correspondre toutes les clés. Évaluez les critères d'inspection des règles pour tous les en-têtes.

    • En-têtes exclus : inspectez uniquement les en-têtes dont les clés ne correspondent à aucune des chaînes que vous spécifiez ici. La correspondance de chaîne pour une clé ne fait pas la distinction majuscules/minuscules.

    • En-têtes inclus : inspectez uniquement les en-têtes dont la clé correspond à l'une des chaînes que vous spécifiez ici. La correspondance de chaîne pour une clé ne fait pas la distinction majuscules/minuscules.

  • Match scope — Les parties des en-têtes qui AWS WAF doit inspecter selon les critères d'inspection des règles. Vous pouvez spécifier des clés, des valeurs ou tout pour inspecter à la fois les clés et les valeurs pour détecter une correspondance.

    Tout ne nécessite pas qu'une correspondance soit trouvée dans les clés et qu'une correspondance soit trouvée dans les valeurs. Cela nécessite qu'une correspondance soit trouvée dans les clés ou les valeurs, ou dans les deux. Pour exiger une correspondance entre les clés et les valeurs, utilisez une AND instruction logique pour combiner deux règles de correspondance, l'une inspectant les clés et l'autre les valeurs.

  • Manipulation des objets surdimensionnés — Comment AWS WAF doit gérer les demandes dont les données d'en-tête sont supérieures à AWS WAF peut inspecter. AWS WAF peut inspecter au maximum les 8 premiers Ko (8 192 octets) des en-têtes de requête et au plus les 200 premiers en-têtes. Le contenu peut être consulté par AWS WAF jusqu'à la première limite atteinte. Vous pouvez choisir de poursuivre l'inspection ou de sauter l'inspection et de marquer la demande comme correspondant ou non à la règle. Pour plus d'informations sur la gestion du contenu surdimensionné, consultezComposants de requête Web surdimensionnés dans AWS WAF.

Ordre des en-têtes

Inspectez une chaîne contenant la liste des noms d'en-tête de la demande, classés tels qu'ils apparaissent dans la requête Web qui AWS WAF reçoit pour inspection. AWS WAF génère la chaîne, puis l'utilise comme champ pour faire correspondre le composant lors de son inspection. AWS WAF sépare les noms des en-têtes dans la chaîne par des deux-points et sans espaces ajoutés, par exemplehost:user-agent:accept:authorization:referer.

Pour cette option, vous devez fournir les spécifications suivantes :

  • Manipulation des objets surdimensionnés — Comment AWS WAF doit gérer les demandes dont les données d'en-tête sont plus nombreuses ou plus grandes que AWS WAF peut inspecter. AWS WAF peut inspecter au maximum les 8 premiers Ko (8 192 octets) des en-têtes de requête et au plus les 200 premiers en-têtes. Le contenu peut être consulté par AWS WAF jusqu'à la première limite atteinte. Vous pouvez choisir de continuer à inspecter les en-têtes disponibles ou d'ignorer l'inspection et de marquer la demande comme correspondant ou non à la règle. Pour plus d'informations sur la gestion du contenu surdimensionné, consultezComposants de requête Web surdimensionnés dans AWS WAF.

Cookies

Inspecte tous les cookies de demande. Vous pouvez appliquer un filtre pour inspecter un sous-ensemble de tous les cookies.

Pour cette option, vous devez fournir les spécifications suivantes :

  • Modèles de correspondance : filtre à utiliser pour obtenir un sous-ensemble de cookies à inspecter. AWS WAF recherche ces modèles dans les clés des cookies.

    Le paramètre des modèles de correspondance peut être l'un des suivants :

    • Toutes — Faites correspondre toutes les clés. Évaluez les critères d'inspection des règles pour tous les cookies.

    • Cookies exclus : inspectez uniquement les cookies dont les clés ne correspondent à aucune des chaînes que vous spécifiez ici. La correspondance de chaîne pour une clé distingue les majuscules et minuscules et doit être exacte.

    • Cookies inclus : inspectez uniquement les cookies dont la clé correspond à l'une des chaînes que vous spécifiez ici. La correspondance de chaîne pour une clé distingue les majuscules et minuscules et doit être exacte.

  • Champ d'application du match — Les parties des cookies qui AWS WAF doit inspecter selon les critères d'inspection des règles. Vous pouvez spécifier des clés, des valeurs ou tout pour les clés et les valeurs.

    Tout ne nécessite pas qu'une correspondance soit trouvée dans les clés et qu'une correspondance soit trouvée dans les valeurs. Cela nécessite qu'une correspondance soit trouvée dans les clés ou les valeurs, ou dans les deux. Pour exiger une correspondance entre les clés et les valeurs, utilisez une AND instruction logique pour combiner deux règles de correspondance, l'une inspectant les clés et l'autre les valeurs.

  • Manipulation des objets surdimensionnés — Comment AWS WAF doit traiter les demandes dont les données de cookie sont supérieures à AWS WAF peut inspecter. AWS WAF peut inspecter au maximum les 8 premiers Ko (8 192 octets) des cookies de demande et au plus les 200 premiers cookies. Le contenu peut être consulté par AWS WAF jusqu'à la première limite atteinte. Vous pouvez choisir de poursuivre l'inspection ou de sauter l'inspection et de marquer la demande comme correspondant ou non à la règle. Pour plus d'informations sur la gestion du contenu surdimensionné, consultezComposants de requête Web surdimensionnés dans AWS WAF.

URIchemin

Inspecte la partie d'un URL qui identifie une ressource, par exemple,/images/daily-ad.jpg. Pour plus d'informations, voir Uniform Resource Identifier (URI) : syntaxe générique.

Si vous n'utilisez pas de transformation de texte avec cette option, AWS WAF ne le normalise pas URI et l'inspecte exactement tel qu'il le reçoit du client dans la demande. Pour plus d'informations sur les transformations de texte, consultezUtilisation de transformations de texte dans AWS WAF.

JA3empreinte digitale

Inspecte l'JA3empreinte digitale de la demande.

Note

JA3l'inspection des empreintes digitales n'est disponible que pour les CloudFront distributions Amazon et les équilibreurs de charge d'application.

L'JA3empreinte digitale est un hachage de 32 caractères dérivé du TLS client Hello d'une demande entrante. Cette empreinte sert d'identifiant unique pour la TLS configuration du client. AWS WAF calcule et enregistre cette empreinte pour chaque demande contenant suffisamment d'informations TLS Client Hello pour le calcul. Presque toutes les demandes sur le Web incluent ces informations.

Comment obtenir l'JA3empreinte digitale d'un client

Vous pouvez obtenir l'JA3empreinte digitale des demandes d'un client à partir des ACL journaux Web. If AWS WAF est capable de calculer l'empreinte digitale, il l'inclut dans les journaux. Pour plus d'informations sur les champs de journalisation, consultezChamps de journal pour le ACL trafic Web.

Exigences relatives à l'énoncé des règles

Vous ne pouvez inspecter l'JA3empreinte digitale que dans une instruction de correspondance de chaîne définie pour correspondre exactement à la chaîne que vous fournissez. Fournissez la chaîne JA3 d'empreinte issue des journaux dans votre spécification d'instruction de correspondance de chaîne, afin qu'elle corresponde à toute future demande ayant la même TLS configuration. Pour plus d'informations sur l'instruction de correspondance des chaînes, consultezInstruction de correspondance de chaîne de règle.

Vous devez fournir un comportement de remplacement pour cette déclaration de règle. Le comportement de remplacement est le statut de match que vous souhaitez AWS WAF à attribuer à la requête Web si AWS WAF est incapable de calculer l'JA3empreinte digitale. Si vous choisissez de faire correspondre, AWS WAF traite la demande comme correspondant à l'instruction de règle et applique l'action de règle à la demande. Si vous choisissez de ne pas correspondre, AWS WAF traite la demande comme ne correspondant pas à l'instruction de règle.

Pour utiliser cette option de correspondance, vous devez enregistrer votre ACL trafic Web. Pour plus d’informations, veuillez consulter Journalisation AWS WAF ACLtrafic Web.

Chaîne de requête

Inspecte la partie URL qui apparaît après un ? caractère, le cas échéant.

Note

Pour les instructions de correspondance entre scripts intersites, nous vous recommandons de choisir Tous les paramètres de requête au lieu de Chaîne de requête. La sélection de tous les paramètres de requête ajoute 10 % WCUs au coût de base.

Paramètre de requête unique

Inspecte un seul paramètre de requête que vous avez défini dans le cadre de la chaîne de requête. AWS WAF inspecte la valeur du paramètre que vous spécifiez.

Pour cette option, vous devez également spécifier un argument de requête. Par exemple, si URL c'est le caswww.xyz.com?UserName=abc&SalesRegion=seattle, vous pouvez spécifier UserName ou SalesRegion pour l'argument de requête. La longueur maximale du nom de l'argument est de 30 caractères. Le nom ne distingue pas les majuscules et minuscules, donc si vous spécifiezUserName, AWS WAF correspond à toutes les variantes deUserName, y compris username etUsERName.

Si la chaîne de requête contient plusieurs instances de l'argument de requête que vous avez spécifié, AWS WAF inspecte toutes les valeurs d'une correspondance, en utilisant OR logique. Par exemple, dans URL www.xyz.com?SalesRegion=boston&SalesRegion=seattle le AWS WAF évalue le nom que vous avez spécifié par rapport à boston etseattle. Si l'un ou l'autre est une correspondance, l'inspection est une correspondance.

Tous les paramètres de requête

Inspecte tous les paramètres de requête contenus dans la demande. Ceci est similaire au choix du composant de paramètre de requête unique, mais AWS WAF inspecte les valeurs de tous les arguments de la chaîne de requête. Par exemple, si URL c'est le caswww.xyz.com?UserName=abc&SalesRegion=seattle, AWS WAF déclenche une correspondance si la valeur UserName ou SalesRegion correspond aux critères d'inspection.

Le choix de cette option ajoute 10 WCUs $ au coût de base.

Corps de texte

Inspecte le corps de la demande, évalué sous forme de texte brut. Vous pouvez également évaluer le corps à l'JSONaide du JSON type de contenu.

Le corps de la demande est la partie de la demande qui suit immédiatement les en-têtes de la demande. Il contient toutes les données supplémentaires nécessaires à la requête Web, par exemple les données d'un formulaire.

  • Dans la console, sélectionnez cette option dans le corps de l'option de demande, en sélectionnant le type de contenu Texte brut.

  • Dans la API FieldToMatch spécification de la règle, vous spécifiez d'Bodyinspecter le corps de la demande sous forme de texte brut.

Pour Application Load Balancer et AWS AppSync, AWS WAF peut inspecter les 8 premiers Ko du corps d'une demande. Pour API Gateway CloudFront, Amazon Cognito, App Runner et Verified Access, par défaut, AWS WAF peut inspecter les 16 premiers Ko, et vous pouvez augmenter la limite jusqu'à 64 Ko dans votre ACL configuration Web. Pour de plus amples informations, veuillez consulter Gestion des limites de taille des organismes inspectés pour AWS WAF.

Vous devez spécifier la gestion des surdimensionnements pour ce type de composant. La gestion des surdimensionnements définit comment AWS WAF gère les demandes dont les données corporelles sont supérieures à AWS WAF peut inspecter. Vous pouvez choisir de poursuivre l'inspection ou de sauter l'inspection et de marquer la demande comme correspondant ou non à la règle. Pour plus d'informations sur la gestion du contenu surdimensionné, consultezComposants de requête Web surdimensionnés dans AWS WAF.

Vous pouvez également évaluer le corps tel qu'il a été analysé. JSON Pour plus d'informations à ce sujet, consultez la section qui suit.

JSONcorps

Inspecte le corps de la demande, évalué commeJSON. Vous pouvez également évaluer le corps sous forme de texte brut.

Le corps de la demande est la partie de la demande qui suit immédiatement les en-têtes de la demande. Il contient toutes les données supplémentaires nécessaires à la requête Web, par exemple les données d'un formulaire.

  • Dans la console, vous pouvez le sélectionner dans le corps de l'option de demande, en sélectionnant le type de contenu JSON.

  • Dans leAPI, dans la FieldToMatch spécification de la règle, vous spécifiezJsonBody.

Pour Application Load Balancer et AWS AppSync, AWS WAF peut inspecter les 8 premiers Ko du corps d'une demande. Pour API Gateway CloudFront, Amazon Cognito, App Runner et Verified Access, par défaut, AWS WAF peut inspecter les 16 premiers Ko, et vous pouvez augmenter la limite jusqu'à 64 Ko dans votre ACL configuration Web. Pour de plus amples informations, veuillez consulter Gestion des limites de taille des organismes inspectés pour AWS WAF.

Vous devez spécifier la gestion des surdimensionnements pour ce type de composant. La gestion des surdimensionnements définit comment AWS WAF gère les demandes dont les données corporelles sont supérieures à AWS WAF peut inspecter. Vous pouvez choisir de poursuivre l'inspection ou de sauter l'inspection et de marquer la demande comme correspondant ou non à la règle. Pour plus d'informations sur la gestion du contenu surdimensionné, consultezComposants de requête Web surdimensionnés dans AWS WAF.

Le choix de cette option double le coût de base du relevé de matchWCUs. Par exemple, si le coût de base de l'instruction match est de 5 WCUs sans JSON analyse, l'utilisation de l'JSONanalyse double le coût à 10. WCUs

Pour cette option, vous devez fournir des spécifications supplémentaires, comme décrit dans la section suivante.

Comment ? AWS WAF gère l'inspection de la JSON carrosserie

Lorsque AWS WAF inspecte le corps de la requête Web tel JSON quel, il effectue des étapes pour analyser le corps et extraire les JSON éléments à inspecter. AWS WAF exécute ces étapes conformément à vos choix de configuration.

La liste suivante répertorie les étapes qui AWS WAF exécute.

  1. Analyser le contenu du corps — AWS WAF analyse le contenu du corps de la requête Web afin d'en extraire les JSON éléments à inspecter. AWS WAF fait de son mieux pour analyser l'intégralité du contenu du corps, mais l'analyse peut échouer en raison de divers états d'erreur dans le contenu. Les exemples incluent les caractères non valides, les clés dupliquées, la troncature et le contenu dont le nœud racine n'est ni un objet ni un tableau.

    L'option Body parsing fallback behavior détermine ce que AWS WAF fait s'il ne parvient pas à analyser complètement le JSON corps :

    • Aucun (comportement par défaut) - AWS WAF évalue le contenu uniquement jusqu'au point où il a rencontré une erreur d'analyse.

    • Evaluer en tant que chaîne - Inspectez le corps en tant que texte brut. AWS WAF applique les transformations de texte et les critères d'inspection que vous avez définis pour l'JSONinspection à la chaîne du corps du texte.

    • Match : traitez la requête Web comme correspondant à l'instruction de règle. AWS WAF applique l'action de règle à la demande.

    • Aucune correspondance : considérez la requête Web comme ne correspondant pas à l'instruction de règle.

    Note

    Ce comportement de repli ne se déclenche que lorsque AWS WAF rencontre une erreur lors de l'analyse de la JSON chaîne.

    L'analyse ne valide pas complètement le JSON

    AWS WAF l'analyse ne valide pas complètement la JSON chaîne d'entrée, de sorte que l'analyse peut réussir même si elle n'est pas valide. JSON

    Par exemple, AWS WAF analyse les données non valides suivantes JSON sans erreur :

    • Virgule manquante : {"key1":"value1""key2":"value2"}

    • Deux-points manquant : {"key1":"value1","key2""value2"}

    • Deux-points supplémentaire : {"key1"::"value1","key2""value2"}

    Dans de tels cas où l'analyse réussit mais où le résultat n'est pas complètement valideJSON, le résultat des étapes suivantes de l'évaluation peut varier. L'extraction peut omettre certains éléments ou l'évaluation des règles peut avoir des résultats inattendus. Nous vous recommandons de valider les informations JSON que vous recevez dans votre candidature et de les traiter JSON comme non valides si nécessaire.

  2. Extraire JSON les éléments — AWS WAF identifie le sous-ensemble d'JSONéléments à inspecter en fonction de vos paramètres :

    • L'option JSONmatch scope spécifie les types d'éléments contenus dans JSON le AWS WAF devrait inspecter.

      Vous pouvez spécifier des clés, des valeurs ou tout pour les clés et les valeurs.

      Tout ne nécessite pas qu'une correspondance soit trouvée dans les clés et qu'une correspondance soit trouvée dans les valeurs. Cela nécessite qu'une correspondance soit trouvée dans les clés ou les valeurs, ou dans les deux. Pour exiger une correspondance entre les clés et les valeurs, utilisez une AND instruction logique pour combiner deux règles de correspondance, l'une inspectant les clés et l'autre les valeurs.

    • L'option Contenu à inspecter indique comment filtrer le jeu d'éléments selon le sous-ensemble souhaité. AWS WAF pour inspecter.

      Vous devez spécifier l'une des options suivantes :

      • JSONContenu complet - Évaluez tous les éléments.

      • Éléments inclus uniquement : évaluez uniquement les éléments dont les chemins correspondent aux critères de JSON pointeur que vous fournissez. N'utilisez pas cette option pour indiquer tous les chemins duJSON. Utilisez plutôt le JSONcontenu complet.

        Pour plus d'informations sur la syntaxe du JSON pointeur, consultez la documentation du pointeur JavaScript Object Notation (IETF) de l'Internet Engineering Task Force (JSON).

        Par exemple, dans la console, vous pouvez fournir les informations suivantes :

        /dogs/0/name /dogs/1/name

        Dans le bloc API opératoireCLI, vous pouvez fournir les informations suivantes :

        "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]

    Supposons, par exemple, que le paramètre Contenu à inspecter soit Uniquement les éléments inclus et que le paramètre Éléments inclus soit défini comme tel/a/b.

    Pour l'exemple de JSON corps suivant :

    { "a":{ "c":"d", "b":{ "e":{ "f":"g" } } } }

    L'élément définit cela AWS WAF inspecterait pour chaque JSONmatch les paramètres de portée sont répertoriés ci-dessous. Notez que la cléb, qui fait partie du chemin des éléments inclus, n'est pas évaluée.

    • Tous :e, f, etg.

    • Clés : e etf.

    • Valeurs :g.

  3. Inspectez le jeu d'JSONéléments — AWS WAF applique les transformations de texte que vous avez spécifiées aux JSON éléments extraits, puis fait correspondre l'ensemble d'éléments obtenu aux critères de correspondance de l'instruction de règle. Il s'agit du même comportement de transformation et d'évaluation que pour les autres composants de requête Web. Si l'un des JSON éléments extraits correspond, la requête Web correspond à la règle.