La Casa Blanca pidió a la industria que dejara de programar en C/C++: ha tenido que matizar para no pasarse de frenada
En el mundo del desarrollo de software, las vulnerabilidades de memoria siguen siendo una de las principales amenazas para la seguridad informática. A pesar de los avances en la creación de lenguajes de programación más seguros, gran parte del software crítico aún depende de tecnologías con décadas de antigüedad, como C y C++. Pero, aunque éstos han sido la columna vertebral de muchos sistemas informáticos modernos, su gestión manual de memoria los hace propensos a errores que pueden ser aprovechados por atacantes. Debido a estos peligros, los Estados Unidos se han tomado la programación es una cuestión de seguridad nacional: hace un año, la Oficina del Director Nacional de Ciberseguridad (ONCD) de los EE.UU. emitía un informe instando a los programadores a migrar hacia 'lenguajes de programación seguros en memoria' con el objetivo de evitar vulnerabilidades que pudieran comprometer datos sensibles y afectar infraestructuras nacionales. Sin embargo, la adopción de estos 'lenguajes seguros' se enfrenta obstáculos importantes: la realidad es que una gran cantidad de software crítico ya está escrito en C y C++, y su migración completa a lenguajes seguros no es siempre viable a corto plazo. En Genbeta La Casa Blanca pidió a la industria que no programara en C++. Su creador ha respondido de forma tajante El desafío de reemplazar C y C++ con Rust Rust ha sido promocionado como una solución para reducir la 'superficie de ataque' del software crítico. Sin embargo, la transición no es sencilla: la mayoría de los sistemas operativos, compiladores, servidores DNS, proxies inversos y software criptográfico siguen estando escritos en C/C++. Además, está el problema de la falta de formación: empresas y universidades continúan formando a programadores en estos lenguajes, ya que dominar C/C++ sigue siendo una habilidad altamente demandada en la industria... ...y la mayoría de los desarrolladores que han trabajado con C y C++ durante años no están dispuestos a aprender un nuevo lenguaje desde cero, ya que esto implica una curva de aprendizaje significativa. Por otra parte, el debate sobre Rust ha recordado a muchos expertos la advertencia de Joel Spolsky, fundador de Stack Overflow, sobre que reescribir un código base desde cero es una de las peores decisiones que puede tomar una empresa: perder años de optimización y corrección de errores para empezar desde cero con una nueva tecnología puede resultar contraproducente. Pasito a paso Ante este panorama, la Agencia de Seguridad de Infraestructura y Ciberseguridad de Estados Unidos (CISA) ha actualizado hace un par de semanas sus recomendaciones sobre prácticas inseguras en el desarrollo de software, estableciendo un nuevo enfoque gradual para la migración a lenguajes más seguros. CISA reconoce que la transición hacia lenguajes seguros no es una tarea sencilla: reconoce explícitamente que muchas compañías han construido sus productos en lenguajes como C y C++ durante décadas, y reescribir millones de líneas de código de un día para otro es prácticamente imposible. Por ello, la agencia ha propuesto un modelo de migración progresiva, que permite a los fabricantes mejorar la seguridad de sus productos sin comprometer su estabilidad o funcionalidad. Este enfoque consta de tres fases clave: A corto plazo: Implementar controles en hardware o compiladores para reducir los errores de gestión de memoria sin necesidad de modificar el código existente, y aplicar técnicas para mitigar vulnerabilidades de memoria en tiempo de ejecución. A medio plazo: Asegurar que todo nuevo código se desarrolle en lenguajes seguros, como Rust o Go, y mejorar las prácticas de codificación en lenguajes inseguros, minimizando el uso de funciones propensas a errores como 'strcpy' o 'malloc' sin verificaciones adecuadas. A largo plazo: Reescribir progresivamente módulos críticos en lenguajes seguros para la memoria, y priorizar la conversión de componentes altamente expuestos a ataques, como aquellos responsables de comunicaciones en red, autenticación y cifrado. En Genbeta Usar Rust en Linux está siendo muy polémico. En Android ya se han demostrado sus grandes virtudes reduciendo bugs Hojas de ruta Uno de los cambios más relevantes en las recomendaciones de CISA es la exigencia de que los proveedores de software publiquen una hoja de ruta clara y accesible sobre cómo planean abordar los riesgos de seguridad de memoria en sus productos. Este documento debe incluir: Un plan de mitigación de vulnerabilidades en componentes críticos del código, como aquellos expuestos a redes o responsables de operaciones criptográficas. Una estrategia de eliminación progresiva del uso de lenguajes inseguros, asegurando que nuevos desarrollos se realicen en entornos más seguros. Pruebas de compromiso con la seguridad, demostrando que la empresa está implement

En el mundo del desarrollo de software, las vulnerabilidades de memoria siguen siendo una de las principales amenazas para la seguridad informática. A pesar de los avances en la creación de lenguajes de programación más seguros, gran parte del software crítico aún depende de tecnologías con décadas de antigüedad, como C y C++.
Pero, aunque éstos han sido la columna vertebral de muchos sistemas informáticos modernos, su gestión manual de memoria los hace propensos a errores que pueden ser aprovechados por atacantes.
Debido a estos peligros, los Estados Unidos se han tomado la programación es una cuestión de seguridad nacional: hace un año, la Oficina del Director Nacional de Ciberseguridad (ONCD) de los EE.UU. emitía un informe instando a los programadores a migrar hacia 'lenguajes de programación seguros en memoria' con el objetivo de evitar vulnerabilidades que pudieran comprometer datos sensibles y afectar infraestructuras nacionales.
Sin embargo, la adopción de estos 'lenguajes seguros' se enfrenta obstáculos importantes: la realidad es que una gran cantidad de software crítico ya está escrito en C y C++, y su migración completa a lenguajes seguros no es siempre viable a corto plazo.
El desafío de reemplazar C y C++ con Rust
Rust ha sido promocionado como una solución para reducir la 'superficie de ataque' del software crítico. Sin embargo, la transición no es sencilla: la mayoría de los sistemas operativos, compiladores, servidores DNS, proxies inversos y software criptográfico siguen estando escritos en C/C++.
Además, está el problema de la falta de formación: empresas y universidades continúan formando a programadores en estos lenguajes, ya que dominar C/C++ sigue siendo una habilidad altamente demandada en la industria...
...y la mayoría de los desarrolladores que han trabajado con C y C++ durante años no están dispuestos a aprender un nuevo lenguaje desde cero, ya que esto implica una curva de aprendizaje significativa.
Por otra parte, el debate sobre Rust ha recordado a muchos expertos la advertencia de Joel Spolsky, fundador de Stack Overflow, sobre que reescribir un código base desde cero es una de las peores decisiones que puede tomar una empresa: perder años de optimización y corrección de errores para empezar desde cero con una nueva tecnología puede resultar contraproducente.
Pasito a paso
Ante este panorama, la Agencia de Seguridad de Infraestructura y Ciberseguridad de Estados Unidos (CISA) ha actualizado hace un par de semanas sus recomendaciones sobre prácticas inseguras en el desarrollo de software, estableciendo un nuevo enfoque gradual para la migración a lenguajes más seguros.
CISA reconoce que la transición hacia lenguajes seguros no es una tarea sencilla: reconoce explícitamente que muchas compañías han construido sus productos en lenguajes como C y C++ durante décadas, y reescribir millones de líneas de código de un día para otro es prácticamente imposible.
Por ello, la agencia ha propuesto un modelo de migración progresiva, que permite a los fabricantes mejorar la seguridad de sus productos sin comprometer su estabilidad o funcionalidad. Este enfoque consta de tres fases clave:
- A corto plazo: Implementar controles en hardware o compiladores para reducir los errores de gestión de memoria sin necesidad de modificar el código existente, y aplicar técnicas para mitigar vulnerabilidades de memoria en tiempo de ejecución.
- A medio plazo: Asegurar que todo nuevo código se desarrolle en lenguajes seguros, como Rust o Go, y mejorar las prácticas de codificación en lenguajes inseguros, minimizando el uso de funciones propensas a errores como 'strcpy' o 'malloc' sin verificaciones adecuadas.
- A largo plazo: Reescribir progresivamente módulos críticos en lenguajes seguros para la memoria, y priorizar la conversión de componentes altamente expuestos a ataques, como aquellos responsables de comunicaciones en red, autenticación y cifrado.
Hojas de ruta
Uno de los cambios más relevantes en las recomendaciones de CISA es la exigencia de que los proveedores de software publiquen una hoja de ruta clara y accesible sobre cómo planean abordar los riesgos de seguridad de memoria en sus productos. Este documento debe incluir:
- Un plan de mitigación de vulnerabilidades en componentes críticos del código, como aquellos expuestos a redes o responsables de operaciones criptográficas.
- Una estrategia de eliminación progresiva del uso de lenguajes inseguros, asegurando que nuevos desarrollos se realicen en entornos más seguros.
- Pruebas de compromiso con la seguridad, demostrando que la empresa está implementando medidas concretas para reducir estos riesgos.
CISA ha establecido que los fabricantes que no cuenten con esta hoja de ruta antes de 2026 estarán incurriendo en una práctica de seguridad inaceptable. No obstante, la agencia ha aclarado que esta obligación no se aplicará a productos cuyo soporte finalice antes de 2030, permitiendo que la industria haga la transición de manera ordenada y sin afectar el mantenimiento de productos en fase final de vida útil.
Imagen | Marcos Merino mediante IA
-
La noticia
La Casa Blanca pidió a la industria que dejara de programar en C/C++: ha tenido que matizar para no pasarse de frenada
fue publicada originalmente en
Genbeta
por
Marcos Merino
.