Surveillez les cybermenaces sur vos serveurs avec la console CrowdSec

I. Présentation

CrowdSec continue sa belle progression et récemment une nouvelle fonctionnalité importante a vu le jour : la console CrowdSec. Il s'agit d'une interface Web aux allures de cockpit, hébergée par CrowdSec sur des serveurs situés en Europe qui va vous permettre de connecter vos différentes instances CrowdSec pour avoir une vue d'ensemble de l'état de vos serveurs, notamment les alertes, les adresses IP bloquées, etc.

La console CrowdSec est accessible gratuitement dans sa version communautaire, qui intègre de nombreuses fonctionnalités, et il existe des offres payantes pour les entreprises ayant des besoins plus importants. Les versions payantes permettent de lever certaines limites de la version gratuite qui est déjà bien complète. Dans cet article, je vais utiliser la version gratuite pour que vous puissiez voir ce que l'on peut faire avec cette console sans débourser un centime.

Pour les retardataires, voici mes précédents articles au sujet de CrowdSec :

Avant de rentrer dans le vif du sujet, voici le site officiel de la console CrowdSec où il faudra vous rendre pour créer votre compte :

II. Les fonctionnalités de la console CrowdSec

Voici un récapitulatif en trois points des fonctionnalités de la console CrowdSec, qui, comme je le disais en introduction, permet d'avoir une vue d'ensemble de ses serveurs protégés par CrowdSec :

  • Garder un œil sur toutes les instances CrowdSec que vous gérez (état, version installée, scénarios pris en charge, bouncers, etc.)
  • Récapitulatif des alertes sur chaque instance pour obtenir plus d'informations sur l'origine de l'attaquant (adresse IP, pays d'origine, agressivité, type d'attaque, etc.)
  • Cyber Threat Intelligence (CTI) pour obtenir des informations sur la réputation d'une adresse IP spécifique, en s'appuyant sur la puissance de la communauté CrowdSec et aux différentes informations collectées et remontées par toutes les instances

Par la suite, d'autres fonctionnalités seront ajoutées à la console CrowdSec pour agir directement sur les instances CrowdSec gérées, notamment dans le but de mettre à jour les scénarios, ajouter un nouveau bouncer, etc...

Le tableau ci-dessous montre les différences entre la version gratuite et les versions payantes de CrowdSec Console. Ceci est donné à titre indicatif et je vous encourage à consulter le site officiel pour voir l'état actuel des offres, car c'est susceptible d'évoluer dans le temps. Seule certitude : il y aura toujours une offre gratuite.

III. Premiers pas avec la console CrowdSec

A. Créer un compte

Rendez-vous sur le site app.crowdsec.net pour créer un compte gratuit en cliquant sur "Subscribe" et commencer à profiter de la console CrowdSec. Quelques secondes suffisent puisqu'il suffit d'indiquer un e-mail, un mot de passe puis de saisir le code de validation reçu par e-mail.

Tutoriel console CrowdSec

Une fois que l'inscription est effectuée, vous pouvez vous connecter. L'étape suivante consiste à connecter vos instances CrowdSec à la console.

B. Enregistrer une instance CrowdSec

Pour enregistrer une instance, ce n'est pas bien compliqué, car la commande d'enrollment est présentée à l'écran. Elle intègre le jeton correspondant à votre console CrowdSec personnelle. En exécutant cette commande sur chacune de vos instances CrowdSec, vous pouvez faire le lien entre la console CrowdSec et vos instances en un claquement de doigt.

sudo cscli console enroll cl1111111111111111111111vp

Avec cette commande, la demande d'inscription apparaîtra avec un identifiant peu évocateur mais il est possible de nommer l'instance directement de cette façon :

sudo cscli console enroll cl1111111111111111111111vp --name "WIN-CROWDSEC"

On peut aussi ajouter des tags directement dès l'enregistrement via le paramètre "-tags" :

sudo cscli console enroll cl1111111111111111111111vp --name "WIN-CROWDSEC" --tags Windows

Que ce soit sur un hôte Linux ou Windows, la commande d'inscription sera identique, à la différence que sous Windows il ne faudra pas préciser "sudo" devant la commande, mais exécuter la commande dans une console Administrateur.

Suite à l'exécution de cette commande, une requête d'inscription s'affiche sur la console Web, il suffit de cliquer sur "Accept" pour valider l'inscription. Sans cela, l'inscription sera en attente et échouera.

L'instance va apparaître dans la console CrowdSec. Côté instance, il faut redémarrer le service CrowdSec pour que les informations soient envoyées dès maintenant à la console.

  • Sur Windows :
Restart-Service crowdsec
  • Sur Linux :
systemctl restart crowdsec

La commande ci-dessous permet de voir l'état de la connexion à la console, et notamment ce qui est actif ou non en termes d'envoi de données.

cscli console status

L'accueil de la console CrowdSec affiche l'onglet "Instances", ce qui donne un aperçu de toutes les instances CrowdSec raccordées à ce compte. La vignette intègre quelques informations, comme le nombre d'alertes, le nombre de bouncers, ou encore les tags associés à chaque instance. En effet, on peut renommer l'instance comme on le souhaite et lui attribuer un ou plusieurs tags.

Au moment de faire l'inscription à la console, si vous obtenez l'erreur "While executing root command : unknown command "console" for "cscli", ce n'est pas nécessaire de paniquer. En fait, cela signifie que votre version de CrowdSec n'est pas suffisamment à jour et donc qu'elle ne prend pas en charge la console. La commande ci-dessous vous permet de visualiser la version actuelle de votre instance CrowdSec :

cscli version

Pour mettre à jour CrowdSec, vous pouvez mettre à jour le cache des paquets sur votre machine et effectuer une mise à niveau des paquets.

sudo apt-get update
sudo apt-get upgrade

Si votre système ne vous propose pas une mise à jour de CrowdSec, c'est peut-être que vous n'utilisez pas le dépôt officiel. Pour l'ajouter, exécutez cette commande :

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

Une fois que c'est fait, relancez la commande ci-dessous et la mise à jour CrowdSec devrait être proposée. Ensuite, il sera nécessaire de relancer la commande d'inscription à la console.

sudo apt-get upgrade

C. Consulter les alertes

Partons à la découverte de la console en regardant les différents onglets. L'onglet "Alerts" permet de visualiser les alertes d'une instance spécifique ou de l'ensemble de vos instances. On voit tout de suite l'intérêt de la console qui va permettre de consolider les données en provenance de différents serveurs où CrowdSec est déployé.

Si l'on sélectionne une instance, on voit la section "Visualizer" apparaître avec un historique des alertes mis en forme avec de jolis graphiques qui sont mis à jour en temps réel. Par exemple, on peut voir quelles sont les adresses IP sources qui ont le plus attaqué notre machine sur une période donnée. Autre exemple : de quels pays proviennent les attaques à destination de mes serveurs protégés par CrowdSec ? Dans la version gratuite, l'historique est limité aux 7 derniers jours (ou 500 alertes).

On peut combiner l'utilisation de plusieurs filtres. Ainsi, on peut ne pas sélectionner d'instance et mettre à la place un filtre sur une adresse IP source afin de voir si une même adresse IP a attaqué plusieurs de nos instances CrowdSec.

De manière générale, la console se veut super simple et intuitive à utiliser. En fait, on peut cliquer sur les différents éléments (adresse IP, pays, scénarios) présent dans les listes ou les graphiques pour créer des filtres rapidement, ce qui permet de gagner du temps. Autrement dit, quand on veut faire un filtre, il n'est pas obligatoire de passer par le menu "Filter".

En descendant dans la page, on peut obtenir un listing des dernières alertes dans le même esprit que ce que retourne la commande "cscli alerts list" sauf qu'ici nous avons l'information sur la page web directement, et pour toutes les instances CrowdSec. Lorsque l'on utilise la commande évoquée précédemment, il faut passer sur chaque instance.

En basculant sur la vue "Expanded" à la place de "Summary", les graphiques sont plus grands et plus détaillés, ce qui permet d'avoir une analyse plus précise. L'occasion de visualiser aussi le Top des adresses IP qui sont à l'origine d'attaques sur mes serveurs.

Nous pouvons également créer des filtres pour inclure ou exclure des valeurs, d'un simple clic sur une entrée.

Dans le même esprit, nous avons des statistiques sur les scénarios. Ici, c'est sur mon instance CrowdSec qui tourne sur un serveur Windows et on peut voir que toutes les attaques bloquées sont de type "windows-bf", c'est-à-dire du brute force sur l'authentification. Le graphique montre également l'évolution dans le temps avec le nombre de fois où le scénario s'est déclenché pour chaque jour.

D. L'onglet "CTI"

L'onglet CTI fait référence à la Cyber Threat Intelligence, c'est-à-dire à la collecte d'informations à partir de toutes les instances CrowdSec déployées afin de pouvoir catégoriser les différentes adresses IP à l'origine d'attaques. Avec cette fonctionnalité, on exploite toute la puissance de la communauté CrowdSec !

Une adresse IP s'est comportée d'une certaine façon sur mon serveur (par exemple : attaque brute force SSH tous les jours), mais qu'en est-il avec le reste de la communauté ? En s'appuyant sur la CTI, on va pouvoir en apprendre plus sur l'adresse IP à l'origine de l'attaque. C'est une manière de se renseigner sur les adresses IP qui sont à l'origine d'attaques sur son propre serveur : est-ce une adresse IP agressive ? Est-ce une attaque ciblée ? Est-ce un robot ? Prenons un exemple avec l'adresse IP "87.251.64.160" qui cible régulièrement mon serveur Windows : c'est l'adresse IP source en tête du classement.

Note : pour cet exemple, je suis passé par l'onglet "CTI" puis j'ai précisé l'adresse IP. Néanmoins, on peut directement cliquer sur une adresse IP dans la section "Alerts" puis sur le bouton "More about X.X.X.X" afin d'accéder directement à la CTI, sur la page de cette adresse IP.

Je sais déjà qu'elle est localisée en Russie, mais grâce à la CTI, je sais aussi qu'elle est réputée pour effectuer des scans TCP et des attaques par brute force sur les accès RDP et SSH. Cela me parle puisque mon serveur est accessible en RDP sur le port par défaut. D'un côté, cela me rassure, car c'est probablement un bot qui effectue des attaques automatisées.

En complément, la section "Community Report" permet de voir dans quelle mesure la communauté CrowdSec a repéré cette adresse IP. Il y a un taux d'agressivité sur les dernières 24 heures, les 7 derniers jours et depuis toujours, ce qui est un bon indicateur en termes de tendance. On peut aussi voir grâce au calendrier sous "Report period" que cette adresse IP est utilisée pour effectuer des attaques depuis novembre 2021 et qu'elle est toujours active aujourd'hui.

Le niveau de confiance donne une appréciation globale sur cette adresse IP et qui tient compte des différents indicateurs. Voici un descriptif des différents niveaux :

E. Les onglets "Activity" et "Settings"

L'onglet "Activity" permet d'avoir un historique de l'activité au sein de la console CrowdSec : nouvelle instance ajoutée, instance modifiée, etc. Quant à l'onglet "Settings", il permet d'ajouter des utilisateurs (mais c'est limité à un compte en version gratuite), de gérer les informations de paiement, ou encore d'activer le MFA pour sécuriser l'accès à la console CrowdSec. Bien sûr, c'est recommandé.

IV. Conclusion

Au-delà d'apporter du confort dans la lecture des informations grâce à cette interface web conviviale, la console CrowdSec a une réelle utilité pour analyser les adresses IP malveillantes à l'origine d'attaques sur ses serveurs protégés par CrowdSec. Ainsi, on peut avoir des statistiques intéressantes, comparer les attaques reçues par ses différents serveurs et s'appuyer sur la Cyber Threat Intelligence pour en apprendre plus au sujet d'une adresse IP malveillante.

Ce qui serait intéressant par la suite, c'est de pouvoir recevoir une notification par e-mail lorsqu'il y a une nouvelle alerte sur un serveur protégé par CrowdSec. Alors, pas à chaque alerte, sinon cela risque d'être trop fréquent et non pertinent, mais selon certains critères : une nouvelle adresse IP malveillante qui s'en prend uniquement à mon serveur et pas au reste de la communauté, cela vaut peut-être le coup de s'y intéresser de plus près.

Que pensez-vous de cette console CrowdSec ? Allez-vous connecter vos instances dessus ? Si vous avez une idée de fonctionnalités, vous pouvez laisser un commentaire sur cet article et je me chargerai de remonter l'information aux équipes de CrowdSec.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3858 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.