
Capture o que está à espreita nos seus clusters Kafka.
Capture o que está escondido nos seus clusters Kafka.
Kcatcher é um utilitário de linha de comando para enumerar e avaliar configurações de clusters Kafka. Ele se conecta a clusters Apache Kafka e recupera informações detalhadas sobre brokers, tópicos, ACLs e até mesmo amostras de mensagens. Perfeito para auditorias de segurança, avaliações de infraestrutura ou apenas para entender o que está sendo executado no seu ambiente Kafka.

Se você possui um ambiente Go funcional, pode instalar com:
go install github.com/RoseSecurity/kcatcher@latest
Para instalar pacotes, você pode configurar rapidamente o repositório automaticamente:
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kcatcher/setup.deb.sh' \
| sudo -E bash
Uma vez configurado o repositório, você pode instalar com:
apt install kcatcher
git clone [email protected]:RoseSecurity/kcatcher.git
cd kcatcher
make build
Conecte-se a um cluster Kafka e recupere metadados de brokers e tópicos:
kcatcher -b kafka-broker-1,kafka-broker-2
Especifique uma porta Kafka não padrão:
kcatcher -b kafka-broker-1 -p 9093
Recupere as Listas de Controle de Acesso configuradas no cluster:
kcatcher -b kafka-broker-1 --acls
Amostre mensagens recentes de um tópico específico:
kcatcher -b kafka-broker-1 --sample-topic my-topic --sample-count 5
Produza resultados em formato JSON para processamento adicional:
kcatcher -b kafka-broker-1 --acls -o json
Recupere configurações de brokers e tópicos:
kcatcher -b kafka-broker-1 --configs
Execute uma análise de segurança abrangente no seu cluster Kafka:
kcatcher -b kafka-broker-1 --analyze
Combine com enumeração de ACLs e configurações para uma avaliação completa:
kcatcher -b kafka-broker-1 --acls --configs --analyze
A análise de segurança avalia seu cluster contra 20 regras de segurança integradas em cinco categorias: Autenticação, Autorização, Criptografia, Controle de Acesso e Configuração. Os resultados incluem uma pontuação de segurança (0-100), nota em letra e descobertas detalhadas com orientações de correção.
O motor de análise de segurança avalia seu cluster Kafka de acordo com as seguintes regras:
A análise produz uma pontuação de segurança de 0 a 100 e uma nota em letra:
Para relatórios de bugs e solicitações de funcionalidades, por favor use o rastreador de issues.
Pull requests são bem-vindos! Seguimos o fluxo de trabalho Git típico "fork-and-pull".
[!TIP] Certifique-se de mesclar as alterações mais recentes do "upstream" antes de fazer um pull request!
| Flag | Descrição | Padrão |
|---|
-b, --brokers | Lista de brokers Kafka para enumerar (obrigatório) | - |
-p, --port | Porta do broker Kafka | 9092 |
-t, --timeout | Duração do tempo limite de conexão | 10s |
-o, --output | Formato de saída (text ou json) | text |
--acls | Ativar enumeração de ACLs | false |
--configs | Ativar recuperação de configurações de brokers e tópicos | false |
--analyze | Executar análise de segurança na configuração do cluster | false |
--metadata | Mostrar metadados do cluster (ativado automaticamente a menos que apenas --analyze) | true |
--sample-topic | Tópico do qual amostrar mensagens | - |
--sample-count | Número de mensagens a amostrar | 10 |
| ID da Regra | Nome | Severidade | Descrição |
|---|
| AUTH001 | Nenhuma Autenticação Configurada | Crítico | Detecta quando nenhum mecanismo de autenticação está configurado |
| AUTH002 | Listener Plaintext Detectado | Crítico | Identifica listeners usando protocolo PLAINTEXT |
| AUTH003 | Mecanismo SASL Fraco | Alto | Sinaliza mecanismos SASL fracos como PLAIN sem SSL |
| ID da Regra | Nome | Severidade | Descrição |
|---|
| AUTHZ001 | Nenhum Autorizador Configurado | Crítico | Detecta configuração de autorizador ausente |
| AUTHZ002 | Permissão Permitir Todos | Crítico | Identifica configurações excessivamente permissivas de permitir todos |
| AUTHZ003 | Superusuários Expostos | Médio | Sinaliza configurações de superusuários expostas |
| ID da Regra | Nome | Severidade | Descrição |
|---|
| ENC001 | Nenhuma Criptografia Entre Brokers | Crítico | Detecta comunicação entre brokers não criptografada |
| ENC002 | Protocolo SSL Fraco | Alto | Identifica protocolos SSL/TLS obsoletos ou fracos |
| ENC003 | Nenhuma Autenticação de Cliente SSL | Médio | Sinaliza autenticação de cliente SSL ausente |
| ENC004 | Nenhuma Identificação de Endpoint | Médio | Detecta identificação de endpoint SSL desabilitada |
| ID da Regra | Nome | Severidade | Descrição |
|---|
| ACL001 | Principal Curinga em ACL | Crítico | Identifica ACLs com principais curinga (*) |
| ACL002 | Host Curinga em ACL | Médio | Sinaliza ACLs que permitem acesso de qualquer host |
| ACL003 | ACL Excessivamente Permissiva | Alto | Detecta ACLs que concedem permissões excessivas |
| ACL004 | ACL em Todo o Cluster | Médio | Identifica ACLs aplicadas a todo o cluster |
| ACL005 | Recurso Curinga em ACL | Alto | Sinaliza ACLs com padrões de recurso curinga |
| ID da Regra | Nome | Severidade | Descrição |
|---|
| TOPIC001 | Criação Automática de Tópicos Habilitada | Alto | Detecta criação automática de tópicos habilitada |
| TOPIC002 | Eleição de Líder Suja | Alto | Identifica configuração de eleição de líder suja |
| TOPIC003 | Min ISR Baixo | Alto | Sinaliza tópicos com réplicas síncronas mínimas insuficientes |
| TOPIC004 | Período de Retenção Curto | Médio | Detecta períodos de retenção de mensagens excepcionalmente curtos |
| TOPIC005 | Exclusão de Tópico Habilitada | Médio | Identifica quando a exclusão de tópicos está habilitada |
| Nota | Faixa de Pontuação | Descrição |
|---|
| A | 90-100 | Postura de segurança excelente |
| B | 80-89 | Boa segurança com pequenas melhorias necessárias |
| C | 70-79 | Segurança moderada, várias melhorias recomendadas |
| D | 60-69 | Segurança ruim, mudanças significativas necessárias |
| F | 0-59 | Problemas críticos de segurança que exigem atenção imediata |