Chassez les failles de sécurité dans les clusters Kubernetes
kube-hunter n'est plus en développement actif. Si vous êtes intéressé par l'analyse des clusters Kubernetes pour des vulnérabilités connues, nous vous recommandons d'utiliser Trivy. Plus précisément, l'analyse de mauvaise configuration Kubernetes de Trivy et l'analyse de vulnérabilités KBOM. En savoir plus dans la documentation Trivy.
kube-hunter traque les faiblesses de sécurité dans les clusters Kubernetes. L'outil a été développé pour accroître la sensibilisation et la visibilité des problèmes de sécurité dans les environnements Kubernetes. Vous ne devez PAS exécuter kube-hunter sur un cluster Kubernetes qui ne vous appartient pas !
Exécuter kube-hunter : kube-hunter est disponible en tant que conteneur (aquasec/kube-hunter), et nous proposons également un site web à kube-hunter.aquasec.com où vous pouvez vous inscrire en ligne pour recevoir un token vous permettant de voir et partager les résultats en ligne. Vous pouvez également exécuter le code Python vous-même comme décrit ci-dessous.
Explorer les vulnérabilités : La base de connaissances de kube-hunter comprend des articles sur les vulnérabilités et problèmes détectables. Lorsque kube-hunter signale un problème, il affiche son VID (Identifiant de vulnérabilité) afin que vous puissiez le consulter dans la KB à https://aquasecurity.github.io/kube-hunter/
Si vous êtes intéressé par l'intégration de kube-hunter avec la matrice ATT&CK Kubernetes, Continuer la lecture
Vidéo de démonstration de kube-hunter
kube-hunter prend désormais en charge le nouveau format de la matrice ATT&CK Kubernetes. Alors que les vulnérabilités de kube-hunter sont une collection de techniques créatives conçues pour imiter un attaquant dans le cluster (ou en dehors), la norme ATT&CK de Mitre définit des catégories de techniques plus générales et standardisées pour y parvenir.
Vous pouvez considérer les vulnérabilités de kube-hunter comme des étapes pour un attaquant, qui suivent la piste d'une technique plus générale qu'il viserait. La plupart des chasseurs et vulnérabilités de kube-hunter peuvent être classés sous ces techniques, c'est pourquoi nous avons décidé de suivre la norme de la matrice.
Certaines vulnérabilités de kube-hunter que nous n'avons pas pu mapper à une technique Mitre sont préfixées par le mot-clé General

Il existe trois façons différentes d'exécuter kube-hunter, chacune offrant une approche différente pour détecter les faiblesses de votre cluster :
Exécutez kube-hunter sur n'importe quelle machine (y compris votre ordinateur portable), sélectionnez l'analyse à distance et donnez l'adresse IP ou le nom de domaine de votre cluster Kubernetes. Cela vous donnera une vue d'attaquant de votre configuration Kubernetes.
Vous pouvez exécuter kube-hunter directement sur une machine du cluster, et sélectionner l'option pour sonder toutes les interfaces réseau locales.
Vous pouvez également exécuter kube-hunter dans un pod à l'intérieur du cluster. Cela indique à quel point votre cluster serait exposé si l'un de vos pods d'application était compromis (par exemple, via une vulnérabilité logicielle). (drapeau --pod)
Vérifiez d'abord ces prérequis.
Par défaut, kube-hunter ouvrira une session interactive dans laquelle vous pourrez sélectionner l'une des options d'analyse suivantes. Vous pouvez également spécifier l'option d'analyse manuellement en ligne de commande. Voici vos options :
Pour spécifier des machines distantes à chasser, sélectionnez l'option 1 ou utilisez l'option --remote. Exemple :
kube-hunter --remote some.node.com
Pour spécifier l'analyse d'interface, vous pouvez utiliser l'option --interface (cela analysera toutes les interfaces réseau de la machine). Exemple :
kube-hunter --interface
Pour spécifier un CIDR particulier à analyser, utilisez l'option --cidr. Exemple :
kube-hunter --cidr 192.168.0.0/24
Définissez le drapeau --k8s-auto-discover-nodes pour interroger Kubernetes afin d'obtenir tous les nœuds du cluster, puis tentez de les analyser tous. Par défaut, il utilisera la configuration dans le cluster pour se connecter à l'API Kubernetes. Si vous souhaitez utiliser un fichier kubeconfig explicite, définissez --kubeconfig /emplacement/du/fichier/kubeconfig.
Notez également que cela est toujours effectué lors de l'utilisation du mode --pod.
Afin d'imiter un attaquant à ses premiers stades, kube-hunter ne nécessite aucune authentification pour la chasse.
Impersonnalisation - Vous pouvez fournir à kube-hunter un token de compte de service spécifique à utiliser lors de la chasse en passant manuellement le token JWT Bearer du secret du compte de service avec le drapeau --service-account-token.
Exemple :
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
Lors de l'exécution avec le drapeau --pod, kube-hunter utilise le token de compte de service monté à l'intérieur du pod pour s'authentifier auprès des services qu'il trouve pendant la chasse.
--service-account-token a la priorité lors de l'exécution en tant que podLa chasse active est une option dans laquelle kube-hunter exploite les vulnérabilités qu'il trouve pour explorer d'autres vulnérabilités. La principale différence entre la chasse normale et la chasse active est qu'une chasse normale ne modifiera jamais l'état du cluster, tandis que la chasse active peut potentiellement effectuer des opérations modifiant l'état du cluster, ce qui pourrait être dangereux.
Par défaut, kube-hunter n'effectue pas de chasse active. Pour chasser activement un cluster, utilisez le drapeau --active. Exemple :
kube-hunter --remote some.domain.com --active
Vous pouvez voir la liste des tests avec l'option --list : Exemple :
kube-hunter --list
Pour voir les tests de chasse active ainsi que passive :
kube-hunter --list --active