-
Notifications
You must be signed in to change notification settings - Fork 0
Sécurité Web
- La disponibilité des sites web de l'entreprise
- Les informations sensibles stockées dans la base de données
- La connexion avec les users
Basée l'information du rapport 2021 du site OWASP, nous pouvons rétrouver le Top 10 du 2021:
- A01 Broken Access Control
- Les permissions données aux users sont mal configurées, qui permet à la base l'accès, l'exposition, et la modification des comptes d'autres users.
- A02 Cryptographic Failures (Sensitive Data Exposure)
- Les données sensibles (e.g. mots de passe, informations bancaires) sont exposées de manière non sécurisée.
- A03 Injection
- Une donnée non fiable est envoyée à un interpréteur ccomme un élément d'une commande ou requête, qui permet le pirate d'envoyer des commandes et requêtes depuis cet interpréteur. (e.g. injection SQL ou LDAP)
- A04 Insecure Design
- Une grande catégorie qui represente des différents faillités sur le design et l'architecture du code.
- A05 Security Misconfiguration
- L'utilisation des configurations par défaut non sécurisées, incomplètes, ou non mises à jour.
- A06 Vulnerable and Outdated Components
- L'utilisation des components ou des outils par défaut non sécurisées, incomplètes, ou non mises à jour. Ça considere aussi la manque de check des vulnérabilités des components utilisées.
- A07 Identification and Authentication Failures (Broken Authentication)
- L'usurpation de l'identité d'un ou plusieurs comptes par une mauvaise implémentation du système d'authentification.
- A08 Software and Data Integrity Failures
- La manque du protection des softwares et des données contre la faillité d'intégrité. Par exemple, une application est dépendant aux librairies et packages venant des sources et des repositoires non-fiables. Il permet le potentiel d'accès non-autorisée, du code malicieux, ou bien une panne complète du système.
- A09 Security Logging and Monitoring Failures (Insufficient Logging and Monitoring)
- La plupart des études de failles montrent que la détection de ces failles peut prendre au moins 200 jours. La chance d'exploitation devient plus grand pour chaque jour que le système est laissé à l'abandon.
- A10 Server-Side Request Forgery
- L'application fetch à distance un source sans validation de son URL. Ça permet le pirate de forcer l'application d'envoyer une requête customisé à un destination inattendu, malgré les systèmes déjà implémentés.
- Attaques XSS
- DDoS
- Man-in-the-middle
| Solution | Faille | Explications |
|---|---|---|
| User access control | A01 | Donner les droits adéquats aux utilisateurs pour éviter les attaques qui peuvent compromiser le système en utilisants des commandes trop puissants |
| ESAPI | A03, A07, A10, XSS | API développée par OWASP permettant aux développeurs de tester la sécurité de leurs codes |
| ModSecurity | La pluparts des menaces du Top 10 OWASP, XSS | Web Application Firewall qui permet la protection d'un serveur Apache/Nginx de nombreuses attaques décrites par OWASP |
| Fail2Ban | A05, A07 | Outil qui analyse les logs et bloque une adresse IP lors d'un attaque brute-force |
| Certbot | A02, A05, A07, Man-in-the-middle | Entité de certification qui permet le chiffrement des communication au sein du serveur pour proteger les données sensibles |
| Anti-DDoS | A06, Man-in-the-middle, DDoS | Les VPNs que nous utilisons sont hébergés chez OVH qui propose par défaut une protection anti-DDoS |
| Sauvegarde des backups | Tout | Faire des backups est le meilleur solution pour assurer l'intégrité des données du système en cas de problèmes |
| Surveillance des logs et maintenance du serveur | A06, A08, A09 | Tenir à jour son serveur en gardant des sources fiables est le meilleur moyen de prévenir des failles et de minimiser les risques |
| Protection des ports | A06 mais peut permettre d'autres failles | L'exploitation de ports non-sécurisés peut entrainer une faille et permettre une porte vers un accès admin |
| UFW | A06 | Uncomplicated Firewall permet la protection des ports des serveurs |
| Un cycle de développement plus robust avec une Code Coverage plus exhaustive | A04 | Les failles au sein du design et l'architecture du système permet les attaques connues du système |
| HTTPS | A02, A05, XSS | Protocole pour sécuriser l'HTTP en permettant l'encryption et l'authentification des données entre les clients et les serveurs |
Nous allons utiliser les contre-mesures décrites en-dessous afin de protéger le système web de notre architecture:
Pour sécuriser la connexion entre les clients et les serveurs, nous allons implémenter un certificat TLS dans notre serveur Apache à l'aide de la commande:
sudo a2enmod ssl
puis recharger la configuration d'Apache:
sudo systemctl reload apache2
Pour chiffrer la communication au sein du serveur, nous installons Certbot avec la commande:
sudo apt install python3-certbot-apache
Certbot permet ensuite de générer les certificats nécessaires et adapter les configurations d'Apache avec cette commande:
sudo certbot --apache
L'option --apache permet Certbot de créer et activer les fichier de configuration pour les serveurs HTTPS sur le port 443. Pendant la mise en place, le script nous demande de vérifier les domains où nous implémentons les certificats et de choisir d'utiliser HTTPS. Il faut tout accepter et choisir HTTPS.
Pour installer Fail2Ban sur Apache, il faut lancer cette commande:
sudo apt-get install fail2ban
Ensuite, pour la configuration, il faut créer un nouveau fichier jail.local dans le directory /etc/fail2ban. Ajouter le contenu exemplaire dans ce fichier:
[apache]
enabled = true
filter = apache-auth
action = iptables-multiport[name=apache-auth, port="http,https"]
logpath = /var/log/apache*/*error.log
maxretry = 5
bantime = 600
Finalement, il faut sauvegarder le fichier et lancer cette commande pour mettre en place les changements: sudo service fail2ban restart
- OWASP Top Ten | OWASP Foundation. (s. d.). https://owasp.org/www-project-top-ten/
- EPHEC Moodle : se connecter sur le site. (s. d.-c). https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=76393
- EPHEC Moodle : se connecter sur le site. (s. d.-d). https://moodle.ephec.be/mod/book/view.php?id=335557&chapterid=76394
- OWASP Enterprise Security API (ESAPI) | OWASP Foundation. (s. d.). https://owasp.org/www-project-enterprise-security-api/
- Server Side Request Forgery Prevention - OWASP Cheat Sheet Series. (s. d.). https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html
- SpiderLabs. (s. d.). GitHub - SpiderLabs/ModSecurity : ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave’s SpiderLabs. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis. With over 10,000 deployments world-wide, ModSecurity is the most widely deployed WAF in existence. GitHub. https://github.com/SpiderLabs/ModSecurity
- OWASP ModSecurity Core Rule Set | OWASP Foundation. (s. d.). https://owasp.org/www-project-modsecurity-core-rule-set/
- How to use the OWASP Top 10 as a standard - OWASP Top 10 : 2021. (s. d.). https://owasp.org/Top10/A00_2021_How_to_use_the_OWASP_Top_10_as_a_standard/
- https://www.f5.com/pdf/ebooks/preparing-for-the-new-owasp-top-10-and-beyond.pdf
- IONOS Cloud Documentation - Products. (s. d.). https://docs.ionos.com/cloud/
- Jethva, H. (2015, 29 octobre). Setting up Fail2Ban to protect Apache from DDOS attack. Make Tech Easier. https://www.maketecheasier.com/fail2ban-protect-apache-ddos/