News

A DARPA sugere transformar o código C antigo automaticamente em Rust – usando IA, é claro

Para acelerar a transição para linguagens de programação seguras em termos de memória, a Agência de Projetos de Pesquisa Avançada de Defesa dos EUA (DARPA) está impulsionando o desenvolvimento do TRACTOR, um veículo de conversão de código programático.

O termo significa TRanslating All C TO Rust. É um projeto da DARPA que visa desenvolver ferramentas de machine learning que podem automatizar a conversão de código C legado para Rust.

O motivo para fazer isso é a segurança da memória. Bugs de segurança de memória, como estouros de buffer, são responsáveis ​​pela maioria das principais vulnerabilidades em grandes bases de código. E a esperança da DARPA é que os modelos de IA possam ajudar na tradução da linguagem de programação, para tornar o software mais seguro.

“Você pode acessar qualquer um dos sites do LLM, começar a conversar com um dos chatbots de IA, e tudo o que você precisa dizer é ‘aqui está um código C, por favor, traduza-o para um código Rust idiomático seguro’, recortar, colar e algo sai, e geralmente é muito bom, mas nem sempre”, disse Dan Wallach, gerente do programa DARPA para TRACTOR, em uma afirmação.

“O desafio da pesquisa é melhorar drasticamente a tradução automatizada de C para Rust, especialmente para construções de programas com maior relevância.”

Nos últimos anos, gigantes da tecnologia, incluindo Google e Microsoft, vêm divulgando os problemas causados ​​por bugs de segurança de memória e promovendo o uso de linguagens diferentes de C e C++ que não exigem esse gerenciamento manual de memória.

A comunidade de engenharia de software chegou a um consenso. Confiar em ferramentas de busca de bugs não é suficiente

As mensagens do setor privado chamaram a atenção do setor público, que abriga muito código legado, e ajudaram a levar a Casa Branca e a Agência de Segurança Cibernética e de Infraestrutura dos EUA (CISA) a incentivar o uso de linguagens de programação com segurança de memória – principalmente Rust, mas também C#, Go, Java, Python e Swift.

Os envolvidos na supervisão de C e C++ reagiram, argumentando que a adesão adequada aos padrões ISO e a aplicação diligente de ferramentas de teste podem alcançar resultados comparáveis ​​sem reinventar tudo em Rust.

Mas a caracterização da situação pela DARPA sugere que o veredito sobre C e C++ já foi dado.

“Após mais de duas décadas lutando com problemas de segurança de memória em C e C++, a comunidade de engenharia de software chegou a um consenso”, disse a agência de pesquisa, apontando para o chamado do Office of the National Cyber ​​Director para fazer mais para tornar o software mais seguro. “Confiar em ferramentas de busca de bugs não é suficiente.”

O Rust, que teve seu lançamento estável inicial em 2015, mais de quarenta anos após a estreia do C, tem segurança de memória incorporada e também é adequado para programação de sistemas de baixo nível e sensíveis ao desempenho.

As características e a popularidade da linguagem de programação levaram a iniciativas como o Prossimo – o esforço do Internet Research Group sem fins lucrativos para reescrever bibliotecas e códigos críticos, incluindo o daemon do Network Time Protocol (NTP), em Rust (ntpd-rs) – como forma de reduzir riscos de segurança.

“A grande quantidade de código C em execução na infraestrutura da Internet atual torna o uso de ferramentas de tradução atraente”, disse Josh Aas, diretor executivo do projeto Prossimo. O registro na quinta feira.

“Nós experimentamos isso, como em nossa tradução recente de uma implementação AV1 baseada em C para Rust. A geração atual de ferramentas ainda requer bastante trabalho manual para tornar os resultados corretos e idiomáticos, mas estamos esperançosos de que com mais investimentos podemos torná-los significativamente mais eficientes.”

Peter Morales, CEO da Code Metal, uma empresa que acaba de levantar US$ 16,5 milhões para se concentrar na transpilação de código para hardware de ponta, disse O registro o projeto DARPA é promissor e oportuno.

“Eu penso [TRACTOR] é muito sólido em termos da viabilidade de chegar lá e acho que terá um impacto muito grande no espaço da segurança cibernética, onde a segurança da memória já é um assunto muito discutido”, disse ele.

Questionado sobre a sugestão da DARPA de que a comunidade de software chegou a um consenso sobre a necessidade de abordar a segurança da memória, Morales não estava pronto para descartar C e C++ completamente.

“Acredito que todas as linguagens envolvem compensações, mas certamente no nível do kernel faz sentido mover parte do código para Rust”, disse ele.

Certamente, no nível do kernel, faz sentido mover parte do código para Rust

Quanto à possibilidade de conversão automática de código, Morales disse: “É definitivamente um problema difícil para a DARPA”. O número de casos extremos que surgem ao tentar formular regras para converter declarações em diferentes idiomas é assustador, disse ele.

Wallach, que supervisiona o projeto TRACTOR, disse O registro o objetivo é atingir um alto nível de automação, o que exigirá superar alguns desafios técnicos complicados.

“Por exemplo, LLMs podem dar respostas surpreendentemente boas quando você pede para eles traduzirem código, mas eles também podem alucinar respostas incorretas”, ele explicou. “Outro desafio é que C permite que o código faça coisas com ponteiros, incluindo aritmética, o que Rust proíbe. Preencher essa lacuna requer mais do que apenas transliterar de C para Rust.”

Questionado se a DARPA tem alguma base de código específica em mente para conversão, Wallach disse: “Eu apontaria para o grande mundo do código-fonte aberto e, ainda bem, todo o código usado na base industrial de defesa. Não tenho planos específicos, embora algumas coisas como o kernel do Linux estejam explicitamente fora do escopo, porque têm problemas técnicos nos quais o Rust não se encaixaria.”

A DARPA realizará um evento para aqueles que planejam enviar propostas para o projeto TRACTOR em 26 de agosto de 2024, que pode ser assistido pessoalmente ou remotamente. Aqueles que o fizerem, no entanto, são obrigados a registro até 19 de agosto. ®

Source

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button