Caça por fraquezas de segurança em clusters Kubernetes
O kube-hunter não está mais em desenvolvimento ativo. Se você está interessado em escanear clusters Kubernetes em busca de vulnerabilidades conhecidas, recomendamos usar o Trivy. Especificamente, a varredura de configuração incorreta e a varredura de vulnerabilidades KBOM do Trivy para Kubernetes. Saiba mais nos Documentos do Trivy.
O kube-hunter caça por pontos fracos de segurança em clusters Kubernetes. A ferramenta foi desenvolvida para aumentar a conscientização e visibilidade sobre problemas de segurança em ambientes Kubernetes. Você NÃO deve executar o kube-hunter em um cluster Kubernetes que não seja seu!
Execute o kube-hunter: O kube-hunter está disponível como um contêiner (aquasec/kube-hunter), e também oferecemos um site em kube-hunter.aquasec.com onde você pode se registrar online para receber um token que permite visualizar e compartilhar os resultados online. Você também pode executar o código Python você mesmo, conforme descrito abaixo.
Explore vulnerabilidades: A base de conhecimento do kube-hunter inclui artigos sobre vulnerabilidades e problemas detectáveis. Quando o kube-hunter relata um problema, ele mostra seu VID (ID de Vulnerabilidade) para que você possa consultá-lo na KB em https://aquasecurity.github.io/kube-hunter/
Se você está interessado na integração do kube-hunter com a Matriz ATT&CK do Kubernetes, Continue Lendo
Vídeo de demonstração do kube-hunter
O kube-hunter agora suporta o novo formato da matriz ATT&CK do Kubernetes. Enquanto as vulnerabilidades do kube-hunter são uma coleção de técnicas criativas projetadas para imitar um invasor no cluster (ou fora dele), O ATT&CK do Mitre define categorias padronizadas mais gerais de técnicas para fazer isso.
Você pode pensar nas vulnerabilidades do kube-hunter como pequenos passos para um invasor, que seguem a trilha de uma técnica mais geral que ele buscaria. A maioria dos caçadores e vulnerabilidades do kube-hunter podem se enquadrar nessas técnicas, por isso passamos a seguir o padrão da Matriz.
Algumas vulnerabilidades do kube-hunter que não pudemos mapear para uma técnica do Mitre são prefixadas com a palavra-chave General

Existem três maneiras diferentes de executar o kube-hunter, cada uma oferecendo uma abordagem diferente para detectar pontos fracos no seu cluster:
Execute o kube-hunter em qualquer máquina (incluindo seu notebook), selecione a varredura Remota e forneça o endereço IP ou nome de domínio do seu cluster Kubernetes. Isso lhe dará uma visão do atacante sobre sua configuração Kubernetes.
Você pode executar o kube-hunter diretamente em uma máquina no cluster e selecionar a opção de sondar todas as interfaces de rede locais.
Você também pode executar o kube-hunter em um pod dentro do cluster. Isso indica o quão exposto seu cluster estaria se um de seus pods de aplicação fosse comprometido (através de uma vulnerabilidade de software, por exemplo). (sinalizador --pod)
Primeiro verifique estes pré-requisitos.
Por padrão, o kube-hunter abrirá uma sessão interativa, na qual você poderá selecionar uma das seguintes opções de varredura. Você também pode especificar a opção de varredura manualmente pela linha de comando. Estas são suas opções:
Para especificar máquinas remotas para caça, selecione a opção 1 ou use a opção --remote. Exemplo:
kube-hunter --remote algum.node.com
Para especificar a varredura de interface, você pode usar a opção --interface (isso irá escanear todas as interfaces de rede da máquina). Exemplo:
kube-hunter --interface
Para especificar um CIDR específico para escanear, use a opção --cidr. Exemplo:
kube-hunter --cidr 192.168.0.0/24
Defina o sinalizador --k8s-auto-discover-nodes para consultar o Kubernetes por todos os nós no cluster e, em seguida, tentar escanear todos eles. Por padrão, usará a configuração no cluster para conectar à API do Kubernetes. Se você quiser usar um arquivo kubeconfig explícito, defina --kubeconfig /local/do/arquivo/kubeconfig.
Observe também que isso é sempre feito ao usar o modo --pod.
Para imitar um invasor em seus estágios iniciais, o kube-hunter não requer autenticação para a caça.
Personificar - Você pode fornecer ao kube-hunter um token de conta de serviço específico para usar durante a caça, passando manualmente o token JWT Bearer do segredo da conta de serviço com o sinalizador --service-account-token.
Exemplo:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
Ao executar com o sinalizador --pod, o kube-hunter usa o token da conta de serviço montado dentro do pod para autenticar nos serviços que encontrar durante a caça.
--service-account-token tem prioridade ao executar como um podA caça ativa é uma opção na qual o kube-hunter irá explorar vulnerabilidades que encontrar, para buscar mais vulnerabilidades. A principal diferença entre a caça normal e a ativa é que uma caça normal nunca altera o estado do cluster, enquanto a caça ativa pode potencialmente realizar operações de mudança de estado no cluster, o que pode ser prejudicial.
Por padrão, o kube-hunter não faz caça ativa. Para caçar ativamente um cluster, use o sinalizador --active. Exemplo:
kube-hunter --remote algum.dominio.com --active
Você pode ver a lista de testes com a opção --list. Exemplo:
kube-hunter --list
Para ver também os testes de caça ativa, além dos passivos:
kube-hunter --list --active
Para ver apenas um mapeamento da rede dos seus nós, execute com a opção --mapping. Exemplo:
kube-hunter --cidr 192.168.0.0/24 --mapping
Isso exibirá todos os nós Kubernetes que o kube-hunter encontrou.
Para controlar o registro de logs, você pode especificar um nível de log, usando a opção --log. Exemplo:
kube-hunter --active --log WARNING
Os níveis de log disponíveis são: