La seguridad informática frente a amenazas potenciales ocupa un lugar prioritario en las agendas gubernamentales. Recientemente, la Casa Blanca ha emitido un llamado a la industria del desarrollo para que deje de utilizar lenguajes de programación considerados inseguros para la memoria, es decir, aquellos que presentan potenciales riesgos 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á instando a la industria a adoptar lenguajes de programación seguros, dejando de lado dos de los principales para los sistemas operativos: C y C++.
Desventajas de C/C++
A pesar de ser dos de los lenguajes más populares y utilizados en el desarrollo de hardware, C y C++ han sido objeto de críticas en los últimos años debido a los riesgos de seguridad que presentan, especialmente cuando se utilizan en sistemas críticos.
Mientras que otros lenguajes, como Java, cuentan con comprobaciones de detección de errores en tiempo de ejecución, lo que los convierte 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.
El desbordamiento del búfer es una vulnerabilidad en la que un programa intenta almacenar más datos de los que el búfer estaba diseñado para contener, lo que permite a un atacante sobreescribir áreas de la memoria y provocar comportamientos inesperados en un sistema o incluso ejecutar código malicioso.
Alternativas propuestas
El informe no solo señala los riesgos asociados con C y C++, sino que también propone algunas alternativas. Se insta a los desarrolladores a trabajar con opciones seguras para la memoria, como Rust, Go, C#, Java, Swift, JavaScript o Ruby.
No obstante, la ONCD no establece una lista definitiva de lenguajes de programación permitidos o prohibidos, sino que más bien funciona como una guía para crear conciencia sobre los riesgos asociados con ciertos lenguajes.
Desafíos del cambio
Según estudios previos de Microsoft y Google, aproximadamente el 70% de las brechas de seguridad se deben a problemas relacionados con la seguridad de la memoria.
Sin embargo, hay un desafío considerable: ninguno de los lenguajes propuestos por la Casa Blanca puede reemplazar completamente a C/C++, y cambiar el trabajo desarrollado durante años en estos lenguajes no es una tarea que pueda realizarse de la noche a la mañana.
Este movimiento surge en respuesta a preocupaciones derivadas de incidentes de seguridad como los relacionados con Log4j, que evidenciaron las debilidades en el desarrollo de software esencial. Dichos incidentes dejaron al descubierto la fragilidad de millones de sitios web, lo que llevó a tres programadores voluntarios a lanzar un parche de emergencia.
La recomendación de la Casa Blanca también busca redefinir la responsabilidad en materia de ciberseguridad, extendiéndola más allá de pequeños equipos o programadores individuales para incluir a grandes organizaciones, empresas tecnológicas y al gobierno. Se busca que todos se beneficien del uso seguro del software y contribuyan a abordar los problemas de seguridad de manera colaborativa.