Aproape un sfert din Android 13 este scris în Rust

Rugină Android 13

Android 13 este prima versiune de Android în care cea mai mare parte a noului cod adăugat versiunii este într-o limbă sigură pentru memorie.

Printr-o postare pe blog, inginerii Google a lansat rezumatul primelor rezultate a introducerii Suport pentru dezvoltare Rust pe Android.

Un Android 13, aproximativ 21% din noul cod compilat Agregatul este scris în Rust și 79% în C/C++, fiind depozitul AOSP (Android Open Source Project), care dezvoltă codul sursă pentru platforma Android, care are aproximativ 1,5 milioane de linii de cod Rust.

Codul oferit de AOSP este legat de componente noi precum depozitul de chei criptografic Keystore2, stiva pentru cipuri UWB (Ultra-Wideband), implementarea protocolului DNS prin HTTP3, framework de virtualizare AVF (Android Virtualization Framework), stive experimentale pentru Bluetooth și Wi-Fi.

În linie cu strategia adoptată mai sus pentru a reduce riscul de vulnerabilități ale erorilor de memorie, Până acum Rust a fost folosit în principal pentru dezvoltarea de coduri noi și pentru a consolida treptat securitatea celor mai vulnerabile și vitale componente software.

Pe măsură ce numărul de coduri noi de memorie nesigură care intră în Android a scăzut, numărul vulnerabilităților de securitate a memoriei a scăzut și el. Din 2019 până în 2022, a scăzut de la 76% la 35% din totalul vulnerabilităților Android. 2022 marchează primul an în care vulnerabilitățile de securitate ale memoriei nu țin cont de majoritatea vulnerabilităților Android.

Scopul general de a transfera întreaga platformă la Rust nu este stabilit, iar vechiul cod rămâne în C/C++, iar lupta împotriva erorilor din acesta se face prin utilizarea de teste fuzzing, analiză statică și utilizarea unor tehnici similare. utilizarea tipului MiraclePtr (legare peste pointeri bruti, care efectuează verificări suplimentare pentru accesarea zonelor de memorie eliberate), a sistemului de alocare a memoriei Scudo (un înlocuitor sigur pentru malloc/free) și a mecanismelor de detectare a erorilor atunci când se lucrează cu memoria HWAsan (Hardware Assisted AddressSanitizer) , GWP-ASAN și KFENCE.

În ceea ce privește statisticile privind natura vulnerabilitățile pe platforma Android se observă că ca scade cantitatea de cod nou care funcționează cu memoria în moduri nesigure, scade și numărul de vulnerabilități cauzate de erori atunci când lucrați cu memoria.

De exemplu, proporția vulnerabilităților cauzate de probleme de memorie a scăzut de la 76% în 2019 la 35% în 2022. În cifre absolute, au fost identificate 223 de vulnerabilități legate de memorie în 2019, 150 în 2020, 100 în 2021 și 85 în 2022. nu au fost găsite). 2022 a fost primul an în care vulnerabilitățile legate de memorie au încetat să domine.

Până în prezent, nu au fost descoperite vulnerabilități de securitate a memoriei în codul Android Rust.

Nu ne așteptăm ca acest număr să rămână la zero pentru totdeauna, dar având în vedere volumul noului cod Rust din două versiuni de Android și componentele sensibile la securitate în care este utilizat, este un rezultat semnificativ. Acesta arată că Rust își servește scopul propus de a preveni cea mai comună sursă de vulnerabilități Android.

dat fiind faptul că vulnerabilitățile legate de memorie sunt adesea cele mai periculoase, statisticile generale arată, de asemenea, o scădere a numărului de probleme critice și probleme care pot fi exploatate de la distanță. În același timp, dinamica detectării vulnerabilităților care nu sunt legate de lucrul cu memoria a fost aproximativ la același nivel în ultimii 4 ani - 20 de vulnerabilități pe lună.

Raportul dintre problemele periculoase și vulnerabilitățile cauzate de erorile de memorie este, de asemenea, același (dar pe măsură ce numărul de vulnerabilități scade, numărul de probleme periculoase scade și el).

Statisticile urmăresc, de asemenea, corelația dintre cantitatea de cod nou care funcționează cu memoria într-o manieră nesigură și numărul de vulnerabilități legate de memorie (depășiri de memorie tampon, acces la memoria deja eliberată etc.).

Această observație confirma ipoteza de că atenția principală în implementarea tehnicilor de programare securizată ar trebui să fie dat noului cod și nu să rescrie cel existent, deoarece majoritatea vulnerabilităților identificate sunt în noul cod.

Fuente: https://security.googleblog.com/


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.