
Captura lo que acecha en tus clústeres de Kafka.
Captura lo que acecha en tus clústeres de Kafka.
Kcatcher es una utilidad de línea de comandos para enumerar y evaluar configuraciones de clústeres de Kafka. Se conecta a clústeres de Apache Kafka y recupera información detallada sobre brokers, temas, ACL e incluso mensajes de muestra. Perfecto para auditorías de seguridad, evaluaciones de infraestructura o simplemente para entender qué está funcionando en tu entorno de Kafka.

Si tienes un entorno Go funcional, puedes instalarlo con:
go install github.com/RoseSecurity/kcatcher@latest
Para instalar los paquetes, puedes configurar rápidamente el repositorio automáticamente:
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kcatcher/setup.deb.sh' \
| sudo -E bash
Una vez que el repositorio esté configurado, puedes instalarlo con:
apt install kcatcher
git clone [email protected]:RoseSecurity/kcatcher.git
cd kcatcher
make build
Conecta a un clúster de Kafka y recupera metadatos de brokers y temas:
kcatcher -b kafka-broker-1,kafka-broker-2
Especifica un puerto de Kafka no predeterminado:
kcatcher -b kafka-broker-1 -p 9093
Recupera las listas de control de acceso configuradas en el clúster:
kcatcher -b kafka-broker-1 --acls
Muestra mensajes recientes de un tema específico:
kcatcher -b kafka-broker-1 --sample-topic my-topic --sample-count 5
Genera resultados en formato JSON para su posterior procesamiento:
kcatcher -b kafka-broker-1 --acls -o json
Recupera configuraciones de brokers y temas:
kcatcher -b kafka-broker-1 --configs
Ejecuta un análisis de seguridad completo en tu clúster de Kafka:
kcatcher -b kafka-broker-1 --analyze
Combínalo con la enumeración de ACL y configuraciones para una evaluación completa:
kcatcher -b kafka-broker-1 --acls --configs --analyze
El análisis de seguridad evalúa tu clúster según 20 reglas de seguridad integradas en cinco categorías: Autenticación, Autorización, Cifrado, Control de Acceso y Configuración. Los resultados incluyen una puntuación de seguridad (0-100), una calificación por letras y hallazgos detallados con orientación para la corrección.
El motor de análisis de seguridad evalúa tu clúster de Kafka según las siguientes reglas:
El análisis produce una puntuación de seguridad de 0 a 100 y una calificación por letras:
Para informes de errores y solicitudes de funciones, utiliza el rastreador de incidencias.
¡Los PRs son bienvenidos! Seguimos el flujo de trabajo típico de Git "fork-and-pull".
[!TIP] ¡Asegúrate de fusionar los últimos cambios de "upstream" antes de hacer un pull request!
| Bandera | Descripción | Por defecto |
|---|
-b, --brokers | Lista de brokers de Kafka a enumerar (requerido) | - |
-p, --port | Puerto del broker Kafka | 9092 |
-t, --timeout | Duración del tiempo de espera de conexión | 10s |
-o, --output | Formato de salida (text o json) | text |
--acls | Habilitar enumeración de ACL | false |
--configs | Habilitar recuperación de configuración de brokers y temas | false |
--analyze | Ejecutar análisis de seguridad en la configuración del clúster | false |
--metadata | Mostrar metadatos del clúster (habilitado automáticamente a menos que solo sea --analyze) | true |
--sample-topic | Tema del cual muestrear mensajes | - |
--sample-count | Número de mensajes a muestrear | 10 |
| Regla ID | Nombre | Severidad | Descripción |
|---|
| AUTH001 | Sin autenticación configurada | CRITICAL | Detecta cuando no se ha configurado ningún mecanismo de autenticación |
| AUTH002 | Listener sin cifrar detectado | CRITICAL | Identifica listeners que usan el protocolo PLAINTEXT |
| AUTH003 | Mecanismo SASL débil | HIGH | Señala mecanismos SASL débiles como PLAIN sin SSL |
| Regla ID | Nombre | Severidad | Descripción |
|---|
| AUTHZ001 | Sin autorizador configurado | CRITICAL | Detecta la configuración del autorizador faltante |
| AUTHZ002 | Permiso "permitir a todos" | CRITICAL | Identifica configuraciones demasiado permisivas que permiten a todos |
| AUTHZ003 | Superusuarios expuestos | MEDIUM | Señala configuraciones de superusuarios expuestas |
| Regla ID | Nombre | Severidad | Descripción |
|---|
| ENC001 | Sin cifrado entre brokers | CRITICAL | Detecta comunicación sin cifrar entre brokers |
| ENC002 | Protocolo SSL débil | HIGH | Identifica protocolos SSL/TLS obsoletos o débiles |
| ENC003 | Sin autenticación SSL del cliente | MEDIUM | Señala la falta de autenticación SSL del cliente |
| ENC004 | Sin identificación del endpoint | MEDIUM | Detecta identificación del endpoint SSL deshabilitada |
| Regla ID | Nombre | Severidad | Descripción |
|---|
| ACL001 | Principal comodín en ACL | CRITICAL | Identifica ACL con principales comodín (*) |
| ACL002 | Host comodín en ACL | MEDIUM | Señala ACL que permiten acceso desde cualquier host |
| ACL003 | ACL demasiado permisiva | HIGH | Detecta ACL que otorgan permisos excesivos |
| ACL004 | ACL de todo el clúster | MEDIUM | Identifica ACL aplicadas a todo el clúster |
| ACL005 | Recurso comodín en ACL | HIGH | Señala ACL con patrones de recurso comodín |
| Regla ID | Nombre | Severidad | Descripción |
|---|
| TOPIC001 | Creación automática de temas habilitada | HIGH | Detecta que la creación automática de temas está habilitada |
| TOPIC002 | Elección de líder sucia | HIGH | Identifica la configuración de elección de líder sucia |
| TOPIC003 | Mínimo ISR bajo | HIGH | Señala temas con réplicas sincronizadas mínimas insuficientes |
| TOPIC004 | Período de retención corto | MEDIUM | Detecta períodos de retención de mensajes inusualmente cortos |
| TOPIC005 | Eliminación de temas habilitada | MEDIUM | Identifica cuando la eliminación de temas está habilitada |
| Calificación | Rango de puntuación | Descripción |
|---|
| A | 90-100 | Excelente postura de seguridad |
| B | 80-89 | Buena seguridad con mejoras menores necesarias |
| C | 70-79 | Seguridad moderada, se recomiendan varias mejoras |
| D | 60-69 | Seguridad deficiente, se requieren cambios significativos |
| F | 0-59 | Problemas críticos de seguridad que requieren atención inmediata |