
Repérez ce qui se cache dans vos clusters Kafka.
Découvrez ce qui se cache dans vos clusters Kafka.
Kcatcher est un utilitaire en ligne de commande permettant d'énumérer et d'évaluer les configurations de clusters Kafka. Il se connecte aux clusters Apache Kafka et récupère des informations détaillées sur les brokers, les topics, les ACL et même des exemples de messages. Parfait pour les audits de sécurité, les évaluations d'infrastructure ou simplement pour comprendre ce qui s'exécute dans votre environnement Kafka.

Si vous disposez d'un environnement Go fonctionnel, vous pouvez installer avec :
go install github.com/RoseSecurity/kcatcher@latest
Pour installer les paquets, vous pouvez configurer rapidement le dépôt automatiquement :
curl -1sLf \
'https://dl.cloudsmith.io/public/rosesecurity/kcatcher/setup.deb.sh' \
| sudo -E bash
Une fois le dépôt configuré, vous pouvez installer avec :
apt install kcatcher
git clone [email protected]:RoseSecurity/kcatcher.git
cd kcatcher
make build
Connectez-vous à un cluster Kafka et récupérez les métadonnées des brokers et des topics :
kcatcher -b kafka-broker-1,kafka-broker-2
Spécifiez un port Kafka non par défaut :
kcatcher -b kafka-broker-1 -p 9093
Récupérez les listes de contrôle d'accès (ACL) configurées sur le cluster :
kcatcher -b kafka-broker-1 --acls
Échantillonnez des messages récents d'un topic spécifique :
kcatcher -b kafka-broker-1 --sample-topic my-topic --sample-count 5
Affichez les résultats au format JSON pour un traitement ultérieur :
kcatcher -b kafka-broker-1 --acls -o json
Récupérez les configurations des brokers et des topics :
kcatcher -b kafka-broker-1 --configs
Exécutez une analyse de sécurité complète sur votre cluster Kafka :
kcatcher -b kafka-broker-1 --analyze
Combinez avec l'énumération des ACL et de la configuration pour une évaluation complète :
kcatcher -b kafka-broker-1 --acls --configs --analyze
L'analyse de sécurité évalue votre cluster par rapport à 20 règles de sécurité intégrées réparties en cinq catégories : authentification, autorisation, chiffrement, contrôle d'accès et configuration. Les résultats incluent un score de sécurité (0-100), une note alphabétique et des constatations détaillées avec des recommandations de remédiation.
Le moteur d'analyse de sécurité évalue votre cluster Kafka par rapport aux règles suivantes :
L'analyse produit un score de sécurité de 0 à 100 et une note alphabétique :
Pour les rapports de bogues et les demandes de fonctionnalités, veuillez utiliser le suivi des problèmes.
Les PR sont les bienvenues ! Nous suivons le flux de travail Git classique « fork-and-pull ».
[!TIP] Assurez-vous de fusionner les derniers changements depuis « upstream » avant de faire une pull request !
| Option | Description | Défaut |
|---|
-b, --brokers | Liste des brokers Kafka à énumérer (obligatoire) | - |
-p, --port | Port du broker Kafka | 9092 |
-t, --timeout | Délai d'attente de connexion | 10s |
-o, --output | Format de sortie (text ou json) | text |
--acls | Active l'énumération des ACL | false |
--configs | Active la récupération des configurations des brokers et des topics | false |
--analyze | Exécute l'analyse de sécurité sur la configuration du cluster | false |
--metadata | Affiche les métadonnées du cluster (activé automatiquement sauf avec --analyze uniquement) | true |
--sample-topic | Topic à partir duquel échantillonner les messages | - |
--sample-count | Nombre de messages à échantillonner | 10 |
| ID de règle | Nom | Sévérité | Description |
|---|
| AUTH001 | Aucune authentification configurée | CRITICAL | Détecte lorsqu'aucun mécanisme d'authentification n'est configuré |
| AUTH002 | Écouteur en texte clair détecté | CRITICAL | Identifie les écouteurs utilisant le protocole PLAINTEXT |
| AUTH003 | Mécanisme SASL faible | HIGH | Signale les mécanismes SASL faibles comme PLAIN sans SSL |
| ID de règle | Nom | Sévérité | Description |
|---|
| AUTHZ001 | Aucun authorizer configuré | CRITICAL | Détecte une configuration d'authorizer manquante |
| AUTHZ002 | Permission Allow Everyone | CRITICAL | Identifie les paramètres allow-everyone trop permissifs |
| AUTHZ003 | Superutilisateurs exposés | MEDIUM | Signale les configurations de superutilisateurs exposées |
| ID de règle | Nom | Sévérité | Description |
|---|
| ENC001 | Absence de chiffrement inter-brokers | CRITICAL | Détecte les communications inter-brokers non chiffrées |
| ENC002 | Protocole SSL faible | HIGH | Identifie les protocoles SSL/TLS obsolètes ou faibles |
| ENC003 | Absence d'authentification client SSL | MEDIUM | Signale l'absence d'authentification client SSL |
| ENC004 | Absence d'identification de point de terminaison | MEDIUM | Détecte l'identification de point de terminaison SSL désactivée |
| ID de règle | Nom | Sévérité | Description |
|---|
| ACL001 | Principal générique (wildcard) dans une ACL | CRITICAL | Identifie les ACL avec des principaux génériques (*) |
| ACL002 | Hôte générique (wildcard) dans une ACL | MEDIUM | Signale les ACL autorisant l'accès depuis n'importe quel hôte |
| ACL003 | ACL trop permissive | HIGH | Détecte les ACL accordant des permissions excessives |
| ACL004 | ACL à l'échelle du cluster | MEDIUM | Identifie les ACL appliquées à l'ensemble du cluster |
| ACL005 | Ressource générique (wildcard) dans une ACL | HIGH | Signale les ACL avec des motifs de ressources génériques |
| ID de règle | Nom | Sévérité | Description |
|---|
| TOPIC001 | Création automatique de topics activée | HIGH | Détecte l'activation de la création automatique de topics |
| TOPIC002 | Élection de leader non propre (unclean) | HIGH | Identifie la configuration d'élection de leader unclean |
| TOPIC003 | Min ISR faible | HIGH | Signale les topics avec un minimum de réplicas in-sync insuffisant |
| TOPIC004 | Période de rétention courte | MEDIUM | Détecte des périodes de rétention de messages anormalement courtes |
| TOPIC005 | Suppression de topics activée | MEDIUM | Identifie lorsque la suppression de topics est activée |
| Note | Plage de score | Description |
|---|
| A | 90-100 | Excellente posture de sécurité |
| B | 80-89 | Bonne sécurité, quelques améliorations mineures nécessaires |
| C | 70-79 | Sécurité modérée, plusieurs améliorations recommandées |
| D | 60-69 | Sécurité faible, des changements importants requis |
| F | 0-59 | Problèmes de sécurité critiques nécessitant une attention immédiate |