Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Dalla Preistoria alla Sicurezza! Microsoft Sviluppa Un Convertitore da C a Rust con un Click

Redazione RHC : 7 Gennaio 2025 17:19

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.

Vuoi diventare un Ethical Hacker?
Non perdere i nostri corsi e scrivi subito su WhatsApp al numero
375 593 1011  per richiedere informazioni dicendo che hai trovato il numero sulle pagine di Red Hot Cyber

Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.

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.

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.