
Erwische, was in deinen Kafka-Clustern lauert.
Fang, was in deinen Kafka-Clustern lauert.
Kcatcher ist ein Befehlszeilentool zum Enumerieren und Bewerten von Kafka-Cluster-Konfigurationen. Es verbindet sich mit Apache-Kafka-Clustern, ruft detaillierte Informationen über Broker, Topics und ACLs ab und entnimmt sogar Nachrichten-Stichproben. Perfekt für Sicherheitsaudits, Infrastrukturbewertungen oder einfach um zu verstehen, was in deiner Kafka-Umgebung läuft.

Wenn du eine funktionierende Go-Umgebung hast, kannst du es mit folgendem Befehl installieren:
go install github.com/RoseSecurity/kcatcher@latest
Um Pakete zu installieren, kannst du das Repository schnell automatisch einrichten:
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kcatcher/setup.deb.sh' \
| sudo -E bash
Sobald das Repository konfiguriert ist, kannst du die Installation mit folgendem Befehl durchführen:
apt install kcatcher
git clone [email protected]:RoseSecurity/kcatcher.git
cd kcatcher
make build
Stelle eine Verbindung zu einem Kafka-Cluster her und rufe Broker- und Topic-Metadaten ab:
kcatcher -b kafka-broker-1,kafka-broker-2
Gib einen nicht standardmäßigen Kafka-Port an:
kcatcher -b kafka-broker-1 -p 9093
Rufe die auf dem Cluster konfigurierten Zugriffskontrolllisten ab:
kcatcher -b kafka-broker-1 --acls
Ziehe Stichproben aus aktuellen Nachrichten eines bestimmten Topics:
kcatcher -b kafka-broker-1 --sample-topic my-topic --sample-count 5
Gib die Ergebnisse im JSON-Format für die weitere Verarbeitung aus:
kcatcher -b kafka-broker-1 --acls -o json
Rufe Broker- und Topic-Konfigurationen ab:
kcatcher -b kafka-broker-1 --configs
Führe eine umfassende Sicherheitsanalyse deines Kafka-Clusters durch:
kcatcher -b kafka-broker-1 --analyze
Kombiniere dies mit der ACL- und Konfigurations-Enumeration für eine vollständige Bewertung:
kcatcher -b kafka-broker-1 --acls --configs --analyze
Die Sicherheitsanalyse bewertet deinen Cluster anhand von 20 integrierten Sicherheitsregeln in fünf Kategorien: Authentifizierung, Autorisierung, Verschlüsselung, Zugriffskontrolle und Konfiguration. Die Ergebnisse umfassen einen Sicherheits-Score (0-100), eine Buchstabenbewertung und detaillierte Befunde mit Empfehlungen zur Behebung.
Die Sicherheitsanalyse-Engine bewertet deinen Kafka-Cluster anhand der folgenden Regeln:
Die Analyse erzeugt einen Sicherheits-Score von 0-100 und eine Buchstabenbewertung:
Für Fehlerberichte & Feature-Anfragen nutze bitte den Issue-Tracker.
Pull-Requests sind willkommen! Wir folgen dem typischen "Fork-and-Pull"-Git-Workflow.
[!TIP] Stelle sicher, dass du die neuesten Änderungen von "upstream" übernimmst, bevor du einen Pull-Request erstellst!
| Flag | Beschreibung | Standard |
|---|
-b, --brokers | Liste der Kafka-Broker für die Enumeration (erforderlich) | - |
-p, --port | Kafka-Broker-Port | 9092 |
-t, --timeout | Verbindungs-Timeout | 10s |
-o, --output | Ausgabeformat (text oder json) | text |
--acls | ACL-Enumeration aktivieren | false |
--configs | Abruf von Broker- und Topic-Konfigurationen aktivieren | false |
--analyze | Sicherheitsanalyse der Clusterkonfiguration ausführen | false |
--metadata | Cluster-Metadaten anzeigen (automatisch aktiviert, außer wenn nur --analyze verwendet wird) | true |
--sample-topic | Topic, aus dem Nachrichten gesampelt werden sollen | - |
--sample-count | Anzahl der zu sampelnden Nachrichten | 10 |
| Regel-ID | Name | Schweregrad | Beschreibung |
|---|
| AUTH001 | Keine Authentifizierung konfiguriert | KRITISCH | Erkennt, wenn kein Authentifizierungsmechanismus konfiguriert ist |
| AUTH002 | Plaintext-Listener erkannt | KRITISCH | Identifiziert Listener, die das PLAINTEXT-Protokoll verwenden |
| AUTH003 | Schwacher SASL-Mechanismus | HOCH | Kennzeichnet schwache SASL-Mechanismen wie PLAIN ohne SSL |
| Regel-ID | Name | Schweregrad | Beschreibung |
|---|
| AUTHZ001 | Kein Authorizer konfiguriert | KRITISCH | Erkennt fehlende Authorizer-Konfiguration |
| AUTHZ002 | Berechtigung "Allen erlauben" | KRITISCH | Identifiziert übermäßig freizügige "Allen erlauben"-Einstellungen |
| AUTHZ003 | Superuser offengelegt | MITTEL | Kennzeichnet offengelegte Superuser-Konfigurationen |
| Regel-ID | Name | Schweregrad | Beschreibung |
|---|
| ENC001 | Keine Inter-Broker-Verschlüsselung | KRITISCH | Erkennt unverschlüsselte Inter-Broker-Kommunikation |
| ENC002 | Schwaches SSL-Protokoll | HOCH | Identifiziert veraltete oder schwache SSL/TLS-Protokolle |
| ENC003 | Keine SSL-Client-Authentifizierung | MITTEL | Kennzeichnet fehlende SSL-Client-Authentifizierung |
| ENC004 | Keine Endpunkt-Identifikation | MITTEL | Erkennt deaktivierte SSL-Endpunktidentifikation |
| Regel-ID | Name | Schweregrad | Beschreibung |
|---|
| ACL001 | Wildcard-Prinzipal in ACL | KRITISCH | Identifiziert ACLs mit Wildcard-Prinzipalen (*) |
| ACL002 | Wildcard-Host in ACL | MITTEL | Kennzeichnet ACLs, die Zugriff von jedem Host erlauben |
| ACL003 | Übermäßig freizügige ACL | HOCH | Erkennt ACLs, die übermäßige Berechtigungen gewähren |
| ACL004 | Clusterweite ACL | MITTEL | Identifiziert ACLs, die auf den gesamten Cluster angewendet werden |
| ACL005 | Wildcard-Ressource in ACL | HOCH | Kennzeichnet ACLs mit Wildcard-Ressourcenmustern |
| Regel-ID | Name | Schweregrad | Beschreibung |
|---|
| TOPIC001 | Automatische Topic-Erstellung aktiviert | HOCH | Erkennt, dass die automatische Topic-Erstellung aktiviert ist |
| TOPIC002 | Unclean Leader Election | HOCH | Identifiziert die Konfiguration der Unclean Leader Election |
| TOPIC003 | Niedriger Min-ISR | HOCH | Kennzeichnet Topics mit unzureichender Mindestanzahl synchroner Replikate |
| TOPIC004 | Kurze Aufbewahrungsfrist | MITTEL | Erkennt ungewöhnlich kurze Aufbewahrungsfristen für Nachrichten |
| TOPIC005 | Topic-Löschung aktiviert | MITTEL | Identifiziert, wann die Topic-Löschung aktiviert ist |
| Note | Score-Bereich | Beschreibung |
|---|
| A | 90-100 | Hervorragende Sicherheitslage |
| B | 80-89 | Gute Sicherheit, geringfügige Verbesserungen erforderlich |
| C | 70-79 | Mäßige Sicherheit, mehrere Verbesserungen empfohlen |
| D | 60-69 | Schwache Sicherheit, erhebliche Änderungen erforderlich |
| F | 0-59 | Kritische Sicherheitsprobleme, die sofortige Aufmerksamkeit erfordern |