Comment fonctionne AWS WAF Classic - 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.

Comment fonctionne AWS WAF Classic

Note

Il s'agit d'une documentation AWS WAF classique. Vous ne devez utiliser cette version que si vous avez créé AWS WAF des ressources, telles que des règles et des ACL Web, AWS WAF avant novembre 2019, et que vous ne les avez pas encore migrées vers la dernière version. Pour migrer vos ressources, veuillez consulter Migration de vos ressources AWS WAF classiques vers AWS WAF.

Pour la dernière version de AWS WAF, voirAWS WAF.

Vous utilisez AWS WAF Classic pour contrôler la façon dont API Gateway, Amazon CloudFront ou un Application Load Balancer répondent aux requêtes Web. Vous commencez par créer des conditions, des règles et des listes de contrôle d'accès web (ACL). Vous définissez vos conditions, combinez vos conditions en règles et combinez les règles en une liste ACL web.

Note

Vous pouvez également utiliser AWS WAF Classic pour protéger vos applications hébergées dans des conteneurs Amazon Elastic Container Service (Amazon ECS). Amazon ECS est un service de gestion de conteneurs rapide et hautement évolutif qui facilite l'exécution, l'arrêt et la gestion des conteneurs Docker sur un cluster. Pour utiliser cette option, vous configurez Amazon ECS de manière à utiliser un Application Load Balancer compatible avec AWS WAF Classic afin d'acheminer et de protéger le trafic HTTP/HTTPS (couche 7) entre les tâches de votre service. Pour plus d'informations, consultez la rubrique Service Load Balancing dans le manuel Amazon Elastic Container Service Developer Guide.

Conditions

Les conditions définissent les caractéristiques de base que vous souhaitez que AWS WAF Classic surveille dans les requêtes Web :

  • Les scripts qui sont susceptibles d'être malveillants. Les pirates intègrent des scripts qui peuvent exploiter les vulnérabilités des applications web. Il s'agit de scripts inter-sites.

  • Les adresses IP ou les plages d'adresses IP d'où proviennent les requêtes.

  • Pays ou emplacement géographique d'où proviennent les demandes.

  • La longueur des parties spécifiées de la requête, telles que la chaîne de requête.

  • Le code SQL susceptible d'être malveillants. Les pirates essaient d'extraire les données de votre base de données en intégrant un code SQL malveillant dans une requête web. Cette opération s'appelle injection SQL.

  • Les chaînes qui apparaissent dans la requête, par exemple, les valeurs qui apparaissent dans l'en-tête User-Agent ou les chaînes de texte qui apparaissent dans la chaîne de requête. Vous pouvez également utiliser des expressions régulières (regex) pour spécifier ces chaînes.

Certaines conditions prennent plusieurs valeurs. Par exemple, vous pouvez spécifier jusqu'à 10 000 adresses IP ou plages d'adresses IP dans une condition IP.

Règles

Vous combinez les conditions dans des règles pour cibler précisément les demandes que vous souhaitez autoriser, bloquer ou compter. AWS WAF Classic propose deux types de règles :

Règle régulière

Les règles régulières utilisent uniquement des conditions pour cibler des requêtes spécifiques. Par exemple, en fonction des requêtes récentes que vous avez vu d'un pirate, vous pouvez créer une règle qui inclut les conditions suivantes :

  • Les requêtes proviennent de 192.0.2.44.

  • Elles contiennent la valeur BadBot dans l'en-tête User-Agent.

  • Elles semblent inclure du code de type SQL dans la chaîne de requête.

Lorsqu'une règle inclut plusieurs conditions, comme dans cet exemple, AWS WAF Classic recherche les demandes qui répondent à toutes les conditions, c'est-à-dire qu'il s'agit AND des conditions réunies.

Ajoutez au moins une condition à une règle régulière. Une règle régulière sans condition ne peut correspondre à aucune demande. L'action de la règle (autorisation, décompte ou blocage) n'est donc jamais déclenchée.

Règle basée sur un débit

Les règles basées sur le débit sont similaires aux règles régulières avec en plus une limite de débit. Une règle basée sur le débit compte les demandes provenant d'adresses IP qui satisfont les conditions de la règle. Si les demandes provenant d'une adresse IP dépassent la limite de débit au cours d'une période de cinq minutes, la règle peut déclencher une action. Cela peut prendre une minute ou deux pour que l'action se déclenche.

Les conditions sont facultatives pour les règles basées sur le débit. Si vous n'ajoutez aucune condition dans une règle basée sur le débit, la limite de débit s'applique à toutes les adresses IP. Si vous combinez des conditions avec la limite de débit, cette dernière s'applique aux adresses IP qui correspondent aux conditions.

Par exemple, en fonction des requêtes récentes que vous avez vu d'un pirate, vous pouvez créer une règle basée sur un débit qui inclut les conditions suivantes :

  • Les requêtes proviennent de 192.0.2.44.

  • Elles contiennent la valeur BadBot dans l'en-tête User-Agent.

Dans cette règle basée sur un débit, vous pouvez également définir une limite de débit. Dans cet exemple, supposons que vous créiez la limite de débit 1000. Les requêtes qui répondent aux conditions précédentes et qui dépassent 1000 demandes par période de cinq minutes déclenchent l'action de la règle (bloquer ou compter) qui est définie dans la liste ACL Web.

Les demandes qui ne répondent pas aux deux conditions ne sont pas comptabilisées dans la limite de débit et ne sont pas affectées par cette règle.

Comme deuxième exemple, supposons que vous souhaitiez limiter les requêtes vers une page particulière sur votre site Web. Pour ce faire, vous pouvez ajouter la condition de correspondance de chaîne suivante à une règle basée sur un débit :

  • La Part of the request to filter on est URI.

  • Le Match Type (Type de correspondance) est Starts with.

  • Une Value to match est login.

De plus, vous spécifiez 1000 comme RateLimit.

En ajoutant cette règle basée sur un débit à une liste ACL web, vous pouvez limiter les requêtes vers votre page de connexion sans affecter le reste de votre site.

Liste ACL web

Une fois que vous avez combiné vos conditions en règles, vous combinez les règles en une liste ACL web. C'est ici que vous définissez une action pour chaque règle (autoriser, bloquer ou compter), ainsi qu'une action par défaut :

Une action pour chaque règle

Lorsqu'une requête Web répond à toutes les conditions d'une règle, AWS WAF Classic peut soit bloquer la demande, soit autoriser son transfert vers l'API API Gateway, la CloudFront distribution ou un Application Load Balancer. Vous spécifiez l'action que AWS WAF Classic doit exécuter pour chaque règle.

AWS WAF Classic compare une demande aux règles d'une ACL Web dans l'ordre dans lequel vous les avez listées. AWS WAF Classic exécute ensuite l'action associée à la première règle à laquelle la demande correspond. Par exemple, si une requête Web correspond à une règle autorisant les demandes et à une autre règle bloquant les demandes, AWS WAF Classic autorisera ou bloquera la demande en fonction de la règle répertoriée en premier.

Si vous souhaitez tester une nouvelle règle avant de commencer à l'utiliser, vous pouvez également configurer AWS WAF Classic pour compter les demandes répondant à toutes les conditions de la règle. Comme pour les règles qui autorisent ou bloquent des requêtes, une règle qui compte les requêtes est affectée par sa position dans la liste des règles de la liste ACL web. Par exemple, si une requête web correspond à une règle qui autorise les requêtes et à une autre règle qui compte les requêtes, et si la règle qui autorise les requêtes apparaît en premier, la requête n'est pas comptée.

Action par défaut

L'action par défaut détermine si AWS WAF Classic autorise ou bloque une demande qui ne répond à toutes les conditions d'aucune des règles de l'ACL Web. Par exemple, supposons que vous créez une liste ACL web et que vous ajoutez uniquement la règle que vous avez définie précédemment :

  • Les requêtes proviennent de 192.0.2.44.

  • Elles contiennent la valeur BadBot dans l'en-tête User-Agent.

  • Elles semblent inclure du code SQL malveillant dans la chaîne de requête.

Si une demande ne répond pas aux trois conditions de la règle et si l'action par défaut est la ALLOW suivante, AWS WAF Classic transmet la demande à API Gateway CloudFront ou à un Application Load Balancer, et le service répond avec l'objet demandé.

Si vous ajoutez deux règles ou plus à une ACL Web, AWS WAF Classic exécute l'action par défaut uniquement si une demande ne répond à toutes les conditions d'aucune des règles. Par exemple, supposons que vous ajoutez une deuxième règle qui contient une condition :

  • Requêtes qui contiennent la valeur BIGBadBot dans l'en-tête User-Agent.

AWS WAF Classic exécute l'action par défaut uniquement lorsqu'une demande ne répond pas aux trois conditions de la première règle et ne répond pas à l'une des conditions de la seconde règle.

Dans certains cas, une erreur interne AWS WAF peut retarder la réponse à Amazon API Gateway, à Amazon CloudFront ou à un Application Load Balancer concernant l'autorisation ou le blocage d'une demande. Dans ces cas, CloudFront ils autorisent généralement la demande ou diffusent le contenu. API Gateway et un équilibreur de charge d'application rejettent habituellement la requête et ne diffusent pas le contenu.