Kubernetes Logo

En estos dos ultimos años estoy muy involucrado en proyectos revisando intraestructuras basadas en contenedores Docker y Kubernetes, en esta busqueda encontré con este genial proyecto que facilita el aprendizaje de vulnerabilidades en Kubernetes.

Kubernetes Goat está diseñado para ser un entorno de clúster intencionalmente vulnerable para aprender y practicar la seguridad de Kubernetes. Es un proyecto creado por Madhu Akula.

En este articulo, veremos como realizar la instalación sobre un equipo con Ubuntu 20.04 y VirtualBox. Kubernetes Goat necesita una instalación previa de Minikube el cual facilita tener un cluster local de Kubernetes.

A.- Instalar Minikube

1.- Descarga de Minikube

Podemos descargar la última versión o una versión específica de la página de versiones de Minikube. Una vez descargado, necesitamos hacerlo ejecutable y agregarlo a nuestra RUTA:

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

2.- Iniciar Minikube

Podemos iniciar Minikube con el comando de inicio de minikube, que inicia un clúster de un solo nodo con la última versión estable de Kubernetes.

$ minikube start

3.- Comprobar el estado

Con el comando de estado de minikube, mostramos el estado de Minikube:

$ minikube status

B.- Instalar Kubernetes Goat

1.- Descargar el proyecto

# git clone https://github.com/madhuakula/kubernetes-goat.git

# cd kubernetes-goat/

2.- Configurar la cuenta helm2 rbac e inicializar tiller

# kubectl apply -f scenarios/helm2-rbac/setup.yaml

# helm2 init –service-account tiller

3.- Desplegar Helm chart para verificar la configuración ,

implementación del escenario helm chart metadata-db

# helm2 install –name metadata-db scenarios/metadata-db/

4.- Desplegar los manifiestos de escenarios vulnerables

# kubectl apply -f scenarios/batch-check/job.yaml

# kubectl apply -f scenarios/build-code/deployment.yaml

# kubectl apply -f scenarios/cache-store/deployment.yaml

# kubectl apply -f scenarios/health-check/deployment.yaml

# kubectl apply -f scenarios/hunger-check/deployment.yaml

# kubectl apply -f scenarios/kubernetes-goat-home/deployment.yaml

# kubectl apply -f scenarios/poor-registry/deployment.yaml

# kubectl apply -f scenarios/system-monitor/deployment.yaml

# kubectl apply -f scenarios/hidden-in-layers/deployment.yaml

5.- Crear el forwardeo de puertos en los PODS para permitir el acceso local.

# bash access-kubernetes-goat.sh

6.- Igresar a Kubernetes Goat

Si todo salio bien , ahora podremos ingresar a la aplicación de la siguiente forma:

Ingresar a : http://127.0.0.1:1234/

Finalmente, Si desean practicar los escenarios pueden revizarlos aqui : https://madhuakula.com/kubernetes-goat/index.html

Espero les siva

@jroliva

Deja un comentario

Juan Oliva

Consultor en Ciberseguridad y VoIP con mas de 16 años de experiencia en el campo, muy involucrado en proyectos de Ethical Hacking, análisis y explotación de vulnerabilidades en infraestructura, aplicaciones web, APIs y Móviles, pruebas de ingeniería social y revisión de código.