Összefoglaló
OPSWAT azonosított egy széles körű, valószínűleg pénzügyi indíttatású fertőzési kampányt, amely hamis mesterséges intelligencia szoftvereket használ csaliként egy újonnan felfedezett malware család letöltésére, amelyben a "JavaSquid" nevet adtuk neki, nevezetesen a többszörös kitérő/csúszós JavaScript részei miatt.
MetaDefender funkcióinak köszönhetően végzett megfigyeléseink alapján megállapítottuk, hogy a kampány továbbra is folyik, és 2024 júliusának közepén indult. A kampányhoz kapcsolódó támadók korábban már hajtottak végre sikeres támadásokat, amelyek során különböző kínai vállalatoktól loptak el digitális tanúsítványokat.
A kutatás és a megfigyelés eredményei nem csupán egy új kártevőcsalád és egy aktív támadási kampány feltárását tették lehetővé, hanem Sandboxfunkcióinak és indikátorkezelési képességeinek fejlesztését is. Ezen felül vizsgálatunk elegendő információt szolgáltat ahhoz, hogy MetaDefender jelentésekben szereplő IOC-k (kompromittáltsági indikátorok) és konkrét MITRE ATT&CK-leképezések segítségével egy átfogó behatoláselemzési modell (Diamond Model of Intrusion Analysis) megvalósítására kerüljön sor.
A kampány feltárása
OPSWATA Sandbox Threat Research egy olyan fertőzési kampányt fedezett fel, amely a mesterséges intelligenciát csaliként használja, de valójában nem használ mesterséges intelligenciát a támadásokban vagy a rosszindulatú szoftverekben. A vizsgálat akkor kezdődött, amikor megfigyeltük a gyanús tartományt, a https[://]my-profai[.]com. Bár úgy tűnik, hogy a domaint már levették, 2024-09-05-én regisztrálták, ami azt jelenti, hogy a kampány nemrég indult, és a vizsgálatunk során gyűjtött információk alapján valószínűleg még mindig folyamatban van.
Honlapjuk címe szerint "Epivaravomw: Bringinging Your Static Images to Life" úgy tűnik, hogy egy AI-alapú eszközt kínálnának a képek mozgásba hozásához, ami egy potenciális víznyelő támadásra utal, amely más weboldalak malvertisingját is kihasználja, hogy a felhasználókat a malware letöltésére késztesse. Azonban valószínűleg a https://proai.co megszemélyesítőjéről van szó , mivel a letölthető Windows futtatható fájl neve ProAI.exe, amely a kártevőminta, amelyet előre elemezünk.

A kezdeti veszélyeztetés ilyen technikái arra utalnak, hogy a kampány mögött álló fenyegető szereplők opportunista fertőzéseket keresnek, és ezért valószínűleg pénzügyi motivációval, esetleg IAB-ként (Initial Access Broker) tevékenykednek. A mintául szolgáló beadványok helye alapján nagyon valószínű, hogy a kampány célpontja elsősorban Európa.
Az áldozatok becsapására és a rosszindulatú szoftverek kiszolgálására használt watering hole domain a Cloudflare által védett. A kártevő mintájuk azonban egy másik domainnel lép kapcsolatba, amely egy olyan IP-címre oldódik fel, amelyre számos más domain is mutat. Úgy tűnik, hogy az ugyanarra az IP-címre mutató különböző domainek közül sok is kapcsolódik az AI-tech csalihoz és más vállalatok megszemélyesítéséhez.
Érdekes módon az OSINT-kutatásaink azt mutatták, hogy a C2 IP-cím korábban a Lumma és a Poseidon lopókkal állt kapcsolatban. Míg a Lumma lopás állítólag a régi Mars lopáson alapult, a Poseidon egy nagyon nemrég felfedezett, AppleScript nyelven írt, ezért iOS-környezeteket célzó malware-család. Az a tény, hogy ez az újszerű család JavaScriptben íródott, arra utalhat, hogy a tevékenység mögött álló fenyegető szereplő olyan szkriptnyelvre válthat, amely különböző környezetekben használható. Egy másik kiemelendő szempont az a tény, hogy az IP-cím egy kínai internetszolgáltatóhoz (Chang Way Technologies Co. Limited) tartozik, míg az állomás földrajzi elhelyezkedése az Orosz Föderáció területén található.
A kezdeti rosszindulatú minta érvényes digitális aláírással rendelkezett, amikor először elemeztük (2024. november 9-én), amelyet egy kínai cég, a "Taigu Fulong Electronic Tech Co., Ltd." állított ki. Megfigyeltük azonban, hogy a vizsgálatunk során ezt már visszavonták.

Miközben a Sandbox vadászmotorunk segítségével hasonló minták után kutattunk, találtunk egy sor azonos családba tartozó mintát, amelyek ugyanazt a valószínűleg lopott digitális tanúsítványt használják, de két új mintacsoportot is találtunk. Az egyik készlet nem rendelkezett digitális aláírással, míg a másik egy másik digitális tanúsítványt használt. Valamennyi minta ugyanazt a mintát és technikát követte: a különböző megadott nevek alapján (ai_Generation.exe, sweethome3d.exe, Installer_capcut_pro_x64.exe...) valamilyen legitim segédprogramnak adták ki magukat.

Megállapításaink alapján ez a kampány július közepe körül kezdődött, és jelenleg is tart, mivel folyamatosan újabb és újabb mintákat figyelünk meg a családból, még 2024 októberének utolsó hetében is. Továbbá, míg a kezdeti mintából származó tanúsítványt a vizsgálatunk során visszavonták, a másik felfedezett tanúsítvány a másik készletből még mindig érvényes, és szeptember elején állították ki, ami arra utalhat, hogy a kibocsátó veszélyeztetett lehet, és nem tudott róla, amíg fel nem vettük velük a kapcsolatot, és nem jelentettük, hogy a tanúsítványukat rosszindulatú szoftverekben használják.
A malware megértése
Bár MetaDefender – amint azt a későbbiekben kifejtjük – az eredeti PE-fájl és annak későbbi szakaszai számos jellemzőjét jelzi, a cikk írásának pillanatában a kezdeti kártevőminta a legtöbb víruskereső-gyártó által továbbra sem kerül felismerésre.

A PE egy lefordított JavaScript-alapú kártevő, amely a pkg eszköz segítségével alakítja át a JavaScript-kódot Windows PE-fájlká. Úgy tűnik, hogy a lefordított JavaScript egyre nagyobb szerepet játszik a fenyegetések világában, amint arról más kutatók is nemrég beszámoltak. Az említett eszköz egy Node JS/V8 értelmezőt ágyaz be a kód V8 bájtkódba történő lefordításának lehetőségével, így a JavaScript hasznos terhelést Windows PE-vé csomagolja, és így vagy a sima szöveges kódot, vagy a lefordított JavaScript bájtkódot ágyazza be a PE-be. A sima szöveges változat kivonása a legtöbb esetben triviális, azonban MetaDefender képes a lefordított kódot JSC (JavaScript Compiled file) formátumban kivonni és disasszemblálni a későbbi további elemzés céljából.

A JavaScript-kód a vonatkozó hasznos adatot Base64-kódolásban tárolja, majd dekódolja és az eval függvény segítségével végrehajtja. A dekódolt hasznos adat először egy gyors RAM-méret-ellenőrzést futtat, valószínűleg azért, hogy elkerülje a futtatást elemző környezetekben. Míg számos hagyományos sandbox nem jutna át ezen az ellenőrzésen, MetaDefender a teljes JavaScript-kódot mélyrehatóbb elemzésnek veti alá, lehetővé téve a vonatkozó indikátorok kiváltását.

Ha az ellenőrzés sikeres, a minta végrehajt egy HTTP-kérést egy Google-naptár esemény URL-címére, amely a leírásában egy második URL-címet tárol base64 formátumban.

A dekódolt URL a támadó által ellenőrzött tartományra mutat, amely a megfelelő kérés után egy új base64 payloadot szolgáltat. Az új JavaScript payload dekódolása után az eval függvény segítségével azonnal végre is hajtja azt. Ez a további JavaScript-kód AES-titkosítással visszafejt és végrehajt egy további réteg keményen kódolt hasznos terhet.


Érdekes módon az IV és az AES kulcsokat az utolsó HTTP-kérés válaszfejlécéből kapjuk, amelyek megfigyeléseink szerint minden egyes kérésnél eltérőek, ami azt jelenti, hogy a kiszolgált hasznos teher és a fejlécek dinamikusan jönnek létre minden egyes kérésnél a C2-hez, amelyet különböző kulcsokkal kell visszafejteni. Továbbá úgy tűnik, hogy a visszafejtett hasznos teher mindig ugyanaz, de más-más elfedéssel, ami azt mutatja, hogy nemcsak a titkosítás, hanem az elfedés is dinamikusan történik minden egyes kérésnél. Ez a technika nem csak a törvényszéki elemzést akadályozhatja incidens esetén, vagy a fenyegetések kutatását, de a szignatúra-alapú észleléseket is kikerülheti, mivel az elfedés minden egyes kérésnél más és más.
Ez az újonnan dekódolt modul erősen elkendőzött, és további könyvtárak kódjának hozzáadásával sokkal több funkciót ad a mintához, főként a fájlműveletek és a zip-funkciók kezeléséhez az adm modul segítségével. Ezenkívül különböző fájlokat helyez el különböző %appdata%\Local alkönyvtárakban, véletlenszerű elnevezésekkel.
Az egyik elejtett fájl egy run.ps1 nevű PowerShell szkript, amely a NodeJS MSI telepítőjének telepítéséhez szükséges kódot tartalmazza, hogy később a végleges JavaScript hasznos terhet a telepített NodeJS segítségével indítsa el a kezdeti lefordított JavaScript hasznos teher helyett.

Ezen a ponton a végrehajtás hibaüzenetet vált ki a felhasználó számára egy felugró ablak formájában, amely valószínűleg azt a benyomást kelti az áldozatban, hogy a várt "AI szoftver" (ProAI.exe) esetleg nem tud futni a rendszerén, és eltereli a figyelmét a folyamatban lévő JavaSquid fertőzésről. Ez a későbbi szakaszban lévő JavaScript hasznos teher egy utolsó JavaScript fájlt is letölteni fog, amely ugyanazt a mechanizmust használja a Google naptárakkal való kapcsolatfelvételre, majd a HTTP válasz fejlécek segítségével kapcsolatba lép az ellenőrzött tartományukkal a végül kiszolgált hasznos teher visszafejtése érdekében. Ezúttal a végső hasznos teher index.js néven kerül elmentésre egy véletlenszerű nevű könyvtárba, amely a %appdata%/Romaing könyvtáron belül található.
A korábbi run.ps1 fájl később egy másik, azonos nevű PowerShell-skriptre cserélődik, és szintén azonnal végrehajtásra kerül. Amint a képernyőképen látható, ez a szkript csak arra szolgál, hogy a gépen állandóságot szerezzen, míg a fő kártevő kódja az index.js-ben íródott.

A rosszindulatú szoftver által elejtett további fájlok:
- VeqVMR.zip (véletlenszerűen generált név): Letöltve ugyanarról a C2-ről. Csak egy notepad telepítőt tartalmaz (npp.8.6.6.6.Installer.exe), amely nyilvánvalóan nincs hatással az általános viselkedésre.
- bypass.ps1: a korábban említett run.ps1 végrehajtására szolgál, miközben megkerüli a powershell szkriptek futtatási korlátozását.
- NiOihmgUci.msi (véletlenszerűen generált név): a nodejs telepítője, a hivatalos weboldalról letöltve.
- Update.lnk: a run.ps1 PowerShell szkriptre mutat.

Mint már említettük, a végső hasznos adat az áldozat számítógépére index.js néven kerül mentésre. Ez is erősen elrejtett, és minden kéréskor dinamikusan titkosítva van, a közbenső szakasz hasznos adatainál korábban leírt folyamatot követve (Google Naptár, Base64 URL, a hasznos adat visszafejtése). Mivel azonban ez a JavaSquid fertőzési lánc legutolsó szakasza, a visszafejtési kulcsokat magába a szkriptbe írják, ami lehetővé tette MetaDefender a végső hasznos adat azonosítását, kivonását és visszafejtését a részletes elemzéshez.

Érdekes módon azt tapasztaltuk, hogy az aktuálisan kiszolgált index.js különböző verziókra váltott, amelyek javított végrehajtást és kissé eltérő funkciókat tartalmaznak. Ez alátámasztja azt a hipotézist, hogy a kampány még mindig él, és a JavaSquid végleges payload még mindig fejlesztés alatt áll. A fájlt következetesen egy egysoros JavaScriptként szolgálták ki, egy középső szakaszban lévő, base64-ben kódolt payloadtal, amely keményen kódolt kulcsokat tartalmaz az AES dekódoláshoz. Ahogy az előző képernyőképen látható, ez dekódolja és végrehajtja a végső hasznos terhet, kiemelve a hasznos teher láncot az index.js elemzésében.
A kezdeti kiszolgált hasznos teher a C2-vel való kommunikációt a websocket protokollon keresztül valósítja meg. A C2-től érkező json formátumú üzeneteket elemzi, keresve a "command" elemet, amelyet base64 formátumban kell fogadni. A legutóbbi kiszolgált hasznos teher azonban hasonló funkcionalitással rendelkezett, de HTTP-kérést használt a C2-kommunikációhoz. Továbbá, bár ez a család még mindig egy nagyon egyszerű backdoor, megfigyeltük, hogy a legutóbbi kiszolgált JavaSquid kód új információgyűjtő és lopó funkciókat tartalmazott.
IOC-k
999abd365022c5d83dd2db4c0739511a7ac38bcd9e3aa19056d62d3f5c29ca30
Aec44665395d4ae7064ea08d6d03b729464715d2169c629f3e3215d61c1299ea
b216880a67fc2e502ae94928aead75ef870fbb7ba142f7eda355d9ed6e72146d
chackopanikulamskykat@gmail.com
kendalllopez149@gmail.com
45.93[.]20.174
ambisecperu[.]com
angelswipe [.]com
nenkinseido[.]com
hxxps://calendar.app[.]google/X97t5bVooB2ti1QB8
hxxps://calendar.app[.]google/pPGGk4W26WW7oJxN7
hxxps://calendar.app[.]google/fD8MeHaN46bfYy3SA
hxxps://ambisecperu[.]com/a74Uxj9QjqWbeKr2SYOHsw%3D%3D
hxxps://ambisecperu[.]com/lBdvVW3MiQgpwRGAl5KNwg%3D%3D
hxxps://ambisecperu[.]com/o2BF9EGgskwn0k5Cwo7kugjt7xChBPSnghiJkDU7MwQ%3D
wss://ambisecperu[.]com/ss_ss?uuid=L07nKQ%2FEG1qQXwzQ1Tv3vqduOgfze7Yz3Ry%2FrXnr8WY%3D
hxxp://angelswipe[.]com?uuid=1sdtM0o5b35Uhe6wp9nM5UMMZ8BNrbYwtT1LAvW4rRA%3D
hxxps://nenkinseido[.]com/a3vNlpuRk6O5S469pG17Gw%3D%3D
hxxps://nenkinseido[.]com/YMvBag0VXbce5q0WvNrMRg%3D%3D
9A:84:A9:7F:AC:26:DF:5C:8A:74:FB:E6:88:0A:0B:5D:A5:17:08:DC
BB:F9:86:55:F4:D4:ED:39:6F:BC:A9:5F:4A:F8:ED:4E:B0:19:50:A9
Ugyanarra az IP-címre mutató különböző domainek, amelyeket az elemzett minták nem használtak, de úgy tűnik, hogy a mesterséges intelligenciával kapcsolatos weboldalak hamisításához is kapcsolódnak:
agattiairport[.]com
aimodel[.]itez-kz[.]com
akool[.]cleartrip[.]voyage
akool[.]techdom[.]click
akordiyondersi[.]com
albanianvibes[.]com
albert[.]alcokz[.]store
albert[.]flora-kz[.]store
apkportion[.]com
asd[.]leboncoin-fr[.]eu
basgitardersi[.]com
bendiregitimi[.]com
bybit[.]travel-watch[.]org
cap[.]cleartrip[.]voyage
dipo[.]cleartrip[.]voyage
face[.]techdom[.]click
facetwo[.]techdom[.]click
ftp[.]millikanrams[.]com
haiper[.]techdom[.]click
haiper[.]travel-watch[.]org
havoc[.]travel-watch[.]org
l[.]apple-kz[.]store
liama[.]cleartrip[.]voyage
loader[.]waltkz[.]com
locktgold[.]travel-watch[.]org
luminarblack[.]techdom[.]click
millikanrams[.]com
openaai[.]clear-trip-ae[.]com
proai[.]travel-watch[.]org
sweethome[.]travel-watch[.]org
synthesia[.]flow-kz[.]store
synthesia[.]techdom[.]click
uizard[.]flow-kz[.]store
upscayl[.]cleartrip[.]voyage
Tudjon meg többet arról, hogy a OPSWATújgenerációs homokozó és adaptív rosszindulatú szoftverek elemzésére szolgáló megoldásai hogyan biztosítanak a szervezeteknek kritikus előnyt az összetett és kitérő rosszindulatú szoftverek elleni küzdelemben - beszéljen egy szakértővel.
