Crowdsec
Mise à jour :
Bienvenue dans ce guide complet dédié à Crowdsec, un outil de cybersécurité collaboratif conçu pour détecter et prévenir les comportements malveillants en temps réel. Dans un contexte où les menaces informatiques sont de plus en plus sophistiquées et fréquentes, Crowdsec propose une solution innovante qui s’appuie sur la force de la communauté pour renforcer la protection des infrastructures.
À travers ce guide, je vais vous accompagner pas à pas dans la découverte et la mise en œuvre de Crowdsec, depuis son installation jusqu’à la gestion des scénarios et des décisions.
Historique
Crowdsec a été créé en 2020 par une équipe de passionnés de cybersécurité, désireux de proposer une solution moderne et collaborative pour lutter contre les menaces en ligne. Inspiré par des outils comme Fail2Ban, Crowdsec se distingue par son approche communautaire et son architecture modulaire.
L’idée de base derrière Crowdsec est simple : mutualiser les efforts de détection et de prévention des menaces à l’échelle mondiale. En partageant les informations sur les comportements malveillants détectés, les utilisateurs de Crowdsec bénéficient d’une protection collective, rendant ainsi chaque système plus résilient face aux attaques.
Depuis son lancement, Crowdsec a rapidement gagné en popularité grâce à sa capacité à s’intégrer facilement dans diverses infrastructures et à son modèle open-source, permettant à la communauté de contribuer activement à son amélioration continue. Les développeurs ont également mis un point d’honneur à rendre l’outil accessible et extensible, avec une documentation détaillée et de nombreux scénarios prêts à l’emploi.
En peu de temps, Crowdsec est devenu un acteur incontournable dans le domaine de la sécurité informatique, offrant une solution efficace et évolutive pour les entreprises et les particuliers soucieux de protéger leurs systèmes contre les menaces en constante évolution.
Fonctionnalités
Crowdsec est un outil de sécurité informatique doté de nombreuses fonctionnalités innovantes conçues pour protéger vos systèmes contre les menaces en temps réel. Il se distingue par sa capacité à détecter les comportements malveillants grâce à un moteur de détection performant qui analyse en continu les logs et les activités système. Lorsqu’un comportement suspect est identifié, Crowdsec peut automatiquement bannir les adresses IP malveillantes, empêchant ainsi toute nouvelle tentative d’attaque.
L’un des aspects les plus puissants de Crowdsec est son approche communautaire. Chaque utilisateur contribue à une base de données partagée des adresses IP malveillantes, ce qui renforce la sécurité collective. Plus la communauté grandit, plus la protection offerte par Crowdsec devient robuste et efficace.
Crowdsec est compatible avec une variété de plateformes, y compris Linux, Windows et macOS, ce qui facilite son intégration dans des environnements diversifiés. Il est également extensible grâce à des scénarios personnalisés qui permettent de détecter des comportements spécifiques à votre infrastructure. Les scénarios sont définis à l’aide de fichiers YAML, offrant une grande flexibilité et une personnalisation poussée.
En termes de gestion des logs, Crowdsec centralise les événements de sécurité, facilitant ainsi l’analyse et la mise en œuvre de mesures correctives. Il propose également un tableau de bord intuitif pour visualiser les activités détectées et les décisions prises, permettant une gestion proactive de la sécurité.
Pour ceux qui souhaitent étendre les capacités de Crowdsec, une API riche est disponible, permettant des intégrations personnalisées et l’automatisation des interactions. De plus, Crowdsec utilise des techniques de machine learning pour améliorer en continu la détection des comportements malveillants, en analysant de vastes quantités de données pour identifier des schémas et des anomalies.
Concepts Clés
Pour bien utiliser Crowdsec, il est essentiel de comprendre quelques concepts clés qui forment la base de son fonctionnement. Ces concepts permettent de saisir comment Crowdsec détecte, analyse et réagit aux menaces. Voici un tour d’horizon des éléments essentiels à connaître :
Scénarios
Les scénarios sont au cœur de la détection des comportements malveillants par Crowdsec. Un scénario définit un ensemble de règles et de conditions qui décrivent un comportement suspect. Par exemple, un scénario peut détecter des tentatives de brute force SSH en surveillant le nombre de tentatives de connexion échouées sur une période donnée.
Bouncer
Un bouncer est un composant chargé d’appliquer les décisions prises par Crowdsec. Il peut interagir avec divers services comme les pare-feux, les serveurs web ou les systèmes de gestion des accès pour mettre en œuvre les mesures de protection. Les bouncers garantissent que les décisions de sécurité sont effectivement appliquées.
Décisions
Les décisions sont les actions que Crowdsec prend lorsqu’un scénario détecte un comportement suspect. Une décision peut être de bannir une adresse IP, d’envoyer une alerte ou de déclencher une autre action préventive. Les décisions sont configurables et peuvent être adaptées en fonction des besoins de votre infrastructure.
Collections
Les collections sont des groupes de scénarios, de bouncers et de configurations réassemblés qui sont conçus pour faciliter le déploiement de solutions complètes adaptées à des environnements spécifiques. Les collections permettent aux utilisateurs de déployer rapidement un ensemble cohérent de configurations qui fonctionnent ensemble pour protéger efficacement leur infrastructure. Par exemple, une collection pourrait inclure des scénarios pour détecter des tentatives de brute force, des bouncers pour bloquer les IP malveillantes et des configurations spécifiques pour ajuster le comportement du système en fonction des besoins de sécurité.
Acquisition
La configuration d’acquisition définit les flux d’informations que Crowdsec doit traiter. Un flux d’information peut être un fichier, un journal d’événements journald, un flux cloudwatch, ou tout autre type de flux comme un sujet Kafka. La configuration d’acquisition contient toujours un flux et un label pour taguer les logs entrants avec un type spécifique.
Stages
Le concept de stages est central à l’analyse des données dans Crowdsec. Il permet d’avoir plusieurs “étapes” de parsing. Tous les parsers appartiennent à un stage donné. Les stages permettent de structurer et d’organiser le traitement des logs en étapes successives.
Parsers
Les parsers sont utilisés pour analyser et normaliser les logs afin qu’ils puissent être exploités et analysés. Un parser est un fichier de configuration YAML qui décrit comment une chaîne de caractères doit être analysée. Les parsers peuvent également référencer des modules d’enrichissement pour permettre un traitement spécifique des données.
Enrichers
Les enrichers sont des parsers qui ajoutent un contexte supplémentaire à un événement de log pour que Crowdsec puisse prendre une meilleure décision par la suite. Par exemple, un enrichisseur peut ajouter des informations géographiques à un événement en utilisant des données GeoIP.
PostOverflows
Les postoverflows sont des parsers appliqués sur les overflows (résultats des scénarios) avant que la décision ne soit écrite dans la base de données locale ou poussée vers l’API. Ils sont utilisés pour des processus d’enrichissement/parsing coûteux que l’on ne souhaite pas exécuter sur tous les événements entrants, mais plutôt sur une décision sur le point d’être prise.
Hubs
Les hubs de Crowdsec sont des dépôts où les utilisateurs peuvent trouver et partager des scénarios, des bouncers et d’autres configurations. Le hub centralisé de Crowdsec facilite la découverte et l’utilisation de ressources communautaires pour enrichir et adapter votre installation de Crowdsec.
Réputation IP
L’un des avantages de Crowdsec est sa capacité à maintenir une réputation IP basée sur les rapports communautaires. Les adresses IP identifiées comme malveillantes par plusieurs utilisateurs sont ajoutées à une liste noire globale, ce qui aide à prévenir les attaques avant même qu’elles ne se produisent.
API
Crowdsec dispose d’une API riche qui permet aux développeurs et aux administrateurs de créer des intégrations personnalisées et d’automatiser les interactions avec l’outil. L’API facilite l’extension des fonctionnalités de Crowdsec et son intégration dans des écosystèmes de sécurité plus larges.
Installation
Pour commencer à utiliser Crowdsec, vous devez d’abord l’installer sur votre système. Voici les étapes détaillées pour installer Crowdsec sur un système Linux. Ce guide couvre l’installation depuis les dépôts officiels ainsi que la configuration initiale.
Crowdsec peut être installé directement depuis les dépôts officiels. Suivez ces étapes pour installer Crowdsec sur une distribution basée sur Debian ou Ubuntu :
- Mettez à jour votre système
- Ajouter le dépôt Crowdsec :
- Installer Crowdsec :
Vérification de l’Installation
Après l’installation, il est important de vérifier que Crowdsec est correctement installé et fonctionne. Utilisez la commande suivante pour vérifier le statut du service Crowdsec :
Vous devriez voir une sortie indiquant que le service Crowdsec est actif et en cours d’exécution.
Utilisation de la CLI cscli
L’outil en ligne de commande cscli
est l’outil indispensable pour gérer et
configurer Crowdsec. Il offre une interface complète pour interagir avec
Crowdsec, permettant d’installer des scénarios, des bouncers, des parsers, des
collections et bien plus encore.
Vous pouvez obtenir la liste des commandes avec l’aide intégrée :
Configuration de l’Auto-complétion
L’auto-complétion est une fonctionnalité pratique qui permet de compléter
automatiquement les commandes et les options lorsque vous utilisez cscli
dans
un terminal. Cela peut grandement améliorer votre efficacité et réduire les
erreurs de syntaxe. Ce chapitre vous guide à travers les étapes pour configurer
l’auto-complétion pour cscli
sur différentes plateformes de terminal.
Configuration pour Bash
Pour activer l’auto-complétion dans Bash, suivez ces étapes :
-
Générer le script d’auto-complétion :
Utilisez
cscli
pour générer le script d’auto-complétion. Exécutez la commande suivante dans votre terminal :Cette commande crée un script d’auto-complétion pour
cscli
et le place dans le répertoire des scripts d’auto-complétion de Bash. -
Recharger le terminal :
Après avoir ajouté le script, rechargez votre terminal ou ouvrez une nouvelle session terminal pour activer l’auto-complétion.
Configuration pour Zsh
Pour activer l’auto-complétion dans Zsh, suivez ces étapes :
-
Générer le script d’auto-complétion :
Utilisez
cscli
pour générer le script d’auto-complétion pour Zsh. Exécutez la commande suivante : -
Ajouter le fichier de complétion :
Ajoutez le script d’auto-complétion généré à votre fichier de configuration Zsh (
.zshrc
). Ouvrez.zshrc
avec votre éditeur de texte préféré et ajoutez la ligne suivante si elle n’existe pas déjà : -
Recharger le terminal :
Après avoir modifié
.zshrc
, rechargez votre terminal ou ouvrez une nouvelle session terminal pour activer l’auto-complétion.
Configuration pour Fish
Pour activer l’auto-complétion dans Fish, suivez ces étapes :
-
Générer le script d’auto-complétion :
Utilisez
cscli
pour générer le script d’auto-complétion pour Fish. Exécutez la commande suivante : -
Recharger le terminal :
Après avoir ajouté le script, rechargez votre terminal ou ouvrez une nouvelle session terminal pour activer l’auto-complétion.
Vérification de l’Auto-complétion
Pour vérifier que l’auto-complétion est correctement configurée, tapez une
commande cscli
partielle et appuyez sur la touche Tab
pour voir si le
terminal propose des complétions possibles. Par exemple, tapez cscli scen
et
appuyez sur Tab
pour voir les suggestions de complétion pour scenarios
.
Configuration de base
La configuration de base de Crowdsec est réalisée à travers le fichier
config.yaml
situé dans le répertoire /etc/crowdsec/
. Ce fichier détermine
les paramètres généraux de fonctionnement de Crowdsec.
Voici un exemple de configuration de base typique :
Après chaque modification il faudra recharger le service :
Configuration de la Base de Données
Crowdsec utilise une base de données pour stocker les événements et les décisions. Par défaut, Crowdsec utilise SQLite, mais vous pouvez configurer d’autres bases de données comme MySQL ou PostgreSQL si vous le souhaitez.
Pour utiliser MySQL, par exemple, modifiez la section db_config
comme suit
:
La gestion des Hubs
Les hubs de Crowdsec sont des dépôts centralisés où les utilisateurs
peuvent trouver, installer et partager des configurations de sécurité telles que
des scénarios, des parsers, des bouncers et des collections. Les hubs
facilitent l’administration de Crowdsec en offrant un accès rapide à des
ressources préconfigurées et validées par la communauté. Par défaut, cscli
est
configuré pour utiliser le hub officiel de Crowdsec, mais il est possible de
créer et d’utiliser des hubs locaux.
Si vous souhaitez avoir des informations sur le hub principal, il est accessible à l’adresse hub.crowdsec.net ↗.
Contributions aux Hubs
La force de Crowdsec réside également dans sa communauté. Vous pouvez contribuer en partageant vos propres scénarios, parsers, bouncers, ou collections avec la communauté. Pour contribuer, vous pouvez soumettre vos configurations via le dépôt GitHub de Crowdsec ou directement sur le hub.
Utilisation de Crowdsec
Crowdsec est un outil puissant pour détecter et répondre aux comportements malveillants en temps réel. Son utilisation repose sur l’installation, la configuration et la gestion des différents composants tels que les scénarios, les parsers, les bouncers, voir les collections.
Nous allons prendre comme exemple, le renforcement de la sécurité du service
sshd
.
Installation de la collection sshd
La collection “crowdsecurity/sshd” est une collection préconfigurée qui permet de détecter et de répondre aux tentatives de brute force SSH sur votre serveur. Cette collection inclut des scénarios, des parsers et d’autres configurations nécessaires pour surveiller et sécuriser les connexions SSH. Voici un guide étape par étape pour installer et configurer cette collection sur votre système.
Une fois la collection installée, vous pouvez vérifier que tous les composants nécessaires sont en place en listant les collections installées :
Gestion des parsers
Les parsers sont utilisés pour analyser les logs SSH et extraire les informations nécessaires pour les scénarios. La collection inclut des parsers spécifiques pour les logs SSH. Vérifiez leur présence avec :
Configuration des Scénarios
Les scénarios sont essentiels pour détecter des comportements spécifiques.
Crowdsec utilise des fichiers YAML pour définir les scénarios. Les scénarios
par défaut sont stockés dans le répertoire /etc/crowdsec/scenarios/
.
Pour installer un scénario, utilisez la commande cscli
:
Vous pouvez lister tous les scénarios installés avec :
Personnalisation des Scénarios
Crowdsec permet de personnaliser les scénarios pour répondre aux besoins
spécifiques de votre environnement. Vous pouvez modifier les scénarios existants
ou créer vos propres scénarios. Les fichiers de scénarios se trouvent
généralement dans le répertoire /etc/crowdsec/scenarios/
.
Le contenu du fichier ssh-bf.yaml
:
Lancer des simulations
Les scenarios intégre des simulations. Par défaut, bien sur elles sont désactivées.
Pour activer une simulation en particulier tapez la commande suivante :
Gestion des Décisions
Les décisions sont les actions prises par Crowdsec en réponse aux comportements malveillants détectés par les scénarios. La gestion des décisions est essentielle pour assurer une protection efficace et réactive de votre infrastructure. Dans cette section, je vais expliquer comment consulter, ajouter, supprimer et gérer les décisions de Crowdsec.
Consultation des Décisions
Pour voir les décisions actuelles prises par Crowdsec, vous pouvez utiliser
la commande cscli
. Cette commande affiche une liste des décisions en cours,
comme les adresses IP bannies et la durée du bannissement.
Pour lister les décisions :
Cette commande affiche des informations telles que l’adresse IP, la raison du bannissement, la durée et le scenario à l’origine de la décision.
Ajout Manuel de Décisions
Dans certains cas, vous pouvez avoir besoin d’ajouter des décisions manuellement, par exemple pour bannir une adresse IP suspecte qui n’a pas été automatiquement détectée par un scénario.
Pour bannir manuellement une adresse IP pendant une durée déterminée :
Vous pouvez spécifier différents types de décisions, comme ban
pour bannir une
IP, ou alert
pour simplement générer une alerte sans bannissement.
Suppression de Décisions
Il peut être nécessaire de supprimer des décisions, par exemple si une adresse IP a été bannie par erreur ou si vous souhaitez lever un bannissement avant la fin de la durée prévue.
Pour supprimer une décision spécifique :
Pour supprimer toutes les décisions en cours :
Configuration des Profils de Décision
Les profils de décision définissent les politiques appliquées par Crowdsec
lorsqu’une menace est détectée. Ces profils peuvent être configurés pour
différentes situations, comme des attaques légères ou sévères. Les profils se
trouvent dans le fichier profiles.yaml
situé dans le répertoire
/etc/crowdsec/
.
Un exemple de profil de décision :
Gestion des Bouncers
Les bouncers appliquent les décisions de Crowdsec. Par défaut, aucun bouncer n’est configuré. Vous devez installer et configurer des bouncers adaptés à vos besoins.
Installation du bouncer cs-firewall-bouncer
Nous allons installer le bouncer cs-firewall-bouncer ↗ qui se charger d’appliquer les décisions de ban d’IP détecté par le scénario installé précédement.
Une fois installé, vous pouvez vérifier qu’il est bien actif :
Test du Bouncer
Pour tester si un bouncer applique correctement les décisions, vous pouvez ajouter manuellement une décision et vérifier si elle est appliquée. Par exemple, pour tester le bannissement d’une IP avec un bouncer IPTables :
Vérifiez que l’IP 1.2.3.4
apparaît dans les règles de bannissement :
Notre IP est bien banni !
Configuration des Notifications
Vous pouvez configurer Crowdsec pour envoyer des notifications en cas de
détection d’événements critiques. Cela se fait en modifiant le fichier de
configuration des notifications, souvent situé dans
/etc/crowdsec/notifications/
.
Un exemple de configuration de notification par email :
Désactivation des simulations
Une fois vos tests terminé, vous pouvez la désactiver :
Mise à Jour des Scénarios
Les scénarios peuvent être mis à jour régulièrement pour inclure les dernières
détections et améliorations. Utilisez cscli
pour mettre à jour les scénarios
installés :
Création de Rapports
Crowdsec permet également de créer des rapports basés sur les données collectées par les scénarios. Ces rapports peuvent fournir des informations précieuses sur les tendances de sécurité et l’efficacité des scénarios déployés.
Pour générer un rapport :
Utilisation de la Console Crowdsec
La console Crowdsec est un outil web en ligne disponible sur app.crowdsec.net ↗ qui permet de gérer et de surveiller facilement votre instance Crowdsec. Elle offre une interface graphique pour visualiser les alertes, les décisions et les métriques de sécurité en temps réel. La console simplifie la gestion de Crowdsec et offre une vue d’ensemble des activités de sécurité de votre infrastructure.
Pour accéder à la console Crowdsec, rendez-vous sur app.crowdsec.net ↗ et créez un compte.
Connectez-vous à la console et cliquez sur le bouton +, puis sur
“Enroll a Security Engine”. Sur votre machine, lancez la commande cscli
affichée.
Fonctionnalités de la Console
La console Crowdsec offre plusieurs fonctionnalités pour gérer et surveiller votre sécurité :
-
Tableau de Bord :
Le tableau de bord fournit une vue d’ensemble des alertes et des décisions récentes. Vous pouvez voir les activités suspectes détectées par Crowdsec et les actions entreprises pour les bloquer.
-
Visualisation des Alertes :
La console affiche les alertes générées par les scénarios de détection. Chaque alerte inclut des détails tels que l’adresse IP source, le type de menace et l’heure de détection.
-
Gestion des Décisions :
Vous pouvez consulter, ajouter et supprimer des décisions directement depuis la console. Cela inclut la possibilité de bannir manuellement des adresses IP ou de lever des bannissements.
-
Métriques et Statistiques :
La console fournit des métriques et des statistiques détaillées sur les événements de sécurité. Vous pouvez visualiser les tendances et analyser les données pour améliorer la sécurité de votre infrastructure.
-
Configuration des Scénarios et Parsers :
La console permet également de configurer et de gérer les scénarios et les parsers. Vous pouvez activer ou désactiver des scénarios et ajuster les configurations pour mieux répondre à vos besoins spécifiques.
Souscription à une liste noire (blocklist)
Avec le plan communauté, vous pouvez souscrire à 3 liste noires d’IP. Par exemple, vous pouvez souscrire à la liste “CrowdSec Paris 2024 Intelligence Blocklist”.
Conclusion
En adoptant Crowdsec, vous faites un pas important vers une meilleure sécurisation de vos systèmes. Grâce à ses fonctionnalités avancées et à son approche communautaire, Crowdsec offre une solution évolutive et efficace pour faire face aux menaces en constante évolution.
Le Hub Crowdsec est une ressource inestimable pour les utilisateurs cherchant à renforcer la sécurité de leurs infrastructures. Il propose une vaste bibliothèque de scénarios préconfigurés, prêts à être déployés pour détecter et réagir à une multitude de menaces. Ces scénarios couvrent une large gamme de cas d’utilisation, allant des attaques de force brute aux tentatives d’exploitation des vulnérabilités des applications web.
Bien que le hub offre une riche sélection de scénarios, il est possible d’aller encore plus loin en développant vos propres scénarios adaptés à vos besoins spécifiques. Crowdsec utilise des fichiers YAML pour définir les scénarios, ce qui permet une grande flexibilité et personnalisation.
Plus d’infos
Pour approfondir vos connaissances et obtenir de l’aide, voici quelques ressources utiles :