From Zero to Hero: Pentesting and Securing Docker, Swarm & Kubernetes Environments

Descripción

El uso de contenedores y orquestadores cambió la forma en que las tecnologías  son utilizadas. Las técnicas de ataque y defensa necesitan ser reinventadas,  tenemos la obligación de aprender nuevas formas de auditar y proteger  ambientes que implementan este tipo de tecnologías. Nuestro training está  diseñado para profesionales que sean parte de RedTeams o BlueTeams, que estén  buscando aprender sobre seguridad en containers y orquestadores desde una  perspectiva ofensiva y defensiva. Análisis con metodologías Black Box, Grey  Box y White Box en Docker, Docker Swarm y Kubernetes serán explicados.  Desde el lado ofensivo, técnicas de ataque para comprometer  contenedores/pods, explotación, abuso de redes, escalación de privilegios,  persistencia, movimientos laterales y toma de control de nodos, entre otros,  serán explicados.

Desde el lado defensivo, problemas comunes de seguridad, metodologías para  armar imágenes de Docker seguras y archivos YML para deployments en Swarm y  Kubernetes serán analizados, la implementación de RBAC para gestión de  acceso, escáneres de vulnerabilidades en archivos y CI/CD pipelines serán  presentados entre otras mejores prácticas.

Este es el contenido que será explicado en el training de tres días:

Contenido del curso

DIA 1:

Docker & Docker Swarm:

Fundamentos

1.1. Contenedores versus Virtualización

1.2. Configuración de Docker Engine

1.3. Docker CLI

Gestión de Contenedores

2.1. Manejo de múltiples contenedores

2.2. Estado de contenedores

2.3. Shell interactivo

2.4. Exposición de puertos

2.5. Comunicación entre contenedores

Imágenes

3.1. Formato y comandos de Dockerfile

3.2. Dockerfile builds

3.3. Registro de Docker

3.4. Etiquetado de imágenes e historial de cambios

Orquestación

4.1. Conceptos de Docker Swarm y servicios


4.2. Despliegue de clusters de Docker Swarm

Redes

5.1. Aislamiento, Host & Bridge

5.2. Overlay Driver

5.3. Red Ingress

Almacenamiento de datos

6.1. Volúmenes persistentes

6.2. Bind Mounts

6.3. Storage Drivers

Kubernetes:

Arquitectura y Componentes Principales

7.1. Infraestructura K8s clusters

7.2. ETCD

7.3. Kube-API

7.4. Kube Controller

7.5. Kube Scheduler

7.6. Kubelet

7.7. Kube Proxy

Instalación

8.1. Instalación Local

8.1.a. Minikube

8.1.b. Alternativas

8.2. Instalación de Cluster

8.2.a. Instalación Manual de Componentes

8.2.b. Kubeadm

8.2.c. Alta Disponibilidad

Gestión de Pods

9.1. Pods Simples

9.2. Pods Multi-Containers

9.3. Deployments

9.3.a. Scheduling

9.3.b. ReplicaSets

9.3.c. Rollouts

9.3.d. Rollbacks

9.4. Namespaces

Redes

10.1. CoreDNS

10.2. Namespaces

10.3. Configuración de Servicios

10.3.a. NodePort

10.3.b. ClusterIP

10.3.c. LoadBalancer

10.4. Enrutamiento & red Ingress


Almacenamiento de datos

11.1. ConfigMaps

11.2. Secretos

11.3. Volúmenes


DIA 2:

Análisis Black Box en Docker:

12.1 ¿Estamos dentro de un contenedor? Reconociendo entornos de contenedores.

12.2 Introspección en contenedores: volúmenes named/bind, datos

confidenciales, configuración de redes y más

12.3 ¿Tenemos contenedores vecinos? Escaneo de redes en Docker

12.4 Abuso de valores predeterminados en las redes de Docker

12.5 Pivoting: comprometiendo todo el entorno de Docker

12.6 Lidiar con limitaciones de la shell

12.7 Abuso de la exposición de docker.sock

12.7.a. Inspeccionando el clúster

12.7.b. Consiguiendo una shell dentro de otros contenedores

12.7.c. Comprometiendo todo el clúster

12.7.d. Explotación remota a través de HTTP

12.8 Técnicas de persistencia

Análisis White Box en Docker:

13.1 Inspección de imágenes de Docker

13.1.a. Formato del Dockerfile y sus comandos

13.1.b. Problemas de seguridad comunes en el Dockerfile

13.1.c. Generando imágenes seguras

13.1.d. Multi-stage builds

13.1.e. Imágenes Distroless

13.2 Inspección de archivos para deployment de multi-containers

13.2.a. Estructura de archivos de Docker Compose

13.2.b. Problemas de seguridad comunes en los archivos de deployment

Defensa del Docker Daemon y contenedores:

14.1 Namespaces y Cgroups

14.2 User-namespace remap

14.3 Rootless

14.4 Otras protecciones

Análisis Black Box de Swarm:

15.1 Diferencias entre ambientes con Docker y Docker Swarm desde el

punto de vista del atacante

15.2 Los secretos de Swarm no son tan secretos

15.3 Abusando de las redes de Swarm

15.3.a. Overlay driver y red ingress

15.4 Pivoting a través de contenedores multi-servicios y ambientes escalados

15.5 Pivoting a través de diferentes redes de Swarm: de frontend a backend

15.6 Persistencia: creando servicios backdoreados


Análisis White Box de Swarm:

16.1 Inspección de archivos Stack para deployment

16.1.a. Estructura de archivos para Stack

16.1.b. Problemas comunes de seguridad en los archivos para Stack

Protecciones en Swarm:

17.1 Cifrado de la clave de Raft-logs

17.2 Cifrado de comunicaciones en Swarm

17.3 Seguridad del UCP

17.4 Otras protecciones


DIA 3:

Análisis Black Box de Kubernetes:

18.1 Detectando orquestadores de K8s desde dentro de los contenedores

18.2 Introspección en contenedores: volúmenes persistentes, secretos,

configmaps y otros

18.3 Descubriendo y escaneando pods en todo el clúster

18.4 Pivoting a través de pods y namespaces de red

18.5. Abusando del token de cuenta de servicio

18.5.a. Escalación de privilegios: comprometiendo todo el clúster

18.6 Técnicas de persistencia

Análisis de Kubernetes en Grey Box:

19.1 Auditoría RBAC

19.2 Abusando de configuraciones erróneas

19.2.a. Divulgación de información

19.2.b. Autenticación anónima

19.2.c. Listado de secretos

19.2.d. Suplantación de usuarios

19.2.e Ejecución remota de código

19.3 Compromiso de nodos de K8s

19.4 Escáneres de vulnerabilidades (orientado a red-team)

Análisis White Box de Kubernetes:

20.1 Inspección de archivos YAML de K8s

20.1.a. Estructura de configuración YAML

20.1.b. Problemas de seguridad comunes en archivos YAML

20.1.c. Inspección RBAC YAML


Defensa en Kubernetes:

21.1 Política de seguridad de pods

21.2 Política de seguridad de red

21.3 Política de control y gestión de acceso

21.4 Cifrado de comunicación

Otras medidas de defensa:

22.1 Escáneres de vulnerabilidades de contenedores / imágenes

22.2 Escáneres de vulnerabilidades en CI/CD


¿Por qué la gente debería asistir a nuestro curso?

En un mundo donde la competencia tecnológica nos demanda actualizar rápida y

flexiblemente nuestras aplicaciones, los contenedores y orquestadores se

volvieron un personaje principal entre las herramientas que nos permiten

estar un paso adelante del resto.

Integrantes de Red-teams y Blue-teams necesitan aprender sobre las

tecnologías de los ambientes de contenedores que utilizan Docker Swarm y

Kubernetes, como también de los recursos que les permiten mantenerlos tan

seguros como sea posible. La falta de información acerca de la seguridad de

estas herramientas representa una gran amenaza para las infraestructuras

modernas. Es momento de discutir, evaluar e implementar técnicas de seguridad

para estos ecosistemas.


3 conceptos principales que los estudiantes aprenderán:

• Comprender cómo Docker, Docker Swarm y Kubernetes trabajan en ambientes

tanto locales como productivos.

• Análisis Black Box, Grey Box y White Box en Docker, Docker Swarm y

Kubernetes con técnicas ofensivas.

• Defensa de Docker Swarm y Kubernetes.


Distribución de contenido teórico vs práctico:

El tiempo se distribuirá en 20% de teoría versus 80% de práctica. El foco del

curso estará dedicado principalmente a los laboratorios prácticos. Las

lecciones teóricas se utilizarán para explicar los conceptos que necesitarán

los ejercicios prácticos.

Laboratorio práctico:

1. Instalación de Docker: ~ 30 minutes.

2. Contenedores de Docker e Imágenes: 1 hour.

3. Docker Swarm, Redes & Volumenes: 1 hour.

4. Instalación de Kubernetes: ~ 30 minutes.

5. Manejo de Pods en Kubernetes: ~1 hour.

6. Redes y almacenamiento de datos en Kubernetes: ~ 1 hour.

7. Análisis Black Box de Docker: ~ 2 hours.

8. Análisis White Box de Docker: ~ 1 hour.

9. Análisis Black Box de Swarm: ~ 2 hours.

10. Análisis White Box de Swarm: ~ 1 hour.

11. Defensa en Docker: ~1 hour.

12. Análisis Black Box de Kubernetes: ~ 2 hours.

13. Análisis Grey Box de Kubernetes: ~ 2 hours.

14. Análisis White Box de Kubernetes: ~ 1 hour.

15. Defensa en Kubernetes: ~ 2 hour.

Keywords: Pentesting, Seguridad en Contenedores, Seguridad en

Orquestadores, Docker,

Swarm, Kubernetes.


¿Quién debería tomar este curso?

• Profesionales especializados en seguridad ofensiva

• Profesionales especializados en seguridad cloud

• Arquitectos de sistemas

• Analistas de seguridad

• Cualquier persona interesada en aprender sobre problemas comunes en

contenedores, orquestadores de contenedores y sus conceptos de seguridad

Conocimientos previos requeridos:

• Conceptos básicos de Linux (incluidos bash y filesystems)

• Conceptos básicos de redes

• Experiencia de pentesting (no requerida)

Recursos necesarios:

• Laptop con al menos 8GB de RAM y 40GB de espacio libre en disco

• Acceso de administrador / root en su computadora portátil

• VirtualBox instalado

Los estudiantes tendrán acceso a:

• Diapositivas y teoría de la capacitación

• Archivos YML de todos los ejercicios

• VM con entorno de prueba listo para desplegar los ejercicios y hacer las

prácticas

• 1 mes de apoyo de los entrenadores para completar todos los ejercicios

presentados

Twitter handler::

• Trainer 1: @UnaPibaGeek

• Trainer 2: @encodedwitch

• Company: @DreamlabGlobal



Español

3 days

20th, 21st, 22nd September

ONLINE

Cost

Early bird 

USD1500

CONSULTAS

Para realizar consultas sobre el training o alguno de sus beneficios, contacta a capacitacion@ekoparty.org

INSTRUCTORS



Sheila A. Berta ( @UnaPibaGeek is an offensive security specialist who started at 12 years-old by

learning on her own. At the age of 15, she wrote her first book about Web Hacking,  published in several countries. Over the years, Sheila has discovered  vulnerabilities in popular web applications and software, as well as given courses  at universities and private institutes in Argentina. She specializes in offensive  techniques, reverse engineering and exploit writing and is also a developer in ASM  (MCU and MPU x86/x64), C/C++, Python and Golang. As an international speaker,  she has spoken at important security conferences such as Black Hat Briefings, DEF  CON, HITB, Ekoparty, IEEE ArgenCon and others. Sheila currently works as Head  of Research at Dreamlab Technologies.


 


Sol Ozzan ( @encodedwitch has been a Developer, Software Architect, Security Analyst and  DevOps technologist for the past four years. She works as a Backend Developer and Security Researcher at Dreamlab Technologies, her previous role was at one of the biggest e-commerce in Latin America. Her technical background includes  development in Go, Python, Java, Ruby and Javascript. She has worked with

advanced CI/CD pipeline technologies including Jenkins, Docker, Kubernetes,  Ansible, AWS CodeDeploy and Terraform among others. Sol is a specialist in  container-based development and deployment, and has dealt with productive  environments that handle +30k distributed VMs with ~150k containers that host +2k  distributed services that are deployed +3k per day. When she’s not working she’s  volunteering organizing free security events and trainings for beginners, playing  Overwatch or listening to vinyl records.