En este documento, se describe cómo Google administra las vulnerabilidades y los parches de seguridad de Google Kubernetes Engine (GKE). Esta información puede ser útil para los especialistas en seguridad que admiten la resolución de problemas de seguridad o vulnerabilidades que necesitan asistencia estratégica, como incidentes y problemas derivados de la asistencia.
Aplicación de parches de responsabilidad compartida
La aplicación de parches es una responsabilidad compartida entre Google y el cliente. Las diferentes plataformas tienen distintas responsabilidades compartidas. Consulta los siguientes temas en cada plataforma para obtener más detalles:
- GKE
- Google Distributed Cloud (solo software) en VMware
- GKE en AWS
- Google Distributed Cloud (solo software) en equipos físicos
- GKE en Azure
Cómo descubrimos las vulnerabilidades
Google realizó grandes inversiones en diseño de seguridad proactiva y endurecimiento, pero incluso los sistemas de software de mejor diseño pueden tener vulnerabilidades. Para encontrar esas vulnerabilidades y aplicar parches antes de que puedan ser aprovechadas, Google hizo inversiones significativas en varios frentes.
Para la aplicación de parches, GKE es una capa del sistema operativo (SO) con contenedores que se ejecutan en la parte superior. Los sistemas operativos, Container-Optimized OS o Ubuntu, están endurecidos y contienen la cantidad mínima de software necesario para ejecutar contenedores. Las funciones de GKE se ejecutan como contenedores en la parte superior de las imágenes base. GKE trabaja de forma constante para reducir la cantidad de dependencias que tienen los componentes del sistema, lo que ayuda a reducir la superficie de ataque y a mejorar la eficiencia de la gestión de vulnerabilidades. Por ejemplo, los componentes del sistema de GKE pueden usar imágenes base mínimas cuando sea posible.
Google identifica y corrige las vulnerabilidades y los parches faltantes de las siguientes maneras:
Container-Optimized OS: Google analiza las imágenes para identificar posibles vulnerabilidades y parches faltantes. El equipo de Container-Optimized OS revisa y resuelve los problemas.
Ubuntu: Canonical proporciona a Google las compilaciones de SO que tienen aplicadas todos los parches de seguridad disponibles.
Google analiza los contenedores mediante Container Registry Artifact Analysis a fin de descubrir vulnerabilidades y parches faltantes en Kubernetes y contenedores administrados por Google. Si hay correcciones disponibles, el analizador comienza automáticamente el proceso de aplicación de parches y actualizaciones.
Además del análisis automatizado, Google descubre vulnerabilidades desconocidas a los escáneres y aplica parches de las siguientes maneras.
Google realiza sus propias auditorías, pruebas de penetración y descubrimiento de vulnerabilidades en todas las plataformas. Para obtener una lista de las plataformas, consulta la sección anterior Responsabilidad compartida de la aplicación de parches.
Equipos especializados dentro de Google y proveedores de seguridad externos de confianza realizan su propia investigación sobre ataques. Google también trabajó con el CNCF a fin de proporcionar gran parte de la organización y la experiencia de asesoría técnica para la auditoría de seguridad de Kubernetes.
Google participa de forma activa con la comunidad de investigación de seguridad mediante varios programas de recompensas por detección de vulnerabilidades. Un programa dedicado de Google Cloud recompensas por detección de vulnerabilidades proporciona recompensas significativas, que incluyen USD 133,337 para la mejor vulnerabilidad de la nube que se encuentra cada año. Para GKE, hay un programa que recompensa a los investigadores de seguridad si pueden interrumpir nuestros controles de seguridad. El programa abarca todas las dependencias de software de GKE.
Google colabora con otros socios de software de industria y código abierto que comparten vulnerabilidades, investigaciones de seguridad y parches antes del lanzamiento público de la vulnerabilidad. El objetivo de esta colaboración es aplicar un parche a grandes partes de la infraestructura de Internet antes de que se anuncie al público la vulnerabilidad. En algunos casos, Google contribuye con vulnerabilidades que se encuentran en esta comunidad. Por ejemplo, el proyecto cero de Google descubrió y publicó las vulnerabilidades Spectre y Meltdown. El equipo de Google Cloud Seguridad también encuentra y corrige vulnerabilidades en la máquina virtual basada en kernel (KVM) con regularidad.
La colaboración en seguridad de Google ocurre en muchos niveles. En ocasiones, se produce formalmente a través de programas en los que las organizaciones se registran a fin de recibir notificaciones previas al lanzamiento sobre vulnerabilidades de software para productos como Kubernetes y Envoy La colaboración también se realiza de manera informal debido a nuestra participación en muchos proyectos de código abierto, como el kernel de Linux, los entornos de ejecución de contenedores, la tecnología de virtualización y otros.
Para Kubernetes, Google es un miembro activo y fundador del Comité de respuesta de seguridad (SRC) y escribió gran parte del Proceso de lanzamiento de seguridad. Google es miembro de la lista de distribuidores de Kubernetes que recibe una notificación previa sobre las vulnerabilidades y participa en la clasificación, la aplicación de parches, el desarrollo de mitigación y la comunicación de casi todas las vulnerabilidades graves de seguridad de Kubernetes. Google también descubrió varias vulnerabilidades de Kubernetes, como CVE-2019-11254, CVE-2019-11255 y CVE-2021-25741.
Si bien se detectan vulnerabilidades menos graves y se aplican parches fuera de estos procesos, las vulnerabilidades de seguridad más importantes se informan de forma privada a través de uno de los canales enumerados antes. Los informes anticipados le brindan a Google tiempo antes de que la vulnerabilidad se haga pública para investigar cómo afecta a GKE, desarrollar parches o mitigaciones, y preparar consejos y comunicaciones para los clientes. Cuando sea posible, Google aplica parches a todos los clústeres antes del lanzamiento público de la vulnerabilidad.
Cómo se clasifican las vulnerabilidades
GKE realiza grandes inversiones en la seguridad de endurecimiento de toda la pila, incluidos el SO, el contenedor, Kubernetes y las capas de red, además de establecer valores predeterminados adecuados, parámetros de configuración endurecidas en la seguridad y componentes administrados. Juntos, estos esfuerzos ayudan a reducir el impacto y la probabilidad de vulnerabilidades.
El equipo de seguridad de GKE clasifica las vulnerabilidades según el sistema de puntuación de vulnerabilidades de Kubernetes. En las clasificaciones, se tienen en cuenta muchos factores, como la configuración de GKE y el endurecimiento de la seguridad. Debido a estos factores y las inversiones que GKE realiza en seguridad, las clasificaciones de las vulnerabilidades de GKE pueden diferir de otras fuentes de clasificación.
En la siguiente tabla, se describen las categorías de gravedad de las vulnerabilidades:
| Gravedad | Descripción |
|---|---|
| Crítico | Una vulnerabilidad fácilmente capaz de afectar todos los clústeres mediante un atacante remoto no autenticado que representa un peligro para todo el sistema. |
| Alto | Una vulnerabilidad que se puede aprovechar fácilmente para muchos clústeres que hace que se pierdan la confidencialidad, la integridad o la disponibilidad. |
| Medio | Una vulnerabilidad que afecta a algunos clústeres en los que la pérdida de confidencialidad, integridad o disponibilidad está limitada por configuraciones comunes, dificultad de la explotación en sí, acceso obligatorio o interacción del usuario. |
| Bajo | El resto de las vulnerabilidades. El riesgo de explotación es poco probable o las consecuencias de la explotación son limitadas. |
Consulta los boletines de seguridad para ver ejemplos de vulnerabilidades, correcciones y mitigaciones, y sus calificaciones.
Cómo se parchan las vulnerabilidades en los clústeres de GKE
El parche de una vulnerabilidad implica actualizar a un nuevo número de versión de GKE. Las versiones de GKE incluyen componentes con versiones para el sistema operativo, los componentes de Kubernetes y otros contenedores que conforman la plataforma de GKE. Para corregir algunas vulnerabilidades, solo se requiere una actualización del plano de control que Google realiza de manera automática en GKE, mientras que otras requieren actualizaciones del plano de control y de nodos.
Para mantener los clústeres con parches y endurecidos contra las vulnerabilidades de todos los niveles de gravedad, recomendamos usar la actualización automática de nodos en GKE (activada de forma predeterminada). Para los clústeres inscritos en los canales de versiones, las versiones de parche se ascienden a medida que cumplen con los requisitos de calificación de cada canal. Si necesitas una versión de parche de GKE antes de que llegue al canal del clúster, puedes actualizar de forma manual a la versión de parche si esta se encuentra en la misma versión secundaria que una disponible en el canal de versiones del clúster.
En otras plataformas en las que se ejecutan clústeres, Google recomienda realizar actualizaciones al menos una vez al mes. Para obtener una lista de las plataformas, consulta la sección anterior Responsabilidad compartida de la aplicación de parches.
Algunos escáneres de seguridad o verificaciones manuales de versiones pueden suponer de manera incorrecta que a un componente como runc o containerd le falta un parche de seguridad ascendente específico. GKE aplica parches a los componentes con regularidad y solo realiza actualizaciones de versiones de paquetes cuando es necesario, lo que significa que los componentes de GKE son funcionalmente similares a sus contrapartes ascendentes, incluso si el número de versión del componente de GKE no coincide con el número de versión ascendente. Para obtener detalles sobre una CVE específica, consulta los boletines de seguridad de GKE.
Cronogramas de aplicación de parches
El objetivo de Google es mitigar las vulnerabilidades detectadas dentro de un período adecuado para los riesgos que representan. GKE se incluye en el ATO provisional de FedRAMP deGoogle Cloud, que requiere que las vulnerabilidades conocidas se solucionen en períodos específicos según su nivel de gravedad, como se especifica en el control RA-5(d) del registro de Evaluación de riesgos (RA) RA-5, "Análisis de vulnerabilidades", en la hoja de cálculo de la Línea base de controles de seguridad de FedRAMP.
Para cada vulnerabilidad conocida, el objetivo de GKE es lanzar versiones de parches que la solucionen dentro del plazo correspondiente. El Google Cloud ATO provisional de FedRAMP no incluye Google Distributed Cloud, GKE en AWS, GKE en Azure ni clústeres conectados de GKE, pero tenemos como objetivo los mismos períodos de solución en esos productos. Después de que GKE publique versiones de parche para corregir una vulnerabilidad conocida, actualiza tus clústeres a esas versiones para cumplir con los plazos de aplicación de parches de tu organización.
Cómo se comunican las vulnerabilidades y los parches
La mejor fuente de información actual sobre las vulnerabilidades y los parches de seguridad se encuentra en los feeds de boletines de seguridad de los siguientes productos:
- Google Kubernetes Engine (GKE)
- Google Distributed Cloud (solo software) en VMware
- GKE en AWS
- GKE en Azure
- Google Distributed Cloud (solo software) en equipos físicos
Estos boletines siguen un esquema común de numeración de vulnerabilidades Google Cloud y están vinculados desde la página principal de boletines Google Cloud y las notas de la versión de GKE. Cada página de boletines de seguridad tiene un feed RSS en el que los usuarios pueden suscribirse para recibir actualizaciones.
En ocasiones, las vulnerabilidades se mantienen privadas bajo embargo por un tiempo. Los embargos permiten evitar la publicación anticipada de vulnerabilidades que pueden conducir a intentos de explotación antes de que se puedan tomar medidas para abordarlas. En las situaciones anteriores, las notas de la versión hacen referencia a las “actualizaciones de seguridad” hasta que se apruebe la divulgación. Después de que se aprueba la divulgación, Google actualiza las notas de la versión para incluir las vulnerabilidades específicas.
El equipo de seguridad de GKE publica boletines de seguridad para vulnerabilidades graves y críticas. Cuando se requiere una acción del cliente para abordar estas vulnerabilidades altas y críticas, Google se comunica con los clientes por correo electrónico. Además, Google también puede comunicarse con los clientes con contratos de asistencia a través de canales de asistencia.
¿Cuál es la forma más rápida de instalar un parche de seguridad?
Todos los clústeres se mantendrán automáticamente con parches gracias a las actualizaciones automáticas de GKE. En esta sección, se describe cómo aplicar parches más rápido que las actualizaciones automáticas para correcciones de seguridad específicas o de forma continua. Si combinas entornos de prueba, actualizaciones manuales en varios canales, parámetros de configuración de parches acelerados y notificaciones basadas en eventos, puedes reducir los plazos de entrega de los parches.
GKE administra los lanzamientos de versiones en los canales de versiones para garantizar que las versiones nuevas estén calificadas y probadas. Para reducir los plazos de entrega de las actualizaciones, debes comprender cómo funcionan estos lanzamientos y, luego, adaptar el comportamiento predeterminado para satisfacer tus necesidades específicas.
La versión con parche se ejecuta en clústeres durante un período para observar su estabilidad. Este proceso ayuda a detectar errores que solo aparecen después de un uso prolongado en diversos entornos. Para garantizar un tiempo de prueba suficiente, las versiones de parches de GKE se introducen primero en el canal rápido, seguido del regular y el estable. Las versiones también se prueban en cada canal antes de convertirse en el destino de actualización predeterminado para el canal.
Califica parches de forma anticipada con un clúster dedicado en el canal rápido
Para calificar un parche de seguridad que deseas acelerar, ejecuta un clúster dedicado inscrito en el canal Rápido con las actualizaciones automáticas de parches aceleradas habilitadas. Usa este clúster para verificar la compatibilidad de las cargas de trabajo y detectar cualquier problema tan pronto como Google lance una corrección de seguridad. Este clúster se podría usar como una calificación única para un parche específico, pero ejecutarlo de forma continua proporciona beneficios adicionales de confiabilidad a tu flota.
Reduce las demoras de la estabilización con actualizaciones automáticas de parches aceleradas
Una vez que tu clúster inscrito en el programa de lanzamiento rápido esté en funcionamiento para detectar problemas, puedes optar por consumir parches más rápido en tus clústeres de producción en los canales Regular y Estable. Habilita las actualizaciones automáticas aceleradas de parches para que tus clústeres de producción comiencen a actualizarse a la versión de parche más reciente en tu canal inscrito en cuanto esté disponible. Esta función le indica a GKE que omita el tiempo de prueba en el canal para las actualizaciones de parches, en particular los parches de seguridad.
Actualizaciones manuales a versiones de parche más recientes en los canales regular y estable
Si tus cargas de trabajo de producción se ejecutan en clústeres inscritos en los canales Regular o Estable, no es necesario que abandones esos canales ni que esperes a que llegue la implementación automática y gradual de un parche si hay una actualización de seguridad específica que debes priorizar.
Si tu clúster inscrito en el programa de lanzamiento rápido calificó correctamente un parche, puedes iniciar manualmente una actualización en tus clústeres de producción en los canales Regular o Estable a esa versión de parche exacta.
Automatiza la administración de parches con notificaciones de Pub/Sub basadas en eventos
No es necesario supervisar la página web de los boletines de seguridad para obtener información sobre los parches. Para recibir notificaciones programáticas rápidas sobre los parches disponibles, usa Pub/Sub para activar las acciones de actualización y calificación de parches:
- Alertas basadas en eventos: Configura notificaciones de clústeres con Pub/Sub.
- Filtrado de seguridad: Configura las notificaciones del clúster para filtrar específicamente los eventos SecurityBulletinEvent y UpgradeEvent.
- Acción programática: GKE enviará mensajes programáticos en tiempo real a tu tema de Pub/Sub cuando se publique un boletín de seguridad o cuando esté disponible para tu clúster en tu zona o región un parche que mitigue un boletín. Estas notificaciones se pueden integrar en tus sistemas de administración de información y eventos de seguridad (SIEM), operaciones de chat o canalizaciones de pruebas automatizadas.