La seguridad informática ante amenazas potenciales es uno de los temas prioritarios en las agendas de los gobiernos. Recientemente, la Casa Blanca ha hecho un llamado para que la industria de desarrollo deje de utilizar lenguajes de programación considerados inseguros para la memoria, es decir, aquellos que son potencialmente riesgosos ante errores de software y vulnerabilidades de seguridad.
A través de una propuesta publicada por la Oficina del Director Nacional de Ciberseguridad (ONCD), el gobierno de Estados Unidos está solicitando a la industria adoptar lenguajes seguros, dejando de lado dos de los principales para los sistemas operativos: C y C++.
Las desventajas de C/C++
Aunque estos dos lenguajes son de los más populares y utilizados en el desarrollo de hardware, durante los últimos años se han criticado por los riesgos de seguridad que presentan, especialmente si son utilizados en sistemas críticos.
Mientras que otros lenguajes, como Java, tienen comprobaciones de detección de errores en tiempo de ejecución, convirtiéndolos en "seguros para la memoria", tanto C como C++ permiten una manipulación directa y sin restricciones de memoria, lo que puede provocar vulnerabilidades como el desbordamiento del búfer.
Esta es una vulnerabilidad en la que un programa intenta almacenar más datos de los que el búfer estaba diseñado para contener, abriendo la puerta a que un atacante pueda sobreescribir áreas de la memoria y provocar comportamientos inesperados en un sistema o hasta ejecutar código malicioso.
En el informe no solo se mencionan los riesgos asociados con C y C++, sino que también se proponen algunas alternativas, como que los desarrolladores deben trabajar con opciones seguras para la memoria, como Rust, Go, C#, Java, Swift, JavaScript o Ruby.
Eso sí, en ningún momento queda claro que la ONCD establezca una lista de lenguajes de programación permitidos/prohibidos, sino que más bien funciona como una lista para crear conciencia sobre los riesgos que presentan ciertos lenguajes.
Los retos del cambio
Por lo pronto, según estudios previos de Microsoft y Google, aproximadamente el 70% de las brechas de seguridad son por problemas relacionados con la seguridad de la memoria.
Sin embargo, hay una complicación: todos los lenguajes que la Casa Blanca propone no pueden reemplazar a C/C++, y el trabajo que se ha desarrollado durante años en estos no se puede cambiar de la noche a la mañana por variantes más confiables.
Específicamente, este movimiento tiene que ver con la preocupación luego de los incidentes de seguridad como los de Log4j, que mostraron las debilidades del desarrollo de software esencial, cuando la seguridad de millones de sitios web quedó en manos de tres programadores voluntarios que tuvieron que lanzar un parche en tiempo récord.
La recomendación de la Casa Blanca también busca redefinir la responsabilidad de la ciberseguridad, para que no sea exclusivamente de pequeños equipos o de programadores individuales, sino que también considere a grandes organizaciones, empresas tecnológicas y al gobierno, para que se beneficien del uso del software y también aporten a solucionar los problemas.