Schutz unserer Maschinen mit Crowdsec – Teil I.

Sehen Sie, dass dies die Ostia ist… Verzeihung, aber es ist wahr… Für die, die es noch nicht wissen, In einer Reihe von Beiträgen beabsichtige ich, einige der Wunder von Crowdsec aufzuzeigen und zu zeigen, wie wir unsere Infrastruktur vor Angriffen oder missbräuchlichem Zugriff schützen können..

Bevor Sie beginnen, das Produkt als solches zu beschreiben, seiner Architektur… Beginnen wir damit, dass ich ein glücklicher fail2ban-Benutzer war, bis ich Crowdsec entdeckte.. Es stellt sich heraus, dass Crowdsec, ist ein IDS und ein IPS, erkennt und blockiert den Zugriff auf Maschinen, Es ist mir egal, ob es sich um eine Maschine in einem LAN handelt, dass ein im Internet veröffentlichter Dienst, Meer un Linux, Windows oder Container. Crowdsec erkennt einen DDoS-Angriff, ein Portscan, ein Schwachstellenscan, oder einfach falsche Zugriffe (zu diesem Web, wenn es ein Web ist, zu diesem RDP, wenn es ein Windows ist, SSH, CIFS…). Crowdsec erkennt diesen missbräuchlichen Zugriff und ergreift entsprechende Maßnahmen, als normal, verbiete ihm, Wie? Nun, unter anderem von der Betriebssystem-Firewall selbst (del Windows, von Linux…). Daher erstellt Crowdsec eine Regel in der Betriebssystem-FW, um diese Quell-IP zu blockieren. auch, offensichtlich, Crowdsec liest auch die Protokolle unserer Apps, Dienstleistungen… und basierend auf dem, was Sie sehen, Wird handeln, Auge des Angreifers.

gut, wenn es nur so wäre, Ich habe dir nicht gesagt, dass es der Gastgeber war, Ich folge, Ich folge… Crowdsec ist eine kostenlose Software, das hat auf Wunsch einen kommerziellen Teil und wir werden es in dieser Beitragsserie nicht sehen, Was wir also in dieser Serie sehen werden, wird alles offen sein. Gesamt, dass Crowdsec Verhaltensweisen erkennt, baut auf Reputation auf und verwaltet Bedrohungen, aber es hat auch eine schwarze Liste öffentlicher IP-Adressen, Geteilt und unterstützt von allen, die Crowdsec verwenden; also wenn es eine Mehrheit gibt, die eine Bedrohung erkennt, wir werden alle alarmiert und gewarnt sein!

Warte, wir sind noch nicht fertig, Es stellt sich heraus, dass Crowdsec wie gesagt in Windows installiert werden kann, Mac OS, Linux, Gouverneure, Docker, OpenWRT… Nun, dank der Crowdsec-API, Unsere Maschinen werden auch in der Lage sein, eine schwarze Liste von IPs untereinander zu teilen. das heißt, was ist, wenn jemand mich eine Maschine angreift, der Rest blockiert Ihren Zugang, bevor Sie es versuchen, neugierig… gut, realmente Crowdsec detectará y elbouncer‘ Wird handeln (dann gehen wir dazu).

viel mehr bleibt, wir werden es nach und nach sehen, Was wäre, wenn Benachrichtigungen per Telegramm, die Webkonsole, die Sie haben, die sich in Prometheus integriert, Grafana… aber, Wollen Sie meiner Meinung nach das Kurioseste von allem wissen?? Es kommt dir immer noch wie Blödsinn vor, Für mich ist es die Bombe. Aufmerksam!!! Nun, es stellt sich heraus, Was ist, wenn wir eine Unternehmens-Firewall im Unternehmen haben?, ein echter Umkreis, ein Fortigate zum Beispiel, un pfSense… Wir können diese Firewalls dazu bringen, sich auch von diesen schwarzen Listen zu ernähren! Oh! Und haben einige Regeln in unseren Firewalls (über alles) die anderen Maschinen den Zugriff auf diese schwarzen IPs verweigern, Netzwerksegmente… oh mein Gott!

Es ist Licht, modular, einfach einzurichten… gut, Wir werden anfangen, dass ich viel rede 😉

In diesem ersten Beitrag werden wir es wissen: wie man crowdsec unter linux installiert, die Grundkommandos, So installieren Sie Crowdsec unter Windows, die Nutzung der Konsole, Wir führen einen Testangriff durch und schließlich, wie man Warnungen per Telegramm verwaltet. Fast nichts.

In anderen Beiträgen werden wir sehen, wie man eine Multi-Server-Installation durchführt, nämlich, dass unsere Maschinen die Informationen teilen, oder in unsere Fortigate-Firewall integrieren…

Super empfehlen Sie Ihr offizielles Dokument: https://docs.crowdsec.net

Installieren Sie Crowdsec unter Linux

Die Installation ist sehr einfach, Beginnen wir mit einem Beispiel, dass wir ein Nginx schützen möchten, das auf einem Ubuntu läuft, wir installieren mit:

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 PN] crowdsec_wizard: Sammlung ‚crowdsecurity/linux‘ installieren
   DIE INFO[11/12/2022:04:24:21 PN] crowdsec_wizard: Sammlung ‚crowdsecurity/nginx‘ installieren
   DIE INFO[11/12/2022:04:24:24 PN] crowdsec_wizard: Sammlung ‚crowdsecurity/sshd‘ installieren
   ...

wie wir sehen,, bei der Installation des Crowdsec-Agenten für Linux, erkennt, dass wir die Dienste SSHd und Nginx haben, und damit automatisch und ohne weiteres Zutun, es wird Anomalien erkennen.

Das nächste ist, wenn wir eine Maßnahme zum Sperren der Quell-IP-Adressen wünschen, Nun, wir müssen eine Firewall installiert und im Betriebssystem aktiviert haben, dass es normalerweise jeder bringt, Wir verstehen, dass wir iptables verwenden, es wäre auch mit nftables kompatibel, ipset oder pf, hängt von unserem Betriebssystem ab. Und wir installieren den passenden Türsteher:

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

Nun, im Prinzip wäre ich jetzt bereit, geschützte Maschine! 🙂 Nimm es jetzt! Wir werden jetzt den gleichen Vorgang in einem Windows durchführen, um die Ähnlichkeiten zu sehen, und dann fahren wir detaillierter mit den vielleicht interessantesten Befehlen fort, Wir werden über die API sprechen… Es ist wahr, dass wir andere Details haben, das werden wir sehen.

Installieren Sie Crowdsec unter Windows

ich sagte:, Wir machen die gleiche Übung, Installieren Sie Crowdsec auf einem Windows-Rechner, um sie zu beschützen. Und wenn jemand versucht, über RDP zuzugreifen und das falsche Passwort eingibt (standardmäßig 5 mal) Nun, verbiete es ihm, oder per CIFS, oder für was du willst, scannen 😉

bevor irgendetwas, Laden Sie die .NET Runtime-Anforderung herunter und installieren Sie sie: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-6.0.11-windows-x64-installer (oder höhere Version, kommt drauf an wann du das liest).

Und wir können fortfahren, Laden Sie das MSI-Installationsprogramm von herunter https://github.com/crowdsecurity/crowdsec/releases/

„folgende“,

„ja Liebling“,

„ja“,

Wir warten ein paar Sekunden, während es installiert wird…

und beende! Wir haben bereits Crowdsec installiert!

Aber Vorsicht, wir sind noch nicht fertig, ebenso erkennt Crowdsec Aktionen, kann diese aber nicht ausführen, Dazu benötigen wir den Bouncer für die Windows-Firewall. so, Wir laden es herunter und installieren es: https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases

„Installieren“,

Und jetzt ja ja. Geschützter Windows-Computer!

Testangriff durchführen

bevor irgendetwas, warum validieren wir nicht, dass das funktioniert? Wir sehen also einige erste Anfangsbefehle. nichts, sehr leicht, ohne Angst, wie man es testet?

Nun, das Windows-Team selbst versucht, Sie zu validieren 5 mal mit falschen Zugangsdaten per RDP (Remote-Desktop), oder über CIFS und einen freigegebenen Ordner… Wenn Sie möchten, komplizieren Sie und führen Sie einen Port-Scan durch, das der Schwachstellen… Sie werden sehen, wie die Windows-Maschine Sie zum Absturz bringt.

Es erstellt eine Regel in der nativen Firewall mit einer Ausnahme, die jeglichen Zugriff von dieser bösartigen IP verweigert.

Und an das Linux-Team, wenn Sie zum Beispiel einen Nginx haben, wie es im vorherigen Fall der Fall war, Nun, wir können Nikto herunterladen, einen Webserver-Scanner, und wir überprüfen, ob es es erkennt:

Git-Klon https://github.com/sullo/nikto
cd niemand/Programm
git Kasse niemand-2.5.0
./nikto.pl -h https://XXX.XXX.XXX.XXX

Danach das gleiche, Der Linux-Rechner verweigert uns sofort den Zugriff mit einer Ausnahme in der Firewall.

Grundbefehl

Como excusa pasamos al siguiente punto del documento, comandos mínimos que quizá nos interese conocer (ya conoceremos más posteriormente):

Ver la lista de baneos o bloqueos:

sudo cscli decisions list

Y esto nos devolverá que no hay baneos, si es que no hicimos el test.

O que ha detectado algún bloqueo y nos muestra su IP, su razón, el tiempo de bloqueo

Banear manualmente una IP:

sudo cscli decisions add --ip DIRECCIÓN_IP --reason "Beschreibung"

Desbanear, o desbloquear una dirección IP:

sudo cscli decisions delete --ip DIRECCIÓN_IP

mit ‚sudo cscli alerts listveremos las alertas que han saltado, mit ‚sudo cscli alerts inspect IDtendríamos más detalles de cada alerta.

mit ‚sudo /usr/share/crowdsec/wizard.sh -c‘ Wir können mit Crowdsec zu überwachende Dienste aktivieren/deaktivieren.

in dieser Datei ‚/etc/crowdsec/parsers/s02-enrich/whitelists.yaml‘ Wir werden die Möglichkeit haben, jede Maschine auszuschließen und sie in weiße Listen aufzunehmen, standardmäßig bringt 3 ausgeschlossenen Bereiche und wenn Sie von der Testattacke nicht erkannt wurden, die Aufnahmen gehen hier 😉

Name: Crowdsecurity/Whitelists
Bezeichnung: "Whitelist-Ereignisse von privaten IPv4-Adressen"
Weiße Liste:
  Grund: "private ipv4/ipv6 ip/ranges"
  ip:
    - "127.0.0.1"
    - "::1"
  cidr:
    #- "192.168.0.0/16"
    #- "10.0.0.0/8"
    - "172.16.0.0/12"
  # Ausdruck:
  #   - "'foo.com' in evt.Meta.source_ip.reverse"

Telegrammbenachrichtigungen

Nun, an diesem letzten und einem weiteren Tag machen wir weiter, dass es viel zu sehen und zu erzählen gibt 🙂 Standardmäßig und ohne einen Teil von Telegram durcheinander zu bringen, könnten wir Benachrichtigungen an Slack senden, Splunk, Email…

Bearbeiten Sie die Profildatei ‚/etc/crowdsec/profiles.yaml‘ und kommentieren Sie diese aus 2 Linien:

Benachrichtigungen:
  - http_default

Wir bearbeiten, wie es in steht ‚/etc/crowdsec/notifications/http.yaml‘ bleiben so etwas, Wir müssen die Änderung der ID der Telegrammgruppe und des Tokens berücksichtigen:

Art: http
Name: http_default

Protokollebene: die Info

Format: |
  {
   "chat_id": "-ID_CHAT_TELEGRAM",
   "Text": "
     {{Angebot . -}}
     {{$warnen := . -}}
     {{Bereich .Entscheidungen -}}
     {{.Wert}} wird bekommen {{.Art}} Fürs nächste {{.Dauer}} zum Auslösen {{.Szenario}}.\r\n https://www.shodan.io/host/{{.Wert}}
     {{Ende -}}
     {{Ende -}}
   "
  }

url: https://api.telegram.org/botTOKEN/sendMessage

Methode: POST

Kopfzeilen:
  Inhaltstyp: "Anwendung / json"

wie immer, Bei jeder Änderung müssen Sie den Crowdsec-Dienst neu starten:

sudo systemctl startet Crowdsec neu

und los gehts! Telegrammnachrichten kommen sofort an!

Venga, An einem anderen Tag geht es weiter, das wird verrückt, wir ließen viele Dinge zu sehen, Wir müssen über weitere Befehle sprechen, API, von Ihrem Dashboard oder Ihrer Webkonsole, von der ich Ihnen gesagt habe, dass wir sie sehen würden, aber prffff… das ist sehr lang 🙂 Wir müssen alle unsere Agenten dazu bringen, miteinander zu reden, (wenn es dich interessiert), der Teil der Integration mit unseren Perimeter-Firewalls… Siehe den Prometheus-Teil, Grafana…

gut, Ich hoffe, es ist eine interessante Lösung, dass ich sicher bin, dass viele von uns Dienste ohne diesen Schutz im Internet veröffentlicht haben. oder warum nicht, Implementieren Sie es in den internen Maschinen unserer Organisation, Zwischen ihnen bilden sie ein Netz und schützen sich…

gut, Was für eine große Umarmung!

Hector Herrero
Letzte Artikel von Hector Herrero (Alle anzeigen)