
După ce ai studiat structura internă a unei aplicații prin analiză statică – examinând permisiunile, API-urile și codul – următorul pas logic este să observi cum se comportă efectiv în timpul rulării. Analiza dinamică, numită și „executare în sandbox”, permite monitorizarea aplicației într-un mediu controlat, unde toate acțiunile pot fi urmărite fără riscul de a compromite un dispozitiv real.
Un sandbox este un mediu virtual, izolat de sistemul principal, în care aplicațiile pot fi instalate și executate fără a afecta datele sau configurațiile reale. Scopul este de a înregistra comportamentul aplicației: ce procese rulează, ce fișiere creează, ce trafic de rețea generează, ce date accesează și dacă face ceva diferit față de ceea ce promite în interfață sau în magazinul oficial.
De ce este analiza dinamică importantă?
Multe aplicații „maligno-benigne” – adică aparent inofensive – își ascund comportamentul real până în momentul în care sunt rulate, uneori chiar în funcție de mediul în care sunt executate. Spre exemplu:
🔹 Unele aplicații încep să trimită date către servere externe abia după prima utilizare.
🔹 Altele descarcă componente suplimentare de pe internet după instalare (ex: module de reclame agresive).
🔹Unele comportamente periculoase sunt activate doar dacă aplicația detectează o rețea Wi-Fi publică sau o locație geografică specifică.
🔹 Există și aplicații care verifică dacă rulează într-un emulator sau într-un sandbox și își suspendă funcțiile suspecte tocmai pentru a evita detectarea.
Prin analiza dinamică, aceste comportamente pot fi identificate și documentate în timp real, ceea ce oferă un tablou mult mai fidel al riscurilor reale.
Medii de testare recomandate
Pentru analiza comportamentală a aplicațiilor Android, cele mai frecvente opțiuni sunt:
🔹 Emulatoare Android oficiale (Android Studio AVD): configurabile și bine documentate, dar relativ lente pentru testări extinse.
🔹 Genymotion: o soluție rapidă și stabilă de emulator Android, ideală pentru testare dinamică și rulări repetate.
🔹 VirtualBox + sistem personalizat Android-x86: pentru cei care doresc control total asupra mediului.
🔹 MobSF (Mobile Security Framework): include și un sandbox dinamic integrat, care poate fi lansat în mod automat pentru APK-uri analizate.
Un sandbox eficient ar trebui să îți permită:
🔹 să monitorizezi rețeaua (cu Wireshark sau tcpdump)
🔹 să interceptezi apelurile API (cu Frida sau Xposed)
🔹 să monitorizezi logurile (cu Logcat)
🔹 să capturezi fișiere noi, modificări de registru, cereri HTTP, SMS-uri simulate etc.
Ce urmărești în timpul rulării?
Scopul este să identifici discrepanțele între ce pare că face aplicația și ce face de fapt. Prin urmare, în timpul rulării, următoarele elemente devin esențiale:
🔹 Traficul de rețea: aplicația comunică cu servere externe? Sunt datele transmise în clar sau criptat? Ce tip de cereri HTTP trimite?
🔹 Apeluri către funcții sensibile: camera, microfonul, fișierele, contacte, locația.
🔹 Crearea de fișiere suspecte: sunt scrise date într-un mod care pare excesiv sau criptat fără motiv?
🔹 Comportamente contextuale: ce se întâmplă dacă închizi ecranul? Dacă schimbi conexiunea la internet? Dacă schimbi limba sau locația?
Aceste observații te ajută să înțelegi dacă aplicația are o funcționare ascunsă sau abuzivă, care nu este evidentă în mod normal.
Exemple de comportamente detectabile
În timpul rulării aplicației într-un sandbox, poți descoperi lucruri precum:
🔹 trimiteri automate de date către servere cu reputație scăzută
🔹 încărcarea unui cod JavaScript extern într-un WebView
🔹 transmiterea locației la fiecare 30 de secunde, chiar și când aplicația este în fundal
🔹 trimiterea de date de identificare ale dispozitivului (IMEI, MAC address, etc.)
🔹 injectarea de reclame neautorizate peste alte aplicații prin SYSTEM_ALERT_WINDOW
🔹 crearea de fișiere cu denumiri ofuscate care par să stocheze date extrase din telefon
Toate aceste comportamente ar putea să nu apară niciodată într-o analiză statică și, uneori, nici în primele minute ale rulării – fiind declanșate doar în condiții specifice.
Cum documentezi analiza
Pentru ca analiza să fie relevantă, trebuie să documentezi:
🔹 data și ora testului
🔹 versiunea aplicației testate
🔹 sistemul de operare și emulatorul folosit
🔹 comportamentele observate și modul în care au fost declanșate
🔹 capturi de ecran, loguri, pachete de rețea
Un raport de analiză dinamică este cu atât mai valoros cu cât este susținut de date concrete: capturi Wireshark, loguri adb, fișiere create de aplicație, etc. În lecția 9 vom vedea exact cum se redactează un astfel de raport.
Limitări
Nu toate comportamentele pot fi observate în sandbox. Unele aplicații detectează dacă rulează într-un emulator și opresc activ funcțiile riscante. De asemenea, unele comportamente se declanșează doar după o perioadă mai lungă de utilizare sau la anumite acțiuni ale utilizatorului (înregistrare, autentificare, achiziții).
De aceea, analiza dinamică trebuie combinată cu analiza statică. Niciuna nu este suficientă singură, dar împreună oferă o perspectivă completă.
În lecția următoare vom studia studii de caz concrete în care aplicații aparent inofensive s-au dovedit a fi abuzive după analiza dinamică. Vei învăța cum să simulezi atacuri simple pentru a testa rezistența aplicațiilor și pentru a documenta mai clar riscurile ascunse.