Comment configurer AWS WAF pour protéger mes ressources contre les attaques courantes ?
Comment configurer AWS WAF pour protéger mes ressources contre les attaques courantes ?
Résolution
Migrez d'AWS WAF Classic vers AWS WAF (le cas échéant)
Si vous utilisez AWS WAF Classic, il est recommandé de migrer vers AWS WAF. Pour effectuer cette migration, vous pouvez utiliser l'outil de migration automatique. Pour plus d'informations, consultez Pourquoi migrer vers AWS WAF ?
Exécutez des tests d'intrusion sur votre application pour identifier les vulnérabilités
Chaque application reçoit son propre type de demandes. Par conséquent, les règles de pare-feu qui protègent votre application doivent être personnalisées.
Exécutez des tests d'intrusion sur votre application pour comprendre ses vulnérabilités spécifiques. Pour plus d'informations, consultez :
- Politique d'assistance client AWS pour les tests d'intrusion
- Fournisseurs de tests d'intrusion sur AWS Marketplace
Passez en revue les demandes entrantes pour optimiser vos règles personnalisées
Avant de créer des règles personnalisées pour protéger votre application, passez en revue les demandes entrantes dans votre environnement.
Tout d'abord, générez des journaux en utilisant :
- AWS WAF
- Amazon CloudFront
- Application Load Balancer (équilibreur de charge d'application)
- Amazon API Gateway
Ensuite, stockez ces journaux sur Amazon Simple Storage Service (Amazon S3). Enfin, utilisez Amazon Athena pour interroger les journaux et identifier les modèles. Par exemple, vous pouvez voir des modèles tels que :
- Demandes adressées à votre environnement pour les URI qui n'existent pas
- Pour reconnaître ce modèle, vous devez connaître tous les URI pris en charge
- Exemple de requête Athena effectuée sur les journaux AWS WAF pour compter les demandes pour chaque URI :
SELECT count("httprequest"."uri") as URIcount, "httprequest"."uri" FROM waf_logs GROUP BY "httprequest"."uri" ORDER BY URIcount DESC
- Demandes contenant un en-tête HTTP Host non pris en charge par votre serveur web -OU - requêtes qui contiennent une adresse IP au lieu du nom de domaine de votre site Web
- Exemple de requête Athena effectuée sur les journaux AWS WAF pour compter les demandes avec différentes valeurs d'en-tête Host :
SELECT header.value as HostHeader, count(header) as count FROM waf_logs, UNNEST(httprequest.headers) AS x(header) WHERE "header"."name" = 'Host' GROUP BY header ORDER BY count DESC
Après avoir identifié un modèle, vous pouvez créer des règles AWS WAF en mode COUNT pour vérifier que la règle est configurée pour correspondre à ces requêtes. Ensuite, basculez la règle en mode BLOC.
Par exemple, si votre application prend uniquement en charge l'en-tête Host « www.example.com » :
- Créez un NOT match sur l'en-tête HOST avec la valeur « www.example.com »
- Définissez l'action sur BLOCK
Toutes les demandes adressées à votre environnement qui n'ont pas d'en-tête Host « www.example.com » sont désormais bloquées.
Remarque : Cette règle bloque également les demandes adressées au nom de domaine entièrement qualifié (FQDN) fourni par AWS.
Utiliser les règles gérées par AWS pour se protéger contre les attaques courantes
Utilisez les règles gérées par AWS pour empêcher les attaques courantes qui s'appliquent à la plupart des applications, y compris les demandes qui :
- Ne contient pas d'agent utilisateur
- Représentent les demandes de bot
- Utilisent « localhost » comme en-tête HTTP Host
- Utilisent la méthode HTTP PROPFIND
Incluez ces groupes de règles de base dans votre liste de contrôle d'accès Web (ACL Web) en mode COUNT. Assurez-vous de choisir « Activer le mode Count » dans le groupe de règles. Ensuite, passez en revue les journaux AWS WAF et les métriques CloudWatch pour déterminer si la règle gérée correspond à un trafic légitime. Si ce n'est pas le cas, basculez le groupe de règles sur BLOCK en désactivant « Activer le mode Count ». Pour désactiver une règle spécifique dans le groupe de règles gérées par AWS, choisissez « Remplacer l'action des règles » pour cette règle.
Remarque : les règles gérées par AWS peuvent être déclenchées par des demandes légitimes adressées à votre environnement. Pour plus d'informations, consultez Comment détecter les faux positifs causés par les règles gérées par AWS et les ajouter à une liste blanche ?
Important : les règles gérées par AWS sont conçues pour vous protéger contre les menaces Web courantes. Lorsqu'ils sont utilisés conformément à la documentation, les groupes de règles gérées par AWS ajoutent une autre couche de sécurité à vos applications. Toutefois, les groupes de règles gérées par AWS ne sont pas destinés à remplacer vos responsabilités de sécurité, qui sont déterminées par les ressources AWS sélectionnées. Consultez le modèle de responsabilité partagée pour vous assurer que vos ressources dans AWS sont correctement protégées.
Baser votre AWS WAF sur le taux de demandes légitimes
Effectuez une analyse de votre trafic pour identifier le nombre de demandes faites par les adresses IP des clients légitimes à l'aide d' Amazon Athena ou d' Amazon Quicksight dans les journaux AWS WAF. À l'aide des informations que vous obtenez de cette analyse, basez votre AWS WAF sur le taux de demandes faites par un client légitime. Ensuite, définissez un seuil tout en configurant la règle basée sur les taux d'AWS WAF.
Exemple de requête Athena effectuée sur les journaux AWS WAF pour compter le nombre de demandes provenant d'une seule adresse IP (x.x.x.x) entre une période donnée (16 novembre 2020, 9h-10h) :
SELECT "httprequest"."clientip", "count"(*) "count", "httprequest"."country" FROM waf_logs WHERE httprequest.clientip LIKE 'x.x.x.x' and date_format(from_unixtime("timestamp"/1000), '%Y-%m-%d %h:%i:%s') between '2020-11-16 09:00:00' and '2020-11-16 10:00:00' GROUP BY "httprequest"."clientip", "httprequest"."country"
Exemple de requête Athena effectuée sur les journaux AWS WAF pour compter le nombre de demandes de toutes les adresses IP entre la même période :
SELECT "httprequest"."clientip", "count"(*) "count", "httprequest"."country" FROM waf_logs WHERE date_format(from_unixtime("timestamp"/1000), '%Y-%m-%d %h:%i:%s') between '2020-11-16 09:00:00' and '2020-11-16 10:00:00' GROUP BY "httprequest"."clientip", "httprequest"."country" ORDER BY "count" DESC
Utiliser le modèle AWS WAF Security Automations pour prévenir les attaques courantes
Utilisez le modèle AWS WAF Security Automations pour fournir une protection supplémentaire contre les attaques courantes. Par exemple, vous pouvez activer la protection contre :
- Scanners et sondes
- Mauvais bots
- Adresses IP incorrectes
Remarque : Cette solution utilise d'autres services AWS qui entraînent des coûts.
Protection contre l'injection SQL et les scripts inter-sites
Pour protéger vos applications contre les attaques par injection SQL et XSS (cross-site scripting), utilisez les moteurs intégrés d'injection SQL et de script inter-site. Rappelez-vous que des attaques peuvent être effectuées sur différentes parties de la requête HTTP, telles que l'en-tête HTTP, la chaîne de requête ou l'URI. Configurez les règles AWS WAF pour inspecter différentes parties de la requête HTTP par rapport aux moteurs d'atténuation intégrés.
Remarque : les règles des moteurs d'atténuation peuvent être déclenchées par des demandes légitimes adressées à votre environnement. Pour plus d'informations, consultez Comment détecter les faux positifs causés par les règles gérées par AWS et les ajouter à une liste blanche ?
Restreindre l'accès à partir de CloudFront (si vous utilisez AWS WAF sur CloudFront)
- Restreindre l'accès en fonction des adresses IP CloudFront.
- Ajoutez un en-tête personnalisé dans CloudFront pour les demandes d'origine. Sur l'origine, n'autorisez l'accès que si l'en-tête et la valeur personnalisés sont présents. Si l'origine est un Application Load Balancer (équilibreur de charge d'application) ou une passerelle API, utilisez AWS WAF sur l'origine pour autoriser les demandes contenant l'en-tête et la valeur personnalisés.
Protéger contre les attaques DDoS
Pour plus d'informations sur la protection contre les attaques par déni de service distribué (DDoS), consultez les bonnes pratiques AWS en matière de résilience DDoS et les fonctions d'AWS Shield.
Vidéos associées

Contenus pertinents
- demandé il y a un moislg...
- demandé il y a 2 moislg...
- demandé il y a 2 jourslg...
- demandé il y a 3 moislg...
- demandé il y a 15 heureslg...
- AWS OFFICIELA mis à jour il y a 3 ans
- AWS OFFICIELA mis à jour il y a 8 mois
- AWS OFFICIELA mis à jour il y a 8 mois
- AWS OFFICIELA mis à jour il y a 8 mois