Blog

En diciembre de 2017, todos los servicios de Google Cloud Platform (GCP) tenían ya las protecciones establecidas para todas las variantes conocidas de la vulnerabilidad. Las actualizaciones implementadas por Google no tienen un efecto material en las cargas de trabajo.

Si ha estado al tanto de las últimas noticias de tecnología, sin duda ha oído hablar de la falla de seguridad de la CPU que Project Zero de Google reveló el 10/1/2018. Luego respondieron algunas de las preguntas y detallaron cómo protegen a los clientes de Google Cloud (Google Cloud Platform y G Suite). Esta nota entra más en detalle sobre cómo han protegido los productos de Google Cloud contra estas vulnerabilidades de ejecución especulativa, y lo que se hiczos para asegurarse de que nuestros clientes de Google Cloud obtuvieran un impacto mínimo en el rendimiento de estas mitigaciones.

Las CPUs modernas y los sistemas operativos protegen a los programas y a los usuarios colocando una “pared” alrededor de ellos para que una aplicación o usuario no pueda leer lo que está almacenado en la memoria de otra aplicación. Estos límites son impuestos por la CPU.

Pero se informó la semana pasada, Project Zero descubrió técnicas que pueden eludir estas protecciones en algunos casos, permitiendo que una aplicación lea la memoria privada de otra, exponiendo potencialmente información confidencial.

Las vulnerabilidades vienen en tres variantes, cada una de las cuales debe protegerse individualmente. La Variante 1 y la Variante 2 también se conocen como “Espectro”. La Variante 3 se conoce como “Meltdown”. Project Zero describió estos detalles técnicos , el blog de Google Security describió cómo protegemos a los usuarios en todos los productos de Google , y explicamos cómo protegemos a los clientes de Google Cloud y brindamos orientación sobre las mejores prácticas de seguridad para los clientes que usan sus propios sistemas operativos con los servicios de Google Cloud.

Sorprendentemente, estas vulnerabilidades han estado presentes en la mayoría de las computadoras durante casi 20 años. Debido a que las vulnerabilidades explotan las características que son fundamentales para la mayoría de las CPU modernas, y se creía que eran seguras, no solo eran difíciles de encontrar, sino que incluso más difíciles de solucionar. Durante meses, cientos de ingenieros en Google y otras compañías trabajaron continuamente para comprender estas nuevas vulnerabilidades y encontrar mitigaciones para ellas.

En septiembre, se comenzó a implementar soluciones para las variantes 1 y 3 para la infraestructura de producción que sustenta todos los productos de Google, desde servicios en la nube hasta Gmail, Search y Drive, y soluciones más refinadas en octubre. Gracias a un amplio trabajo de ajuste del rendimiento, estas protecciones no causaron un impacto perceptible en nuestra nube y no requirieron tiempo de inactividad de los clientes, en parte debido a la tecnología Live Migration de Google Cloud Platform. Ningún cliente o equipo interno de GCP ha informado sobre la degradación del rendimiento.

Si bien esas soluciones abordaron las variantes 1 y 3, desde el principio quedó claro que la variante 2 iba a ser mucho más difícil de mitigar. Durante varios meses, parecía que la desactivación de las características vulnerables de la CPU sería la única opción para proteger todas nuestras cargas de trabajo contra la Variante 2. Si bien eso funcionaría, también desactivaría las características clave de CPU que aumentaban el rendimiento, lo que ralentizaba considerablemente las aplicaciones. Esto provocaría ralentizaciones considerables para muchas aplicaciones, también se notó un rendimiento incoherente, ya que la velocidad de una aplicación podría verse afectada por el comportamiento de otras aplicaciones que se ejecutan en el mismo núcleo. Implementar estas mitigaciones habría impactado negativamente a muchos clientes.

Con las características de rendimiento inciertas, Google comenzó a buscar una alternativa novedoza, una forma de mitigar la Variante 2 sin soporte de hardware. Finalmente, la inspiración apareció en la forma de “Retpoline“, una novedosa técnica de modificación binaria de software que evita la posibilidad de inyección, creada por Paul Turner, un ingeniero de software que forma parte del grupo de Infraestructura técnica. Con Retpoline, no fue necesario deshabilitar la ejecución especulativa u otras características de hardware. En cambio, esta solución modifica los programas para garantizar que la ejecución no pueda ser influenciada por un atacante.

Con Retpoline, puede protegerse la infraestructura en tiempo de compilación, sin modificaciones en el código fuente. Además, la prueba de esta característica, particularmente cuando se combina con optimizaciones tales como sugerencias de predicción de bifurcación de software, demostró que esta protección casi no produce pérdida de rendimiento.

En diciembre, todos los servicios de Google Cloud Platform (GCP) tenían protecciones establecidas para todas las variantes conocidas de la vulnerabilidad. Durante todo el proceso de actualización, nadie se dio cuenta: no se recibieron tickets de asistencia al cliente relacionados con las actualizaciones. Esto confirmó la evaluación interna de que, en el uso en el mundo real, las actualizaciones optimizadas para el rendimiento implementadas por Google no tienen un efecto material en las cargas de trabajo.

Creemos que la protección basada en Retolinas es la mejor solución para la Variante 2 en hardware actual. Retpoline protege completamente contra Variant 2 sin afectar el rendimiento del cliente en todas nuestras plataformas. Al compartir nuestra investigación públicamente, esperamos que esto se pueda implementar universalmente para mejorar la experiencia de la nube en toda la industria.

Este conjunto de vulnerabilidades fue quizás el más desafiante y difícil de solucionar en una década, requiriendo cambios en muchas capas de la pila de software. También requirió una amplia colaboración de la industria ya que el alcance de las vulnerabilidades era tan generalizado. Debido a las circunstancias extremas de gran impacto y la complejidad involucrada en el desarrollo de soluciones, la respuesta a este problema ha sido una de las pocas veces que Project Zero hizo una excepción a su política de divulgación de 90 días .

Si bien estas vulnerabilidades representan una nueva clase de ataque, son solo algunos de los muchos tipos de amenazas contra las que la infraestructura de Google Cloud está diseñada para defenderse contra los ataques informáticos. La infraestructura incluye mitigaciones por diseño y defensa en profundidad , y se está comprometido con la investigación continua y las contribuciones a la comunidad de seguridad y a proteger a los clientes a medida que se descubren nuevas vulnerabilidades.

Referencia: Protecting our Google Cloud customers from new vulnerabilities without impacting performance

Noticias relacionadas

¡Sigamos conectados!

Suscribite a nuestro newsletter para que no te pierdas nuestras novedades