En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment utiliser AWS WAF avec AWS Global Accelerator pour protéger mon application contre les attaques malveillantes ?

Lecture de 4 minute(s)
0

Je souhaite protéger mon application contre les attaques DDoS de couche 7 en utilisant la règle de limitation de débit AWS WAF avec l’Application Load Balancer située derrière le Global Accelerator.

Brève description

Vous pouvez tirer parti d'AWS Global Accelerator, d'Application Load Balancer et d'AWS WAF pour vous défendre contre les attaques par déni de service distribué (DDoS) au niveau de la couche application.

**Remarque :**La limitation du débit client via l’Application Load Balancer et le WAF nécessitent que vous définissiez l'adresse IP source préservée comme=TRUE sur l'accélérateur. Pour plus d'informations, consultez la section Préserver les adresses IP des clients dans AWS Global Accelerator.

Résolution

La règle de limitation du débit d’AWS WAF vous permet de bloquer automatiquement les clients provenant d'adresses IP spécifiques qui envoient un flot impressionnant de demandes à votre application. Votre règle basée sur le débit suit le nombre de demandes envoyées par chaque adresse IP, sur la base d'une fenêtre temporelle variable. Lorsque les demandes dépassent la limite de débit, la règle bloque immédiatement les demandes provenant de l'adresse IP source, jusqu'à ce que l'adresse réduise le nombre de demandes.

**Remarque :**Vous pouvez également configurer la règle pour inspecter et bloquer de nombreux composants d'une demande, y compris le pays d'origine de la demande.

Prérequis

  • Assurez-vous de disposer de la configuration de flux de trafic suivante pour Global Accelerator, Application Load Balancer et AWS WAF :
    User --> Global Accelerator --> Application Load Balancer with WAF --> EC2 instance
    **Remarque :**Dans cette configuration, l'utilisateur accède à l'application en faisant une demande à l'accélérateur. L'accélérateur achemine le trafic utilisateur vers l’Application Load Balancer et le WAF qui lui est associé. Le WAF évalue et bloque ou autorise la demande de l'utilisateur à l'aide de la règle de limitation de débit que vous créez.
  • Installez un outil de test de charge, tel que loadtest de GitHub. Vous pouvez également utiliser l'outil de test de charge de votre choix qui vous offre la visibilité requise.

Création d'une ACL Web basée sur des règles

Créez une règle basée sur le débit dans Web ACL, avec une limite de débit agressive de 100. Utilisez ensuite le scénario de test pour vérifier si votre règle fonctionne.

  1. Accédez à la console AWS WAF pour créer une règle ACL Web.
  2. Ajoutez une règle personnalisée à votre ACL Web.
  3. Donnez-lui un nom et définissez la règle basée sur le taux comme Type.
  4. Définissez 100 pour sa limite de débit.
  5. Laissez tous les autres paramètres tels quels. Cliquez ensuite sur Ajouter une règle.
  6. Enregistrez l'ACL Web.

Testez les résultats

Le test simule une attaque HTTP flood. L'outil de test de charge montre la progression des demandes reçues. À un moment donné, les demandes commencent à échouer car elles sont bloquées par la règle de limitation de débit que vous avez définie.

  1. Exécutez l'outil loadtest sur votre ordinateur.
    **Remarque :**Vous pouvez également ouvrir AWS CloudShell sur votre console (vous serez peut-être invité à passer à la Région dans laquelle il est pris en charge).

    # Install globally as root:
    npm install -g loadtest
    # On AWS CloudShell, Ubuntu or Mac OS X systems install using sudo:
    sudo npm install -g loadtest
  2. Entrez l'URL du Global Accelerator, comme indiqué ci-dessous :

    # Global Accelerator url
    GA_URL=http://your_Global_Acclerator_URL

    **Remarque :**Remplacez your_Global_Accelerator_URL par l'URL de votre accélérateur global.

  3. Exécutez la commande dans votre terminal pour démarrer le flot de requêtes de simulation de test de charge.

    **Remarque :**Cela devrait prendre 45 secondes, alors gardez un œil sur le flux.

    loadtest -n 1000 -c 1 --rps 25 $GA_URL

    La commande envoie un total de 1 000 demandes, avec une simultanéité de 1 et 25 demandes par seconde. Avec ce taux de requêtes par seconde, vous atteignez la limite que vous avez fixée à la quatrième seconde.

  4. Analysez le flux de sortie. Notez qu'à un moment donné, les demandes ont commencé à échouer. Les erreurs indiquent que la règle WAF a bloqué toutes les demandes provenant de votre adresse IP source.

    [Fri Apr 21 2023 20:26:45 GMT+0000 ] INFO Requests: 0 (0%), requests per second: 0, mean latency: 0 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Requests: 106 (11%), requests per second: 21, mean latency: 22.9 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Errors: 106, accumulated errors: 106, 100% of total requests
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans