StrongPity-spionagekampagne rettet mod Android-brugere

StrongPity-spionagekampagne rettet mod Android-brugere

ESET-forskere identificerede en aktiv StrongPity-kampagne, der distribuerede en trojaniseret version af Android Telegram-appen, præsenteret som Shagle-appen - en videochattjeneste, der ikke har nogen appversion

ESET-forskere identificerede en aktiv kampagne, som vi har tilskrevet StrongPity APT-gruppen. Kampagnen har været aktiv siden november 2021 og har distribueret en ondsindet app gennem et websted, der efterligner Shagle – en tilfældig videochat-tjeneste, der leverer krypteret kommunikation mellem fremmede. I modsætning til det helt webbaserede, ægte Shagle-websted, der ikke tilbyder en officiel mobilapp for at få adgang til sine tjenester, giver copycat-siden kun en Android-app til download, og ingen webbaseret streaming er mulig.

De vigtigste punkter i blogindlægget:

  • Kun én anden Android-kampagne er tidligere blevet tilskrevet StrongPity.
  • Det er første gang, at de beskrevne moduler og deres funktionalitet er blevet dokumenteret offentligt.
  • Et copycat-websted, der efterligner Shagle-tjenesten, bruges til at distribuere StrongPitys mobile bagdørsapp.
  • Appen er en modificeret version af open source Telegram-appen, ompakket med StrongPity-bagdørskode.
  • Baseret på ligheder med tidligere StrongPity-bagdørskode og appen, der er signeret med et certifikat fra en tidligere StrongPity-kampagne, tilskriver vi denne trussel til StrongPity APT-gruppen.
  • StrongPitys bagdør er modulopbygget, hvor alle nødvendige binære moduler krypteres ved hjælp af AES og downloades fra sin C&C-server og har forskellige spionagefunktioner.

Den ondsindede app er i virkeligheden en fuldt funktionel, men trojaniseret version af den legitime Telegram-app, dog præsenteret som den ikke-eksisterende Shagle-app. Vi vil referere til det som den falske Shagle-app, den trojaniserede Telegram-app eller StrongPity-bagdøren i resten af ​​dette blogindlæg. ESET-produkter registrerer denne trussel som Android/StrongPity.A.

Denne StrongPity-bagdør har forskellige spionagefunktioner: dens 11 dynamisk udløste moduler er ansvarlige for optagelse af telefonopkald, indsamling af SMS-beskeder, lister over opkaldslogger, kontaktlister og meget mere. Disse moduler bliver dokumenteret for allerførste gang. Hvis offeret giver den ondsindede StrongPity-app tilgængelighedstjenester, vil et af dets moduler også have adgang til indgående notifikationer og vil være i stand til at eksfiltrere kommunikation fra 17 apps såsom Viber, Skype, Gmail, Messenger samt Tinder.

Kampagnen er sandsynligvis meget snævert målrettet, da ESET-telemetri stadig ikke identificerer nogen ofre. Under vores forskning var den analyserede version af malware, der var tilgængelig fra copycat-webstedet, ikke længere aktiv, og det var ikke længere muligt at installere den og udløse dens bagdørsfunktionalitet, fordi StrongPity ikke har fået sit eget API ID til sin trojaniserede Telegram-app. Men det kan ændre sig til enhver tid, hvis trusselsaktøren beslutter sig for at opdatere den ondsindede app.

Oversigt

Denne StrongPity-kampagne er centreret omkring en Android-bagdør leveret fra et domæne, der indeholder ordet "hollandsk". Denne hjemmeside efterligner den legitime tjeneste ved navn Shagle på shagle.com. I figur 1 kan du se startsiderne på begge hjemmesider. Den ondsindede app leveres direkte fra webstedet, der efterligner sig, og er aldrig blevet gjort tilgængeligt fra Google Play Butik. Det er en trojaniseret version af den legitime Telegram-app, præsenteret som om det var Shagle-appen, selvom der i øjeblikket ikke er nogen officiel Shagle Android-app.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 1. Sammenligning af den legitime hjemmeside til venstre og copycat til højre

Som du kan se i figur 2, indeholder HTML-koden på det falske websted bevis på, at det blev kopieret fra det legitime shagle.com hjemmeside den 1. novemberst, 2021, ved hjælp af det automatiserede værktøj HTTrack. Det ondsindede domæne blev registreret samme dag, så copycat-siden og den falske Shagle-app kan have været tilgængelig til download siden den dato.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 2. Logs genereret af HTTrack-værktøjet registreret i den falske hjemmesides HTML-kode

viktimologi

På juli 18th, 2022, blev en af ​​vores YARA-regler hos VirusTotal udløst, da en ondsindet app og et link til et websted, der efterligner shagle.com blev uploadet. Samtidig fik vi besked på Twitter om den prøve, selvom det var fejlagtigt tilskrives Bahamut. ESET-telemetridata identificerer stadig ikke nogen ofre, hvilket tyder på, at kampagnen sandsynligvis har været snævert målrettet.

Attribution

APK'en distribueret af copycat Shagle-webstedet er underskrevet med det samme kodesigneringscertifikat (se figur 3) som en trojaniseret syrisk e-gov-app opdaget i 2021 af Trend Micro, som også blev tilskrevet StrongPity.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 3. Dette certifikat signerede den falske Shagle-app og den trojanske syriske e-gov-app

Ondsindet kode i den falske Shagle-app blev set i den tidligere mobilkampagne af StrongPity og implementerer en enkel, men funktionel bagdør. Vi har set denne kode kun blive brugt i kampagner udført af StrongPity. I figur 4 kan du se nogle af de tilføjede ondsindede klasser, hvor mange af de slørede navne endda er de samme i koden fra begge kampagner.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 4. Klassenavnssammenligning af den trojanske syriske e-gov-app (til venstre) og den trojanske Telegram-app (til højre)

Sammenligning af bagdørskoden fra denne kampagne med den fra den trojanske syriske e-gov-app (SHA-1: 5A5910C2C9180382FCF7A939E9909044F0E8918B), den har udvidet funktionalitet, men med den samme kode, der bruges til at levere lignende funktioner. I figur 5 og figur 6 kan du sammenligne koden fra begge prøver, der er ansvarlig for at sende beskeder mellem komponenter. Disse meddelelser er ansvarlige for at udløse bagdørens ondsindede adfærd. Derfor tror vi stærkt på, at den falske Shagle-app er knyttet til StrongPity-gruppen.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 5. Beskedafsender ansvarlig for at udløse ondsindet funktionalitet i den trojanske syriske e-gov-app

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 6. Beskedafsender ansvarlig for at udløse ondsindet funktionalitet i den falske Shagle-app

Teknisk analyse

Indledende adgang

Som beskrevet i afsnittet Oversigt i dette blogindlæg, er den falske Shagle-app blevet hostet på Shagle copycat-webstedet, hvorfra ofrene skulle vælge at downloade og installere appen. Der var intet udspil, der tydede på, at appen var tilgængelig fra Google Play, og vi ved ikke, hvordan potentielle ofre blev lokket til eller på anden måde opdaget det falske websted.

Værktøjssæt

Ifølge beskrivelsen på copycat-hjemmesiden er appen gratis og beregnet til at blive brugt til at møde og chatte med nye mennesker. Den downloadede app er dog en ondsindet patchet Telegram-app, specifikt Telegram version 7.5.0 (22467), som var tilgængelig til download omkring den 25. februarth, 2022.

Den ompakkede version af Telegram bruger det samme pakkenavn som den legitime Telegram-app. Pakkenavne formodes at være unikke id'er for hver Android-app og skal være unikke på enhver given enhed. Dette betyder, at hvis den officielle Telegram-app allerede er installeret på et potentielt offers enhed, så kan denne bagdørsversion ikke installeres; se figur 7. Dette kan betyde en af ​​to ting – enten kommunikerer trusselsaktøren først med potentielle ofre og presser dem til at afinstallere Telegram fra deres enheder, hvis det er installeret, eller kampagnen fokuserer på lande, hvor brug af Telegram er sjældent til kommunikation.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 7. Hvis den officielle Telegram-app allerede er installeret på enheden, kan den trojanske version ikke installeres.

StrongPitys trojaniserede Telegram-app skulle have fungeret ligesom den officielle version gør til kommunikation, ved at bruge standard-API'er, der er veldokumenterede på Telegram-webstedet – men appen virker ikke længere, så vi kan ikke tjekke.

Under vores research var den aktuelle version af malware tilgængelig fra copycat-webstedet ikke længere aktiv, og det var ikke længere muligt at installere den og udløse dens bagdørsfunktionalitet. Da vi forsøgte at tilmelde os ved hjælp af vores telefonnummer, kunne den ompakkede Telegram-app ikke hente API-id'et fra serveren og fungerede derfor ikke korrekt. Som det ses i figur 8, viste appen en API_ID_PUBLISHED_FLOOD fejl.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 8. Fejl vist under tilmelding ved brug af telefonnummer

Baseret på Telegrams fejldokumentation, ser det ud til, at StrongPity ikke har fået sit eget API ID. I stedet har den brugt prøve-API-id'et inkluderet i Telegrams open source-kode til indledende testformål. Telegram overvåger brugen af ​​API-id og begrænser prøve-API-id'et, så brugen af ​​det i en frigivet app resulterer i fejlen i figur 8. På grund af fejlen er det ikke længere muligt at tilmelde sig og bruge appen eller udløse dens skadelige funktionalitet . Dette kan betyde, at StrongPity-operatører ikke tænkte over dette, eller måske var der nok tid til at spionere på ofre mellem udgivelsen af ​​appen, og den blev deaktiveret af Telegram for overforbrug af APP-ID. Da ingen ny og fungerende version af appen nogensinde blev gjort tilgængelig via webstedet, kan det tyde på, at StrongPity med succes implementerede malwaren til de ønskede mål.

Som et resultat var den falske Shagle-app, der var tilgængelig på den falske hjemmeside på tidspunktet for vores undersøgelse, ikke længere aktiv. Dette kan dog ændre sig når som helst, hvis trusselsaktørerne beslutter sig for at opdatere den ondsindede app.

Komponenter af og tilladelser krævet af StrongPity-bagdørskoden er tilføjet til Telegram-appens AndroidManifest.xml fil. Som det kan ses i figur 9, gør dette det nemt at se, hvilke tilladelser der er nødvendige for malwaren.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 9. AndroidManifest.xml med komponenter og tilladelser til StrongPity-bagdøren fremhævet

Fra Android-manifestet kan vi se, at ondsindede klasser blev tilføjet i org.telegram.messenger pakke til at blive vist som en del af den originale app.

Den oprindelige ondsindede funktionalitet udløses af en af ​​tre broadcast-modtagere, der udføres efter definerede handlinger – BOOT_COMPLETED, LAVT BATTERI eller USER_PRESENT. Efter den første start registrerer den dynamisk yderligere broadcast-modtagere, der skal overvåges SCREEN_ON, SCREEN_OFFog CONNECTIVITY_CHANGE begivenheder. Den falske Shagle-app bruger derefter IPC (interprocess communication) til at kommunikere mellem dens komponenter for at udløse forskellige handlinger. Den kontakter C&C-serveren ved hjælp af HTTPS for at sende grundlæggende oplysninger om den kompromitterede enhed og modtager en AES-krypteret fil, der indeholder 11 binære moduler, som vil blive dynamisk eksekveret af den overordnede app; se figur 10. Som det ses på figur 11, er disse moduler gemt i appens interne lager, /data/user/0/org.telegram.messenger/files/.li/.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 10. StrongPity bagdør modtager en krypteret fil, der indeholder eksekverbare moduler

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 11. Moduler modtaget fra serveren gemt i StrongPity-bagdørens interne lager

Hvert modul er ansvarlig for forskellig funktionalitet. Listen over modulnavne er gemt i lokale delte præferencer i sharedconfig.xml fil; se figur 12.

Moduler udløses dynamisk af den overordnede app, når det er nødvendigt. Hvert modul har sit eget modulnavn og er ansvarlig for forskellige funktioner såsom:

  • libarm.jar (cm-modul) – optager telefonopkald
  • libmpeg4.jar (nt-modul) – indsamler tekst af indgående meddelelser fra 17 apps
  • local.jar (fm/fp-modul) – samler filliste (filtræ) på enheden
  • telefon.jar (ms-modul) – misbruger tilgængelighedstjenester til at spionere på beskedapps ved at eksfiltrere kontaktnavn, chatbesked og dato
  • ressourcer.jar (sm-modul) – indsamler SMS-beskeder gemt på enheden
  • services.jar (lo modul) – opnår enhedsplacering
  • systemui.jar (sy-modul) – indsamler enheds- og systemoplysninger
  • timer.jar (ia-modul) – samler en liste over installerede apps
  • toolkit.jar (cn-modul) – samler kontaktliste
  • watchkit.jar (ac-modul) – samler en liste over enhedskonti
  • wearkit.jar (cl-modul) – samler en liste over opkaldslogger
StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 12. Liste over moduler, der bruges af StrongPity-bagdøren

Alle indhentede data gemmes i clear in /data/user/0/org.telegram.messenger/databases/outdata, før den krypteres med AES og sendes til C&C-serveren, som du kan se i figur 13.

StrongPity espionage campaign targeting Android users PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Figur 13. Krypterede brugerdata eksfiltreret til C&C-serveren

Denne StrongPity-bagdør har udvidede spionagefunktioner sammenlignet med den første StrongPity-version, der blev opdaget til mobil. Den kan anmode offeret om at aktivere tilgængelighedstjenester og få meddelelsesadgang; se figur 14. Hvis offeret aktiverer dem, vil malwaren spionere på indgående meddelelser og misbruger tilgængelighedstjenester til at udelade chatkommunikation fra andre apps.

Figur 14. Malware anmoder offeret om adgang til meddelelser og tilgængelighedstjenester

Med meddelelsesadgang kan malware læse modtagne meddelelser, der kommer fra 17 målrettede apps. Her er en liste over deres pakkenavne:

  • Budbringer (com.facebook.orca)
  • messenger lite (com.facebook.mlite)
  • Viber – Sikre chats og opkald (com.viber.voip)
  • Skype (com.skype.raider)
  • LINE: Opkald og beskeder (jp.naver.line.android)
  • Kik — Messaging & Chat App (kik.android)
  • tango-live stream og videochat (com.sgiggle.production)
  • Hangouts (com.google.android.talk)
  • telegram (org.telegram.messenger)
  • WeChat (com.tencent.mm)
  • Snapchat (com.snapchat.android)
  • Tinder (com.tinder)
  • Vandretur nyheder og indhold (com.bsb.hike)
  • instagram (com.instagram.android)
  • Twitter (com.twitter.android)
  • Gmail (com.google.android.gm)
  • imo-internationale opkald og chat (com.imo.android.imoim)

Hvis enheden allerede er rootet, forsøger malwaren stille at give tilladelser til WRITE_SETTINGS, WRITE_SECURE_SETTINGS, REBOOT, MOUNT_FORMAT_FILESYSTEMS, MODIFY_PHONE_STATE, PACKAGE_USAGE_STATS, READ_PRIVILEGED_PHONE_STATE, for at aktivere tilgængelighedstjenester og give meddelelsesadgang. StrongPity-bagdøren forsøger derefter at deaktivere SecurityLogAgent-appen (com.samsung.android.securitylogagent), som er en officiel system-app, der hjælper med at beskytte sikkerheden på Samsung-enheder og deaktiverer alle app-meddelelser, der kommer fra selve malwaren, som kan blive vist for ofret i fremtiden i tilfælde af appfejl, nedbrud eller advarsler. StrongPity-bagdøren forsøger ikke selv at roote en enhed.

AES-algoritmen bruger CBC-tilstand og hårdkodede nøgler til at dekryptere de downloadede moduler:

  • AES nøgle – aaaannogetumuligtbbb
  • AES IV – aaaanothingimpos

Konklusion

Mobilkampagnen, der drives af StrongPity APT-gruppen, efterlignede en legitim tjeneste til at distribuere sin Android-bagdør. StrongPity ompakkede den officielle Telegram-app til at inkludere en variant af gruppens bagdørskode.

Den ondsindede kode, dens funktionalitet, klassenavne og certifikatet, der blev brugt til at signere APK-filen, er de samme som fra den forrige kampagne; derfor tror vi med stor tillid til, at denne operation tilhører StrongPity-gruppen.

På tidspunktet for vores undersøgelse var prøven, der var tilgængelig på copycat-webstedet, deaktiveret på grund af API_ID_PUBLISHED_FLOOD fejl, hvilket resulterer i, at ondsindet kode ikke udløses, og at potentielle ofre muligvis fjerner den ikke-fungerende app fra deres enheder.

Kodeanalyse afslører, at bagdøren er modulær, og yderligere binære moduler downloades fra C&C-serveren. Det betyder, at antallet og typen af ​​anvendte moduler til enhver tid kan ændres, så de passer til kampagneanmodningerne, når de drives af StrongPity-gruppen.

Baseret på vores analyse ser dette ud til at være den anden version af StrongPitys Android-malware; sammenlignet med dens første version misbruger den også tilgængelighedstjenester og meddelelsesadgang, gemmer indsamlede data i en lokal database, forsøger at udføre su kommandoer, og for det meste af dataindsamlingen bruger downloadede moduler.

IoC'er

Filer

SHA-1 Filnavn ESET-detekteringsnavn Beskrivelse
50F79C7DFABECF04522AEB2AC987A800AB5EC6D7 video.apk Android/StrongPity.A StrongPity-bagdør (legitim Android Telegram-app ompakket med ondsindet kode).
77D6FE30DAC41E1C90BDFAE3F1CFE7091513FB91 libarm.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for optagelse af telefonopkald.
5A15F516D5C58B23E19D6A39325B4B5C5590BDE0 libmpeg4.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for indsamling af tekst fra modtagne notifikationer.
D44818C061269930E50868445A3418A0780903FE local.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at samle en filliste på enheden.
F1A14070D5D50D5A9952F9A0B4F7CA7FED2199EE telefon.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for misbrug af tilgængelighedstjenester til at spionere på andre apps.
3BFAD08B9AC63AF5ECF9AA59265ED24D0C76D91E ressourcer.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at indsamle SMS-beskeder gemt på enheden.
5127E75A8FAF1A92D5BD0029AF21548AFA06C1B7 services.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at opnå enhedens placering.
BD40DF3AD0CE0E91ACCA9488A2FE5FEEFE6648A0 systemui.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for indsamling af enheds- og systemoplysninger.
ED02E16F0D57E4AD2D58F95E88356C17D6396658 timer.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at indsamle en liste over installerede apps.
F754874A76E3B75A5A5C7FE849DDAE318946973B toolkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at samle kontaktlisten.
E46B76CADBD7261FE750DBB9B0A82F262AFEB298 watchkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at indsamle en liste over enhedskonti.
D9A71B13D3061BE12EE4905647DDC2F1189F00DE wearkit.jar Android/StrongPity.A StrongPity mobilmodul ansvarlig for at indsamle en liste over opkaldslogger.

Netværk

IP Provider Først set Detaljer
141.255.161[.]185 NameCheap 2022-07-28 intagrefedcircuitchip[.]com C&C
185.12.46[.]138 Svinekød 2020-04-21 netværkssoftwaresegment[.]com C&C

MITRE ATT&CK teknikker

Dette bord er bygget vha udgave 12 af MITER ATT&CK-rammerne.

Taktik ID Navn Beskrivelse
Vedholdenhed T1398 Start- eller logoninitialiseringsscripts StrongPity-bagdøren modtager BOOT_COMPLETED broadcast hensigt at aktivere ved opstart af enheden.
T1624.001 Hændelsesudløst udførelse: Broadcast-modtagere StrongPity-bagdørsfunktionaliteten udløses, hvis en af ​​disse hændelser opstår: LAVT BATTERI, USER_PRESENT, SCREEN_ON, SCREEN_OFF eller CONNECTIVITY_CHANGE.
Forsvarsunddragelse T1407 Download ny kode ved Runtime StrongPity-bagdøren kan downloade og udføre yderligere binære moduler.
T1406 Uklare filer eller oplysninger StrongPity-bagdøren bruger AES-kryptering til at sløre downloadede moduler og skjule strenge i sin APK.
T1628.002 Skjul artefakter: Brugerunddragelse StrongPity-bagdøren kan deaktivere alle app-meddelelser, der kommer fra selve malwaren for at skjule dens tilstedeværelse.
T1629.003 Forringelse af forsvar: Deaktiver eller rediger værktøjer Hvis StrongPity-bagdøren har root, deaktiverer den SecurityLogAgent (com.samsung.android.securitylogagent) hvis til stede.
Discovery T1420 Opdagelse af filer og mapper StrongPity-bagdøren kan vise tilgængelige filer på eksternt lager.
T1418 Softwareopdagelse StrongPity-bagdøren kan få en liste over installerede applikationer.
T1422 Opdagelse af systemnetværkskonfiguration StrongPity-bagdøren kan udtrække IMEI, IMSI, IP-adresse, telefonnummer og land.
T1426 Opdagelse af systemoplysninger StrongPity-bagdøren kan udtrække information om enheden, herunder type internetforbindelse, SIM-serienummer, enheds-id og almindelige systemoplysninger.
Samling T1417.001 Input Capture: Keylogging StrongPity-bagdøren logger tastetryk i chatbeskeder og opkaldsdata fra målrettede apps.
T1517 Få adgang til meddelelser StrongPity-bagdøren kan indsamle meddelelser fra 17 målrettede apps.
T1532 Arkiver indsamlede data StrongPity-bagdøren krypterer eksfiltrerede data ved hjælp af AES.
T1430 Lokalsporing StrongPity-bagdøren sporer enhedens placering.
T1429 Audio Capture StrongPity-bagdøren kan optage telefonopkald.
T1513 Screen Capture StrongPity-bagdøren kan optage enhedens skærm ved hjælp af MediaProjectionManager API.
T1636.002 Beskyttede brugerdata: Opkaldslogger StrongPity-bagdøren kan udtrække opkaldslogger.
T1636.003 Beskyttede brugerdata: Kontaktliste StrongPity-bagdøren kan udtrække enhedens kontaktliste.
T1636.004 Beskyttede brugerdata: SMS-beskeder StrongPity-bagdøren kan udtrække SMS-beskeder.
Kommando og kontrol T1437.001 Application Layer Protocol: Webprotokoller StrongPity-bagdøren bruger HTTPS til at kommunikere med sin C&C-server.
T1521.001 Krypteret kanal: Symmetrisk kryptografi StrongPity-bagdøren bruger AES til at kryptere sin kommunikation.
Eksfiltrering T1646 Eksfiltrering over C2-kanal StrongPity-bagdøren eksfiltrerer data ved hjælp af HTTPS.

Tidsstempel:

Mere fra Vi lever sikkerhed