Rust bare-metal in Android: come migliora la sicurezza

Google spiega che il codice Rust sta consentendo di migliorare la sicurezza di Android anche a basso livello e non soltanto in ambito userspace. Cosa cambia rispetto all'approccio tradizionale.
Rust bare-metal in Android: come migliora la sicurezza

Rust è un linguaggio di programmazione progettato per assicurare un elevato livello di sicurezza senza sacrificare le prestazioni. Abbiamo visto quanto è importante la sicurezza della memoria nelle applicazioni e come la maggior parte degli attacchi informatici tenda a trarre vantaggio proprio da queste problematiche. Con Rust, gli sviluppatori hanno l’opportunità di evitare alla radice i bug legati alla gestione della memoria svincolandosi finalmente dai rischi di C/C++.

Google ha parlato dell’implementazione di Rust bare-metal in Android facendo riferimento all’utilizzo di codice capace di essere direttamente eseguito sull’hardware del dispositivo, senza intermediari. L’azienda di Mountain View sottolinea che il passaggio a Rust ha portato a una significativa riduzione delle vulnerabilità di sicurezza in Android. D’altra parte, abbiamo visto che Rust sta prepotentemente entrando nel kernel Linux e nel kernel Windows.

Fino ad oggi, tuttavia, gli sforzi degli sviluppatori di Android erano concentrati sul cosiddetto userspace ovvero sui servizi di sistema che operano al di fuori del kernel, sopra di esso. Tutto ciò con cui un utente interagisce direttamente o indirettamente su un dispositivo Android è parte dello userspace.

Rust bare-metal: perché si tratta di un cambiamento importante

Il team di sviluppo Google sta abbracciando Rust anche per i componenti software di più basso livello, sul sistema operativo Android. Molti componenti critici per la sicurezza su Android operano in ambienti “bare-metal” al di fuori del kernel Linux e sono storicamente scritti in C. Per migliorare la sicurezza di questi componenti, il team Android Rust ha riscritto il firmware della pVM (protected VM) all’interno dell’Android Virtualization Framework.

La sigla pVM si riferisce a una macchina virtuale che opera in un ambiente sicuro e isolato. L’utilizzo della pVM è finalizzata a garantire la sicurezza e l’integrità dei dati: portandola all’interno dell’Android Virtualization Framework, utilizzando il linguaggio Rust, Google migliora la sicurezza dei dispositivi basati sul robottino verde.

In un primo tempo, infatti, Google aveva optato per il bootloader open source U-Boot: tale strumento, tuttavia, presentava numerosi problemi e difetti che lo rendevano inadatto per l’utilizzo in un ambiente potenzialmente ostile.

L’azienda di Mountain View si è quindi attivata non solo per migliorare U-Boot ma anche per contribuire alla comunità Rust. L’azienda fondata da Larry Page e Sergey Brin, ha contribuito ai crate esistenti e ne ha condivisi di nuovi. I crate rappresentano il modo principale per organizzare il codice in Rust e l’unità di compilazione più grande nel linguaggio. Si è inoltre prodigata ad ottimizzare il driver VirtIO che si occupa di migliorare le prestazioni e la flessibilità delle macchine virtuali.

Google racconta che tanti ingegneri della società sono rimasti piacevolmente sorpresi di quanto sia produttivo e piacevole lavorare con Rust: il linguaggio offre funzionalità di sviluppo ad alto livello anche in ambienti software che sono, per loro natura, di basso livello.

Ti consigliamo anche

Link copiato negli appunti