{"uuid":"88340b94-e18a-4fef-8ff6-792a8512865e","slug":"20231127-blender-ddos-mitigation","title":"Attaque DDOS chez Blender.org","author":"cedric@abonnel.fr","published":true,"published_at":"2023-11-24 23:10:30","created_at":"2023-11-24 23:10:30","updated_at":"2023-11-24 23:10:30","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Journal geek","content":"# Attaque DDOS chez Blender.org\n\n\n\nEn novembre 2023, le site blender.org a subi une attaque DDoS majeure, qui a provoqué des interruptions intermittentes. L'équipe a finalement résolu le problème en se déplaçant derrière un service de mitigation DDoS. Les responsables de l'attaque et leurs motivations sont inconnus, mais aucune donnée de projet ou d'utilisateur n'a été compromise.\n\nUne attaque DDoS (Distributed Denial of Service) est une forme d'attaque informatique dans laquelle un grand nombre d'ordinateurs ou de dispositifs connectés, souvent rassemblés dans un **botnet**, envoient simultanément un grand volume de demandes de manière coordonnée vers un serveur ou un site web cible. L'objectif principal d'une attaque DDoS est de submerger la cible avec un trafic excessif, de sorte que les ressources du serveur sont épuisées, ce qui rend le service indisponible pour les utilisateurs légitimes. Cela peut entraîner des interruptions de service, des ralentissements ou même des pannes complètes du site web ou du serveur ciblé. Les attaques DDoS sont souvent utilisées pour perturber les services en ligne ou pour causer des nuisances à des organisations ou des individus.\n\nIl est possible de mettre en place des mesures pour se prémunir contre les attaques DDoS (Distributed Denial of Service). Voici quelques mesures que l'on peut prendre pour se protéger contre les attaques DDoS :\n\n1. Utiliser des services de mitigation DDoS : Les services de mitigation DDoS sont conçus pour détecter et atténuer automatiquement les attaques DDoS en filtrant le trafic malveillant avant qu'il n'atteigne le serveur cible. De nombreuses entreprises proposent des solutions de mitigation DDoS, et il est judicieux d'envisager leur utilisation.\n\n2. Surveillance du trafic réseau : Surveillez attentivement le trafic réseau pour détecter toute anomalie ou augmentation soudaine du trafic. Un système de détection des intrusions peut vous aider à repérer les signes d'une attaque en cours.\n\n3. Mise à jour des systèmes et logiciels : Assurez-vous que vos systèmes et logiciels sont à jour avec les derniers correctifs de sécurité pour réduire les vulnérabilités qui pourraient être exploitées lors d'une attaque.\n\n4. Plan de continuité d'activité : Élaborez un plan de continuité d'activité pour être prêt à réagir en cas d'attaque réussie. Ce plan devrait inclure des procédures pour restaurer rapidement les services après une interruption.\n\n5. Limiter l'accès aux ressources : Restreignez l'accès aux ressources critiques en utilisant des pare-feu, des listes de contrôle d'accès et d'autres mécanismes de sécurité pour réduire la surface d'attaque potentielle.\n\n6. Utilisation de la répartition de charge : Utilisez des solutions de répartition de charge pour distribuer le trafic entrant sur plusieurs serveurs, ce qui peut aider à atténuer l'impact des attaques en répartissant la charge de manière équilibrée.\n\n7. Surveillance en temps réel : Mettez en place une surveillance en temps réel de vos systèmes et réseaux pour pouvoir réagir rapidement en cas d'attaque et prendre des mesures pour atténuer ses effets.\n\nAucune mesure de sécurité n'est totalement infaillible, mais en combinant plusieurs de ces stratégies, vous pouvez réduire considérablement le risque et l'impact des attaques DDoS sur des services en ligne.\n\nApache HTTP Server n'est pas spécifiquement conçu pour fonctionner comme un mitigateur DDoS, mais il peut être utilisé en conjonction avec d'autres solutions pour aider à atténuer les attaques DDoS dans une certaine mesure. Voici quelques méthodes que vous pourriez envisager :\n\n1. **Rate Limiting et mod_security** : Apache peut être configuré pour limiter le nombre de requêtes par seconde (Rate Limiting) en utilisant des modules tels que `mod_evasive` ou `mod_qos`. Vous pouvez également utiliser le module `mod_security` pour détecter et bloquer les comportements de requête malveillants en fonction de règles définies.\n\n```\n\n DOSHashTableSize 3097\n DOSPageCount 5\n DOSSiteCount 100\n DOSPageInterval 1\n DOSSiteInterval 1\n DOSBlockingPeriod 10\n\n```\n\n```\n\n SecRuleEngine On\n SecRule REMOTE_ADDR \"@ipMatch 192.168.1.0/24\" \"phase:1,nolog,allow\"\n SecRule REQUEST_HEADERS:User-Agent \"malicious_user_agent\" \"id:1001,deny\"\n\n```\n\n2. **Répartition de charge (Load Balancing)** : Apache peut être configuré pour répartir la charge entre plusieurs serveurs backend. Cela peut aider à répartir la charge des attaques DDoS sur plusieurs serveurs et à réduire l'impact sur un seul serveur.\n\nMod_proxy_balancer est un module Apache qui permet de mettre en place une répartition de charge entre plusieurs serveurs backend. Voici un exemple de configuration de base :\n\n```\n\n ServerName monsite.com\n\n \n BalancerMember http:*backend1.example.com:8080\n BalancerMember http:*backend2.example.com:8080\n BalancerMember http:*backend3.example.com:8080\n \n\n ProxyPass / balancer:*mycluster/\n ProxyPassReverse / balancer:*mycluster/\n\n```\n\nDans cet exemple, nous avons configuré un serveur virtuel (VirtualHost) qui écoute sur le port 80 et répartit la charge entre trois serveurs backend (backend1.example.com, backend2.example.com et backend3.example.com) sur le port 8080. Vous pouvez ajouter ou supprimer des serveurs backend en utilisant la directive BalancerMember.\n\nAssurez-vous d'activer le module mod_proxy et mod_proxy_balancer en utilisant a2enmod si ce n'est pas déjà fait.\n\n3. **Mise en cache (Caching)** : L'utilisation de mécanismes de mise en cache, tels que `mod_cache`, peut aider à réduire la charge sur le serveur en servant des copies mises en cache de pages web au lieu de générer dynamiquement chaque page à chaque demande.\n\n```\n\n CacheQuickHandler off\n CacheLock on\n CacheLockPath /tmp/mod_cache-lock\n\n```\n\n```\nsudo a2enmod evasive\nsudo a2enmod security2\nsudo a2enmod cache\nsudo service apache2 restart\n```\n\n4. **Monitoring et alertes** : Vous pouvez mettre en place des outils de surveillance pour surveiller le trafic entrant et être alerté en cas d'augmentation soudaine du trafic. Cela peut vous permettre de réagir rapidement à une attaque DDoS.\n\nApache propose des modules qui permettent de surveiller les performances du serveur. L'un des modules les plus couramment utilisés est mod_status. Voici comment l'activer :\n\n```\n\n SetHandler server-status\n Require ip 127.0.0.1\n\n```\n\nCette configuration permet d'accéder à la page de status en utilisant l'URL http:*votre-serveur/server-status depuis **localhost**. Assurez-vous que le module `mod_status` est activé (utilisez `a2enmod` sous Debian/Ubuntu).\n\nPour une surveillance plus avancée et des alertes, vous pouvez utiliser des outils tiers tels que **Nagios**, **Zabbix**, **Munin**, ou d'autres solutions de monitoring. Ces outils permettent de surveiller les métriques du serveur Apache et de définir des alertes en fonction de seuils spécifiques. Par exemple, vous pouvez surveiller la charge CPU, l'utilisation de la mémoire, les requêtes par seconde, etc.\n\n--\n\nCependant, ces mesures ne sont pas aussi robustes qu'un service de mitigation DDoS dédié. Les attaques DDoS peuvent être très sophistiquées et volumineuses, et un service de mitigation DDoS spécialisé est généralement mieux équipé pour faire face à de telles attaques.\n\nIl existe plusieurs solutions open source de mitigation DDoS que vous pouvez envisager d'utiliser pour renforcer la sécurité de votre infrastructure en ligne. Voici quelques-unes d'entre elles :\n\n1. **Fail2ban** : Fail2ban est un outil de prévention des intrusions qui peut être utilisé pour surveiller les journaux de connexion et bloquer automatiquement les adresses IP qui génèrent un trafic malveillant ou excessif.\n\nVous pouvez créer des règles personnalisées dans le fichier de configuration de Fail2ban pour surveiller les journaux de connexion et définir des actions à prendre en cas de détection d'activité malveillante. Par exemple, pour bloquer une adresse IP après un certain nombre de tentatives de connexion échouées, vous pouvez ajouter une règle dans le fichier de configuration de Fail2ban.\n\n```\n[Definition]\nfailregex = ^ .*authentication failure\n```\n\n2. **ModSecurity** : ModSecurity est un pare-feu d'application web open source qui peut être utilisé pour détecter et bloquer les attaques DDoS au niveau de l'application web en utilisant des règles personnalisées.\n\nModSecurity utilise des règles pour détecter et bloquer les attaques au niveau de l'application web. Vous pouvez personnaliser ces règles en fonction de vos besoins. Par exemple, vous pouvez configurer des règles pour détecter des requêtes HTTP suspectes ou des tentatives d'injection SQL.\n\n```\nSecRule ARGS \"(select|insert|update|delete|drop|alter)\" \\\n\"id:1000,phase:2,t:none,t:urlDecodeUni,t:htmlEntityDecode,t:lowercase,block,msg:'SQL injection detected'\"\n```\n\n3. **Snort** : Snort est un système de détection d'intrusion (IDS) open source qui peut être configuré pour surveiller le trafic réseau à la recherche de comportements malveillants, y compris les attaques DDoS.\n\nSnort est configuré en utilisant des règles définies dans des fichiers de configuration. Vous pouvez créer ou personnaliser des règles pour détecter des signatures d'attaques DDoS spécifiques ou d'autres types de comportements malveillants.\n\n```\nalert udp any any -> $HOME_NET any (msg:\"Possible UDP Amplification Attack\"; dsize:>1000; sid:1000001;)\n```\n\n4. **Nginx** : Bien que Nginx soit principalement un serveur web, il peut également être utilisé pour atténuer les attaques DDoS en limitant le nombre de connexions par adresse IP ou en utilisant des modules de sécurité tels que `limit_req` et `limit_conn` pour contrôler le trafic entrant.\n\n```\nlimit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;\nlimit_conn conn_limit_per_ip 10;\n```\n\n5. **HAProxy** : HAProxy est un équilibreur de charge et un proxy TCP/HTTP qui peut être configuré pour atténuer les attaques DDoS en limitant le nombre de connexions par IP, en utilisant des listes de blocage, et en distribuant la charge sur plusieurs serveurs.\n\nCes serveurs peuvent être configurés pour atténuer les attaques DDoS en limitant le nombre de connexions par adresse IP, en utilisant des listes de blocage, en configurant des seuils de débit, etc. Vous devrez modifier le fichier de configuration de Nginx ou HAProxy pour définir ces paramètres en fonction de vos besoins.\n\n```\nfrontend web\n bind :80\n acl too_many_requests src_http_req_rate(web) ge 10\n http-request deny if too_many_requests\n```\n\n6. **iptables** : Vous pouvez utiliser les règles iptables sur un serveur Linux pour filtrer et bloquer le trafic indésirable en fonction de certaines conditions, telles que le nombre de connexions par seconde.\n\nVous pouvez utiliser des règles iptables pour filtrer et bloquer le trafic en fonction de divers critères, tels que l'adresse IP source, le port de destination, etc. Par exemple, pour limiter le nombre de connexions par seconde à un port spécifique, vous pouvez ajouter une règle iptables appropriée.\n\n```\niptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m recent --set\niptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m recent --update --seconds 1 --hitcount 10 -j DROP\n```\n\nCrédit image : *//","featured":false,"tags":[]}