Hirudo: troianul bancar pentru Android care rescrie chiar aplicația băncii
Majoritatea programelor malware bancare pentru Android lucrează pe lângă aplicația băncii: afișează ecrane false de autentificare deasupra ei, citesc notificările sau abuzează de serviciile de accesibilitate ca să apese butoane. Hirudo merge mai departe. Cercetătorii ThreatFabric au descoperit că dezinstalează aplicația bancară autentică și instalează în locul ei o copie modificată, ale cărei verificări de securitate integrate au fost dezactivate. Este un salt important în frauda financiară pe mobil.
Ce s-a întâmplat
ThreatFabric descrie Hirudo ca pe un troian de acces la distanță (RAT). Combină furtul de credențiale, preluarea completă a dispozitivului, capturarea ecranului și a camerei și interceptarea SMS-urilor, totul controlat dintr-un backend destul de matur.
Distribuția. Victimele ar fi atrase prin reclame pe rețelele sociale Meta către pagini false de „Google Play” pentru aplicații de cumpărături, seriale scurte, fotbal și video. Cercetătorii au numit aplicații-momeală precum Shopora, 1V1 X, KoiShort și ZoyaTV. Aceste aplicații chiar funcționează: încarcă un magazin sau un catalog video real într-un WebView, așa că nimic nu pare în neregulă. În fundal, aplicația verifică dacă Hirudo este deja instalat și are acces la accesibilitate și la notificări. Dacă nu, afișează o falsă „actualizare” ca să-l instaleze. Hirudo rulează ca aplicație separată și are nevoie ca victima să-i acorde permisiunile.
Evitarea detecției. La fel ca familia înrudită StreamRat, aplicația-momeală configurează o conexiune VPN intenționat nefuncțională chiar înainte de instalarea malware-ului. Astfel, dispozitivul nu mai poate face verificări de reputație în cloud. Detecția offline a Play Protect rămâne activă, așa că ThreatFabric consideră tehnica o metodă de a slăbi scanarea, nu de a o opri complet.
Funcții clasice de troian bancar. Odată ce are permisiunile, Hirudo poate afișa pagini false de PIN peste ecranul de plată al momelii, ecrane de autentificare care imită bănci și portofele digitale, suprapuneri false pentru modelul sau PIN-ul de deblocare și control complet de la distanță prin WebRTC.
Noutatea: înlocuirea aplicației. Pentru opt aplicații bancare indoneziene cartografiate, Hirudo:
- folosește accesibilitatea ca să detecteze aplicația bancară deschisă și îi compară certificatul de semnare cu o referință stocată,
- afișează o falsă „actualizare”, deschide dezinstalatorul Android pentru aplicația autentică fără să aștepte confirmarea utilizatorului și descarcă în paralel un APK de înlocuire specific băncii,
- deschide APK-ul descărcat în instalatorul sistemului și trece automat, prin accesibilitate, prin ecranele de instalare și permisiuni.
APK-urile de înlocuire păstrează numele pachetului și versiunea originală, dar sunt semnate cu o cheie de test Android publică. De aceea aplicația autentică trebuie ștearsă mai întâi: Android nu le instalează ca actualizare peste originalul semnat de bancă. În interior, un motor de „hooking” păcălește verificările de autoprotecție ale aplicației. Raportează certificatul de semnare autentic, întoarce o listă goală de servicii de accesibilitate active și elimină FLAG_SECURE, astfel încât ecranele pot fi văzute și înregistrate de la distanță. Certificatele de key attestation sunt resemnate cu un keybox inclus în malware, despre care ThreatFabric spune că este unul scurs public, nu al atacatorilor. Cererile Play Integrity sunt trimise prin HTTP necriptat către un server al atacatorilor, care întoarce un verdict pe care aplicația îl acceptă.
Furtul de credențiale țintește și utilizatori din China, India, Mexic, Maroc și Thailanda, nu doar din Indonezia. Backendul stochează și înregistrări despre dispozitive, istoricul ecranului de blocare și „profiluri financiare” ale victimelor, cu venit lunar și scor de risc. Potrivit cercetătorilor, o mare parte din acest backend a rămas fără autentificare.
De ce contează
Hirudo mută lupta de pe dispozitiv în interiorul aplicației. Multe protecții ale aplicațiilor bancare pornesc de la ideea că, dacă aplicația rulează, verificările ei locale pot fi crezute: pentru modificări, abuz de accesibilitate, capturi de ecran sau atestare. Când atacatorul își poate instala propria versiune, orice semnal venit de pe client poate fi falsificat. Un verdict Play Integrity valid nu dovedește, singur, că aplicația este nemodificată.
În plus, motorul este reutilizabil. ThreatFabric îl descrie ca pe un cadru care poate fi redirecționat ușor spre alte aplicații și regiuni, nu ca pe un patch unic. Indonezia este locul unde a fost observat, nu neapărat singura țintă.
Ce e de făcut
Pentru bănci, fintech-uri și echipe de dezvoltare mobilă
- Verificați pe server, nu în aplicație. Tratați rezultatele trimise de client despre semnătură, accesibilitate, root/hooking și integritate ca fiind influențabile de atacator. Cereți token-uri Play Integrity cu un nonce generat de server, decriptați-le și validați-le în backend și verificați acolo câmpurile de recunoaștere a aplicației și amprenta certificatului.
- Nu vă bazați pe o singură atestare „validă”. Combinați-o cu legarea de dispozitiv, analiza comportamentală și a sesiunii și scorarea riscului tranzacțiilor.
- Urmăriți reinstalările suspecte. Dacă aplicația este dezinstalată și reinstalată brusc pe un dispozitiv cunoscut, cu altă sursă de instalare sau alt semnatar, cereți autentificare suplimentară sau blocați operațiunile cu risc ridicat.
- Întăriți fluxurile de tranzacționare. Cereți confirmare pe alt canal sau bazată pe hardware pentru transferuri mari și pentru schimbarea beneficiarilor sau a dispozitivelor.
- Monitorizați abuzul de brand. Căutați pagini false de Play Store și reclame care vă folosesc numele sau trimit spre APK-uri instalate manual și cereți eliminarea lor.
Pentru organizații și utilizatori
- Instalați aplicații doar din Google Play oficial, niciodată dintr-un link dintr-o reclamă. O pagină de „Play Store” deschisă în browser este un semnal de alarmă.
- Fiți foarte atenți când o aplicație vă cere să instalați o „actualizare” ca aplicație separată sau cere acces la Accesibilitate ori la notificări.
- Dacă aplicația băncii vă cere brusc să o dezinstalați sau să o „actualizați” în afara Google Play, opriți-vă și contactați banca.
- În flotele de dispozitive ale companiei, folosiți MDM ca să blocați sursele de instalare necunoscute și să limitați aplicațiile care pot primi drepturi de accesibilitate.
Credit: cercetare tehnică realizată de ThreatFabric; subiect relatat inițial de The Hacker News. Rezumat și analiză: echipa 4Tify.
