Modernizar la seguridad espaci... Nota

Modernizar la seguridad espacial para cientos de millones de líneas de C++

Las vulnerabilidades de seguridad de la memoria espacial, que ocurren cuando el código accede a la memoria fuera de sus límites previstos, representan un gran riesgo de seguridad y han sido explotadas por atacantes para comprometer sistemas y datos sensibles. Según Google's Project Zero, estas vulnerabilidades representan el 40% de las explotaciones de seguridad de la memoria en el medio silvestre en la última década. Para abordar esto, Google está adoptando un enfoque integral para la seguridad de la memoria, incluyendo el uso de lenguajes seguros para la memoria en nuevo código y la aplicación de principios de diseño seguro a bases de código C++ existentes. Una estrategia clave es implementar verificaciones de límites para estructuras de datos comunes, comenzando con la protección del estándar de la biblioteca C++ (libc++). La libc++ endurecida introduce verificaciones de seguridad para detectar vulnerabilidades como accesos fuera de los límites en producción. Google ha establecido libc++ endurecida como predeterminada en sus sistemas de producción en el lado del servidor, mejorando la seguridad de la memoria espacial en sus servicios. El impacto en el rendimiento de estos cambios fue sorprendentemente bajo, con un impacto promedio del 0,30% en los servicios. Habilitar libc++ endurecida ya ha evitado exploits, reducido fallos y mejorado la corrección del código, con más de 1,000 bugs descubiertos y una reducción del 30% en los fallos de segmentación. Google se compromete a expandir las verificaciones de límites a otras bibliotecas y a migrar su código a Safe Buffers, lo que requerirá que todas las accesos sean verificados. La empresa anima a otras organizaciones que utilizan C++ a habilitar el modo endurecido de su biblioteca estándar universalmente por defecto.