Gobierno de Biden quiere que empresas de software abandonen los lenguajes de programación C y C++

Por Bill Pan
29 de febrero de 2024 5:38 PM Actualizado: 29 de febrero de 2024 5:38 PM

El gobierno de Biden insta a los programadores informáticos a abandonar C y C++, dos de los lenguajes de programación más antiguos y prominentes, en favor de alternativas con características inherentes de seguridad de la memoria.

Según la Casa Blanca, las empresas de software «pueden evitar que vulnerabilidades enteras entren en el ecosistema digital» adoptando lenguajes de programación que no presenten problemas de seguridad de memoria que puedan ser explotados por potencias extranjeras y delincuentes informáticos.

Los lenguajes de programación con seguridad de memoria están protegidos de fallos de seguridad relacionados con la forma en que se puede acceder a la memoria, asignarla o reescribirla de forma no intencionada. Por ejemplo, un fallo de lectura fuera de los límites podría permitir a un atacante leer bloques adyacentes en memoria que podrían contener datos privados, mientras que un fallo de uso después de libre podría dar al atacante acceso a información en memoria que ya se hubiera borrado.

Microsoft reveló en una conferencia en 2019 que desde 2006 hasta 2018, el 70 por ciento de sus vulnerabilidades se debieron a problemas de seguridad de memoria. En 2021, Google dijo que encontró que un porcentaje similar de errores de seguridad graves en Chrome son problemas de seguridad de memoria.

«Nosotros, como nación, tenemos la capacidad —y la responsabilidad— de reducir la superficie de ataque en el ciberespacio y evitar que clases enteras de errores de seguridad entren en el ecosistema digital, pero eso significa que tenemos que abordar el difícil problema de pasar a lenguajes de programación seguros para la memoria», dijo Harry Coker, Director Nacional Cibernético de la Casa Blanca, en un comunicado de prensa el 26 de febrero.

Un informe de 19 páginas publicado el mismo día por la oficina de Coker citaba a C y C++ como dos ejemplos de lenguajes de programación que «carecen de rasgos asociados a la seguridad de la memoria y también tienen una alta proliferación en sistemas críticos».

Mientras tanto, lenguajes como Rust, Python y Java se encuentran entre los sustitutos recomendados. «Cuando se migran grandes bases de código a un lenguaje seguro para la memoria, las pruebas demuestran que las vulnerabilidades de seguridad de la memoria casi desaparecen», afirma el informe.

El informe cuenta con el respaldo de importantes líderes del sector, como SAP, Accenture, Palantir y Hewlett Packard Enterprise. Algunos se han comprometido a migrar su código heredado a lenguajes de programación seguros para la memoria, una tarea que podría llevar décadas, dependiendo del tamaño de la empresa.

El creador de C++ defiende su seguridad

El nuevo informe de la Casa Blanca destacaba un boletín de 2022 de la Agencia de Seguridad Nacional de EE.UU. (NSA), que aconsejaba a los programadores utilizar lenguajes alternativos en lugar de C y C++ para evitar vulnerabilidades explotables en memoria.

«Los lenguajes de uso común, como C y C++, proporcionan mucha libertad y flexibilidad en la gestión de la memoria, al tiempo que dependen en gran medida del programador para realizar las comprobaciones necesarias en las referencias a memoria», decía la agencia, que recomendaba un «cambio estratégico» de los lenguajes C y C++ a un lenguaje seguro para la memoria cuando sea posible.

El lenguaje C fue creado a principios de la década de 1970 por el ya fallecido científico informático Dennis M. Ritchie en los Laboratorios Bell.

En 1983, Bjarne Stroustrup —otra leyenda de los Laboratorios Bell— desarrolló una extensión del lenguaje C, C++, para ofrecer a los programadores un alto nivel de control sobre los recursos del sistema y la memoria.

Más de cuatro décadas después de su creación, C++ sigue siendo el estándar de oro para el software de alto rendimiento, desde los principales navegadores web como Chrome y Firefox, a la suite de producción de imágenes de Adobe que incluye Photoshop, Unreal Engine, que impulsa algunos de los videojuegos más exigentes gráficamente, y el sistema autónomo de seguridad de vuelo montado en el cohete «Dragon 2» de SpaceX.

La relevancia inmarcesible de C++ también se refleja en el índice TIOBE, que controla la popularidad de los lenguajes de programación en la comunidad mundial de programadores. En febrero de 2024, C++ ocupa el tercer puesto, con un 10.53 por ciento en el índice y solo por detrás de C (10.97 por ciento) y Python (15.16 por ciento).

En respuesta a las recomendaciones de la NSA, Stroustrup dijo que la NSA estaba ignorando 30 años de trabajo para hacer su lenguaje «mejor, más seguro y más eficiente».

Según el Sr. Stroustrup, informático danés que imparte clases como profesor visitante en la Universidad de Columbia, la seguridad de la memoria es solo uno de los aspectos que hay que tener en cuenta a la hora de determinar lo «seguro» que es un lenguaje. «Hay del orden de una docena de otras formas en que un lenguaje podría, y será, utilizado para violar alguna forma de seguridad», escribió en una respuesta publicada.

«No hay una única definición de ‘seguridad’, y podemos lograr diversos tipos de seguridad mediante una combinación de estilos de programación, bibliotecas de apoyo y aplicación mediante análisis estático», explicó el pionero de la informática. «La más obvia sería solicitar una seguridad total garantizada de tipos y recursos».

«Ignorar los problemas de seguridad perjudicaría a grandes sectores de la comunidad C++ y socavaría gran parte del resto del trabajo que estamos haciendo para mejorar C++», escribió. «Lo mismo ocurriría si nos centráramos exclusivamente en la seguridad».

La NSA reconoció que la gestión de la memoria no es totalmente segura ni siquiera en un lenguaje «seguro para la memoria», y que mecanismos como las pruebas estáticas y dinámicas de seguridad de las aplicaciones (SAST y DAST) pueden detectar problemas de uso de la memoria en el software codificado en los llamados lenguajes no seguros para la memoria.

Dicho esto, ni SAST ni DAST pueden hacer que un código no seguro para la memoria sea totalmente seguro para la memoria, según la NSA.


Únase a nuestro canal de Telegram para recibir las últimas noticias al instante haciendo click aquí


Cómo puede usted ayudarnos a seguir informando

¿Por qué necesitamos su ayuda para financiar nuestra cobertura informativa en Estados Unidos y en todo el mundo? Porque somos una organización de noticias independiente, libre de la influencia de cualquier gobierno, corporación o partido político. Desde el día que empezamos, hemos enfrentado presiones para silenciarnos, sobre todo del Partido Comunista Chino. Pero no nos doblegaremos. Dependemos de su generosa contribución para seguir ejerciendo un periodismo tradicional. Juntos, podemos seguir difundiendo la verdad.