CrowdSec - Le vigile de votre serveur qui recale les mauvaises adresses IP
Il faut donc être capable d’analyser en temps réel ces accès non filtrés, de détecter ceux qui seraient frauduleux et d’être hyper réactif, le tout de manière automatisée.
C’est là qu’entre en scène CrowdSec.
Imaginé par les Français Philippe Humeau, ex-fondateur d’un hébergeur haute sécurité et par Thibault Koechlin, pentesteur, et DevSecOps, CrowdSec est un outil 100% open source qui combine 2 idées très connues des administrateurs de serveurs.
La première idée c’est d’être capable de bannir automatiquement une IP se connectant sur votre serveur, un peu à la manière d’un Fail2ban. Et la seconde idée c’est de proposer une base de données de ces IPs à la communauté des utilisateurs CrowdSec, un peu comme le fait AbuseIPDB, afin de faire circuler l’info rapidement et que chacun puisse être protégé à son tour.
C’est donc un savant arbitrage entre le comportement d’une adresse IP sur votre serveur et sa réputation qui permet de déterminer s’il s’agit d’une IP légitime ou de celle d’un attaquant. Un peu comme si vous arriviez devant une boite de nuit où vous n’avez jamais mis les pieds et que le videur connaissait déjà votre réputation.
Cela vous permet de détecter tous les types d’attaques et d’y répondre de manière proportionnée à n’importe quel niveau de votre infrastructure (du CDN jusqu’au niveau de l’applicatif)
## Alors comment ça fonctionne ?Et bien votre serveur produit des logs et différentes sources de données (cloud trails, données en provenance de vos applicatifs…etc.) contenant les adresses IP des machines qui accèdent à ce service.
Un service CrowdSec, hyper simple à mettre en place sur votre machine, se charge alors d’observer tout ça en temps réel ou de manière rétro-active pour une post-analyse sur des logs froids.
Puis, à l’aide de parseurs que vous pouvez mettre en place assez facilement soit en les écrivant vous-même soit en allant les télécharger sur le site de CrowdSec, le comportement de chaque adresse IP relevée dans les logs est analysé.
L'agent CrowdSec normalise (en utilisant du schéma GROK) et enrichit alors cette adresse IP avec des informations complémentaires comme le pays d'origine de l'IP, son AS d'origine, la plage à laquelle elle appartient, puis recherche dans la base de données communautaire de CrowdSec si cette IP a déjà été remarquée sur un autre serveur. Évidemment, si la réponse est oui, elle est bloquée.Si c’est une nouvelle adresse IP au comportement malveillant, différents scénarios de remédiations peuvent lui être proposés : demander un captcha, dropper un paquet, bloquer l’accès à une zone du site, exiger une double authentification, ou finir sur un blocage pur et simple. Par contre, j’ai eu beau lire la documentation, il n’y a pas la possibilité de lancer une attaque de drones équipés de missiles sur la localisation de l’IP.
Une fois l’adresse IP identifiée, celle-ci est accompagnée d’un timestamp et de son scénario puis exportée vers la base de données de CrowdSec.
Une fois encore, c’est vous qui déterminez les règles à appliquer en fonction des situations et des points d’entrée, et CrowdSec est ainsi capable de détecter des attaques traditionnelles comme un bruteforce ou un scan web / ports jusqu’à des attaques beaucoup plus travaillées et ciblées, impliquant par exemple l’utilisation de failles 0day, et cela sur l’ensemble des services présents sur la machine (application, DNS, mail, serveur web…etc.). Tant pis pour les petits malins ! :)
Vous l'aurez compris, c'est hyper granulaire comme approche et si l'adresse IP en question se révèle appartenir à des méchants pas beaux, elle est ensuite partagée avec l'ensemble de la communauté bienveillante de CrowdSec via leur base de données d'IP.Concernant l’aspect communautaire de partage d’IP, c’est plutôt bien réfléchi puisque les IPs sont évaluées par CrowdSec d’une part et des scores de confiance sont progressivement attribués aux machines utilisant CrowdSec. Cela permet d’éviter tout empoisonnement de la base par des spammeurs et de limiter les faux positifs.
CrowdSec est développé en Go et peut s’installer sur un serveur cloud ou traditionnel, être déployé dans un conteneur ou utilisé via son API.
Les appels à la liste d’IPs communautaire se font en effet via une API, ce qui permet de l’utiliser également sur des machines avec peu de CPU/RAM comme des objets connectés. Ainsi, un objet connecté, même peu puissant pourrait profiter simplement du système de réputation d’IPs de CrowdSec sans avoir à faire de sacrifice sur les performances. De quoi faire survivre votre installation domotique et éviter de vous retrouver dans une maison qui se comporte étrangement en mode l’Exorciste.
À titre d’exemple, CrowdSec a permis d’éviter à un de ses utilisateurs, et donc par anticipation à l’ensemble de sa communauté, une attaque de botnet composée de plus de 7 000 machines zombies, en moins d’une minute, ou encore une vaste tentative d’escroquerie sur un site d’e-commerce avec des cartes bancaires volées réalisée à partir de plus de 3 000 adresses IP différentes
Concernant sa licence, CrowdSec est sous licence open source MIT depuis mai 2020. Il est donc libre d’utilisation et peut être déployé sous système Unix / Linux et bientôt sous Windows et maCOS.
La base de données communautaire reste accessible librement pour tous les utilisateurs de CrowdSec qui contribuent à celle-ci et la société se finance en proposant cette base à d’autres sociétés qui justement n’y contribuent pas et qui voudraient l’intégrer directement dans leurs workflows avec des fonctionnalités supplémentaires de pool privés pour les consensus sur les IP, de self monitoring ou encore pour de la surveillance plus large (flotte de serveurs).
À découvrir ici.
Et si vous voulez en apprendre plus sur la team CrowdSec, je vous invite à les suivre sur GitHub, LinkedIn et Twitter.
Que faire après le bac quand on est passionné de cybersécurité ?
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).