Next.js malware u VS Code repo napadima na developere
Sažetak
Microsoft upozorava na kampanju sa zlonamernim Next.js repozitorijumima, često predstavljenim kao „take-home“ zadaci za posao, koji iskorišćavaju VS Code i build procese da automatski preuzmu i izvrše maliciozni JavaScript. Ovo je važno jer direktno pogađa developerske radne stanice i može dovesti do krađe izvornog koda, API tokena i cloud kredencijala, pa dodatno naglašava potrebu za oprezom pri otvaranju neproverenih projekata i označavanju workspace-a kao trusted.
Uvod: zašto je ovo važno
Developer radne stanice i build okruženja su mete visoke vrednosti jer često sadrže izvorni kod, materijale za potpisivanje i tajne (API tokeni, cloud kredencijali) u environment varijablama. Microsoft Defender Experts izveštava o kampanji koja seje zlonamerne Next.js repozitorijume—često upakovane kao „take-home“ zadaci povezani sa zapošljavanjem—dizajnirane da se uklope u uobičajene developer tokove rada i pouzdano pokrenu izvršavanje koda.
Šta je novo / ključni nalazi
Microsoft je uočio više povezanih repozitorijuma sa zajedničkim konvencijama imenovanja i ponovo korišćenom loader logikom. Iako se početni mamac razlikuje, krajnji rezultat je konzistentan: runtime preuzimanje i izvršavanje attacker-kontrolisanog JavaScript-a u memoriji, praćeno faznim C2.
1) Izvršavanje VS Code workspace-a pri otvaranju foldera
Neki repozitorijumi uključuju .vscode/tasks.json podešen sa runOn: "folderOpen". Ako developer otvori (i označi kao trusted) projekat, task se automatski pokreće i startuje Node skriptu koja preuzima JavaScript loader (primećeno da je staged na Vercel) i izvršava ga.
2) Izvršavanje u build fazi pri pokretanju aplikacije
Druge varijante se aktiviraju kada developer startuje projekat (na primer, npm run dev). Ovi repozitorijumi ubacuju zlonamernu logiku u naizgled normalne asset-e (npr. trojanizovani jquery.min.js). Asset dekodira base64 URL, preuzima loader (opet, često sa Vercel), i izvršava ga u memoriji.
3) Izvršavanje pri pokretanju backenda uz eksfiltraciju env varijabli + dinamički RCE
Treći put se aktivira tokom inicijalizacije servera/importa modula. Repozitorijumi mogu sadržati .env vrednost kao AUTH_API=<base64>. Pri pokretanju, backend kod dekodira endpoint, šalje process.env napadaču, a zatim izvršava vraćeni JavaScript koristeći dinamičku kompilaciju (npr. new Function("require", response.data)(require)). Ovo može da procure osetljivu konfiguraciju i omogućava operatoru da isporuči dodatne payload-ove.
Registracija u Stage 1 → fazni command-and-control
Kroz sve putanje, izvršavanje konvergira na inicijalnu „registrar“ fazu koja profiliše host i periodično kontaktira registration endpoint, dobijajući instanceId za korelaciju naknadne aktivnosti. Telemetrija je takođe zabeležila perzistentne callback-ove ka attacker-kontrolisanoj infrastrukturi (uključujući HTTP saobraćaj na portu 300) nakon inicijalnog staging-a.
Uticaj za IT administratore i security timove
- Povišen rizik na developer endpoint-ima: Otvaranje repozitorijuma može biti dovoljno za izvršavanje koda ako su workspace tasks označeni kao trusted.
- Izloženost kredencijala: Putanja pri pokretanju backenda može da eksfiltrira environment varijable (cloud ključevi, database kredencijali, CI tokeni).
- Teže otkrivanje: Izvršavanje u memoriji i fazni loader-i mogu smanjiti očigledne artefakte na disku.
Preporučene akcije / sledeći koraci
- Smernice za developere: „Take-home“ zadatke i nepoznate repozitorijume tretirati kao nepouzdane; izbegavati klik na „Trust“ u VS Code dok se ne uradi provera.
- Inspekcija repozitorijuma: Označiti/analizirati
.vscode/tasks.json(posebnorunOn: "folderOpen"), neočekivane Node skripte pod.vscode/i minifikovane biblioteke koje se ne poklapaju sa known-good hash-evima. - Higijena tajni: Smanjiti oslanjanje na dugovečne tajne u
.env; koristiti managed identities/short-lived tokene gde je moguće i rotirati sve izložene kredencijale. - Detekcija i kontrole: Nadzirati Node.js procese zbog neuobičajenih outbound konekcija (npr. dev alati koji pozivaju staging domene praćene nepoznatim C2), i razmotriti egress restrikcije sa developer uređaja i build agenata.
- Hunting: Pretražiti code hosting i interne mirror-e za „porodice“ imenovanja i obrasce strukturnog ponovnog korišćenja koje opisuje Microsoft (skoro identični repozitorijumi, slični loader-i, ponovljeni staging endpoint-i).
Trebate pomoć sa Security?
Naši stručnjaci mogu vam pomoći da implementirate i optimizujete vaša Microsoft rešenja.
Razgovarajte sa stručnjakomBudite u toku sa Microsoft tehnologijama