Google ha estado integrando código escrito en el lenguaje de programación Rust en su sistema operativo Android desde 2019, y sus esfuerzos han dado sus frutos en forma de menos vulnerabilidades.
Errores de seguridad de la memoria: similares a Fuera de los límites leer y: escribir o usar gratis después – contando más de 65 por ciento de vulnerabilidad errores de gravedad alta o crítica en Chrome y Android y los números son similares en el software de otros proveedores. Estos defectos degradan la seguridad y aumentar el costo de desarrollo de software cuando no se detecta a tiempo.
Pero después de cuatro años de Android recogiendo fragmentos de Rust, ese número se ha reducido.
«De 2019 a 2022, la cantidad anual de vulnerabilidades de seguridad de la memoria se redujo de 223 a 85», dijo el ingeniero de seguridad de Android, Jeffrey Vander Stop. entrada en el blog.
Vander Stoep dice que el declive coincide con los esfuerzos por alejarse de los lenguajes de programación inseguros para la memoria, por lo que se refiere a C/C++, un lenguaje que no garantiza la seguridad de la memoria pero puede respaldarla.
A partir de Android 12 el año pasado, Rust se convirtió en el lenguaje de la plataforma Android. Y ahora en Android 13, dice Vander Stoep, la mayor parte del nuevo código agregado al lanzamiento está escrito en un lenguaje seguro para la memoria como Rust, Java o Kotlin.
Con el acceso de código inseguro de la memoria, las fallas de seguridad de la memoria en Android aumentaron del 76 por ciento de las vulnerabilidades de Android en 2019 al 35 por ciento en 2022, el primer año en el que las fallas de seguridad de la memoria no representaron la mayoría de las vulnerabilidades.
Otras vulnerabilidades se han mantenido estables a lo largo del tiempo, en alrededor de 20 por mes durante los últimos cuatro años. Debido a que las fallas de seguridad en la memoria representan la mayoría de los problemas críticos, las vulnerabilidades emergentes son menos graves.
Google no es la única empresa tecnológica importante que reconoce los beneficios del código en memoria. Meta ha hablado su agradecimiento a Rust. Hace unos meses, el director de Microsoft, Mark Rusinovich Anunciado que C/C++ ya no debería usarse para iniciar nuevos proyectos, y que Rust debería implementarse donde sea que se necesite un lenguaje sin recolección de basura.
En ese momento, Bjarne Strustrup, el creador de C++, desafió el liderazgo de Russinovich y afirmó que: se puede tener seguridad de tipo y memoria Norma ISO en C++ fijada por análisis estático. Como lo ve Stroustrup, ayudar a C++ tiene más sentido que obedecer el lenguaje y no mantener un código inseguro.
Google, dice Vander Stoep, continúa presentando herramientas para escribir código C/C++ más seguro, apuntando al asignador endurecido Scudo, HWASAN, GWP-ASAN y KFENCE en dispositivos Android. Y dice que Google ha aumentado el uso de fuzzing. Pero si bien tales medidas han ayudado a reducir los errores de seguridad de la memoria, argumenta que gran parte de la reducción de las vulnerabilidades debe atribuirse al paso a lenguajes seguros para la memoria.
Aproximadamente el 21 por ciento del nuevo código nativo en Android 13 está escrito en Rust. Esto incluye alrededor de 1,5 millones de líneas de código Rust en el Proyecto de código abierto de Android (AOSP), que consta de componentes como: Almacén de claves2:la nueva pila de banda ultraancha (UWB) y DNS sobre HTTP3, que en años anteriores se habría escrito en C++.
Y hasta ahora, Rust ha cumplido. «Hasta la fecha, no se han encontrado vulnerabilidades de seguridad de memoria cero en el código Rust de Android», dijo Vander Stoep, quien sabiamente reconoció que probablemente este no sea el caso para siempre.
«La combinación de velocidad y seguridad de la memoria de Rust lo convierte en una excelente opción para una amplia gama de proyectos», dijo Rebecca Rambull, directora ejecutiva y directora ejecutiva de la Fundación Rust, en un correo electrónico. Registro. “No sorprende ver que Rust se integre cada vez más en los proyectos y productos existentes, y El último blog de Google La discusión sobre Rust en Android realmente destaca sus beneficios de seguridad”.
Rambull agregó: «Esos beneficios de seguridad también están siendo reconocidos por los legisladores de todo el mundo, y los gobiernos de Europa y América del Norte reconocen a Rust como una solución a algunos de los problemas de seguridad experimentados en el pasado».
La Agencia de Seguridad Nacional de EE. UU. señaló recientemente que, si bien los lenguajes como C ++ pueden brindar mucha flexibilidad, confían en el programador para proporcionar las comprobaciones de referencia de memoria necesarias.
«Las herramientas de análisis de software pueden detectar muchos casos de problemas de gestión de la memoria, y las opciones del entorno operativo también pueden brindar cierta protección, pero las protecciones inherentes que ofrecen los lenguajes de programación seguros para la memoria pueden prevenir o mitigar la mayoría de los problemas de gestión de la memoria», dijo la agencia. : guía [PDF] lanzado el mes pasado. «NSA recomienda usar un lenguaje seguro para la memoria siempre que sea posible». ®
Beer ninja. Internet maven. Music buff. Wannabe web evangelist. Analista. Introvertido