Ö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.
A MetaDefender Sandbox képességeinek köszönhetően végzett megfigyelésünk alapján úgy ítéltük meg, hogy a kampány továbbra is folyamatban van, és 2024 július közepe körül kezdődött. A kampányhoz kapcsolódó fenyegető szereplő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.
Amellett, hogy egy új rosszindulatú programcsaládot és egy élő kampányt fedeztünk fel, a kutatás és a megfigyelés eredményei lehetővé tették a Sandboxweboldalunk funkcióinak/jelző képességeinek javítását. Ezenkívül vizsgálatunk elegendő információt szolgáltat ahhoz, hogy a betöréselemzés gyémántmodelljének átfogó példányát a MetaDefender Sandbox jelentésekből származó IOC-k (veszélyeztetettségi mutatók) és a konkrét MITRE ATT&CK leképezésekkel együtt megvalósítsuk.
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
Míg a Metadefender Sandbox az eredeti PE és későbbi szakaszainak számos képességét jelzi, amint azt az előbbiekben kifejtettük, az írás időpontjában az eredeti kártevőminta a legtöbb AV-gyártó által teljesen észrevétlen marad.
A PE egy lefordított JavaScript malware, amely a pkg eszközzel a JavaScript kódot Windows PE-vé alakítja. Úgy tűnik, hogy a kompilált JavaScript egyre inkább terjed a fenyegetések között, amint arról nemrégiben más kutatók is beszámoltak. Az említett eszköz egy JavaScript hasznos terhet csomagol egy Windows PE-be egy Node JS/V8 értelmező beágyazásával, amely lehetőséget biztosít a kód V8 bytecode-ba történő fordítására, így a PE-be vagy a plaintext kódot, vagy egy JavaScript Compiled bytecode-ot ágyaz be. A sima szöveges verzió kivonása a legtöbb esetben triviális, azonban a Metadefender Sandbox a lefordított kódot JSC (JavaScript Compiled file) formájában kivonhatja és szétszerelheti a későbbi további elemzéshez.
A JavaScript payload tartalmazza a vonatkozó payloadot base64 kódolva, dekódolja és az eval függvény segítségével végrehajtja. Ez a dekódolt hasznos teher egy gyors RAM méretellenőrzés lefuttatásával kezdődik, valószínűleg azért, hogy elkerülje a végrehajtást elemző környezetekben. Míg sok hagyományos sandbox nem menne át ezen az ellenőrzésen, a Metadefender Sandbox mélyebb elemzést végez az összes JavaScript-kódon, lehetővé téve a releváns mutatók 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 említettük, a végső hasznos terhelés index.js néven kerül az áldozat gépére. Ez is erősen elkendőzött és dinamikusan titkosított minden egyes kérésnél, a középső szakasz hasznos terhelésénél korábban leírt folyamatot követve (google naptár, base64 URL, hasznos terhelés visszafejtése). Mivel azonban ez a JavaSquid fertőzési lánc utolsó szakasza, a dekódolási kulcsok magába a szkriptbe vannak írva, ami lehetővé tette a Metadefender Sandbox számára, hogy alapos elemzés céljából azonosítsa, kivonja és dekódolja a legvégső hasznos terhet.
É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.