La Agencia de Proyectos de Investigación Avanzada de Defensa de Estados Unidos (DARPA, por sus siglas en inglés) quiere utilizar la IA para automatizar la traducción del código C heredado a Rust para evitar vulnerabilidades de seguridad de memoria conocidas. El lenguaje de programación C data de la década de 1970, pero sigue siendo omnipresente en todo, desde «teléfonos inteligentes hasta vehículos espaciales», señaló DARPA. Esto se debe en parte a la popularidad de C y C++, pero también al uso continuo de sistemas heredados impulsados ​​por esos lenguajes de programación, y DARPA admite que eso incluye sistemas que se ejecutan en el Departamento de Defensa. Eso es un problema para la industria, ya que los lenguajes de programación C tienen graves fallas de memoria. Primero, los programadores pueden manipular directamente la memoria, lo que facilita la introducción de errores accidentales que permiten que la memoria se corrompa. Segundo, el lenguaje de programación no tiene especificaciones para comportamientos inesperados. Estos problemas significan que los errores accidentales pueden introducir errores graves, pero los piratas informáticos también pueden aprovechar las fallas para actividades maliciosas. DARPA dijo que vio consenso entre la comunidad de ingeniería de software de que las herramientas de detección de errores no eran suficientes para abordar estos problemas. En cambio, el código heredado debe actualizarse a lenguajes de programación como Rust que no presentan estas vulnerabilidades. Las vulnerabilidades de seguridad de la memoria son el subconjunto más común de fallas de software reveladas, según la Agencia de Seguridad de Infraestructura y Ciberseguridad de EE. UU., un hecho que llevó a la Agencia de Seguridad Nacional de EE. UU. a recomendar a las organizaciones que abandonen C y C++ en favor de Rust, Java o Swift. Reciba nuestras últimas noticias, actualizaciones de la industria, recursos destacados y más. Regístrese hoy para recibir nuestro informe GRATUITO sobre ciberdelito y seguridad de IA, recientemente actualizado para 2024. Consumer Reports dijo que hasta siete de cada diez vulnerabilidades de navegador y kernel se pueden atribuir a C y C++, y pide a las empresas y organizaciones que cambien a lenguajes de programación más seguros, a los educadores que abandonen C en favor de lenguajes más seguros y modernos, y admite que puede ser necesaria una acción regulatoria. El rescate de DARPA TRACTOR busca arreglar la seguridad del código Para ayudar, DARPA ha presentado una iniciativa llamada TRACTOR: traducir todo C a Rust. El objetivo es aprovechar la IA, en particular los grandes modelos lingüísticos (LLM), pero también el análisis estático y dinámico, para automatizar el proceso de traducción tanto como sea posible. «Puedes ir a cualquiera de los sitios web de LLM, comenzar a chatear con uno de los chatbots de IA y todo lo que necesitas decir es ‘aquí hay un código C, por favor tradúcelo a un código Rust idiomático seguro’, cortar, pegar y algo sale, y a menudo es muy bueno, pero no siempre», dijo el Dr. Dan Wallach, gerente de programa de DARPA para TRACTOR. «El desafío de la investigación es mejorar drásticamente la traducción automática de C a Rust, particularmente para las construcciones de programas con la mayor relevancia». DARPA está aceptando propuestas sobre la mejor manera de lograr esto y realizará competencias públicas para probar soluciones impulsadas por LLM. ¿Por qué Rust? Los lenguajes de programación modernos como Rust manejan la memoria de manera más segura, «eliminando así toda la clase de vulnerabilidades de seguridad de la memoria en los programas C», dijo DARPA. El director de tecnología de Microsoft Azure, Mark Russinovich, dijo que debería ser el sucesor de C, y el lenguaje ha sido adoptado por desarrolladores en una gran cantidad de organizaciones a nivel mundial en los últimos años. «Rust obliga al programador a hacer las cosas bien», dijo Wallach. «Puede resultar restrictivo lidiar con todas las reglas que impone, pero cuando te acostumbras a ellas, te dan libertad. Son como barandillas; una vez que te das cuenta de que están ahí para protegerte, te vuelves libre para concentrarte en cosas más importantes». Más allá de la seguridad, ha demostrado ser popular entre los desarrolladores, y ganó el premio al lenguaje de programación «más querido» en las encuestas de Stack Overflow. En el lado negativo, los piratas informáticos ya están recurriendo a estos lenguajes de codificación. Una investigación de BlackBerry en 2021 descubrió que los actores de amenazas recurrían a lenguajes como Rust al codificar malware en un intento de evitar ser detectados. El estudio señaló que los profesionales de la seguridad estaban viendo cada vez más cepas de malware escritas en Rust, así como otros lenguajes «exóticos» como Go, Nim y DLang.