
Gli scienziati del centro di ricerca francese Inria, insieme a Microsoft, hanno sviluppato un modo per convertire automaticamente il codice C in codice Rust sicuro, con l’obiettivo di soddisfare la crescente domanda di sicurezza della memoria.
Creato negli anni ’70, il linguaggio di programmazione C è diventato la base per molti sistemi, applicazioni e librerie mission-critical, incluso il kernel Linux. Tuttavia il C, come la sua continuazione logica C++, non garantisce la sicurezza della memoria. La sua gestione manuale della memoria, pur fornendo flessibilità ed efficienza, è soggetta a errori come out-of-bounds e use-after-free.
Questi bug costituiscono una parte significativa delle vulnerabilità del software. Ad esempio, nel 2019 costituivano il 76% delle vulnerabilità di Android, ma grazie all’utilizzo di Rust e del secure code questa cifra è scesa al 24% nel 2024.
Rust ti permette di scrivere codice sia sicuro che non sicuro, lasciando la scelta allo sviluppatore. Al contrario, C e C++ richiedono uno sforzo significativo, come analisi e test statici, ma non la forniscono in modo nativo.
Negli ultimi anni c’è stato un forte sostegno al passaggio a linguaggi con sicurezza della memoria incorporata, come Rust, Go, Python e Java. Nonostante ciò, alcuni programmatori continuano a cercare modi per utilizzare C e C++ in modo sicuro, evitando il passaggio a Rust. Google, pur promuovendo attivamente Rust, riconosce anche che C e C++ rimarranno in uso per molti anni a venire.
Tra i tentativi di migliorare la sicurezza del C spiccano progetti come TrapC e Fil-C. Il primo sviluppa un approccio a un sottoinsieme del linguaggio e il secondo, pur fornendo sicurezza, riduce le prestazioni e non supporta la piena compatibilità con l’interfaccia binaria dell’applicazione.
Lo studio, Compiling C into Safe Rust , dei ricercatori Aymeric Fromertz (Inria) e Jonathan Protzenko (Microsoft), offre un approccio alternativo. Si sono concentrati sulla traduzione del codice formalmente testato per l’uso industriale in Rust sicuro. Per fare ciò, è stato creato un sottoinsieme del linguaggio C chiamato Mini-C, che evita costrutti difficili da tradurre come l’aritmetica dei puntatori e la mutabilità implicita.
Utilizzando Mini-C tramite il compilatore KaRaMeL, gli sviluppatori ottengono la conversione automatica del codice in Rust sicuro. Ad esempio, la libreria di crittografia HACL, composta da 80.000 righe di codice, è stata tradotta con modifiche minime. E la libreria serializzatore EverParse, contenente 1.400 righe di codice, è stata convertita senza alcuna modifica. Le prestazioni del codice Rust risultante sono rimaste al livello del C originale, nonostante l’aggiunta di ulteriori controlli e altri miglioramenti.
I frutti del lavoro dei ricercatori vengono già utilizzati nelle applicazioni di sicurezza del mondo reale. Ad esempio, la versione Rust di HACL è stata recentemente integrata nelle librerie Mozilla NSS e OpenSSH.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

InnovazioneL’evoluzione dell’Intelligenza Artificiale ha superato una nuova, inquietante frontiera. Se fino a ieri parlavamo di algoritmi confinati dietro uno schermo, oggi ci troviamo di fronte al concetto di “Meatspace Layer”: un’infrastruttura dove le macchine non…
CybercrimeNegli ultimi anni, la sicurezza delle reti ha affrontato minacce sempre più sofisticate, capaci di aggirare le difese tradizionali e di penetrare negli strati più profondi delle infrastrutture. Un’analisi recente ha portato alla luce uno…
VulnerabilitàNegli ultimi tempi, la piattaforma di automazione n8n sta affrontando una serie crescente di bug di sicurezza. n8n è una piattaforma di automazione che trasforma task complessi in operazioni semplici e veloci. Con pochi click…
InnovazioneArticolo scritto con la collaborazione di Giovanni Pollola. Per anni, “IA a bordo dei satelliti” serviva soprattutto a “ripulire” i dati: meno rumore nelle immagini e nei dati acquisiti attraverso i vari payload multisensoriali, meno…
Cyber ItaliaNegli ultimi giorni è stato segnalato un preoccupante aumento di truffe diffuse tramite WhatsApp dal CERT-AGID. I messaggi arrivano apparentemente da contatti conosciuti e richiedono urgentemente denaro, spesso per emergenze come spese mediche improvvise. La…