A telefon már a bekapcsolás előtt fertőzött volt: a Midnight Mimosa kampány
Olcsó, több márkanéven forgalmazott Android-telefonokon egy kártevő fut, amely már a gyártás során bekerül a telefon alapszoftverébe. Rendszerszintű jogosultságokkal rendelkezik, eltávolítani nem lehet, és fő bevétele a reklámcsalás és a kattintáscsalás. Több ezer eszköz érintett, több mint 150 országban.
Az első bekapcsolás előtt már ott van
Rendszerpartíción, rendszer-UID-val fut
Több ezer eszköz, körülbelül két év alatt
Mi történt, és miért nem a felhasználón múlik?
A legtöbb mobilvédelem három feltevésre épül: a felhasználó dönt arról, mit telepít, az áruházi ellenőrzés kiszűri a gyanús alkalmazásokat, és ha baj van, az alkalmazás eltávolítható. A Midnight Mimosa mindhárom pontot kikerüli.
A kártevő nem a felhasználó által telepített alkalmazásként érkezik, hanem a telefon alapszoftverének (firmware) részeként. Rendszerszintű jogosultsággal fut, a felhasználó nem látja, és nem lehet törölni. A kutatók szerint a készülék a bekapcsolás pillanatában már fertőzött, a támadónak tehát nincs szüksége a felhasználó közreműködésére.
Röviden
- Olcsó, több márkanéven forgalmazott, MediaTek-chipes Android-telefonokon olyan kártevő fut, amely a gyártás során bekerül a telefon alapszoftverébe.
- Rendszerszintű jogosultságokkal rendelkezik, eltávolítani nem lehet, és az első bekapcsoláskor már aktív.
- Fő bevétele reklámcsalás és kattintáscsalás. A fertőzött készülékek emellett lakossági proxy-hálózat részeivé válhatnak.
- Több ezer eszköz érintett, több mint 150 országban, körülbelül két év alatt.
Miből keresnek a támadók?
A kampány elsősorban pénzt akar termelni, két fő bevételi forrással:
Reklámcsalás
A készülék hamis hirdetésmegtekintéseket és kattintásokat generál. A reklámhálózatok ezeket a takaró-alkalmazások (például időjárás-, appzár-, jegyzet- vagy szövegfelismerő programok) reklámazonosítóihoz rendelik, és kifizetik.
Lakossági proxy (proxyware)
A telefon távolról vezérelhető átjáróvá válik, amelyen keresztül más bűnözők forgalmat továbbíthatnak. Az ilyen hálózatok botnetekké is szerveződhetnek, amelyeket többek között DDoS-támadásokhoz használnak.
A bevételi lánc: a gyári telefon csak a kiindulópont
A bevétel nem a telefonon, hanem a reklámhálózatoknál keletkezik. A gyári rendszerkomponens csak a hátteret biztosítja.
Miért fontos ez egy szervezetnek?
A kockázat nem csak magánfelhasználókat érint:
Eszközbeszerzés
Ha a cég vagy a dolgozók olcsó, ismeretlen márkájú telefonokat vesznek munkára, a kártevő már a gyártásnál bekerül. A beszerzési döntés a legkorábbi kockázati pont.
Hálózati kockázat
A fertőzött készülék proxy-csomópontként működhet a céges Wi-Fi-n belül is. Az elemzés szerint a proxy-csatorna a helyi hálózati célok felé is nyitott lehet.
Adatvédelem
A kártevő információt gyűjt az eszközről és a telepített alkalmazásokról. Ha ez munkavállalói adat, GDPR-szempontból is kezelendő eseményről van szó.
Az áruházi ellenőrzés sem garancia
A Google Play-en is találtak 13 olyan alkalmazást, amely ugyanazt a csalási kódot tartalmazza.
Reputáció és jogi kockázat
Ha egy céges eszközről botnet-forgalom indul, a partnerek és a hatóságok is kérdezni fognak.
Hol és mekkora léptékben?
A kutatók több ezer eszközt és több mint 150 országot azonosítottak, körülbelül két éves időszakban. A legtöbb észlelés Mexikóban (13%), Franciaországban (12,5%) és Olaszországban (10%) történt, ezt az Egyesült Államok (8,4%), Németország (7,3%), Brazília (7%) és Spanyolország (6,7%) követi. Az összes többi ország együtt 24,2%-ot tesz ki. Nincs egyetlen domináns piac: a súly két térségben (Nyugat-Európában és Amerikában) koncentrálódik, a hosszú farok pedig szétszóródik a világ többi részén. Ez inkább nemzetközi online piactereken át forgalmazott hardverre jellemző, mint helyi kiskereskedelmi láncra.
A készülékek egy része hamisított márkanevet visel: például „S25 Ultra” vagy „i17 Pro Max” feliratút, amelyet a gyártó valójában nem használ. Ezért a modellnév önmagában nem bizonyíték az eszköz eredetére.
Mit tegyünk? Döntési lista vezetőknek
Az alábbi pontok az elemzés ajánlásaiból és a beszerzési gyakorlatból készültek. Jelölje meg, amit a szervezete már teljesít: a sáv mutatja, hol tart.
0 / 6 teljesítve
A Midnight Mimosa azt mutatja, hogy a mobil ellátási lánc is támadási felület. A kártevő nem a felhasználó hibájából kerül a telefonra, hanem a gyártásban. A védelem legnagyobb hatása ezért a beszerzési döntésekben és a szerződésekben van, nem csak a végpontokon. A technikai részleteket a II. rész tartalmazza.
Viselkedés, nem aláírás: így talált rá a kutatás
A nyomozás a Bitdefender Mobile Security App Anomaly Detection technológiájánál indult. Ez 2023 óta figyeli a telefonon futó alkalmazások viselkedését, eszközön futó gépi tanulással és valós idejű viselkedéselemzéssel. Itt sem lett volna elég a statikus vizsgálat: az ilyen alkalmazások később aktiválódhatnak, a valódi payloadot pedig futás közben töltik le vagy bontják ki natív kódból.
A jelzést a com.android.system.lite csomag adta. Rendszerkomponensnek álcázta magát: nincs ikonja, „System” a címkéje. A viselkedése azonban nem illett egy operációs rendszer-komponenshez. Ismételten engedélyezett érzékeny hozzáféréseket (például akadálymentesítési és értesítés-hozzáférést), és csendben telepített, majd törölt más alkalmazásokat. Ebből a nyomról haladt tovább a kutatás a teljes kampányig.
A támadási lánc öt lépésben
Az öt lépés egyesével megnyitható. A kiválasztott lépés részletei alul jelennek meg.
Engedélyező (enabler)
A com.android.system.lite platform-aláírással rendelkező, állandó (persistent) rendszeralkalmazás. A android.uid.system megosztott UID-val fut, amelyhez rendszerszintű műveletek tartoznak. Az APK-ja vékony „héj”: a valódi logika egy natív könyvtárban van.
Natív mag (libeasy.so)
A könyvtár egy JNI-metódust regisztrál, amely RC4 kulccsal visszafejti az általa hordozott, mintegy 142 KB-os APK-t, és kiírja a lemezre. A kulcs a mintán belül van, így a visszafejtéshez nincs szükség külső szerverre.
Rejtett keretrendszer (cn.kw.lib.hex)
A kibontott keretrendszer sztringjei AES-128-CFB titkosítással védettek. Távoli konfigurációt kér le a parancsvezérlő szerverről (C2), majd letölti és betölti a további modulokat. Ez a réteg alakítja a jogosultságot ténylegesen végrehajtott műveletekké.
Pluginok
Három modul fut: a wz reklámcsaló, az earn csendes telepítő, és a gogo.third csendes telepítő WebView-funkcióval. A pluginokat a C2 szolgáltatja, verziószámmal és letöltési címmel együtt.
Bevételi réteg
A takaró-alkalmazások (időjárás, appzár, jegyzet, OCR) legitim reklám-SDK-t tartalmaznak. Ezt látja a reklámhálózat, és ezek kapnak kifizetést. A telepített payloadok között proxyware és egy reklámcsaló „droppoló” is van.
Az engedélyező jogosultságai és a csendes telepítés
Mire képesek a deklarált jogosultságok?
A platform-aláírás és a rendszer-UID teszi lehetővé, hogy ezek a jogosultságok ne csak deklarálva legyenek, hanem működjenek:
| Jogosultság | Mire való a gyakorlatban? |
|---|---|
INSTALL_PACKAGES | Alkalmazások csendes telepítése, megerősítő ablak nélkül |
DELETE_PACKAGES | Alkalmazások csendes törlése |
GRANT_RUNTIME_PERMISSIONS | Engedélyek megadása más alkalmazásoknak a felhasználó megkérdezése nélkül |
WRITE_SECURE_SETTINGS | Védett rendszerbeállítások módosítása |
MOUNT_UNMOUNT_FILESYSTEMS | Fájlrendszerek csatolása és leválasztása |
A manifest ezen felül akadálymentesítési szolgáltatást, értesítés-hozzáférést és SMS-jogosultságokat is deklarál. A kutatók ezek használatát nem látták, de a rendszer maga kapcsolja be őket, és automatikusan, ismétlődően ki- és visszakapcsolódnak. A C2 távolról „élesítheti” őket. Az akadálymentesítési szolgáltatás elvileg bármely képernyő tartalmát olvashatja és a felületet vezérelheti, ez a banki trójaiak klasszikus eszköze. A képesség tehát már jelen van, és az operátor döntésén múlik, mire használja.
Csendes telepítés és a Play Protect „elvakítása”
A pluginok a PackageInstaller munkamenet-API-t használják: telepítési munkamenetet hoznak létre, beírják az APK-t, majd véglegesítik. Rendszer-UID-val futva nincs felhasználói megerősítés, és az engedélyező lesz a bejegyzett telepítő.
A telepítés előtt a kártevő letiltja a Google Play Áruházat (com.android.vending), amely a Play Protect helyszíni vizsgálatát is futtatja. A telepítés után, sikeres és sikertelen esetben is, újra engedélyezi. Az elemzés szerint van egy „biztonsági háló” is: ha a felhasználó épp használja a telefont, az áruház újra engedélyezésre kerül, hogy ne keltsen gyanút.
A jogosultság-átvételre jó példa az időjárás-alkalmazás, amely a WRITE_SECURE_SETTINGS jogosultságot használja. Ezt normál áruházi telepítéssel nem kaphatná meg. A jogosultság az eszközön a telepítés módjából származik, nem az alkalmazásból: ugyanennek a csomagnak a Google Play-es változata nem rendelkezik vele.
A telepítő mező és a hiányzó „frosting”
A telepítő csomag neve (installer) a telepítő folyamat által megadott érték, és a rendszer nem ellenőrzi. A kártevő ezt átírja, így az eszköz azt mutatja, hogy az alkalmazás a Google Play-ről származik.
A hamisítás azonban kimutatható. A Google Play által terjesztett APK-k a Google szerveroldalán „frosting” aláírási blokkot kapnak, amely igazolja, hogy áthaladtak az áruházon. Ezt a blokkot az áruházon kívül nem lehet előállítani. Ha tehát a telepítő mező com.android.vending, de frosting-blokk nincs, a származás hamis. Az elemzés három ilyen mintát említ, mindegyik az engedélyező-család tagja.
A telepítő nevére nem szabad támaszkodni
Sem gyanú igazolásakor, sem kizárásakor. A frosting megléte vagy hiánya a megbízható jel.
Hogyan termel pénzt a kártevő, és hogyan lesz a telefon átjáró?
A reklámcsalás mechanikája
A wz modul hirdetéseket jelenít meg a felhasználó bármilyen kérése nélkül: teljes képernyős tevékenységként vagy a képernyőre rajzolt átfedő ablakként. A megjelenítést a képernyő állapotának változása vagy a tétlen eszköznek küldött parancs indítja.
A hirdetési felületet „secure” (biztonságos) jelöléssel látja el a kártevő. Ezt normál esetben bankképernyők védelmére használják, hogy képernyőkép és képernyőfelvétel ne rögzítse őket. Itt az ellenkező célt szolgálja: a hamis hirdetést nehezebb észrevenni és elemezni.
A kattintásokat részben programozottan generálják, a nézetre hívva a kattintási műveletet. A célpontot véletlenszerűen választják a C2-től kapott listából, napi határt és időközt tartanak be, így a forgalom szervesnek tűnik. Az érintés után a hirdetett alkalmazás csendben elindul. A kattintást végül 60 másodperccel később automatikusan „konverzióként” jelentik a reklámhálózatnak.
Miért kell hozzá takaró-alkalmazás?
A reklámhálózat a jelentett forgalmat ahhoz az alkalmazáshoz rendeli, amelyben a reklám-SDK és a hirdetési egység azonosítója van. A rendszerkomponens ilyet nem tartalmaz, ezért önmagában nem keresne semmit. A takaró-alkalmazások ezt pótolják: egymással „hirdetési hálót” alkotnak, parancsokat és hirdetési adatokat cserélnek, és mindegyik ugyanazt az eszközazonosítót jelenti ugyanannak a C2-nek.
Proxyware: az applock.en modul
A második bevételi réteg egy kizárólag proxy-funkciót ellátó modul (EnLoaderLib v1.0.6). Csak internetelérést és hálózatállapot-olvasást kér, nincs felülete, és nem tölt be kódot. Működése négy lépésből áll:
1. Regisztráció
A készülék egyedi azonosítóval és eszközujjlenyomattal (modell, Android-verzió, build-azonosító, márka) jelentkezik a vezérlőszerveren.
2. Parancscsatorna
Nyers TCP-kapcsolat a 6000-es porton, nem HTTP-n keresztül.
3. Célpontok
A szerver „host,port” párokat küld. A készülék minden célhoz kapcsolatot nyit, és időzítve újralekérdezi a listát.
4. Átjátszás
A bájtokat kétirányban, 8 KB-os pufferekben továbbítja a vezérlő és a célpont között.
Az eredmény: a készülék lakossági IP-címről kimenő átjáróvá válik. Ez a bűnözőknek azért értékes, mert az IP-alapú tiltások nehezebben érintik a valódi otthoni és mobil címeket.
Helyesbítés az eredeti cikkben: a korábban vezérlőszerverként azonosított 85.17.70.38-as címről később kiderült, hogy sinkhole, vagyis forgalmat elnyelő csapda. Ezért ez a cím nem szerepel az indikátorok között.
A parancsvezérlő infrastruktúra
A C2-domain (api.weatherlive[.]world) időjárás-API-nak álcázza magát. A kártevő a getConfigs végpontot hívja: AES-szel titkosított, HMAC-MD5-tel aláírt kérésben küldi el az eszköz azonosítóit (IMEI, Android-azonosító, MAC-cím, SIM-ország, időzóna). A válasz a futtatandó modulok listáját adja meg, verziószámmal és letöltési címmel. A letöltések az oss.showtimetool[.]com CDN-ről érkeznek, és .png kiterjesztéssel vannak elrejtve.
A modulok formátuma is rejtőzködik. A pluginok .o kiterjesztést kapnak, de valójában ZIP/JAR-fájlok, a fejlécük PK-val kezdődik. Mivel a valódi payload távoli konfiguráció után töltődik le, a statikus vizsgálat gyakran üres mintát lát. Ezért a fájlnév és a kiterjesztés félrevezető lehet, a tartalmat kell ellenőrizni.
Ki áll a háttérben, és mit tudunk biztosan?
Mit tudunk, és mit nem?
Az engedélyező komponens a Shenzhen Zediel Co., Ltd. nevű, shenzheni Android-gyártóhoz köthető platform-kulccsal van aláírva. A cég rendelkezik egy MAC-azonosító-blokkal is (OUI: A0:53:94). A kutatók ezt technikai attribúciónak nevezik. Ez nem bizonyítja, hogy a cég készítette a kártevőt, vagy tudott volna róla. Az ellátási láncban több közvetítő is lehet (ODM, firmware-integrátor, logisztikai partner), a beépítés pontos helye nem ismert.
A működési minta a Dr.Web korábbi leírásai szerint régebbi családokhoz kapcsolódik, és a kutatók ezt operátor-vonalként kezelik:
| Időszak | Család (Dr.Web) | Viselkedés |
|---|---|---|
| 2021 | Android.Joker | Prémium-SMS csalás, távoli DEX-betöltés |
| 2025 | Android.Phantom.5 → Android.Click.429 | Dropper, majd JavaScript-alapú kattintáscsalás |
| 2024–2025 | Midnight Mimosa | Gyárilag telepített engedélyező, reklámcsalás, kattintáscsalás, proxyware |
A Google Play-ben is megjelent kód
Nem csak a gyári telefonokon van jelen a kód: 13 Google Play-en elérhető alkalmazás mutatja ugyanazokat a családi jeleket, például időjárás, QR-olvasó, jegyzet, szövegfelismerő vagy hangszerkesztő funkcióval. Ezek valódi Play-builden futnak, vagyis az áruházi ellenőrzés átengedte őket. A 13 csomag 13 különböző aláírási tanúsítványt használ, legalább két fejlesztői fiókon keresztül. Az eredeti cikk mind a 13 csomagnevet közli.
IOC-k, detektálás és vadászat
Kompromittálási indikátorok (IOC)
A domaineket a közzétett formában, „[.]” jelöléssel adjuk meg, hogy ne legyenek véletlenül kattinthatók.
| Típus | Érték | Megjegyzés |
|---|---|---|
| Domain | api.weatherlive[.]world | C2: konfiguráció (/br_upgrade/upgradeV2/getConfigs) és telemetria (/odborwer_dot/cm) |
| Domain | oss.showtimetool[.]com | Modulok CDN-je, .png kiterjesztéssel |
| Hálózat | *.apple.<domain>:6000, a cikk négy domaint sorol fel | Proxyware-vezérlés, nyers TCP 6000-es porton |
| Csomag | com.android.system.lite (versionCode 900000, „System” címke) | Engedélyező |
| Csomag | com.android.sys.prot, com.android.sys.gmsprot, com.android.sys.bcprot | Engedélyező-variánsok |
| Csomag | com.mobile.applock.en, com.mobile.applock.wt | Eldobott proxyware és reklámcsaló modul |
| Csomag | com.dmstudio.weather, com.dl.guard.lock | Takaró-alkalmazás, a Google Play-en is megjelent |
| Fájl | libeasy.so, MD5: a8847b68428fde206b6dff8001051f92 | Natív mag |
| Minta (MD5) | b862681953e945439167a736ba4cd41b | Engedélyező (com.android.system.lite) |
| Minta (MD5) | d4ceb05682ecd60f4ebb4e76e02fcf7d | Engedélyező-variáns (com.android.sys.prot) |
| Hardver | MAC OUI: A0:53:94 | Zediel-eszközök. Csak kiegészítő jel, nem önálló bizonyíték. |
| Viselkedés | Telepítő: com.android.vending, de nincs frosting-blokk | Hamis származás |
A teljes, 120 MD5-hashből álló lista az eredeti cikkben található.
Detektálás és vadászat
Ne csomagnév-alapú tiltólistára építsünk
A nevek és az aláírások rotálnak. Az állandó mag a libeasy.so, a cn.kw.lib névtér és a C2-domain.
Firmware- és fájlellenőrzés
Keressük a .o kiterjesztésű ZIP-fájlokat és a .png kiterjesztésű APK-kat. A fájlfejléc alapján döntsünk, ne a kiterjesztés alapján.
Telepítési nyom
Ha a telepítő mező a Play Áruház, de nincs frosting-blokk, a származás hamis.
Viselkedés
Az akadálymentesítési és értesítés-hozzáférés ismétlődő be- és kikapcsolása, valamint a Play Áruház rövid idejű letiltása telepítés előtt.
Hálózat és leltár
A C2-domainek DNS-lekérdezései, a 6000-es porton zajló nyers TCP-forgalom, és a Zediel OUI-ja (A0:53:94) a flottanyilvántartásban. A MAC-prefix önmagában csak kiegészítő jel, a telemetriával együtt használjuk.
Mit nem old meg az eltávolítás?
Az engedélyező a rendszerpartíción van, ezért a szokásos módon nem törölhető. A megoldáshoz firmware-szintű tisztítás vagy ADB-n keresztüli letiltás kellene, amit a legtöbb felhasználótól nem lehet elvárni. A tartós megoldás a gyártók és a piacterek kezében van: a fertőzött firmware gyártását és terjesztését kell megszakítani.
Következő lépés
Tudd meg, hol vannak a céges IT valódi kockázatai.
Egy kockázatfelmérés során átvizsgáljuk a rendszered legfontosabb pontjait, majd világos, fontossági sorrendbe rendezett javaslatokat adunk a javításhoz.


