SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Asegurando tu
cluster de Kubernetes
Cloud Native MX - Meetup CDMX
Asegurando tu
cluster de Kubernetes
(Incompleto….)
Cloud Native MX - Meetup CDMX
Disclaimer
• En el contexto de seguridad hay muchos factores y temas que atender.
• En esta charla hablaremos como de algunos de ellos, pero da pie a muchas mas
charlas, el tema da para mucho.
• Infra
• VM, bare-metal, cloud publico/privado
• Sistemas operativos, redes…
• Plataforma
• Container engine, Container orchestration
Container security
• Images
• Image Registries
• Container Runtimes
• Container Orchestration
• Host Operating Systems
• No usar Root como usuario!! (Dockerfile)
Image Security
• Package vulnerability
• Secrets exposure
• No incluir estos en la construcción de las imágenes
• Authenticity
Container Runtimes
• Container Scaping
• Falta de user namespaces
• https://docs.docker.com/engine/security/userns-remap/
• Configuración que exponga información del host
¿Kubernetes?
• ¿Tiene visibilidad de los pods desplegados? ¿Cómo se comunican los clusters o
los pods?
• ¿Tiene alguna forma de detectar el mal comportamiento del tráfico entre
contenedores?
• ¿Cómo podemos saber si cada pod individual se comporta "normalmente"?
• ¿Cómo se le notifica o se le alerta cuando algunos pods o contenedores de
servicios internos comienzan a escanear puertos internamente o intentan
conectarse a la red externa al azar?
• ¿Está familiarizado con los posibles vectores de ataque en una implementación
basada en Kubernetes?
K8S Role Based Access Control (RBAC)
• RBAC proporcionan un control granular de los recursos.
• Estos pueden controlar el acceso a las cargas de trabajo de la aplicación,
así como a los recursos de Kubernetes.
• Las herramientas de administración como OpenShift pueden agregar
capacidades adicionales, pero dependen o usan los controles básicos de
Kubernetes debajo.
• Es fundamental configurar adecuadamente los controles de acceso para
evitar el acceso no autorizado a los componentes de Kubernetes, como el
API server, así como a las cargas de trabajo de las aplicaciones.
Networking en K8s
• FUNDAMENTOS DE REDES DE KUBERNETES
• Cada pod tiene su propia dirección IP enrutable. Kubernetes (en realidad, su plugin de red) se
encarga de enrutar todas las solicitudes internamente entre los hosts al pod apropiado. El
acceso externo a los pods de Kubernetes se puede proporcionar a través de un Service,
balanceador de carga o Ingress Controller, que Kubernetes enruta al pod apropiado.
• Kubernetes usa iptables para controlar las conexiones de red entre pods (y entre nodos),
manejando muchas de las reglas de red y reenvío de puertos. De esta manera, los clientes no
necesitan hacer un seguimiento de las direcciones IP para conectarse a Kubernetes. Además,
la asignación de puertos se simplifica enormemente (y se elimina principalmente) ya que cada
pod tiene su propia dirección IP y su contenedor puede escuchar en su puerto nativo.
• Con todas estas redes superpuestas (overlay) manejadas dinámicamente por Kubernetes, es
extremadamente difícil monitorear el tráfico de la red, y mucho menos asegurarlo. Aquí hay un
ejemplo de cómo funciona la red Kubernetes.
Vulnerabilidades y vectores de ataque
• Contenedores comprometidos. Una configuración incorrecta o vulnerabilidad
de la aplicación le permite al atacante ingresar a un contenedor para comenzar a
buscar debilidades en la red, los controles de proceso o el sistema de archivos.
• CONEXIONES NO AUTORIZADAS ENTRE PODS. Los contenedores
comprometidos pueden intentar conectarse con otros pods en ejecución en el
mismo host u otros para probar o lanzar un ataque. Si bien la red de Capa 3
controla las direcciones IP de pod de una lista blanca, puede ofrecer cierta
protección, los ataques a direcciones IP confiables solo pueden detectarse con
el filtrado de red de Capa 7.
• EXTRACCIÓN DE DATOS DE UN POD. Shell inverso en un pod que se conecta
a un servidor de control y un túnel de red para ocultar datos confidenciales.
Vulnerabilidades y vectores de ataque
• CONTENEDOR COMPROMETIDO EJECUTANDO UN PROCESO MALICIOSO.
Los contenedores generalmente tienen un conjunto limitado y bien definido de
procesos en ejecución, pero un contenedor comprometido puede iniciar malware
como cripto minería o procesos sospechosos como el escaneo de puertos de red.
• SISTEMA DE ARCHIVO DE CONTENEDORES COMPROMETIDO. Un atacante
puede instalar bibliotecas / paquetes vulnerables para explotar el contenedor. Los
archivos confidenciales también se pueden cambiar. Una vez vulnerado, se puede
intentar una escalada de privilegios a root u otra brecha.
• NODO WORKER COMPROMETIDO. El host en sí mismo puede verse
comprometido, al igual que cualquier contenedor que se ejecute en él. Por
ejemplo, la vulnerabilidad del kernel de Linux Dirty Cow permitió a un usuario
escalar al privilegio de root. https://en.wikipedia.org/wiki/Dirty_COW
Pasos de seguridad recomendados
previos al despliegue
• Usar espacios de nombres
• Restringir las capacidades de Linux
• Habilitar SELinux (https://en.wikipedia.org/wiki/Security-Enhanced_Linux)
• Utilice Seccomp (https://en.wikipedia.org/wiki/Seccomp)
• Configurar Cgroups
• Utilice un sistema operativo host mínimo
• Actualizar parches del sistema
Acciones en Kubernetes
• PROTEJER EL API SERVER. Configure RBAC para el API Server y/o crear manualmente
reglas de firewall para evitar el acceso no autorizado. No exponerlo en Internet sin SSL.
O no exponerlo del todo.
• RESTRINGIR LOS PERMISOS DE KUBELET. Configure RBAC para Kubelets y rotación
de certificados para asegurar Kubelet.
• AUTENTICACIÓN PARA TODOS LOS PUERTOS EXTERNOS. Revise todos los puertos
accesibles externamente y elimine los puertos innecesarios. Requerir autenticación para
esos puertos externos necesarios. Para servicios no autenticados, restrinja el acceso
mediante una lista blanca.
• LIMITE O QUITE EL ACCESO A LA CONSOLA (Dashboard). No permita el acceso a la
consola / proxy a menos que esté configurado correctamente para el inicio de sesión del
usuario con contraseñas seguras o autenticación de dos factores.
Aislamiento de red, segmentación
y detección de amenazas
• Verificar conexiones de red de pos y la política de seguridad
• Detección de ataques contra contenedores, ya sea que se originen
externa o internamente.
• La captura de paquetes para los pods de Kubernetes, para permitir el
análisis forense, el registro y la depuración de aplicaciones
Herramientas a usar
• POLÍTICA DE RED. La política de red de Kubernetes proporciona segmentación automatizada L3 / L4 (dirección
IP / puerto). Se requiere un plugin de red que admita la aplicación de políticas de red como Calico.
• ISTIO. Es un service mesh para administrar la comunicación de servicio a servicio, que incluye enrutamiento,
autenticación, autorización y encriptación. Istio proporciona un marco sólido para administrar el enrutamiento de
servicios, pero no está diseñado para ser una herramienta de seguridad para detectar ataques, amenazas y
eventos de contenedores sospechosos.
• GRAFAES. Proporciona una herramienta para definir una forma uniforme de auditar y gobernar la cadena de
suministro de software moderna. Las políticas se pueden rastrear y aplicar con la integración a herramientas de
terceros. Grafeas puede ser útil para gobernar la canalización de CI / CD, pero no está dirigido a la gestión de
políticas de seguridad en tiempo de ejecución. https://grafeas.io/
• CLAIR. Clair es una herramienta simple para escanear vulnerabilidades de imágenes, pero carece de integración de
registro y soporte de flujo de trabajo. Aunque, se acaba de liberar hoy (12/Nov/2019) Quay, que permite integración
con Clair.
• BENCHMARK CIS para Kubernetes. Las verificaciones de cumplimiento y auditoría del Benchmark CIS para
Kubernetes Security están disponibles para su uso. (https://www.cisecurity.org/benchmark/kubernetes/)
Calico
• Es una solución Open Source para networking y
seguridad de red para contenedores, máquinas
virtuales y cargas de trabajo nativas basadas en host.
Se ejecuta en Kubernetes, OpenShift, Docker EE,
OpenStack y servicios bare metal.
• https://docs.projectcalico.org/
• La política de red de Calico facilita el bloqueo de comunicación, por lo
que el único tráfico que fluye es el tráfico que nosotros permitimos.
Podíamos decir que Calico es un firewall personal que se reconfigura
dinámicamente en tiempo real a medida que ejecutamos nuevos servicios
o hacemos scale-up o scale-down.
• El motor de políticas de Calico puede aplicar el mismo modelo de
políticas en la capa de red del host y (si usa Istio & Envoy) en la capa de
service mesh, protegiendo la infraestructura de cargas de trabajo
comprometidas y protegiendo sus cargas de trabajo de infraestructura
comprometida.
Politica de red global para
denegar el acceso a la red
Bloqueamos el trafico en
el namespace ‘engineering’
Permitir el acceso
a HTTP endpoints
Calico para Seguridad
• Zero trust security
• Usar Service Account para acceso
• Bloqueo/desbloqueo de trafico saliente
• Restrigit el acceso externo con iOS, segmentos…
• Prevención de ataques DoS
• https://docs.projectcalico.org/v3.10/security/
Istio
• Autenticación
• Transporte (mutual TLS con Citadel)
• Origen (JWT, uso de proveedores externos y personalizados)
• Politicas de autenticación
Prácticas de seguridad
• Configurar las especificaciones de los Pods para descargar siempre la
imagen (AlwaysPullImages)
• Denegar que los pods puedan ejecutar comandos (kubectl exec/attach)
• DenyEscalatingExec
• Configurar el SecurityContext
• (https://kubernetes.io/docs/tasks/configure-pod-container/security-
context/)
¡Me faltaron los Secrets!

Más contenido relacionado

La actualidad más candente

Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]RootedCON
 
Extensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixExtensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixPaloSanto Solutions
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoToni de la Fuente
 
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebula Project
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
 
Presentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain GroupPresentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain GroupStackops
 
David López Paz - Global Warfare [RootedCON 2011]
David López Paz - Global Warfare [RootedCON 2011]David López Paz - Global Warfare [RootedCON 2011]
David López Paz - Global Warfare [RootedCON 2011]RootedCON
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasRafael Seg
 
Alfresco y SOLR, presentación en español
Alfresco y SOLR, presentación en españolAlfresco y SOLR, presentación en español
Alfresco y SOLR, presentación en españolToni de la Fuente
 
Organizando un datacenter virtual
Organizando un datacenter virtualOrganizando un datacenter virtual
Organizando un datacenter virtualIgnacio Nin
 
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Adrián Lois
 

La actualidad más candente (18)

Apache
Apache Apache
Apache
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Introducción a OpenStak Horizon
Introducción a OpenStak HorizonIntroducción a OpenStak Horizon
Introducción a OpenStak Horizon
 
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
Vins Villaplana - Seguridad en capa de enlace [RootedCON 2011]
 
Extensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixExtensiones remotas seguras en Elastix
Extensiones remotas seguras en Elastix
 
Consejos de seguridad con Alfresco
Consejos de seguridad con AlfrescoConsejos de seguridad con Alfresco
Consejos de seguridad con Alfresco
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
Seguridad en Open Solaris
Seguridad en Open SolarisSeguridad en Open Solaris
Seguridad en Open Solaris
 
Presentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain GroupPresentación Openstack Nova - Openstack Spain Group
Presentación Openstack Nova - Openstack Spain Group
 
David López Paz - Global Warfare [RootedCON 2011]
David López Paz - Global Warfare [RootedCON 2011]David López Paz - Global Warfare [RootedCON 2011]
David López Paz - Global Warfare [RootedCON 2011]
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemas
 
Alfresco y SOLR, presentación en español
Alfresco y SOLR, presentación en españolAlfresco y SOLR, presentación en español
Alfresco y SOLR, presentación en español
 
Organizando un datacenter virtual
Organizando un datacenter virtualOrganizando un datacenter virtual
Organizando un datacenter virtual
 
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
 

Similar a Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes

VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDomingo Suarez Torres
 
Unidad iii seguridad de redes stew
Unidad iii seguridad de redes stewUnidad iii seguridad de redes stew
Unidad iii seguridad de redes stewsthewardleon
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesDomingo Suarez Torres
 
Unidad iii seguridad de redes bmos
Unidad iii seguridad de redes bmosUnidad iii seguridad de redes bmos
Unidad iii seguridad de redes bmosBenjamin Ortiz
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Presentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad VenezuelaPresentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad VenezuelaEnder Mujica Diaz
 
Instalacion y uso basico de Kubernetes.
Instalacion y uso basico de Kubernetes.Instalacion y uso basico de Kubernetes.
Instalacion y uso basico de Kubernetes.Moisés Elías Araya
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 
Unidad iii seguridad de redes
Unidad iii seguridad de redes Unidad iii seguridad de redes
Unidad iii seguridad de redes leonardoruiz98
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...ssuserc860fb
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadÓscar De Arriba González
 
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...Luis Beltran
 
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxAzure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxLuis Beltran
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureDomingo Suarez Torres
 

Similar a Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes (20)

VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con IstioDevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
DevFest Lima Corriendo cargas e trabajo seguras en GKE con Istio
 
Unidad iii seguridad de redes stew
Unidad iii seguridad de redes stewUnidad iii seguridad de redes stew
Unidad iii seguridad de redes stew
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
Introducción a Amazon EKS
Introducción a Amazon EKSIntroducción a Amazon EKS
Introducción a Amazon EKS
 
Unidad iii seguridad de redes bmos
Unidad iii seguridad de redes bmosUnidad iii seguridad de redes bmos
Unidad iii seguridad de redes bmos
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Presentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad VenezuelaPresentación OpenStack Comunidad Venezuela
Presentación OpenStack Comunidad Venezuela
 
Instalacion y uso basico de Kubernetes.
Instalacion y uso basico de Kubernetes.Instalacion y uso basico de Kubernetes.
Instalacion y uso basico de Kubernetes.
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 
Comenzando con la nube híbrida
Comenzando con la nube híbridaComenzando con la nube híbrida
Comenzando con la nube híbrida
 
Unidad iii seguridad de redes
Unidad iii seguridad de redes Unidad iii seguridad de redes
Unidad iii seguridad de redes
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
 
Docker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidadDocker y Kubernetes, en busca de la alta disponibilidad
Docker y Kubernetes, en busca de la alta disponibilidad
 
El camino de Java a Kubernetes
El camino de Java a KubernetesEl camino de Java a Kubernetes
El camino de Java a Kubernetes
 
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...
Bringing AI to the Edge: On-premises Azure Cognitive Services with Docker con...
 
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptxAzure AI South Azure Cognitive Services en contenedores Docker.pptx
Azure AI South Azure Cognitive Services en contenedores Docker.pptx
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Meetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architectureMeetup DigitalOcean Cloud Native architecture
Meetup DigitalOcean Cloud Native architecture
 

Más de Domingo Suarez Torres

Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivirDomingo Suarez Torres
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosDomingo Suarez Torres
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyDomingo Suarez Torres
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityDomingo Suarez Torres
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextDomingo Suarez Torres
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosDomingo Suarez Torres
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Domingo Suarez Torres
 
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootSOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootDomingo Suarez Torres
 

Más de Domingo Suarez Torres (20)

Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Contenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMXContenedores 101 Digital Ocean CDMX
Contenedores 101 Digital Ocean CDMX
 
Retos en la arquitectura de Microservicios
Retos en la arquitectura de MicroserviciosRetos en la arquitectura de Microservicios
Retos en la arquitectura de Microservicios
 
Java Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDLJava Cloud Native Hack Nights GDL
Java Cloud Native Hack Nights GDL
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Peru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVMPeru JUG Micronaut & GraalVM
Peru JUG Micronaut & GraalVM
 
Cloud Native Development in the JVM
Cloud Native Development in the JVMCloud Native Development in the JVM
Cloud Native Development in the JVM
 
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y EnvoyCloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
Cloud Native Mexico Meetup de Marzo 2018 Service Mesh con Istio y Envoy
 
Cloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 ObservabilityCloud Native Mexico Meetup enero 2018 Observability
Cloud Native Mexico Meetup enero 2018 Observability
 
Cloud Native Mexico Presentacion
Cloud Native Mexico PresentacionCloud Native Mexico Presentacion
Cloud Native Mexico Presentacion
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Devops Landscape
Devops LandscapeDevops Landscape
Devops Landscape
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
SGNext Elasticsearch
SGNext ElasticsearchSGNext Elasticsearch
SGNext Elasticsearch
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016Elasticsearch JVM-MX Meetup April 2016
Elasticsearch JVM-MX Meetup April 2016
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootSOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
 
SOA Latam 2015
SOA Latam 2015SOA Latam 2015
SOA Latam 2015
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Último (13)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes

  • 1. Asegurando tu cluster de Kubernetes Cloud Native MX - Meetup CDMX
  • 2. Asegurando tu cluster de Kubernetes (Incompleto….) Cloud Native MX - Meetup CDMX
  • 3. Disclaimer • En el contexto de seguridad hay muchos factores y temas que atender. • En esta charla hablaremos como de algunos de ellos, pero da pie a muchas mas charlas, el tema da para mucho. • Infra • VM, bare-metal, cloud publico/privado • Sistemas operativos, redes… • Plataforma • Container engine, Container orchestration
  • 4. Container security • Images • Image Registries • Container Runtimes • Container Orchestration • Host Operating Systems • No usar Root como usuario!! (Dockerfile)
  • 5. Image Security • Package vulnerability • Secrets exposure • No incluir estos en la construcción de las imágenes • Authenticity
  • 6. Container Runtimes • Container Scaping • Falta de user namespaces • https://docs.docker.com/engine/security/userns-remap/ • Configuración que exponga información del host
  • 7. ¿Kubernetes? • ¿Tiene visibilidad de los pods desplegados? ¿Cómo se comunican los clusters o los pods? • ¿Tiene alguna forma de detectar el mal comportamiento del tráfico entre contenedores? • ¿Cómo podemos saber si cada pod individual se comporta "normalmente"? • ¿Cómo se le notifica o se le alerta cuando algunos pods o contenedores de servicios internos comienzan a escanear puertos internamente o intentan conectarse a la red externa al azar? • ¿Está familiarizado con los posibles vectores de ataque en una implementación basada en Kubernetes?
  • 8. K8S Role Based Access Control (RBAC) • RBAC proporcionan un control granular de los recursos. • Estos pueden controlar el acceso a las cargas de trabajo de la aplicación, así como a los recursos de Kubernetes. • Las herramientas de administración como OpenShift pueden agregar capacidades adicionales, pero dependen o usan los controles básicos de Kubernetes debajo. • Es fundamental configurar adecuadamente los controles de acceso para evitar el acceso no autorizado a los componentes de Kubernetes, como el API server, así como a las cargas de trabajo de las aplicaciones.
  • 9. Networking en K8s • FUNDAMENTOS DE REDES DE KUBERNETES • Cada pod tiene su propia dirección IP enrutable. Kubernetes (en realidad, su plugin de red) se encarga de enrutar todas las solicitudes internamente entre los hosts al pod apropiado. El acceso externo a los pods de Kubernetes se puede proporcionar a través de un Service, balanceador de carga o Ingress Controller, que Kubernetes enruta al pod apropiado. • Kubernetes usa iptables para controlar las conexiones de red entre pods (y entre nodos), manejando muchas de las reglas de red y reenvío de puertos. De esta manera, los clientes no necesitan hacer un seguimiento de las direcciones IP para conectarse a Kubernetes. Además, la asignación de puertos se simplifica enormemente (y se elimina principalmente) ya que cada pod tiene su propia dirección IP y su contenedor puede escuchar en su puerto nativo. • Con todas estas redes superpuestas (overlay) manejadas dinámicamente por Kubernetes, es extremadamente difícil monitorear el tráfico de la red, y mucho menos asegurarlo. Aquí hay un ejemplo de cómo funciona la red Kubernetes.
  • 10.
  • 11. Vulnerabilidades y vectores de ataque • Contenedores comprometidos. Una configuración incorrecta o vulnerabilidad de la aplicación le permite al atacante ingresar a un contenedor para comenzar a buscar debilidades en la red, los controles de proceso o el sistema de archivos. • CONEXIONES NO AUTORIZADAS ENTRE PODS. Los contenedores comprometidos pueden intentar conectarse con otros pods en ejecución en el mismo host u otros para probar o lanzar un ataque. Si bien la red de Capa 3 controla las direcciones IP de pod de una lista blanca, puede ofrecer cierta protección, los ataques a direcciones IP confiables solo pueden detectarse con el filtrado de red de Capa 7. • EXTRACCIÓN DE DATOS DE UN POD. Shell inverso en un pod que se conecta a un servidor de control y un túnel de red para ocultar datos confidenciales.
  • 12. Vulnerabilidades y vectores de ataque • CONTENEDOR COMPROMETIDO EJECUTANDO UN PROCESO MALICIOSO. Los contenedores generalmente tienen un conjunto limitado y bien definido de procesos en ejecución, pero un contenedor comprometido puede iniciar malware como cripto minería o procesos sospechosos como el escaneo de puertos de red. • SISTEMA DE ARCHIVO DE CONTENEDORES COMPROMETIDO. Un atacante puede instalar bibliotecas / paquetes vulnerables para explotar el contenedor. Los archivos confidenciales también se pueden cambiar. Una vez vulnerado, se puede intentar una escalada de privilegios a root u otra brecha. • NODO WORKER COMPROMETIDO. El host en sí mismo puede verse comprometido, al igual que cualquier contenedor que se ejecute en él. Por ejemplo, la vulnerabilidad del kernel de Linux Dirty Cow permitió a un usuario escalar al privilegio de root. https://en.wikipedia.org/wiki/Dirty_COW
  • 13. Pasos de seguridad recomendados previos al despliegue • Usar espacios de nombres • Restringir las capacidades de Linux • Habilitar SELinux (https://en.wikipedia.org/wiki/Security-Enhanced_Linux) • Utilice Seccomp (https://en.wikipedia.org/wiki/Seccomp) • Configurar Cgroups • Utilice un sistema operativo host mínimo • Actualizar parches del sistema
  • 14. Acciones en Kubernetes • PROTEJER EL API SERVER. Configure RBAC para el API Server y/o crear manualmente reglas de firewall para evitar el acceso no autorizado. No exponerlo en Internet sin SSL. O no exponerlo del todo. • RESTRINGIR LOS PERMISOS DE KUBELET. Configure RBAC para Kubelets y rotación de certificados para asegurar Kubelet. • AUTENTICACIÓN PARA TODOS LOS PUERTOS EXTERNOS. Revise todos los puertos accesibles externamente y elimine los puertos innecesarios. Requerir autenticación para esos puertos externos necesarios. Para servicios no autenticados, restrinja el acceso mediante una lista blanca. • LIMITE O QUITE EL ACCESO A LA CONSOLA (Dashboard). No permita el acceso a la consola / proxy a menos que esté configurado correctamente para el inicio de sesión del usuario con contraseñas seguras o autenticación de dos factores.
  • 15. Aislamiento de red, segmentación y detección de amenazas • Verificar conexiones de red de pos y la política de seguridad • Detección de ataques contra contenedores, ya sea que se originen externa o internamente. • La captura de paquetes para los pods de Kubernetes, para permitir el análisis forense, el registro y la depuración de aplicaciones
  • 16. Herramientas a usar • POLÍTICA DE RED. La política de red de Kubernetes proporciona segmentación automatizada L3 / L4 (dirección IP / puerto). Se requiere un plugin de red que admita la aplicación de políticas de red como Calico. • ISTIO. Es un service mesh para administrar la comunicación de servicio a servicio, que incluye enrutamiento, autenticación, autorización y encriptación. Istio proporciona un marco sólido para administrar el enrutamiento de servicios, pero no está diseñado para ser una herramienta de seguridad para detectar ataques, amenazas y eventos de contenedores sospechosos. • GRAFAES. Proporciona una herramienta para definir una forma uniforme de auditar y gobernar la cadena de suministro de software moderna. Las políticas se pueden rastrear y aplicar con la integración a herramientas de terceros. Grafeas puede ser útil para gobernar la canalización de CI / CD, pero no está dirigido a la gestión de políticas de seguridad en tiempo de ejecución. https://grafeas.io/ • CLAIR. Clair es una herramienta simple para escanear vulnerabilidades de imágenes, pero carece de integración de registro y soporte de flujo de trabajo. Aunque, se acaba de liberar hoy (12/Nov/2019) Quay, que permite integración con Clair. • BENCHMARK CIS para Kubernetes. Las verificaciones de cumplimiento y auditoría del Benchmark CIS para Kubernetes Security están disponibles para su uso. (https://www.cisecurity.org/benchmark/kubernetes/)
  • 17. Calico • Es una solución Open Source para networking y seguridad de red para contenedores, máquinas virtuales y cargas de trabajo nativas basadas en host. Se ejecuta en Kubernetes, OpenShift, Docker EE, OpenStack y servicios bare metal. • https://docs.projectcalico.org/
  • 18. • La política de red de Calico facilita el bloqueo de comunicación, por lo que el único tráfico que fluye es el tráfico que nosotros permitimos. Podíamos decir que Calico es un firewall personal que se reconfigura dinámicamente en tiempo real a medida que ejecutamos nuevos servicios o hacemos scale-up o scale-down. • El motor de políticas de Calico puede aplicar el mismo modelo de políticas en la capa de red del host y (si usa Istio & Envoy) en la capa de service mesh, protegiendo la infraestructura de cargas de trabajo comprometidas y protegiendo sus cargas de trabajo de infraestructura comprometida.
  • 19. Politica de red global para denegar el acceso a la red
  • 20. Bloqueamos el trafico en el namespace ‘engineering’
  • 21. Permitir el acceso a HTTP endpoints
  • 22. Calico para Seguridad • Zero trust security • Usar Service Account para acceso • Bloqueo/desbloqueo de trafico saliente • Restrigit el acceso externo con iOS, segmentos… • Prevención de ataques DoS • https://docs.projectcalico.org/v3.10/security/
  • 23. Istio • Autenticación • Transporte (mutual TLS con Citadel) • Origen (JWT, uso de proveedores externos y personalizados) • Politicas de autenticación
  • 24. Prácticas de seguridad • Configurar las especificaciones de los Pods para descargar siempre la imagen (AlwaysPullImages) • Denegar que los pods puedan ejecutar comandos (kubectl exec/attach) • DenyEscalatingExec • Configurar el SecurityContext • (https://kubernetes.io/docs/tasks/configure-pod-container/security- context/)
  • 25.
  • 26. ¡Me faltaron los Secrets!