Microsoft y Google buscan remplazar a C/C++ por ser lenguajes inseguros
Ambas compañías comparten una estadística en común: más del 70% de las vulnerabilidades son por gestión de memoria, ¿el (los) culpables?, pues serían C/C++ por ser lenguajes inseguros. A esta conclusión han llegado tanto Microsoft como Google luego de evaluar y analizar la situación.
De acuerdo con Google y Microsoft, las herramientas usadas para desarrollar C/C++ fueron creadas en un momento en que la seguridad y los ciberataques no era una prioridad para los desarrolladores. Esto habría provocado que luego de unas décadas, la base de estos lenguajes quedaran inseguros.
Y es que según ambas empresas, C/C++ permite que los desarrolladores tengan un control total sobre como sus apps gestionan el direccionamiento de punteros en la memoria. Esto sin tener siquiera un mínimo de restricciones o advertencias.
Al no haber restricciones o advertencias, muchos desarrolladores omiten (sin querer) errores que luego terminan convirtiéndose en fallos de memoria. Los errores mas frecuentes suelen ser: fallos de tipo use-after-free, desbordamientos de bufferes, race conditions, double free y wild pointers.
Estos errores de corrupción de memoria son los que usualmente los atacantes buscan para luego explotarlos. Y ya que estos lenguajes inseguros garantizan un control total en la gestión de punteros de memoria, los atacantes pueden colocar código dentro de la memoria del dispositivo con la finalidad de que el usuario lo ejecute a través de una app (navegador, juego, SO, servidores, etc.)
En marzo del 2019, Google advirtió que de 130 vulnerabilidades críticas detectadas en Chrome, 125 estaban relacionadas con corrupción de memoria. Esto aún sigue vigente a pesar de los esfuerzos de la compañía por corregir esta clase de bugs.
Alternativas ante el dilema de C/C++ como lenguajes de programación inseguros
Como es de esperarse, tanto Microsoft como Google están actualmente evaluando e investigando una alternativa seria y que no rompa las características principales de sus productos. Google aplica su llamada «regla de dos» la cuál deben seguir sus desarrolladores al momento de usar un nuevo lenguaje.
Una de las organizaciones que más ha avanzado en cuanto a hallar un remplazo ideal a C/C++ es Mozilla. La gente tras el desarrollo del popular navegador Firefox ha estado fuertemente patrocinando, promoviendo y adoptando el prometedor lenguaje de programación Rust.
Rust es considerado actualmente uno de los lenguajes de programación más populares y seguros. De hecho, Tanto Google como Microsoft tienen la vista puesta en Rust y han hecho anuncios relacionados con la adopción del mismo (Microsoft con el proyecto «Verona» y Google como una buena alternativa para implementarlo en Chrome y mitigar así los fallos de memoria.)
Además de Rust, las compañías de software evalúan otros lenguajes considerados seguros tales como: Swift, JavaScript y Kotlin. Vale recordar que una gran parte de Windows y Google Chrome está escrito en C/C++.
Vía: ZDNet