Protéger nos machines avec Crowdsec – Première partie

Attention, c’est le… Je suis désolé, Mais c’est vrai… Pour ceux qui ne le savent pas encore, Dans une série d’articles, j’ai l’intention de montrer certaines des merveilles de Crowdsec et comment nous pouvons protéger notre infrastructure contre les attaques ou les accès inappropriés.

Avant de commencer à décrire le produit en tant que tel, de son architecture… Commençons à penser que j’étais un utilisateur heureux de fail2ban jusqu’à ce que je découvre Crowdsec. Il s’avère que Crowdsec, est un IDS et un IPS, Détecte et bloque l’accès aux machines, Je m’en fiche si c’est une machine sur un LAN, qu’un service publié sur Internet, être un Linux, Windows ou conteneur. Crowdsec s’il détecte une attaque DDoS, un balayage de port, Une analyse de vulnérabilité, ou simplement des accès incorrects (À ce site web s’il s’agit d’un site web, à ce RDP s’il s’agit d’un Windows, SSH, CIFS…). Crowdsec détectera cet accès inapproprié et prendra une action, La chose la plus normale, Faites-le bannir, comment? enfin, entre autres, du pare-feu du système d’exploitation (Windows, Linux…). Ainsi, Crowdsec créera une règle dans le micrologiciel du système d’exploitation pour bloquer cette adresse IP source. De plus,, Évidemment, Crowdsec lira également les journaux de nos applications, services… et d’après ce que je vois, Acte, Attention aux attaquants.

Puits, Si seulement c’était le cas, Je ne vous ai pas dit que c’était le, Encore, Encore… Crowdsec est un logiciel libre, qui a une partie commerciale si vous voulez et que nous ne verrons pas dans cette série d’articles, Donc, ce que nous allons voir dans cette série sera tout ouvert. Total, que Crowdsec détecte les comportements, Gestion de la réputation et des menaces, mais il dispose également d’une liste noire d’adresses IP publiques, partagé et nourri par tous ceux d’entre nous qui utilisent Crowdsec; Donc, quand il y a une majorité qui détecte une menace, Nous serons tous alertés et prévenus!

Attendez, nous n’avons pas fini, il s’avère que Crowdsec peut être installé comme nous l’avons dit sur Windows, macOS, Linux, Kubernetes, Docker, OpenWRT… eh bien, grâce à l’API Crowdsec, nos machines pourront également partager une liste noire d’adresses IP entre elles. C’est, que si quelqu’un m’attaque une machine, Le reste bloquera votre accès avant que vous n’essayiez, curieux… Puits, Crowdsec détectera réellement et le « videur »’ Acte (Ensuite, allons-y).

Il y a encore beaucoup à faire, Nous le verrons petit à petit, notifications de simulation par Telegram, La console Web dont vous disposez, qui s’intègre à Prometheus, Grafana… Mais, Voulez-vous savoir, à mon avis, la chose la plus curieuse de toutes ?? Peut-être pensez-vous que c’est de la connerie, Pour moi, c’est la bombe. Attentif!!! car il est, que si nous avons un pare-feu d’entreprise dans l’entreprise, Un véritable périmètre, un Fortigate par exemple, un pfSense… Nous pouvons faire en sorte que ces pare-feu se nourrissent également de ces listes noires! Oh! Et avoir des règles dans nos pare-feu (En plus de tout) qui refusent l’accès à ces IP noires à d’autres machines, Segments de réseau… Oh mon dieu!

Il est léger, moduler, Simple à configurer… Puits, Commençons parce que je parle beaucoup 😉

Dans ce premier post, nous allons savoir: Comment installer Crowdsec sur un Linux, Les commandes de base, Comment installer Crowdsec sur un Windows, Utilisation de la console, nous faisons un test d’attaque et enfin comment gérer les alertes par Telegram. Presque rien.

Dans d’autres articles, nous verrons comment faire une installation multi-serveur, C’est, que nos machines partagent des informations, ou intégrez-le à notre pare-feu Fortigate…

Inutile de recommander son doc officiel: https://docs.crowdsec.net

Installer Crowdsec sur Linux

L’installation est très simple, Partons d’un exemple que nous voulons protéger un Nginx qui fonctionne sur un Ubuntu, Nous installons avec:

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | Sudo Bash sudo apt install crowdsec -y
   ...
   INFO[11/12/2022:04:24:15 PM] crowdsec_wizard: Installing collection 'crowdsecurity/linux'
   INFO[11/12/2022:04:24:21 PM] crowdsec_wizard: Installing collection 'crowdsecurity/nginx'
   INFO[11/12/2022:04:24:24 PM] crowdsec_wizard: Installing collection 'crowdsecurity/sshd'
   ...

Comme nous pouvons le voir, lors de l’installation de l’agent Crowdsec pour Linux, détecte que nous avons des services SSHd et Nginx, et donc automatiquement et sans rien faire d’autre, Il détectera déjà les anomalies.

La prochaine chose est, si nous voulons une action pour bannir les adresses IP sources, car nous avons besoin d’avoir un pare-feu installé et érigé sur l’OS, que d’habitude tout le monde l’apporte, Nous comprenons que nous utilisons iptables, Il prendrait également en charge les NFTables, Ipset ou P, dépend de notre système d’exploitation. Et nous installons le videur correspondant:

sudo apt install crowdsec-firewall-bouncer-iptables -y

Eh bien, en principe maintenant, il serait prêt, Protégé par la machine! 🙂 Prenez-le maintenant! Faisons maintenant le même processus sur un Windows, pour voir les similitudes, Et puis nous suivons plus en détail peut-être les commandes les plus intéressantes, nous parlerons de l’API… Il est vrai que nous avons d’autres détails, que nous verrons.

Installer Crowdsec sur Windows

Ce que j’ai dit, Nous faisons le même exercice, installer Crowdsec sur une machine Windows, dans le but de la protéger. Et si quelqu’un essaie d’accéder par RDP et saisit le mauvais mot de passe (Faire défaut 5 fois) Eh bien, bannissez-le, ou par CIFS, Ou ce que vous voulez, Passez un scanner 😉

Tout d’abord, télécharger et installer la configuration requise pour .NET Runtime: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer (ou une version supérieure, Cela dépend du moment où vous lisez ceci).

Et nous pouvons continuer, nous avons téléchargé le programme d’installation MSI à partir de https://github.com/crowdsecurity/crowdsec/releases/

“Suivant”,

“Oui chéri”,

“Oui”,

Nous attendons quelques secondes pendant qu’il s’installe…

Et finir! Nous avons déjà installé Crowdsec!

Mais attention, nous n’en avons pas fini, de même, Crowdsec détectera mais ne sera pas en mesure d’effectuer des actions, pour cela, nous aurons besoin du videur pour le pare-feu Windows. Ainsi, Nous le téléchargeons et l’installons: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases

“Installer”,

Et maintenant, c’est le cas. PC Windows protégé!

Effectuer une attaque test

Tout d’abord, Pourquoi ne validons-nous pas que cela fonctionne? C’est ainsi que nous voyons quelques premières commandes initiales. Rien, Très simple, intrépide, Comment le tester?

Eh bien, l’ordinateur Windows lui-même essaie de vous valider 5 temps avec des informations d’identification incorrectes par RDP (Bureau à distance), ou via CIFS et un dossier partagé… Si vous le souhaitez, vous le compliquez et faites un balayage de port, ou vulnérabilités… vous verrez comment la machine Windows vous bloque.

Il va créer une règle dans le pare-feu natif avec une exception refusant tout accès à partir de ladite IP malveillante.

Et l’équipe Linux, si, par exemple, il porte un Nginx comme c’était le cas précédent, Eh bien, nous pouvons télécharger Nikto qui est un scanner de serveur Web, et nous vérifions s’il le détecte:

git clone https://github.com/sullo/nikto cd nikto/program git checkout nikto-2.5.0 ./nikto.pl -h https://XXX.XXX.XXX.XXX

Après cela, c’est la même chose, La machine Linux nous refusera l’accès immédiatement avec une exception dans le pare-feu.

Commandes de base

Comme excuse, nous passons au point suivant du document, Commandes minimales que nous pourrions être intéressés à connaître (Nous en saurons plus tard):

Voir la liste des bannissements ou blocages:

Liste des décisions Sudo CSCLI

Et cela nous reviendra qu’il n’y a pas d’interdictions, Si nous n’avons pas fait le test.

Ou qu’il a détecté un blocage et nous montre son adresse IP, Votre raison, Temps de blocage…

Bannissement manuel d’une IP:

sudo cscli décisions add --ip DIRECCIÓN_IP --reason "Description"

Deban, ou débloquer une adresse IP:

Sudo cscli décisions supprimer --IP DIRECCIÓN_IP

Con 'sudo cscli alertes list’ Nous verrons les alertes qui se sont déclenchées, con 'sudo cscli alerts inspect ID’ Nous aurions plus de détails sur chaque alerte.

Con 'sudo /usr/share/crowdsec/wizard.sh -c’ nous pouvons activer/désactiver les services à surveiller avec Crowdsec.

Dans ce fichier '/etc/crowdsec/parsers/s02-enrich/whitelists.yaml’ Nous aurons la possibilité d’exclure une machine et de la mettre sur liste blanche, Par défaut, il apporte 3 plages exclues et si vous n’avez pas été détecté par l’attaque test, Peut-être que vous allez tirer 😉 par ici

Nom: CrowdSecurity/Listes blanches Description: "Mettre en liste blanche les événements à partir d’adresses IPv4 privées"
Liste blanche:
  raison: "IP/plages IPv4/IPv6 privées"
  IP:
    - "127.0.0.1"
    - "::1"
  Cidr:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # expression:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

Notifications Telegram

Eh bien, ce dernier jour et un autre jour, nous continuerons, qu’il y a beaucoup à voir et à raconter 🙂 Par défaut et sans gâcher Telegram, nous pourrions envoyer des notifications à Slack, Splunk, Messagerie électronique…

Nous modifions le fichier de profil '/etc/crowdsec/profiles.yaml’ Et nous annulons nos commentaires sur ceux-ci 2 Lignes:

Notifications:
  - http_default

Nous modifions comme il est dit dans '/etc/crowdsec/notifications/http.yaml’ Rester quelque chose comme ça, nous devons prendre en compte le changement de l’ID du groupe Telegram et du Token:

type: Nom HTTP: http_default log_level: Format d’information: |
  {
   "chat_id": "-ID_CHAT_TELEGRAM",
   "SMS": "
     {{gamme . -}}
     {{$Alerte := . -}}
     {{gamme. Décisions -}}
     {{.Valeur}} obtiendra {{.Type}} pour la suite {{.Durée}} pour le déclenchement {{.Scénario}}.\rn https://www.shodan.io/host/{{.Valeur}}
     {{Fin -}}
     {{Fin -}}
   "
  }

URL: https://api.telegram.org/botTOKEN/sendMessage méthode: En-têtes POST:
  Type de contenu: "application/json"

Comme d'habitude, toutes les modifications que vous avez pour redémarrer le service Crowdsec:

sudo systemctl restart crowdsec

Et voilà !! Les messages Telegram arriveront instantanément!

Venir, Un autre jour, nous continuons, C’est aller en enfer, Nous laissons beaucoup de choses à voir, Nous devons parler de plus de commandes, API, depuis leur tableau de bord ou leur console web que je vous ai dit que nous verrions, Mais s’il vous plaît… C’est très long : nous 🙂 devons faire en sorte que tous nos agents se parlent, (si cela devait vous intéresser), la partie de l’intégration avec nos pare-feu de périmètre… Voir la partie Prometheus, Grafana…

Puits, J’espère que c’est une solution intéressante, que je suis sûr que beaucoup d’entre nous ont publié des services sur Internet sans cette protection. Ou pourquoi pas, l’implémenter sur les machines internes de notre organisation, entre eux, ils forment un filet et se protègent mutuellement…

Puits, Quel gros câlin!

Articles recommandés

Auteur

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, N’hésitez pas à me contacter, J’essaierai de vous aider chaque fois que je le pourrai, Partager, c’est vivre ;) . Profiter des documents!!!