El experto agradeció el consejo de la NSA de prohibir C y C ++: cómo afectará a Rusia

La Agencia de Seguridad Nacional de Estados Unidos (NSA) ha pedido a los desarrolladores de todo el mundo que eviten

Se considera que los lenguajes de programación más antiguos, como C y C++, son más susceptibles a los ataques de piratas informáticos cuando se pasa a lenguajes más nuevos y seguros para la memoria.

¿Cuál es el problema con el lenguaje C++?

Para ejecutar instrucciones en el código que necesitarecursos del sistema, en particular la memoria. El problema con algunos lenguajes de programación más antiguos es que permiten a los desarrolladores moverlos manualmente. Como resultado, la responsabilidad de la gestión de la memoria recae en el desarrollador. Los simples errores de los programadores provocan una "falla" del sistema y la aparición de problemas de seguridad.

Esta libertad conlleva ciertos riesgos.Estos errores de seguridad de la memoria pueden surgir de simples errores tipográficos y líneas de código olvidadas, o de estructuras de memoria complejas e interacciones inesperadas.

declaración del Atlantic Council a la Organización del Tratado del Atlántico Norte

En algunos casos, un atacante puede usar estos errores para obtener acceso al sistema o ejecutar código malicioso.

Así, lenguajes ampliamente utilizados comoAl igual que C y C++, no sólo aportan mayor libertad y flexibilidad en la gestión de la memoria, sino que también “confían” en el programador en esta materia. La NSA cree que esto brinda a los piratas informáticos la oportunidad de explotar las vulnerabilidades para sus propios fines.

Opinión de los gigantes de TI

Según las empresas de tecnología, la participaciónLos lenguajes antiguos como C y C++ representan hasta el 65% de todos los errores. Así, Microsoft, Google y otros gigantes de TI notan vulnerabilidades en sus códigos debido a problemas con la seguridad de la memoria.

¿Qué idiomas son seguros?

Nuevos lenguajes de programación como Python,Java* y Rust asignan memoria automáticamente. Muchos de ellos prácticamente eliminan los errores de seguridad o los hacen imposibles. Los funcionarios de la NSA agregaron C#, Go y Swift a la "lista segura".

Respuesta del “padre fundador” de C y C++

Creador del lenguaje de programación C++ BjörnStroustrup respondió al llamado de la NSA para abandonar el uso de lenguajes de programación heredados en los que la responsabilidad de la gestión de la memoria recae en el desarrollador.

En su carta abierta publicadaEn open-std.org, Stroustrup expresó su desacuerdo con la posición de la agencia. Afirmó que sus representantes habían "agrupado" C y C++, a pesar de que los lenguajes se habían desarrollado de forma independiente durante los últimos 30 años. Al mismo tiempo, acusó a los desarrolladores de "a menudo ignorar los cambios en el lenguaje que pueden mejorar radicalmente la seguridad del código".

De hecho, en su opinión, C++ no es de ninguna manera inferior a los lenguajes modernos llamados seguros como C#, Go, Java, Ruby, Rust y Swift.

Opinión experta

Para determinar con qué seriedad se debe tomar la advertencia de la NSA, Hi-Tech habló con Andrei Naichenko, el principal arquitecto de preventa de la plataforma de producción de software Sphere.

Considera que el peligro de esta prohibiciónPara el mercado y los codificadores no se debe sobrestimar. “Los tiempos en los que los sistemas de aplicaciones se desarrollaban en C++ son cosa del pasado y la transición a los lenguajes recomendados (C#, Go, Java, Ruby y Swift) ya ha sido completada por la mayoría de los desarrolladores”, explica el experto.

El uso actual de C++limitado a soluciones de nicho en el campo de los sistemas operativos, desarrollo de juegos y motores de juegos (Unreal Engine, Unity), computación GPU (criptomonedas, aprendizaje profundo), desarrollo de algoritmos de alta carga y alto rendimiento. Dado el volumen de código desarrollado y la cantidad de especialistas, es poco probable que la transición a otros lenguajes en estas áreas se produzca en un futuro próximo. Para el resto (la principal) parte del mercado, esta recomendación de la NSA no supone ninguna amenaza.

Sobre la validez de esta decisiónAndrey Naichenko apoyó al creador del lenguaje C++ Bjarne Stroustrup. "El lenguaje C++ en las ediciones modernas del estándar proporciona un conjunto amplio y maduro de herramientas que permiten resolver con éxito problemas de trabajo seguro con la memoria", explicó el experto.

¿Cómo afectará a Rusia la decisión de la NSA?

Los problemas identificados en el informe de la NSA son más probablesEn total, se encontraron en soluciones implementadas en estándares lingüísticos tempranos. En última instancia, la decisión de la NSA no tendrá ningún impacto significativo sobre los desarrolladores de software que apuntan al mercado ruso.

Lee mas:

Los científicos han nombrado las 6 mejores formas de "salvar" la memoria de las personas mayores

Una misteriosa huella subterránea sorprendió a los científicos. tiene mas de 1000 años

La espada que se pensaba que era falsa resulta ser un artefacto de la Edad de Bronce de 3.000 años de antigüedad.

*A pesar de que Java está clasificado como un lenguaje nuevo, es un lenguaje de programación bastante antiguo (nota: “alta tecnología”)