
Scopri cosa si nasconde nei tuoi cluster Kafka.
Scova ciò che si nasconde nei tuoi cluster Kafka.
Kcatcher è un'utility a riga di comando per enumerare e valutare le configurazioni dei cluster Kafka. Si connette ai cluster Apache Kafka e recupera informazioni dettagliate su broker, topic, ACL e persino messaggi di esempio. Perfetto per audit di sicurezza, valutazioni dell'infrastruttura o semplicemente per capire cosa sta girando nel tuo ambiente Kafka.

Se disponi di un ambiente Go funzionante, puoi installare con:
go install github.com/RoseSecurity/kcatcher@latest
Per installare i pacchetti, puoi configurare rapidamente il repository automaticamente:
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kcatcher/setup.deb.sh' \
| sudo -E bash
Una volta configurato il repository, puoi installare con:
apt install kcatcher
git clone [email protected]:RoseSecurity/kcatcher.git
cd kcatcher
make build
Connettiti a un cluster Kafka e recupera i metadati di broker e topic:
kcatcher -b kafka-broker-1,kafka-broker-2
Specifica una porta Kafka non predefinita:
kcatcher -b kafka-broker-1 -p 9093
Recupera le liste di controllo degli accessi configurate sul cluster:
kcatcher -b kafka-broker-1 --acls
Campiona messaggi recenti da un topic specifico:
kcatcher -b kafka-broker-1 --sample-topic my-topic --sample-count 5
Emetti i risultati in formato JSON per elaborazioni successive:
kcatcher -b kafka-broker-1 --acls -o json
Recupera le configurazioni di broker e topic:
kcatcher -b kafka-broker-1 --configs
Esegui un'analisi di sicurezza completa sul tuo cluster Kafka:
kcatcher -b kafka-broker-1 --analyze
Combina con l'enumerazione ACL e delle configurazioni per una valutazione completa:
kcatcher -b kafka-broker-1 --acls --configs --analyze
L'analisi di sicurezza valuta il cluster rispetto a 20 regole di sicurezza integrate in cinque categorie: Autenticazione, Autorizzazione, Crittografia, Controllo degli accessi e Configurazione. I risultati includono un punteggio di sicurezza (0-100), un voto in lettere e risultati dettagliati con indicazioni per la correzione.
Il motore di analisi della sicurezza valuta il tuo cluster Kafka rispetto alle seguenti regole:
L'analisi produce un punteggio di sicurezza da 0 a 100 e un voto in lettere:
Per segnalazioni di bug e richieste di funzionalità, utilizza il tracciatore di problemi.
Le PR sono benvenute! Seguiamo il tipico flusso di lavoro Git "fork-and-pull".
[!TIP] Assicurati di unire le ultime modifiche da "upstream" prima di fare una pull request!
| Flag | Descrizione | Predefinito |
|---|
-b, --brokers | Elenco dei broker Kafka da enumerare (obbligatorio) | - |
-p, --port | Porta del broker Kafka | 9092 |
-t, --timeout | Durata del timeout di connessione | 10s |
-o, --output | Formato di output (text o json) | text |
--acls | Abilita enumerazione ACL | false |
--configs | Abilita recupero configurazioni di broker e topic | false |
--analyze | Esegui analisi di sicurezza sulla configurazione del cluster | false |
--metadata | Mostra metadati del cluster (abilitato automaticamente a meno che solo --analyze) | true |
--sample-topic | Topic da cui campionare messaggi | - |
--sample-count | Numero di messaggi da campionare | 10 |
| ID Regola | Nome | Gravità | Descrizione |
|---|
| AUTH001 | Nessuna autenticazione configurata | CRITICAL | Rileva quando non è configurato alcun meccanismo di autenticazione |
| AUTH002 | Listener in testo semplice rilevato | CRITICAL | Identifica listener che utilizzano il protocollo PLAINTEXT |
| AUTH003 | Meccanismo SASL debole | HIGH | Segnala meccanismi SASL deboli come PLAIN senza SSL |
| ID Regola | Nome | Gravità | Descrizione |
|---|
| AUTHZ001 | Nessun autorizzatore configurato | CRITICAL | Rileva configurazione mancante dell'autorizzatore |
| AUTHZ002 | Permesso "consenti a tutti" | CRITICAL | Identifica impostazioni eccessivamente permissive di "consenti a tutti" |
| AUTHZ003 | Superutenti esposti | MEDIUM | Segnala configurazioni di superutenti esposte |
| ID Regola | Nome | Gravità | Descrizione |
|---|
| ENC001 | Nessuna crittografia inter-broker | CRITICAL | Rileva comunicazione inter-broker non crittografata |
| ENC002 | Protocollo SSL debole | HIGH | Identifica protocolli SSL/TLS deprecati o deboli |
| ENC003 | Nessuna autenticazione client SSL | MEDIUM | Segnala autenticazione client SSL mancante |
| ENC004 | Nessuna identificazione dell'endpoint | MEDIUM | Rileva identificazione dell'endpoint SSL disabilitata |
| ID Regola | Nome | Gravità | Descrizione |
|---|
| ACL001 | Principal jolly in ACL | CRITICAL | Identifica ACL con principal jolly (*) |
| ACL002 | Host jolly in ACL | MEDIUM | Segnala ACL che consentono accesso da qualsiasi host |
| ACL003 | ACL eccessivamente permissiva | HIGH | Rileva ACL che concedono permessi eccessivi |
| ACL004 | ACL a livello di cluster | MEDIUM | Identifica ACL applicate all'intero cluster |
| ACL005 | Risorsa jolly in ACL | HIGH | Segnala ACL con pattern di risorsa jolly |
| ID Regola | Nome | Gravità | Descrizione |
|---|
| TOPIC001 | Creazione automatica topic abilitata | HIGH | Rileva creazione automatica di topic abilitata |
| TOPIC002 | Elezione leader non pulita | HIGH | Identifica configurazione di elezione leader non pulita |
| TOPIC003 | Min ISR basso | HIGH | Segnala topic con numero insufficiente di repliche in-sync minime |
| TOPIC004 | Periodo di conservazione breve | MEDIUM | Rileva periodi di conservazione dei messaggi insolitamente brevi |
| TOPIC005 | Eliminazione topic abilitata | MEDIUM | Identifica quando l'eliminazione dei topic è abilitata |
| Voto | Intervallo punteggio | Descrizione |
|---|
| A | 90-100 | Postura di sicurezza eccellente |
| B | 80-89 | Buona sicurezza con miglioramenti minori necessari |
| C | 70-79 | Sicurezza moderata, diversi miglioramenti consigliati |
| D | 60-69 | Sicurezza scarsa, modifiche significative richieste |
| F | 0-59 | Problemi di sicurezza critici che richiedono attenzione immediata |