
L’implementazione e l’uso del linguaggio Rust in molti campi sono sotto gli occhi di tutti, e ne parliamo da tempo qui sul Blog: la garanzia di evitare certe problematiche relative all’allocazione della memoria alimenta una certa fiducia di sicurezza intrinseca nel linguaggio.
Oltretutto, nel recente Linux Kernel Maintainers Summit svoltosi a Tokyo, come ha raccontato The New Stack, ne abbiamo avuto la conferma definitiva: il supporto a Rust nel Kernel Linux non è più, ufficialmente, sperimentale.
Però, nella pratica, abbiamo già ampi esempi di quanto questo approccio sia sbagliato. Solo per quanto riguarda il nostro blog, abbiamo già diversi articoli a riguardo: il caso Cloudflare e — soprattutto — il caso sudo-rs.
In meno di un mese, abbiamo il terzo caso: il Kernel Linux.
Greg Kroah-Hartman, fra i principali maintainer di Linux e collaboratore stretto di Torvalds, ha annunciato la presentazione di una CVE che riguarda (per l’appunto) codice Rust del Kernel.
In particolare si tratta dell’implementazione in Rust del driver Binder, fatta da Google, usata dai dispositivi Android: una race condition che potrebbe mandare in crash il sistema e potenzialmente dare accesso privilegiato. Quindi, niente di particolarmente grave, tra l’altro già risolto.
Ma il punto è la conferma del falso senso di sicurezza che la scelta di uno specifico linguaggio può dare: l’uso di Rust aiuta sicuramente a evitare certi errori, perché pensato per prendersi cura di alcuni dettagli, ma il software è scritto da uomini che fanno errori.
Questi errori sono parte del software stesso e (almeno al momento) non è possibile eliminarli. La dimostrazione è che nel progetto più ampio del mondo, il Kernel, con il più grande numero di sviluppatori e vari stadi di revisione, sono state segnalate altre 159 CVE riguardo al codice C.
Quindi il software contiene errori più o meno gravi, indipendentemente dal linguaggio di programmazione. Cambia la tipologia: alcuni sono impossibili in certi linguaggi, ma la sicurezza è data dalla qualità del codice e del processo di revisione.
Il progetto del Kernel si conferma valido proprio perché i problemi vengono individuati, così da poter essere risolti. Rust e l’uso dell’AI possono aiutare a gestire la situazione, riducendo il numero di casi, ma non possono eliminare (magicamente) il problema: la guardia deve rimanere alta.
E per noi utilizzatori il mantra rimane sempre lo stesso: update, update, update.
Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.





















Lascia un commento