Rust è già uno dei preferiti per lo sviluppo Android

Google ha presentato recentemente l'inclusione linguaggio di programmazione Ruggine tra le lingue consentite per lo sviluppo Android.

Poiché il compilatore Rust è stato incluso nell'albero dei sorgenti di Android nel 2019, ma il supporto del linguaggio è rimasto sperimentale. Alcuni dei primi componenti Rust da spedire ad Android sono nuove implementazioni del meccanismo di comunicazione tra processi di Binder e dello stack Bluetooth.

L'implementazione di Rust è stato realizzato nell'ambito di un progetto per rafforzare la sicurezza, promuovere tecniche di codifica sicure e migliorare l'efficienza dell'identificazione dei problemi quando si lavora con la memoria in Android. Si osserva che circa il 70% di tutte le vulnerabilità pericolose identificate in Android sono causate da errori quando si lavora con la memoria.

L'uso della lingua Rust, che si concentra sulla gestione sicura della memoria e fornisce la gestione automatica della memoria, ridurrà il rischio di vulnerabilità causate da errori durante la gestione della memoria, come l'accesso a un'area di memoria dopo che è stata liberata e il superamento dei limiti del buffer.

La gestione sicura della memoria è garantita in Rust in fase di compilazione controllando i riferimenti, monitorando la proprietà e la durata dell'oggetto (ambito), nonché valutando la correttezza dell'accesso alla memoria in fase di esecuzione.

Ruggine fornisce anche mezzi per proteggersi da traboccamenti intero, richiede l'inizializzazione obbligatoria dei valori delle variabili prima dell'uso, gestisce meglio gli errori nella libreria standard, adotta il concetto di riferimenti e variabili immutabili per impostazione predefinita e offre una forte scrittura statica per ridurre al minimo gli errori logici.

Su Android, la gestione sicura della memoria è fornita nei linguaggi Kotlin e Java già supportato, ma non adatto per lo sviluppo di componenti di sistema a causa del sovraccarico pesante.

Rust permette di ottenere prestazioni vicine ai linguaggi C e C ++, consentendone l'utilizzo per sviluppare parti di basso livello della piattaforma e componenti per interfacciarsi con l'hardware.

Per garantire la sicurezza del codice C e C ++, Android utilizza l'isolamento sandbox, l'analisi statica e i test di fuzzing. Le capacità di isolamento della sandbox sono limitate e hanno raggiunto il limite delle loro capacità (un'ulteriore frammentazione nei processi non è pratica dal punto di vista del consumo di risorse)

Tra i limiti dell'utilizzo della sandbox, citano l'elevato overhead e il maggiore consumo di memoria causato dalla necessità di generare nuovi processi, nonché la latenza aggiuntiva associata all'uso di IPC.

Allo stesso tempo, la sandbox non elimina le vulnerabilità nel codice, ma riduce solo i rischi e complica l'attacco, poiché lo sfruttamento richiede l'identificazione non di una, ma di più vulnerabilità.

I metodi di test del codice sono limitati perché, per rilevare gli errori, è necessario creare le condizioni per la manifestazione del problema. Non è possibile coprire tutte le opzioni possibili, quindi molti errori passano inosservati.

Per i processi di sistema su Android, Google aderisce alla "regola del due"Secondo quale qualsiasi codice aggiunto non deve soddisfare più di due condizioni su tre- Lavora con dati di input non verificati, utilizza un linguaggio di programmazione non sicuro (C / C ++) ed esegui senza isolamento sandbox rigido (con privilegi elevati).

Da questa regola deriva che il codice per elaborare i dati esterni deve essere ridotto al minimo privilegio (isolato) o scritto in un linguaggio di programmazione sicuro.

Google non mira a riscrivere il codice C / C ++ esistente in Rust, ma prevede di utilizzare questo linguaggio per sviluppare nuovo codice.

Ha senso usare Rust per il nuovo codice, poiché statisticamente la maggior parte degli errori appare nel codice nuovo o modificato di recente. In particolare, circa il 50% degli errori di memoria rilevati in Android vengono rilevati nel codice scritto meno di un anno fa.

fonte: https://security.googleblog.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   miguel rodriguez suddetto

    L'ironia, quando il tuo più grande concorrente finisce per adottare qualcosa che hai contribuito a sviluppare per i tuoi scopi ... Rust è in aumento.