Aveți grijă ce descărcați – Phishing în aplicațiile web progresive, PWA


Specialiștii ESET analizează o nouă metodă de phishing, adaptată special pentru utilizatorii de Android și iOS, via aplicații PWA. Acestea sunt în sine aplicații legitime, ce nu necesită instalare printr-un magazin de aplicații (App Store, Google Play), utilizatorul putând adăuga o aplicație PWA-ul pe ecranul principal direct din browser.

În această postare pe blog, discutăm despre o campanie de phishing mai puțin obișnuită, care vizează utilizatorii de telefonie mobilă și analizăm un caz care a vizat clienții unei cunoscute bănci din Cehia. Tehnica merită să fie adusă în atenție, deoarece instalează o aplicație de phishing de pe un site web terță parte, fără ca utilizatorul să fi permis instalarea unei aplicații terță parte. Pentru utilizatorii de iOS, o astfel de acțiune ar putea pune la îndoială securitatea din oficiu. Pe Android, acest lucru ar putea duce la instalarea ascunsă a unui tip special de APK, care, la o verificare ulterioară, chiar pare să fie instalat din magazinul Google Play.

Site-urile de phishing care vizează iOS le solicită victimelor să adauge o aplicație web progresivă (PWA) pe ecranele lor de pornire (home-screens), în timp ce pe Android, PWA este instalat după confirmarea ferestrelor pop-up personalizate în browser. În acest moment, pe ambele sisteme de operare, aceste aplicații de phishing nu se pot distinge în mare măsură de aplicațiile bancare reale pe care le imită. PWA-urile sunt, în esență, site-uri web împachetate într-o formă care seamănă cu o aplicație autonomă, impresia aceasta fiind amplificată de utilizarea notificărilor native ale sistemului. PWA, la fel ca site-urile web, sunt multiplatforme; dar să explicăm modul în care aceste campanii de phishing PWA pot viza atât utilizatorii iOS, cât și Android.

Tehnica a fost dezvăluită pentru prima dată de CSIRT KNF în Polonia, în iulie 2023, iar, în noiembrie 2023, a fost observată și în Cehia de analiștii ESET care lucrează la serviciul Brand Intelligence. De asemenea, am observat două cazuri de campanii derulate pe mobil împotriva băncilor din afara Cehiei: un caz care vizează Banca OTP din Ungaria și altul care vizează o bancă georgiană.


Idei principale ale acestui articol de blog:

  • Tehnicile standard de phishing au fost combinate cu o nouă metodă; vizează utilizatorii Android și iOS prin intermediul PWA, iar pe Android, și prin WebAPK-uri.
  • Instalarea unei aplicații PWA/ WebAPK nu avertizează victima cu privire la instalarea unei aplicații terță parte.
  • Pe Android, aceste WebAPK-uri de phishing chiar par să fi fost instalate din magazinul Google Play.
  • Majoritatea aplicațiilor observate au vizat clienții băncilor cehe, dar am remarcat și o aplicație de phishing care a avut drept țintă o bancă maghiară și alta care vizează o bancă georgiană.
  • Pe baza serverelor C&C utilizate și a infrastructurii de back-end, am ajuns la concluzia că doi actori diferiți de amenințare operau campaniile.
  • Datorită descoperirii noastre a panourilor operatoare pe diferite domenii, instituțiile financiare vizate au putut fi notificate, pentru a proteja victimele.


Prezentare generală

Analiștii ESET au descoperit mai multe campanii de phishing care vizează utilizatorii de mobil și care au folosit trei mecanisme diferite de livrare a adreselor URL (prezentate în Figura 1). Aceste mecanisme includ apeluri vocale automate, mesaje SMS și malvertising (reclame rău intenționate) în rețelele sociale.

Utilizatorii primesc un apel automat care îi avertizează cu privire la o aplicație bancară învechită și li se cere să selecteze o opțiune de pe tastatura numerică. După apăsarea butonului corect, o adresă URL de phishing este trimisă prin SMS. Acest mecanism a fost raportat într-un tweet, de Michal Bláha.

Campania prin SMS a vizat trimiterea de mesaje aleatorii către numerele de telefon din Cehia. Mesajul trimis includea un link de phishing și un text care păcălea victimele să intre pe link.

Răspândirea prin reclame rău intenționate a fost realizată via reclame pe platformele Meta precum Instagram și Facebook. Aceste reclame au inclus un îndemn către o ofertă limitată pentru utilizatorii care „descarcă actualizarea de mai jos”. Această tehnică le permite actorilor de amenințări să targeteze publicul țintă în funcție de vârstă, sex etc. Reclamele ar apărea apoi în fluxul de social media al victimei.

După deschiderea adresei URL furnizate în prima etapă, victimelor Android li se prezintă o pagină de phishing de înaltă calitate, care imită pagina oficială a magazinului Google Play pentru aplicația bancară vizată sau un site web ce reproduce fidel aplicația. Acestea au fost două campanii distincte. Este posibil ca acea campanie care utilizează vizualul Google Play să se modifice singură pe baza User-Agent-ului primit, pentru a imita imaginile Apple Store. Nu am observat această tehnică în cazurile analizate.

Figura 1. Fluxul de phishing PWA

De aici, victimelor li se cere să instaleze o „nouă versiune” a aplicației bancare; un exemplu în acest sens poate fi văzut în Figura 2. În funcție de campanie, apăsând pe butonul de instalare/ actualizare se lansează instalarea unei aplicații rău intenționate de pe site, direct pe telefonul victimei, fie sub forma unui WebAPK (numai pentru utilizatori Android) sau ca PWA pentru utilizatorii iOS și Android (dacă campania nu este bazată pe WebAPK). Acest pas crucial de instalare ocolește avertismentele tradiționale ale browserului privind „instalarea aplicațiilor necunoscute” – comportamentul implicit al tehnologiei WebAPK pentru Chrome, care este exploatat de atacatori.


Figura 2. Exemplu de pagină-copie de instalare

Procesul este puțin diferit pentru utilizatorii iOS, deoarece o fereastră pop-up animată le solicită victimelor să adauge PWA de phishing pe ecranul lor de start (vezi Figura 3). Fereastra pop-up copiază aspectul solicitărilor originale iOS. În cele din urmă, nici măcar utilizatorii iOS nu sunt avertizați despre adăugarea unei aplicații potențial dăunătoare pe telefonul lor.


Figura 3 Instrucțiuni pop-up iOS după ce faceți clic pe „Instalare” (credit: Michal Bláha)

După instalare, victimelor li se solicită să-și trimită datele de logare la internet banking, pentru a-și accesa contul prin noua aplicație de mobile banking. Toate informațiile transmise ajung la serverele C&C ale atacatorilor.

Cronologie

Am descoperit primul caz de phishing prin intermediul PWA la începutul lunii noiembrie 2023 și am observat tranziția către WebAPK-uri la jumătatea lui noiembrie 2023. Serverele de comandă și control (C&C) care au primit informații de la aplicațiile de phishing au fost descoperite pentru prima dată în martie 2024 (după cum se poate vedea în Figura 4), cu date incluse în ele care confirmă că, probabil, nu au fost operaționale mai devreme.

Figura 4. Cronologia campaniei de phishing PWA și WebAPK

Singura excepție este serverul cryptomaker[.]info, pe care l-am descoperit în mai 2024, dar a inclus activitatea dintr-o campanie împotriva unei bănci georgiane din februarie 2024.

Analiza tehnică

În această secțiune, ne concentrăm pe analiza unei campanii împotriva unei bănci cehe cunoscute, utilizând tehnologia WebAPK. De asemenea, explicăm pe scurt tehnologia de bază a aplicațiilor web progresive (PWA) și a WebAPK-urilor.

Aplicații PWA și WebAPK

PWA-uri

Campania și metoda de phishing discutată în această postare este posibilă doar datorită tehnologiei aplicațiilor web progresive (PWA). Pe scurt, PWA-urile sunt aplicații construite folosind tehnologii tradiționale de aplicații web, care pot rula pe mai multe platforme și dispozitive. Aceste aplicații sunt apoi instalate pe telefonul mobil al utilizatorului, după ce se afișează automat o solicitare pop-up de instalare sau utilizatorul selectează manual opțiunea „ Instalare aplicație” din meniul unui browser compatibil. Pasul crucial aici este instalarea, care permite utilizarea fără întreruperi a aplicațiilor într-o fereastră, putând fi lansate din bara de meniu sau din ecranul de pornire. După instalare, PWA-urile de pe ecranul de start se disting prin suprapunerea logo-ului browserului pe care utilizatorul îl folosește peste pictograma PWA (Figura 5).


Figura 5. PWA de phishing instalat (stânga) și aplicație bancară reală (dreapta)

PWA-urile au, de asemenea, avantajul unui singur codebase pe mai multe platforme, care acum pot folosi și API-uri moderne de browser și chiar cod original, datorită WebAssembly. Aplicațiile web progresive pot fi utilizate și offline, datorită service workers (vezi Figura 6). Acestea acționează ca un fel de sistem proxy, preluând date din memoria cache locală, dacă nu este disponibilă nicio conexiune la internet.

Figura 6. Diagrama simplificată a modului în care funcționează PWA

Întregul comportament al aplicației este definit într-un singur fișier numit „manifest”. Acesta este un fișier standardizat care definește sigla, numele, domeniul de aplicare al aplicației web, sursele și scriptul service worker al aplicației, precum și tipul de lansare. Aici, actorul amenințării poate defini aplicația ca fiind autonomă, ceea ce face ca PWA să se comporte ca o aplicație obișnuită de mobil.

PWA-urile pot fi, de asemenea, atribuite ca handlere implicite pentru anumite formate de fișiere, dar numai ca o caracteristică experimentală, care nu este acceptată de browserele de mobil. Ceea ce ar putea conduce la amenințări care scriu aplicații rău intenționate ce se înregistrează ca handler implicit pentru, de exemplu, toate documentele .docx și, astfel, ar putea fi creată o aplicație de spionaj simplă, dar foarte eficientă. Chiar și fără această funcție însă, accesul la API-urile browserului oferă PWA dreptul de a solicita acces la microfon, geolocalizare, cameră și toate celelalte funcții de browser compatibile, ceea ce înseamnă că PWA-urile spyware ar putea fi pe radar.

WebAPK-uri

WebAPK-urile ar putea fi considerate o versiune actualizată a aplicațiilor web progresive, deoarece browserul Chrome generează o aplicație Android nativă dintr-un PWA: cu alte cuvinte, un APK. Aceste WebAPK-uri arată ca aplicații originale, deoarece pictogramelor lor nu au sigla browserului (vezi Figura 7). În schema de phishing PWA/ WebAPK, tehnica este folosită pentru a păcăli utilizatorii să creadă că aplicația de phishing instalată este aplicația lor bancară legitimă. Generarea de WebAPK-uri este în prezent acceptată numai de Google Chrome.


Figura 7. Comparație între un WebAPK de phishing instalat (stânga) și o aplicație bancară reală (dreapta)

Mai mult, instalarea unui WebAPK nu produce niciunul dintre avertismentele „instalare dintr-o sursă care nu prezintă încredere”, cum ar fi exemplul văzut în Figura 8, pe care utilizatorii tind să le verifice de obicei. Aplicația va fi instalată chiar dacă instalarea din surse terțe nu este permisă.


Figura 8. Browser care avertizează utilizatorii cu privire
la instalarea dintr-o sursă care nu prezintă încredere:
Nu este afișat pentru WebAPK-uri

Fluxul de phishing

După cum am menționat în prezentarea noastră generală a campaniilor monitorizate, au fost utilizate mai multe mecanisme de livrare. În cazul campaniei de phishing împotriva cunoscutei bănci cehe, întregul flux a început cu o legătură de phishing răspândită prin mai multe reclame rău intenționate pe Facebook (vezi Figura 9). Aceste reclame au fost înregistrate în masă, adesea câte cinci sau șase odată, fiecare înregistrare având loc la un moment distinct. Actorul amenințării a folosit conturi Meta special create și, posibil, conturi compromise.

Reclamele rău intenționate au inclus o combinație din imaginea oficială a băncii (cameleonul albastru), precum și siglele și textul băncii, care fie promiteau o recompensă financiară la instalarea aplicației, fie avertizau utilizatorii că a fost lansată o actualizare necesară.


Figura 9. Exemplu de reclamă rău intenționată utilizată în aceste campanii

În cazul exemplificat, a fost utilizată o ofertă de recompensă financiară disponibilă pe termen limitat pentru a atrage victimele să viziteze link-ul malițios. După vizitarea link-ului, utilizatorilor li s-a prezentat o pagină Google Play convingătoare, deși falsă (figura 10). Acesta este site-ul de pe care este descărcat WebAPK-ul de phishing.


Figura 10. Landing page de phishing care imită Google Play

Site-ul verifică utilizarea de către un client de mobil prin intermediul antetului HTTP User-Agent. Dacă victima se află într-adevăr pe un dispozitiv mobil, butonul „Install” solicită instalarea prin intermediul unei ferestre pop-up. Dacă antetul User-Agent este pentru desktop, butonul de instalare nu face nimic. De asemenea, invitația imită animațiile Google Play, sporind și mai mult credibilitatea acestei campanii (figura 11).

Figura 11. Solicitare de instalare (stânga) și solicitare de instalare animată pe pagina de phishing (dreapta)

Campania analizată vizează în mod clar utilizatorii Android, datorită imaginii și animațiilor Google Play. Alte campanii (pe care le-am observat și care au fost raportate public) au vizat atât utilizatorii sistemelor iOS (Figura 12), cât și Android. Aceste site-uri au folosit imaginea unei aplicații binecunoscute în landing page și au determinat victimele să instaleze o nouă versiune. Utilizatorii Android au fost direcționați să instaleze un WebAPK, iar utilizatorii iOS către PWA.

Figura 12. Exemplu de instalare pe iOS (credit: Michal Bláha)

După instalare, PWA/ WebAPK de phishing este adăugat la ecranul de pornire al utilizatorului, iar accesarea sa duce la o pagină de conectare din phishing, direct în aplicație (Figura 13).


Figura 13. Pictograma WebAPK (stânga) și pagina de conectare din phishing în aplicație (dreapta)

Pe lângă capcanele menționate anterior pentru utilizatorii obișnuiți, fila de informații (info tab) a aplicației mai preciza și că aplicația a fost descărcată din magazinul Google Play, care este comportamentul implicit (Figura 14). Acest lucru se aplică tuturor aplicațiilor WebAPK.


Figura 14. Info menu WebAPK – observați secțiunea „Detalii aplicație” din partea de jos

Aplicația de phishing și adresa URL de phishing detaliate în această postare au fost raportate direct băncii ČSOB. Aplicațiile de phishing nu au fost niciodată disponibile în magazinul Google Play.

Infrastructura C&C

Plecând de la faptul că aceste campanii au folosit două infrastructuri C&C distincte, am stabilit că două grupuri separate operau campaniile de phishing PWA/ WebAPK împotriva băncilor cehe și a altor bănci.

Un grup a folosit un bot Telegram pentru a înregistra toate informațiile într-un chat de grup Telegram prin intermediul API-ului oficial Telegram, iar altul a folosit un server C&C tradițional, cu un panou administrativ. Al doilea grup este responsabil pentru campania descrisă în postarea noastră pe blog despre malware-ul NGate Android.

Boți Telegram

Toate informațiile de conectare furate au fost înregistrate prin intermediul unui server backend, care apoi a trimis datele de conectare bancară introduse de utilizator într-un chat de grup Telegram. Apelurile HTTP folosite pentru a trimite mesaje către grupul de chat al actorilor amenințării au fost efectuate prin intermediul API-ului oficial Telegram. Aceasta nu este o tehnică nouă și este folosită în diferite kituri de phishing.

După încărcarea paginii de phishing a PWA, în partea de sus a ecranului este afișat un stack trace (a se vedea figura 15). Acest stack trace include informații despre API Telegram și tokenul bot utilizat și era vizibil chiar și pe ecranul de autentificare.

Figura 15. Ecranul de conectare „scurge” informații Telegram

Pe baza acestui fapt, am identificat că actorul amenințării a înregistrat toate datele într-un chat de grup Telegram. Am raportat băncilor relevante toate informațiile sensibile ale clienților compromiși.

Servere C&C

În timpul analizei unuia dintre PWA-urile instalate, am observat că datele introduse ale victimei au fost trimise la un alt server backend. La inspectarea serverului C&C contactat, am descoperit un panou operator (Figura 16) care includea informații sensibile ale victimelor, adrese URL de phishing active în prezent și un istoric complet al victimelor vizitate.

Figura 16. Panoul administrativ C&C

Actorii amenințărilor nu au stat pe loc, iar după dezactivarea primului domeniu C&C (hide-me[.]online) au continuat să creeze mai multe domenii și chiar au pregătit o campanie malițioasă complet nouă, operată din același panou. A doua campanie este analizată în cercetarea noastră privind malware-ul NGate Android.

Datorită informațiilor recuperate de la panou, am putut contacta băncile afectate și proteja clienții afectați.

Concluzie

Am identificat o metodă nouă de phishing, ce combină metode eficiente de inginerie socială împreună cu tehnologia multiplatformă a aplicațiilor PWA. De asemenea, au fost găsite cazuri care vizează utilizatorii Android, aceștia fiind abordați în special prin copii ale paginii de magazin Google Play a aplicației vizate, folosind tehnologia WebAPK.

Cele mai multe dintre cazurile cunoscute au fost identificate în Cehia, doar două aplicații de phishing apar în afara acestei regiuni (în Ungaria și Georgia).

Deoarece au fost utilizate două infrastructuri C&C substanțial diferite, am stabilit că două grupuri diferite sunt responsabile pentru răspândirea aplicațiilor de phishing.

Ne așteptăm să fie create și distribuite mai multe aplicații copycat, deoarece, după instalare, este dificil să fie separate aplicațiile legitime de cele de phishing.

Toate informațiile sensibile găsite în timpul cercetării noastre au fost trimise cu promptitudine băncilor afectate pentru procesare. Am negociat, de asemenea, eliminarea mai multor domenii de phishing și servere C&C.

ESET Research August 27, 2024

Lasa un comentariu