Rust este deja un favorit pentru dezvoltarea Android

Google a dezvăluit recent incluziunea limbaj de programare Rugină printre limbile permise pentru dezvoltarea Android.

Deoarece compilatorul Rust a fost inclus în arborele sursă Android în 2019, dar suportul lingvistic a rămas experimental. Unele dintre primele componente Rust livrate către Android sunt implementări noi ale mecanismului de comunicare Binder inter-proces și stivei Bluetooth.

Implementarea Rust a fost realizat ca parte a unui proiect de consolidare a securității, promovează tehnici de codare sigure și îmbunătățesc eficiența identificării problemelor atunci când lucrați cu memorie în Android. Se observă că aproximativ 70% din toate vulnerabilitățile periculoase identificate în Android sunt cauzate de erori la lucrul cu memoria.

Utilizarea limbajului Rust, se concentrează pe gestionarea sigură a memoriei și oferă gestionarea automată a memoriei, va reduce riscul de vulnerabilități cauzate de erori în timpul procesării memoriei, cum ar fi accesarea unei zone de memorie după ce a fost eliberată și depășirea limitelor tamponului.

Manevrarea sigură a memoriei este asigurată în Rust la momentul construirii, verificând referințele, urmărind proprietatea obiectului și durata de viață a obiectului (domeniul de aplicare), precum și evaluând corectitudinea accesului la memorie în timpul rulării.

Rugină oferă, de asemenea, mijloace de protecție împotriva revărsărilor întreg, necesită inițializarea obligatorie a valorilor variabilei înainte de utilizare, gestionează mai bine erorile din biblioteca standard, adoptă în mod implicit conceptul de referințe și variabile imuabile și oferă scriere statică puternică pentru a minimiza erorile logice.

Pe Android, gestionarea sigură a memoriei este asigurată în limbile Kotlin și Java deja acceptat, dar nu este potrivit pentru dezvoltarea componentelor sistemului datorită costurilor mari.

Rust permite obținerea unei performanțe apropiate de limbajele C și C ++, permițându-i să fie utilizat pentru a dezvolta părți de nivel scăzut ale platformei și componente pentru interfața cu hardware-ul.

Pentru a asigura securitatea codului C și C ++, Android folosește izolarea sandbox-ului, analiza statică și testele de fuzzing. Capacitățile de izolare a sandbox-ului sunt limitate și au atins limita capacităților lor (fragmentarea ulterioară a proceselor nu este practică din punct de vedere al consumului de resurse).

Printre limitările utilizării sandbox-ului, acestea menționează costurile ridicate și consumul mai mare de memorie cauzate de necesitatea de a genera noi procese, precum și latența suplimentară asociată cu utilizarea IPC.

În același timp, sandbox-ul nu elimină vulnerabilitățile din cod, ci doar reduce riscurile și complică atacul, deoarece exploatarea necesită identificarea nu a unuia, ci a mai multor vulnerabilități.

Metodele de testare a codului sunt limitate deoarece, pentru a detecta erorile, trebuie să creați condiții pentru manifestarea problemei. Nu este posibil să acoperiți toate opțiunile posibile, așa că multe erori trec neobservate.

Pentru procesele de sistem pe Android, Google respectă „regula celor doi”Conform care orice cod adăugat nu trebuie să îndeplinească mai mult de două condiții din trei- Lucrați cu date de intrare neconfirmate, utilizați un limbaj de programare nesigur (C / C ++) și rulați fără izolare dură a sandbox-ului (cu privilegii ridicate).

Din această regulă rezultă că codul pentru procesarea datelor externe trebuie redus la cel mai mic privilegiu (izolat) sau scris într-un limbaj de programare sigur.

Google nu își propune să rescrie codul C / C ++ existent în Rust, dar intenționează să folosească acest limbaj pentru a dezvolta un nou cod.

Este logic să folosiți Rust pentru cod nou, deoarece statistic majoritatea erorilor apar în codul nou sau recent modificat. În special, aproximativ 50% din erorile de memorie detectate în Android sunt detectate în cod scris cu mai puțin de un an în urmă.

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.

  1.   miguel rodriguez el a spus

    Ironia, când cel mai mare concurent al tău ajunge să adopte ceva pe care l-ai ajutat să te dezvolți în scopuri proprii ... Rugina este în creștere.