GhostMap: aplicație Android fără permisiuni blochează dispozitivul în reboot loop

O vulnerabilitate în Android, denumită „GhostMap”, permite unei aplicații special construite să forțeze un dispozitiv într-o buclă de repornire și imposibil de oprit prin mijloace obișnuite.

Aplicația nu necesită niciun fel de permisiuni și nu trebuie lansată de utilizator pentru a produce efectul. Google a fost notificat în august, dar nu a emis un patch, clasificând inițial problema ca nereproductibilă.

Constatări principale

– O aplicație fără cod executabil și fără permisiuni poate declanșa o blocare de lungă durată a dispozitivului Android imediat după instalare.

– Vulnerabilitatea exploatează o diferență de interpretare între două librării Android privind metodele de compresie ZIP, permițând unui fișier APK (pachet de instalare Android) malformat să depășească verificările de dimensiune și să fie mapat în zone de memorie nealocate

– Când serviciul central Android „system_server” încearcă să citească resursa respectivă, primește un semnal SIGBUS (semnal trimis de procesor pentru a opri un proces care accesează o zonă de memorie invalidă), se blochează și repornește în buclă

– Safe Mode (modul de siguranță), care în mod normal permite depanarea unor astfel de probleme, nu poate fi accesat în timpul buclei

– Singurele soluții sunt resetarea la setările din fabrică, care șterge toate datele locale, sau ștergerea fișierului malformat prin ADB (Android Debug Bridge, un instrument de linie de comandă pentru dezvoltatori), cu condiții stricte prealabile

– Google a catalogat problema ca „Won’t Fix (Not Reproducible)” și în afara unui update de securitate, deși a rezervat-o pentru o posibilă actualizare viitoare

Mecanismul tehnic al vulnerabilității

– GhostMap apare din cauza că două librării Android interpretează diferit metodele de compresie ZIP dintr-un fișier APK.

– Această inconsistență permite unui APK malformat să ocolească verificările de dimensiune și să mapeze un fișier dincolo de conținutul său real, într-o regiune de memorie nealocată.

– Citirea acelei zone provoacă un semnal SIGBUS în orice proces care accesează fișierul, ceea ce duce la oprirea forțată a procesului respectiv.

Bitdefender a identificat inițial comportamentul în timp ce analiza un troian bancar Android care provoca blocarea emulatorului lor la citirea unei resurse din aplicație

Demonstrarea vulnerabilității și comportamentul în teste

– Bitdefender a creat o aplicație demonstrativă care nu conține cod executabil, nu solicită permisiuni și nu trebuie deschisă de utilizator

– Aplicația include o resursă pe care serviciul „system_server” o citește automat după instalare, declanșând bucla de blocare

– Testele au fost efectuate pe un dispozitiv Pixel 10 cu Android 17 și patch-ul de securitate din 5 august

– Blocarea a început la aproximativ o secundă după instalare: bucla s-a repetat de 110 ori în modul normal și de 72 de ori în Safe Mode

Limitări ale soluțiilor de remediere

– Resetarea la fabrică: elimină problema, dar șterge toate datele stocate local pe dispozitiv

– Ștergerea prin ADB: necesită ca opțiunea USB debugging să fi fost activată anterior pe dispozitiv și un script care să acționeze înainte ca sistemul să se blocheze din nou – condiții greu de îndeplinit în practică, mai ales de un utilizator obișnuit.

– Safe Mode nu este accesibil în timpul procesului de reboot, eliminând calea standard de rezolvare a problemei.

Răspunsul Google și protecția disponibilă

– Bitdefender a raportat vulnerabilitatea pe 20 august și a primit răspuns de tip „Won’t Fix (Not Reproducible)”, cu mențiunea că este în afara domeniului de aplicare al unui update de securitate

– Pe 25 august, cercetătorii au transmis un raport extins, considerând că Google a clasificat greșit problema inițială; Google a menținut poziția, dar a notat problema pentru o posibilă actualizare viitoare

– Potrivit Bitdefender, singura fereastră de blocare a atacului este în momentul instalării aplicației

– Instrumentele de securitate terțe pot detecta potențial amenințarea și afișa un avertisment, dar nu au permisiunea de a bloca instalarea.