Ö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.
Aether MetaDefender Aetherfunkcióinak köszönhetően végzett megfigyeléseink alapján megállapítottuk, hogy a kampány továbbra is folyamatban van, és 2024 júliusának közepe körül indult. A kampánnyal összefüggésbe hozható támadók korábban is 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.
Amellett, hogy egy új kártevőcsaládot és egy jelenleg is aktív kampányt tártunk fel, a kutatás és a megfigyelés eredményei lehetővé tették a Sandboxfunkcióinak és indikátorainak továbbfejlesztését. Ezen felül vizsgálatunk elegendő információt szolgáltat ahhoz, hogyAether MetaDefender Aether szereplő IOC-k (kompromittáltsági indikátorok) és konkrét MITRE ATT&CK-leképezések segítségével átfogóan megvalósíthassuk a behatoláselemzés Diamond-modelljét.
A kampány feltárása
Az OPSWATSandbox Threat Research felfedezett egy fertőzési kampányt, amely mesterséges intelligencia (AI) szoftvert használ csalinak, de a támadásokban és a rosszindulatú programokban valójában nem alkalmaz AI-t. A vizsgálat akkor indult, amikor észrevettük a gyanús https[://]my-profai[.]com domaint. Bár a domain jelenleg már nem elérhető, 2024. szeptember 5-én regisztrálták, ami azt jelenti, hogy a kampány nagyon nemrég indult, és a vizsgálatunk során összegyű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 segítségével hasonló mintákat vizsgáltunk, rátaláltunk egy olyan mintacsoportra, amely ugyanahhoz a családhoz tartozik, és valószínűleg ugyanazt a lopott digitális tanúsítványt használja, de emellett két új mintacsoportra is rábukkantunk. Az egyik csoportban nem volt digitális aláírás, míg a másikban egy másik digitális tanúsítványt használtak. Az összes minta ugyanazt a mintát és technikát követte: a különböző nevek (ai_Generation.exe, sweethome3d.exe, Installer_capcut_pro_x64.exe...) alapján úgy tett, mintha valamilyen legitim segédprogram lenne.

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 Aether – amint azt a későbbiekben kifejtjük – az eredeti PE-fájl és annak későbbi szakaszai számos jellemzőjétAether , a cikk írásának pillanatában a kezdeti kártevőminta a legtöbb víruskereső-gyártó számára továbbra is teljesen észrevétlen marad.

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ési környezetben, 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 JavaScript hasznos terhelésbe, azzal az opcióval, hogy a kódot V8 bájtkóddá fordítsa, így a PE-be vagy a sima szöveges kódot, vagy a lefordított JavaScript bájtkódot ágyazza be. A sima szöveges változat kinyerése a legtöbb esetben triviális feladat, azonban MetaDefender Aether a lefordított kódot JSC (JavaScript Compiled file) formátumban kinyerni és disasszemblálni a későbbi további elemzés céljából.

A JavaScript-payload a vonatkozó payloadot Base64-kódolásban tárolja, dekódolja, majd az eval függvény segítségével végrehajtja. Ez a dekódolt payload először egy gyors RAM-méret-ellenőrzést hajt végre, valószínűleg azért, hogy elkerülje az elemző környezetekben való futtatást. Míg számos hagyományos sandbox nem jutna át ezen az ellenőrzésen, MetaDefender Aether az összes JavaScript-kódot mélyrehatóbb elemzésAether , 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 adatához 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 be, ami lehetővé tette MetaDefender Aether azonosítsa, kivonja és visszafejtse a legvégső hasznos adatot a részletes elemzés céljából.

É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 OPSWATúj generációs sandbox adaptív kártevőelemző megoldásai hogyan biztosítanak döntő előnyt a szervezeteknek a komplex és nehezen felismerhető kártevők elleni küzdelemben – beszéljen egy szakértővel!
