Linux Security

Collections, Parser und Szenarien – So erkennt CrowdSec Angriffe

Wie erkennt CrowdSec Angriffe? Lernen Sie die Rolle von Collections, Parsern und Szenarien kennen und verstehen Sie, wie das intelligente Bucket-System verdächtige Aktivitäten zuverlässig identifiziert.

4 min Lesezeit
Grafik: CrowdSec: Collections, Parser und Szenarien verstehen

Das Herzstück der CrowdSec-Angriffserkennung verstehen

CrowdSec erkennt Angriffe nicht durch einfache Regeln oder feste Schwellwerte, sondern durch ein mehrstufiges Analyseverfahren. Logdateien werden zunächst eingelesen, anschließend in ein einheitliches Format gebracht und schließlich mithilfe intelligenter Szenarien ausgewertet. Erst wenn ein bestimmtes Angriffsmuster erkannt wird, reagiert CrowdSec mit einer entsprechenden Schutzmaßnahme.

Dieses Konzept macht CrowdSec deutlich flexibler und leistungsfähiger als klassische Werkzeuge zur Angriffserkennung.

In diesem Teil der Serie werfen wir einen detaillierten Blick auf die drei wichtigsten Bausteine der Analyse: Collections, Parser und Szenarien.


Wie CrowdSec einen Angriff erkennt

Jeder Angriff durchläuft mehrere Verarbeitungsstufen.

Logdatei
    │
    ▼
Collection
    │
    ▼
Parser
    │
    ▼
Normalisierte Ereignisse
    │
    ▼
Szenarien
    │
    ▼
Bucket-System
    │
    ▼
Decision
    │
    ▼
Bouncer

Jede dieser Stufen erfüllt eine klar definierte Aufgabe.


Was sind Collections?

Collections sind vorkonfigurierte Pakete für bestimmte Anwendungen oder Dienste.

Sie dienen als Installationspakete und bündeln alle Komponenten, die für die Angriffserkennung einer Anwendung erforderlich sind.

Eine Collection kann beispielsweise enthalten:

  • Parser
  • Szenarien
  • Postoverflows
  • Konfigurationsdateien
  • Abhängigkeiten

Dadurch entfällt die manuelle Installation jeder einzelnen Komponente.


Beispiel: SSH-Collection

Installieren Sie die SSH-Collection, werden automatisch alle benötigten Parser und Szenarien eingerichtet.

sudo cscli collections install crowdsecurity/sshd

Nach der Installation erkennt CrowdSec unter anderem:

  • SSH-Brute-Force
  • Passwort-Spraying
  • ungewöhnliche Login-Versuche
  • Bot-Angriffe
  • bekannte Scanner

Beispiel: Apache-Collection

Für Apache genügt ebenfalls ein einzelner Befehl.

sudo cscli collections install crowdsecurity/apache2

Anschließend kann CrowdSec unter anderem erkennen:

  • SQL-Injection
  • Directory Traversal
  • Webscanner
  • WordPress-Angriffe
  • Bots
  • Bad User Agents
  • API-Missbrauch

Installierte Collections anzeigen

sudo cscli collections list

Alle verfügbaren Collections:

sudo cscli hub list

Die Parser-Kette

Parser bilden die erste eigentliche Analyseebene.

Da jede Anwendung ein eigenes Logformat besitzt, müssen die Informationen zunächst vereinheitlicht werden.

Ein SSH-Log unterscheidet sich beispielsweise erheblich von einem Apache-Log.

Parser übernehmen unter anderem folgende Aufgaben:

  • Zeitstempel lesen
  • IP-Adresse extrahieren
  • Benutzername erkennen
  • HTTP-Methode auslesen
  • Statuscodes übernehmen
  • Fehlermeldungen identifizieren
  • Zusatzinformationen übernehmen

Erst danach stehen alle Daten im gleichen internen Format zur Verfügung.


Warum mehrere Parser?

CrowdSec verwendet nicht nur einen Parser.

Stattdessen arbeiten mehrere Parser hintereinander.

Beispielsweise:

Raw Log
     │
     ▼
Syslog Parser
     │
     ▼
SSH Parser
     │
     ▼
GeoIP Parser
     │
     ▼
Whitelists
     │
     ▼
Normalisierte Daten

Jeder Parser ergänzt weitere Informationen.

Dadurch entsteht Schritt für Schritt ein vollständiges Ereignis.


Parser testen

Mit folgendem Befehl lässt sich nachvollziehen, welche Parser verwendet werden.

sudo cscli explain

Dieses Werkzeug zeigt:

  • welche Parser ausgeführt wurden
  • welche Felder erkannt wurden
  • welche Informationen ergänzt wurden
  • welches Szenario anschließend greift

Gerade bei der Fehlersuche ist dieser Befehl unverzichtbar.


Szenarien

Szenarien bilden das eigentliche Gehirn von CrowdSec.

Sie entscheiden anhand der aufbereiteten Informationen, ob es sich um einen Angriff handelt.

Dabei wird nicht nur ein einzelner Logeintrag betrachtet.

Vielmehr analysieren Szenarien das Verhalten eines Clients über einen bestimmten Zeitraum.


Typische Szenarien

CrowdSec bringt bereits zahlreiche Szenarien mit.

Dazu gehören unter anderem:

  • SSH-Brute-Force
  • Passwort-Spraying
  • Portscanner
  • SQL-Injection
  • Directory Traversal
  • HTTP-Scanner
  • WordPress-Login-Angriffe
  • Bad User Agents
  • API-Missbrauch
  • Credential Stuffing

Diese Szenarien werden kontinuierlich weiterentwickelt.


Das Bucket-System

Eine Besonderheit von CrowdSec ist das sogenannte Bucket-System.

Ein Bucket kann man sich wie einen Zähler vorstellen.

Beispielsweise:

Ein Benutzer versucht sich mehrfach per SSH anzumelden.

Versuch 1
↓

Bucket = 1

Versuch 2
↓

Bucket = 2

Versuch 3
↓

Bucket = 3

...

Versuch 10
↓

Schwellwert erreicht

↓

Decision erzeugen

Erst wenn ein definierter Grenzwert erreicht wird, reagiert CrowdSec.

Dadurch werden Fehlalarme deutlich reduziert.


Zeitfenster

Zusätzlich arbeitet CrowdSec mit Zeitfenstern.

Ein Beispiel:

10 Fehlanmeldungen

innerhalb von

60 Sekunden

Oder:

100 HTTP-Anfragen

innerhalb von

30 Sekunden

Erst wenn beide Bedingungen erfüllt sind, wird das Szenario ausgelöst.


Erkennung komplexer Angriffsmuster

Durch die Kombination verschiedener Informationen erkennt CrowdSec auch deutlich komplexere Angriffe.

Beispiele:

Brute Force

  • gleiche IP
  • viele Logins
  • kurzer Zeitraum

Sperre


Passwort-Spraying

  • gleiche IP
  • viele Benutzernamen
  • wenige Versuche pro Benutzer

Sperre


Webscanner

  • hunderte URLs
  • ungewöhnliche Pfade
  • bekannte Exploit-Muster

Sperre


Botnetze

Mehrere bekannte IP-Adressen

Community Threat Intelligence

frühe Erkennung


Eigene Szenarien

CrowdSec lässt sich nahezu beliebig erweitern.

Eigene Szenarien werden als YAML-Dateien erstellt.

Sie definieren unter anderem:

  • Ereignisse
  • Schwellwerte
  • Zeitfenster
  • Filter
  • Auslöser
  • Entscheidungen

Ein stark vereinfachtes Beispiel:

type: leaky
name: custom/bruteforce
filter: evt.Meta.service == 'ssh'
capacity: 5
leakspeed: 1m
blackhole: 5m
labels:
  remediation: true

Eigene Szenarien ermöglichen die Anpassung an individuelle Anwendungen oder interne Dienste.


Szenarien verwalten

Installierte Szenarien:

sudo cscli scenarios list

Neue Szenarien installieren:

sudo cscli scenarios install crowdsecurity/http-bad-user-agent

Entfernen:

sudo cscli scenarios remove crowdsecurity/http-bad-user-agent

Updates

Da sich Angriffsmethoden ständig ändern, veröffentlicht CrowdSec regelmäßig neue Parser, Szenarien und Collections.

Vor der Aktualisierung sollten zunächst die Hub-Daten erneuert werden.

sudo cscli hub update

Anschließend werden alle installierten Komponenten aktualisiert.

sudo cscli hub upgrade

Den Status prüfen:

sudo cscli hub list

Regelmäßige Updates sorgen dafür, dass CrowdSec auch neue Angriffstechniken zuverlässig erkennt.


Best Practices

Für einen sicheren Betrieb haben sich folgende Vorgehensweisen bewährt:

  • Nur benötigte Collections installieren.
  • Hub-Komponenten regelmäßig aktualisieren.
  • Eigene Szenarien zunächst testen.
  • cscli explain zur Analyse nutzen.
  • Parser und Szenarien nach Änderungen überprüfen.
  • Entscheidungen regelmäßig kontrollieren.
  • Fehlalarme beobachten und gegebenenfalls Whitelists einsetzen.


Collections, Parser und Szenarien bilden das Herzstück der CrowdSec-Angriffserkennung. Collections stellen alle benötigten Komponenten für einen Dienst bereit, Parser vereinheitlichen unterschiedlichste Logformate und Szenarien analysieren das Verhalten von Clients anhand intelligenter Regeln. Das Bucket-System sorgt dabei dafür, dass nicht einzelne Ereignisse, sondern auffällige Muster innerhalb definierter Zeitfenster erkannt werden.

Dank dieser modularen Architektur kann CrowdSec sowohl einfache Brute-Force-Angriffe als auch komplexe Webscanner oder Botnet-Aktivitäten zuverlässig identifizieren. Gleichzeitig bleibt das System flexibel und lässt sich durch eigene Szenarien an individuelle Anforderungen anpassen.

Im nächsten Teil der Serie setzen wir dieses Wissen in die Praxis um und zeigen, wie Sie einen Apache-Webserver mit CrowdSec absichern. Sie installieren die passenden Collections, überwachen die Logdateien und erkennen typische Webangriffe wie Brute-Force-Versuche, Scanner oder SQL-Injection automatisch.