Google continua amb la seva feina de traslladar Android a Rust 

Rust-Android

Google ja treballa en la migració de diferents components d'Android a Rust

Des de ja fa uns quants mesos, hem compartit aquí al bloc algunes de les notícies més destacades sobre el suport i acceptació que ha tingut Rust en els diferents projectes i desenvolupaments, dels quals molts són pesos pesants, digui's Linux, Windows i fins i tot Android.

Tot i tenir una gran acceptació per part dels grans, el canvi cap a Rust no és fàcil, ja que fins i tot per poder ser acceptat com a segon llenguatge de programació al Kernel de Linux, va haver de passar per força coses perquè Linus Torvalds donés el vistiplau.

Per al cas de Google, això no ha estat una excepció i des de ja fa uns quants mesos, Google ha introduït Rust en molts dels seus projectes i Android n'és un i en el qual s'ha portat una etapa de migració força controlada, ja que com a part dels seus esforços per enfortir la seguretat dels components de programari crítics de la plataforma, ara Google va donar a conèixer que ha finalitzat amb la feina de la migració del fimware «Android Virtualization Framework's protected VM (pVM)» a Rust.

aquest firmware és utilitzat per organitzar el funcionament de les màquines virtuals llançades per l'hipervisor pVM des d'Android. Anteriorment, el firmware s'escrivia a C i s'implementava sobre el carregador U-Boot, en el codi del qual es van trobar prèviament vulnerabilitats causades per problemes amb la memòria.

el hipervisor pVM pren el control en una etapa primerenca de l'arrencada y proporciona un aïllament complet de la memòria de la màquina virtual de l'entorn del host, evitant l'accés des del sistema amfitrió a les màquines virtuals protegides que processen dades confidencials. El microprogramari pvmfm (Firmware de màquina virtual protegida) pren el control immediatament després d'iniciar la màquina virtual, verifica l'entorn generat i decideix avortar l'inici si es detecten problemes d'integritat o genera un certificat d'inici per al sistema convidat si es confirma la cadena de confiança.

La reescriptura de Rust fa que sigui més fàcil i segur complir amb la "regla de dos" de Google per mantenir segurs els components del sistema Android. D'acord amb aquesta regla, qualsevol codi agregat ha de complir no més de dues de tres condicions: treballar amb dades d'entrada no validades, fer servir un llenguatge de programació no segur (C/C++) i executar-se amb privilegis elevats. Aquesta regla implica que el codi per processar dades externes s'ha de reduir a privilegis mínims (aïllat) o escriure's en un llenguatge de programació segur. Segons les estadístiques de Google, aproximadament el 70% de totes les vulnerabilitats perilloses identificades a Android es deuen a errors en treballar amb la memòria.

Entre les dificultats que sorgeixen en el procés de desenvolupament de components de baix nivell com a controladors en el llenguatge Rust, s'esmenta la necessitat de treballar amb punters en mode insegur, ja que Rust es crea pensant en l'ús de la memòria assignada al llenguatge Rust.

Entre els desavantatges, també cal destacar la necessitat d'una sintaxi millorada per accedir a camps d'estructura i índexs de matriu a través de punters simples sense crear referències, així com limitacions en la creació denllaços segurs sobre operacions insegures que poden causar un comportament indefinit i no poden ser verificades pel compilador.

Cal esmentar que el nou firmware reescrit a Rust s'inclou a Android 14 i les biblioteques universals creades durant el procés de desenvolupament del microprogramari s'empaqueten com a paquets i es transfereixen a la comunitat de Rust. La mida del codi resultant en comparació amb la versió anterior del microprogramari pVM que ocupava 220 kB, el nou codi ocupa 460 kB, però es van afegir noves funcions a la versió reescrita, gràcies a les quals va ser possible desfer-se d'alguns altres components utilitzats durant l'arrencada.

Com a resultat, la mida total de tots els components antics i nous del maleter va resultar ser comparable. Cal assenyalar que quan la mida és més important que el rendiment, es poden aconseguir resultats comparables als del llenguatge C habilitant modes d'optimització de mida addicionals al compilador, descartant dependències innecessàries i sense utilitzar formatadors de cadenes.

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls al següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.