25 de septiembre de 2024Ravie LakshmananCodificación segura / Seguridad móvil Google ha revelado que su transición a lenguajes seguros para la memoria como Rust como parte de su enfoque de seguridad por diseño ha llevado a que el porcentaje de vulnerabilidades seguras para la memoria descubiertas en Android cayera del 76% al 24% en un período de seis años. El gigante tecnológico dijo que centrarse en la codificación segura para nuevas funciones no solo reduce el riesgo de seguridad general de una base de código, sino que también hace que el cambio sea más «escalable y rentable». Con el tiempo, esto conduce a una caída en las vulnerabilidades de seguridad de la memoria a medida que el nuevo desarrollo de memoria no segura se ralentiza después de un cierto período de tiempo y el nuevo desarrollo de memoria segura toma el control, dijeron Jeff Vander Stoep y Alex Rebert de Google en una publicación compartida con The Hacker News. Quizás aún más interesante, la cantidad de vulnerabilidades de seguridad de la memoria también puede disminuir a pesar de un aumento en la cantidad de nuevo código no seguro para la memoria. La paradoja se explica por el hecho de que las vulnerabilidades se reducen exponencialmente. Un estudio concluyó que una gran cantidad de vulnerabilidades a menudo residen en código nuevo o modificado recientemente. «El problema se presenta abrumadoramente con el código nuevo, lo que requiere un cambio fundamental en la forma en que desarrollamos el código», señalaron Vander Stoep y Rebert. «El código madura y se vuelve más seguro con el tiempo, exponencialmente, lo que hace que los retornos de las inversiones, como las reescrituras, disminuyan con el tiempo a medida que el código envejece». Google, que anunció formalmente sus planes de dar soporte al lenguaje de programación Rust en Android en abril de 2021, dijo que comenzó a priorizar la transición de nuevos desarrollos a lenguajes seguros para la memoria alrededor de 2019. Como resultado, la cantidad de vulnerabilidades de seguridad de la memoria descubiertas en el sistema operativo ha disminuido de 223 en 2019 a menos de 50 en 2024. Tampoco hace falta decir que gran parte de la disminución de tales fallas se debe a los avances en las formas ideadas para combatirlas, pasando de la aplicación de parches reactivos a la mitigación proactiva y al descubrimiento proactivo de vulnerabilidades mediante herramientas como los sanitizantes Clang. El gigante tecnológico señaló además que las estrategias de seguridad de la memoria deberían evolucionar aún más para priorizar la «prevención de alta seguridad» incorporando principios de seguridad por diseño que consagran la seguridad en los cimientos mismos. «En lugar de centrarnos en las intervenciones aplicadas (mitigaciones, fuzzing) o intentar utilizar el rendimiento pasado para predecir la seguridad futura, Safe Coding nos permite hacer afirmaciones sólidas sobre las propiedades del código y lo que puede o no puede suceder en función de esas propiedades», dijeron Vander Stoep y Rebert. Eso no es todo. Google dijo que también se está centrando en ofrecer interoperabilidad entre Rust, C++ y Kotlin, en lugar de reescrituras de código, como un «enfoque práctico e incremental» para adoptar lenguajes seguros para la memoria y, en última instancia, eliminar clases de vulnerabilidades completas. «Adoptar Safe Coding en un código nuevo ofrece un cambio de paradigma, que nos permite aprovechar la decadencia inherente de las vulnerabilidades en nuestro beneficio, incluso en grandes sistemas existentes», dijo. «El concepto es simple: una vez que cerramos el grifo de las nuevas vulnerabilidades, disminuyen exponencialmente, lo que hace que todo nuestro código sea más seguro, aumenta la eficacia del diseño de seguridad y alivia los desafíos de escalabilidad asociados con las estrategias de seguridad de la memoria existentes de modo que se puedan aplicar de manera más efectiva de una manera específica». El desarrollo se produce después de que Google promocionara una mayor colaboración con los equipos de ingeniería de seguridad de productos y de la unidad de procesamiento gráfico (GPU) de Arm para señalar múltiples deficiencias y elevar la seguridad general de la pila de software/firmware de GPU en todo el ecosistema de Android. Esto incluye el descubrimiento de dos problemas de memoria en la personalización del código del controlador de Pixel (CVE-2023-48409 y CVE-2023-48421) y otro en el firmware de la GPU Valhall de Arm y el firmware de la arquitectura de la GPU de quinta generación (CVE-2024-0153). «Las pruebas proactivas son una buena higiene, ya que pueden conducir a la detección y resolución de nuevas vulnerabilidades antes de que se exploten», dijeron Google y Arm. ¿Te resultó interesante este artículo? Síguenos en Twitter  y LinkedIn para leer más contenido exclusivo que publicamos.