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
Up to 31/08
USD 1875
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.