La mayoría de las vulnerabilidades graves del navegador Google Chrome están relacionadas con la forma en que el software maneja la memoria, según han confirmado los ingenieros de Google, quienes por precaución observan un principio denominado "la regla de 2".
La mayoría de las vulnerabilidades graves del navegador Google Chrome están relacionadas con la forma en que el software maneja la memoria, según han confirmado los ingenieros de Google, quienes por precaución observan un principio denominado “la regla de 2”.
Aproximadamente el 70% de todos los fallos de seguridad de rango crítico en la base de código de Chrome están relacionados con procesos de memoria y errores de programación, dijeron los ingenieros de Google esta semana, según un informe elaborado por el investigador Catalin Cimpanu, publicado en ZDNet.
La mitad del 70% corresponde a vulnerabilidades UAF (use-after-free), un tipo de problema de seguridad que surge de la administración incorrecta de los punteros de memoria, que abren un flanco para atacantes que buscan acceder a los componentes internos de Chrome.
El porcentaje en cuestión fue compilado después de que los ingenieros de Google analizaran 912 errores de seguridad solucionados en la parte estable de Chrome desde 2015, errores que tenían una clasificación de severidad “alta” o “crítica”.
Según Cimpanu, Microsoft experimenta un problema similar. “Durante los últimos 12 años, alrededor del 70% de todas las actualizaciones de seguridad de los productos de Microsoft han tenido su origen en vulnerabilidades de seguridad en la memoria”, escribe el investigador, citando un informe de la propia Microsoft publicado en febrero.
Tanto Microsoft como Google se enfrentan básicamente al mismo problema, a saber, que C y C++, los dos lenguajes de programación predominantes en sus bases de código, son lenguajes “inseguros”.
“Son anticuadas herramientas de programación creadas hace décadas cuando la explotación de la seguridad y los ciberataques no eran un modelo relevante de amenaza y estaban lejos de la mente de la mayoría de los primeros desarrolladores de software”, escribe Cimpanu, añadiendo que “como resultado, tanto C como C++ permiten a los programadores tener un control total sobre la forma en que gestionan los punteros, o direcciones, de memoria de una aplicación, sin contar con restricciones ni advertencias que eviten o alerten a los desarrolladores cuando están cometiendo errores básicos de gestión de memoria”.
Según el investigador, estos tempranos errores de codificación dieron pie a la incorporación de vulnerabilidades de gestión de la memoria en las aplicaciones. Esto incluye vulnerabilidades como use-after-free, desbordamiento de búfer y otras.
El problema es serio porque estas vulnerabilidades de gestión de memoria son los errores más populares entre los atacantes, ya que pueden otorgarles la capacidad de introducir código dentro de la memoria de un dispositivo y hacer que sea ejecutado por la aplicación atacada (navegador, servidor, sistema operativo, etc.). Según Cimpanu, 125 de las 130 vulnerabilidades críticas de Chrome reportadas por Google desde marzo de 2019 correspondían a problemas relacionados con la corrupción de la memoria, lo que demuestra que a pesar de los avances en la corrección de otras categorías de errores, la gestión de la memoria sigue siendo un problema.
El problema de los errores de administración de memoria ha sido un problema tan grande en Google que los ingenieros de Chrome ahora tienen que seguir “La regla de 2“: Cada vez que los ingenieros escriban una nueva característica de Chrome, su código no debe infringir más de dos de las siguientes condiciones:
— El código maneja inputs no confiables
— El código funciona sin sandbox
— El código está escrito en un lenguaje de programación inseguro (C/C++)
Esta semana, Google anunció planes para abordar el problema de la inseguridad de la memoria en Chrome, el navegador web más popular de hoy en día, utilizado por casi el 70% de los usuarios de Internet.
Según el Catalin Cimpanu, Microsoft también está invirtiendo fuertemente en la exploración de alternativas a C y C++. Desde su primer proyecto Checked C, la compañía está experimentando con Rust, y también está desarrollando su propio lenguaje de programación “seguro” similar a Rust.
Fuente: Diarioti.com