L'agenzia di ricerca avanzata del Dipartimento della Difesa degli Stati Uniti (DARPA) sta lanciando un ambizioso progetto chiamato TRACTOR per accelerare la transizione verso linguaggi di programmazione più sicuri dal punto di vista della gestione della memoria.
TRACTOR, acronimo di TRanslating All C TO Rust, mira a sviluppare strumenti di machine learning in grado di automatizzare la conversione del codice legacy scritto in C nel linguaggio Rust.
L'obiettivo principale è migliorare la sicurezza del software, affrontando i problemi di sicurezza della memoria che sono alla base della maggior parte delle vulnerabilità critiche nei grandi progetti software.
Dan Wallach, program manager di DARPA per TRACTOR, ha dichiarato: "Puoi andare su qualsiasi sito web di LLM, iniziare a chattare con uno dei chatbot AI e basta dire 'ecco del codice C, per favore traducilo in codice Rust sicuro e idiomatico', copiare, incollare, e viene fuori qualcosa, spesso molto buono, ma non sempre. La sfida è migliorare drasticamente la traduzione automatizzata da C a Rust, in particolare per le strutture di programmazione più rilevanti."
Negli ultimi anni, colossi tecnologici come Google e Microsoft hanno evidenziato i problemi causati dai bug di sicurezza della memoria, promuovendo l'uso di linguaggi alternativi a C e C++ che non richiedono una gestione manuale della memoria.
Questo messaggio del settore privato ha attirato l'attenzione del settore pubblico, che gestisce grandi quantità di codice legacy. Di conseguenza, la Casa Bianca e l'Agenzia per la Sicurezza Informatica e delle Infrastrutture (CISA) hanno iniziato a incoraggiare l'uso di linguaggi di programmazione memory-safe, principalmente Rust, ma anche C#, Go, Java, Python e Swift.
Nonostante le resistenze da parte di chi supervisiona C e C++, DARPA ritiene che il verdetto su questi linguaggi sia già stato emesso. L'agenzia afferma: "Dopo oltre due decenni di lotta con i problemi di sicurezza della memoria in C e C++, la comunità di ingegneria del software ha raggiunto un consenso. Affidarsi solo a strumenti di ricerca di bug non è sufficiente."
Rust, rilasciato stabilmente nel 2015, offre sicurezza della memoria integrata pur essendo adatto alla programmazione di sistema di basso livello e sensibile alle prestazioni.
Queste caratteristiche hanno portato a iniziative come Prossimo, un progetto non-profit che mira a riscrivere librerie e codice critico in Rust per ridurre i rischi di sicurezza.
Josh Aas, direttore esecutivo del progetto Prossimo, ha commentato: "La grande quantità di codice C in esecuzione nell'infrastruttura internet odierna rende attraente l'uso di strumenti di traduzione.
Abbiamo sperimentato con questo approccio, ma gli strumenti attuali richiedono ancora molto lavoro manuale per rendere i risultati corretti e idiomatici. Speriamo che con ulteriori investimenti possiamo renderli significativamente più efficienti."
Peter Morales, CEO di Code Metal, azienda specializzata nella transpilazione di codice per hardware edge, ritiene che il progetto del DARPA sia promettente e ben tempestivo. Tuttavia, sottolinea che la conversione automatica del codice rimane una sfida complessa, definendola un "problema DARPA-hard" a causa delle numerose casistiche da gestire nella formulazione di regole per la conversione tra linguaggi diversi.
Wallach ha evidenziato alcune sfide tecniche specifiche: "I modelli linguistici possono dare risposte sorprendentemente buone quando gli si chiede di tradurre codice, ma possono anche generare risposte errate. Un'altra sfida è che C permette al codice di fare cose con i puntatori, compresa l'aritmetica, che Rust proibisce. Colmare questo divario richiede più di una semplice traslitterazione da C a Rust."
DARPA organizzerà un evento il 26 agosto 2024 per coloro che intendono presentare proposte per il progetto TRACTOR. L'evento potrà essere seguito di persona o in remoto, ma è richiesta una registrazione entro il 19 agosto.
Il progetto TRACTOR rappresenta un passo significativo verso un futuro di software più sicuri, sfruttando l'intelligenza artificiale per affrontare le sfide della sicurezza informatica. Il successo di questa iniziativa potrebbe avere un impatto profondo sul panorama della programmazione e della cybersecurity negli anni a venire.