Passer au contenu

Comment utiliser AWS WAF avec Global Accelerator pour empêcher la méthode HTTP de couche 7 et les en-têtes d'accéder à mon application ?

Lecture de 4 minute(s)
0

Je souhaite bloquer les méthodes et les en-têtes HTTP de couche 7 avec le pare-feu d’applications Web (AWS WAF) et AWS Global Accelerator. Mon Application Load Balancer sert de point de terminaison pour les règles AWS WAF.

Brève description

Vous pouvez utiliser AWS WAF et l’Application Load Balancer avec Global Accelerator pour bloquer l'accès à la méthode HTTP et aux en-têtes de couche 7. AWS WAF utilise des règles de liste de contrôle d'accès Web (ACL Web) avec un Application Load Balancer configuré comme point de terminaison pour Global Accelerator. Global Accelerator ne prend pas en charge AWS WAF par lui-même.

La règle Web ACL associée à l'équilibreur de charge évalue le trafic entrant et transmet uniquement les requêtes conformes aux règles au point de terminaison.

Remarque : Si vous utilisez Amazon CloudFront dans votre architecture, consultez la section Accélérer et protéger vos sites Web à l'aide d'Amazon CloudFront et d'AWS WAF.

Résolution

Une règle ACL Web vous permet de contrôler et de filtrer les requêtes HTTP entrantes destinées à vos ressources protégées. Vous pouvez créer des règles qui correspondent à des modèles spécifiques dans les composants de requête tels que les URI, les chaînes de requête, les méthodes HTTP ou les clés d'en-tête. Vous pouvez utiliser des correspondances de chaînes exactes ou des expressions régulières pour définir ces modèles.

Prérequis

  • Un Application Load Balancer
  • Global Accelerator configuré avec votre Application Load Balancer comme point de terminaison
  • Autorisations pour configurer AWS WAF

Remarque : Dans cette configuration, vous adressez une requête à l'accélérateur pour accéder à l'application. L'accélérateur achemine le trafic utilisateur vers l’Application Load Balancer et vers AWS WAF qui lui est associé. AWS WAF évalue et bloque ou autorise la requête utilisateur qui utilise la méthode HTTP de couche 7 ou la valeur d'en-tête user-agent.

Créer une ACL Web basée sur des règles

Pour créer une ACL Web basée sur des règles, procédez comme suit. Pour plus d'informations, consultez la section Création d'un pack de protection ou d'une ACL Web dans AWS WAF.

Créer une ACL Web

  1. Accédez à la console AWS WAF.
  2. Sélectionnez Créer une liste ACL Web.
  3. Attribuez un nom à l'ACL Web. Sélectionnez la région AWS de l'Application Load Balancer.
  4. Associez l'Application Load Balancer à l'ACL Web.
  5. Sélectionnez Suivant.

Ajouter une règle personnalisée à la liste ACL Web

  1. Choisissez Ajouter une règle. Dans la liste déroulante, sélectionnez Ajouter mes propres règles et groupes de règles.
  2. Sous Générateur de règles, ajoutez une règle.
  3. Nommez la règle (par exemple, deny_User-Agent_with_POST).
  4. Sous Type, sélectionnez Règle normale.

Configurer les critères de correspondance pour la règle

  1. Sélectionnez correspond à au moins l'une des instructions (OR).

  2. Dans Instruction1, saisissez les informations suivantes :
    **Inspectez : ** en-tête unique
    **Nom du champ d'en-tête :**User-Agent
    **Type de correspondance :**Correspond exactement à la chaîne
    Chaîne correspondante : curl/7.79.0.

    Dans Instruction2, saisissez les informations suivantes :
    **Inspectez :**Méthode HTTP
    **Type de correspondance :**Correspond exactement à la chaîne
    Chaîne à faire correspondre : POST

  3. Dans Action, sélectionnez Bloquer.

Tester les résultats avec la valeur d'en-tête user-agent

Accédez à l'application à l'aide de l'URL Global Accelerator et de la valeur d'en-tête user-agent curl/7.79.0 avec la méthode de requête GET.

curl http://YourGlobalAcceleratorURL -v -H "User-Agent:curl/7.79.0"
> GET / HTTP/1.1
> Host: YourGlobalAcceleratorDNS
> User-Agent:curl/7.79.0

< HTTP/1.1 403 Forbidden  
< Server: awselb/2.0
<
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Remarque : Remplacez votre URL Global Accelerator par votre URL Global Accelerator et votre DNS Global Accelerator par votre DNS.

AWS WAF bloque la requête et l'Application Load Balancer répond par un message d'erreur 403 Forbidden.

Tester les résultats avec une requête POST

Accédez à l'application à l'aide de l'URL Global Accelerator et de la valeur d'en-tête user-agent curl/7.79.1 avec la méthode de requête POST.

curl -X POST http://YourGlobalAcceleratorURL --user "test-user:test-password" -v
> POST / HTTP/1.1
> Host: YourGlobalAcceleratorDNS
> Authorization: Basic dGVzdC11c2VyOnRlc3QtcGFzc3dvcmQ=
> User-Agent: curl/7.79.1
>
< HTTP/1.1 403 Forbidden
< Server: awselb/2.0
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Remarque : Remplacez votre URL Global Accelerator par votre URL Global Accelerator et votre DNS Global Accelerator par votre DNS.

AWS WAF bloque la requête et l'Application Load Balancer répond par un message d'erreur 403 Forbidden.

AWS OFFICIELA mis à jour il y a 6 mois