Skip to main content

Kubernetes publicó su auditoría de seguridad como código abierto. ¿Qué podemos aprender?

Escrito por
Headshot of Hayley Denbraver

Hayley Denbraver

8 de agosto de 2019

0 minutos de lectura

A principios de esta semana, el 6 de agosto, la Cloud Native Computing Foundation (CNCF) publicó una entrada de blog con detalles sobre su reciente auditoría de seguridad de Kubernetes. El año pasado, CNCF inició su programa de auditorías de seguridad con tres proyectos: CoreDNS, Envoy y Prometheus. Como este programa piloto tuvo éxito, CNCF lo está extendiendo a otros proyectos de su ecosistema.

Kubernetes es un motor de orquestación de contenedores de código abierto que automatiza la implementación, el escalamiento y la administración de aplicaciones en contenedores, y es el proyecto más grande del ecosistema de CNCF. Es excelente que CNCF esté priorizando la seguridad de su proyecto insignia.

Conclusiones rápidas

Los resultados completos del informe exceden el alcance de esta publicación, pero queríamos darte una idea general de todos modos. Muchas de las recomendaciones del informe consistían en depurar el código, agregar más pruebas y documentación, y configurar valores predeterminados más seguros. Estas recomendaciones básicas facilitarían la aplicación de parches y la resolución de problemas cuando se detecten. Es importante señalar que hubo cinco hallazgos de «alta gravedad» relacionados con el control de acceso, la autenticación, la sincronización y la validación de datos. En resumen, estos problemas son:

  • Elusión de los controles de acceso de PodSecurityPolicy

  • K8s no permite revocar certificados

  • Las conexiones HTTPS no se autentican

  • Problema de tiempo entre la comprobación y el uso al cambiar el PID

  • Vulnerabilidad de recorrido de directorios en kubectl cp con un parche incorrecto

Definitivamente vale la pena leer el informe; puedes encontrarlo aquí.

Amplitud y profundidad de la seguridad

La auditoría se definió de modo que se consideraran estas cinco áreas de control para detectar posibles problemas: redes, criptografía, autenticación y autorización, administración de secretos y aislamiento multiinquilino. Kubernetes es un proyecto grande, y el informe prioriza la amplitud por encima de la profundidad en lo que respecta a los problemas de seguridad. La auditoría ofrece una vista panorámica del estado de seguridad del proyecto.

Aunque hay áreas del código que podrían beneficiarse de una revisión más profunda, creo que este enfoque que prioriza la amplitud fue una muy buena decisión. Por ejemplo, si vas al médico y te haces uno o dos análisis de sangre al azar, podrías descubrir algo interesante sobre tu salud, pero es poco probable que obtengas una visión completa de cómo estás. En cambio, si consideras tu salud de manera integral, tendrás una mejor idea de tu estado general y es más probable que tu médico pueda identificar problemas que investigar.

Este informe no se trataba solo de identificar uno o dos problemas (aunque se señalaron algunos), sino de obtener una idea general del estado de Kubernetes para poder elegir prioridades y objetivos que favorezcan la seguridad y la sostenibilidad del proyecto en su conjunto. Se recomendaron objetivos a corto y largo plazo para cada una de las cinco categorías de control, lo que nos dio una idea de lo que podría deparar el futuro de Kubernetes.

Beneficios para los responsables del mantenimiento y las comunidades

Es excelente ver que un proyecto tan importante y ampliamente utilizado se someta a una auditoría de seguridad. Es un buen ejemplo para otros proyectos del tamaño de Kubernetes y beneficia tanto a quienes mantienen el proyecto como a la comunidad en general.

CNCF y quienes mantienen Kubernetes hicieron una inversión bien meditada en una auditoría de seguridad. Una auditoría de seguridad puede ayudar a quienes mantienen el proyecto a adelantarse a los actores maliciosos y adoptar una postura proactiva, en lugar de limitarse a reaccionar. Siempre es preferible encontrar tus propias vulnerabilidades antes de que otros lo hagan. También es mucho mejor resolver los problemas detectados en un informe que planificaste, en lugar de enterarte de un problema en un momento inesperado y posiblemente inoportuno. Las correcciones se pueden priorizar y resolver con cuidado, sin trabajar contra reloj como tendrías que hacerlo si las vulnerabilidades se divulgaran por otros medios. Al realizar la auditoría y publicar sus hallazgos como código abierto, CNCF y quienes mantienen Kubernetes se han convertido en referentes en este campo e inspirarán a otros proyectos a seguir su ejemplo y realizar y publicar auditorías de seguridad.

Además, al publicar los hallazgos como código abierto, los miembros de la comunidad no solo se benefician cuando se alcanzan los objetivos a corto y largo plazo, sino que también obtienen beneficios inmediatos. Esto ocurre de varias maneras. Primero, los usuarios pueden optar por usar Kubernetes con la confianza de que CNCF y quienes mantienen el proyecto se toman en serio la seguridad. Segundo, pueden revisar los hallazgos y tomar decisiones más informadas para sus proyectos. Por último, pueden aprovechar todos los recursos incluidos en la auditoría, como el informe técnico y el modelo de amenazas, lecturas interesantes para quienes quieran mejorar sus habilidades con Kubernetes o en seguridad.

Conclusión

Si te interesa saber cómo funcionan las auditorías de seguridad como esta, o incluso participar en futuras auditorías, puedes unirte al grupo de interés especial (SIG, por sus siglas en inglés) de CNCF dedicado a la seguridad. Obtén más información aquí: https://github.com/cncf/sig-security.

Felicitaciones y gracias a CNCF por emprender una iniciativa tan importante. Esperamos que la auditoría les aporte muchos beneficios. Compartimos su deseo de que, al publicar como código abierto sus auditorías y procesos de seguridad, CNCF inspire a otros proyectos a seguir su ejemplo.

Seguridad de contenedores centrada en los desarrolladores

Snyk encuentra y corrige automáticamente vulnerabilidades en imágenes de contenedores y cargas de trabajo de Kubernetes.