La sécurité est un aspect crucial des applications web, surtout lorsqu’elles sont utilisées à grande échelle dans le monde entier. Lorsque certaines ressources sont publiques, elles deviennent vulnérables à différentes formes d’attaques. Malheureusement, certains développeurs négligent cette question de sécurité.
Les principales formes d’attaques web
Il existe de nombreuses formes d’attaques web, mais les plus courantes sont les attaques par déni de service (DDoS), les injections SQL et les attaques de type cross-site scripting (XSS). Nous vous proposons des solutions pour faire face à ces formes d’attaques dans cet article.
Qu’est-ce que AWS Web Application Firewall ?
AWS WAF vous aide à protéger votre site web contre les attaques les plus courantes susceptibles de compromettre la disponibilité, la sécurité et les performances de votre site web.
- Vous vous inquiétez de la sécurisation de votre site web contre les attaques courantes ? AWS WAF est la solution qu’il vous faut.
- Vous voulez bloquer l’accès à votre site web à une adresse IP spécifique ? AWS WAF vous facilite grandement cette tâche.
Commencez avec AWS WAF
AWS WAF comprend des listes de contrôle d’accès web (web ACL) et d’autres règles associées. Si vous n’avez jamais travaillé avec des listes de contrôle d’accès web auparavant, celles-ci vous offriront un contrôle détaillé sur les demandes émises par les API Amazon API Gateway, les distributions Amazon CloudFront ou le répartiteur de charge d’application AWS ALB.
Sur cette interface, vous pouvez créer des listes de contrôle d’accès web et y ajouter ou créer des règles. Dans la Place de marché AWS, vous pouvez trouver des règles prédéfinies et vérifiées pour une utilisation (payante). AWS WAF est livré avec des règles par défaut qui vous aideront à protéger votre application contre différents types d’attaques. AWS WAF ne peut être utilisé qu’en amont du répartiteur de charge d’application AWS (ALB), de la distribution Amazon CloudFront ou du portail API Amazon.
Configuration du site (docs disponibles) : https://aws.amazon.com/answers/security/aws-waf-security-automations/?refid=gs_card
Ces modèles créent un ensemble de ressources telles que :
Cette solution est facile à déployer via AWS CloudFormation et vous pouvez activer ou désactiver les protections contre les attaques décrites dans le schéma ci-dessus.
Les règles créées par AWS WAF
Ces modèles créent les règles suivantes :
1. Protection contre les bots malveillants et les scrapeurs
Lorsque vous exécutez le script AWS CloudFormation, il vous fournit une URL piège que vous pouvez intégrer à votre site web sous forme de lien HTML masqué. Ainsi, si un bot accède à cette URL, son adresse IP sera bloquée et l’utilisateur ne pourra plus accéder à votre site web.
2. Protection contre les injections SQL
Cette règle vous protège contre les attaques par injection SQL. Elle analyse les URL, les chaînes de requête, les en-têtes, le corps HTML, etc. Voici un exemple spécifique :
3. Protection contre les attaques de type cross-site scripting
Cette règle protège votre site web contre les attaques XSS. Elle analyse les URL, les chaînes de requête, les en-têtes et le corps HTML, de manière similaire à la règle de protection contre les injections SQL mentionnée ci-dessus.
4. Protection contre les scanners et les probes
La fonctionnalité personnalisée AWS Lambda analyse automatiquement les journaux d’accès, vérifie automatiquement les comportements suspects et ajoute les adresses IP correspondantes à la liste des adresses bloquées.
5. Whitelisting et blacklisting des adresses IP
Cette règle vous permet de créer des listes blanches et des listes noires d’adresses IP.
6. Protection contre les attaquants connus
La fonctionnalité personnalisée AWS Lambda vérifie automatiquement les listes d’adresses IP malveillantes tierces toutes les heures et ajoute ces adresses IP à la liste des adresses bloquées.
7. Protection contre les attaques HTTP flood
La règle basée sur le débit permet de bloquer automatiquement les demandes en provenance du client qui dépassent un seuil prédéfini.
Appliquer les listes de contrôle d’accès web à vos ressources
Comme mentionné précédemment, AWS WAF ne s’applique qu’au répartiteur de charge d’application AWS, à la distribution Amazon CloudFront ou au portail API Amazon. Vous pouvez ajouter le lien dans l’onglet “Web ACL Rules” comme ci-dessous :
Dans cet exemple de démonstration, j’applique les règles ci-dessus à l’AWS ALB.
Voici mon serveur web Apache qui s’exécute derrière AWS ALB :
Maintenant, essayons de tester la règle d’injection SQL. Je vais injecter une commande SQL dans la chaîne de requête.
- Avant d’utiliser une liste de contrôle d’accès web : Comme le montre l’image ci-dessous, avant d’appliquer une liste de contrôle d’accès web, cette requête est autorisée. Votre site web est vulnérable et un pirate peut facilement accéder à votre base de données.
- Après l’utilisation de la liste de contrôle d’accès web : Le serveur renverra une erreur 403 Forbidden. Vous pouvez personnaliser cette page pour l’adapter à votre site web.
Avec une liste de contrôle d’accès web bien conçue, vous pouvez l’utiliser pour d’autres applications.
Sources
https://www.nclouds.com/blog/security-apps-aws-web-application-firewall/