Majoritatea programelor de furt de date merg pe evident: parole salvate, cookie-uri de browser, fișiere de portofel de criptomonede. Ăsta le sare pe toate.
Ce ia în schimb e conținutul stocării extensiilor Chrome — fiecare fișier lizibil și nevid din directorul Local Extension Settings, urcat în întregime. E un depozit brut de tip cheie-valoare LevelDB și acolo își ține starea fiecare extensie pe care o ai instalată.
Pachetele
OpenSourceMalware a documentat un grup de treisprezece pachete npm care livrează un stealer JavaScript nedocumentat până acum, numit de ei WeaselBiscuit. Caută în fișierele de blocare:
@biz44/id10-client engin1 @biz44/id12-client id79-client @biz44/id44-client process-lhpm @biz44/id79-client process-mite @biz44/id95-client process-tailwind @biz44/id99-client @biz44/process-runtime-utils @biz44/runtime-utils
Observă denumirile. process-tailwind, process-mite, process-lhpm, runtime-utils — sună a pachete utilitare interne pe care le-ar fi publicat un coleg, nu a tipografieri ale unor biblioteci celebre. Analiza de cluster a cercetătorilor leagă nouăsprezece noduri prin hash-uri de fișiere comune, URL-uri comune de depunere și un server de comandă comun, cu process-tailwind în centru.
Cum rulează
1 Pachetul e importat 2 loader.js aduce payload-ul principal dintr-o depunere Npoint 3 Payload-ul e evaluat direct in memorie — nu se scrie nimic pe disc 4 Un al doilea URL Npoint furnizeaza configuratia de comanda si control 5 Gazda e profilata, iar stocarea extensiilor e recoltata, pe Windows, macOS si Linux 6 Implantul interogheaza 103.170.217[.]184:8787 pentru comenzi, care pe Windows pot include jurnalizarea clipboardului si captarea tastelor
Declanșatorul e un import obișnuit. Fără script de instalare, fără hook post-install, fără vreun fișier de scanat.
Ce nu face, deliberat
Fără acces la distanță. Fără persistență. Fără cod de golire a portofelelor. Fără capacitatea de a aduce un payload secundar.
Predecesoarele lui din aceeași familie le au pe toate. La WeaselBiscuit au fost scoase, iar asta e decizia de proiectare care merită observată. Fiecare capabilitate e o suprafață de detecție și o bucată de cod de întreținut. Ăsta face o singură treabă, în memorie, și pleacă.
Formularea cercetătorilor prinde ideea: o nevăstuică e mai mică decât o vidră, iar biscuiții sunt mai puțin pretențioși decât fursecurile. Numele e o glumă; tendința pe care o descrie nu e.
De ce stocarea extensiilor e ținta inteligentă
Întreabă majoritatea oamenilor unde stau credențialele pe calculatorul lor și o să auzi de managerul de parole, de autentificările salvate în browser, poate de .ssh și .aws. Nimeni nu spune „directorul de stocare al extensiilor".
Dar acolo își țin extensiile tot ce dețin:
- Extensiile de portofel de criptomonede își țin acolo starea de semnare
- Extensiile de manager de parole țin metadate de seif și stare de sesiune
- Extensiile pentru dezvoltatori țin token-uri API pentru serviciile la care se conectează
- Extensiile de autentificare țin seed-uri
- Orice are autentificare își ține sesiunea
Un stealer care ia stocarea extensiilor nu are nevoie să spargă criptarea unui portofel sau seiful unui manager de parole. Ia ce a decis extensia însăși să lase pe disc și lasă operatorul să sorteze mai târziu.
Cercetătorii au fost direcți în privința economiei: nu are funcțiile de portofel ale fraților lui mai mari, dar stocarea extensiilor e relevantă financiar în sine, pentru că poate expune starea unei extensii de portofel sau alte date sensibile ținute de extensii.
Pentru o organizație, consecința practică e că inventarul extensiilor de browser face acum parte din inventarul de credențiale. Majoritatea companiilor nu au niciunul dintre ele.
Despre atribuire, cercetătorii au fost prudenți și suntem și noi
Povestea evidentă de aici e Coreea de Nord. WeaselBiscuit împrumută funcții din BeaverTail și OtterCookie, ambele legate de campania Contagious Interview a RPDC împotriva dezvoltatorilor și a utilizatorilor de criptomonede. Semnalele de susținere există: folosirea Npoint.io ca punct de depunere, semnalată de NVISO în legătură cu acea campanie în noiembrie 2025; interogări imbricate de IP public și geolocalizare prin api.ipify.org și ip-api.com; arhitectură de comandă și control care se suprapune cu OtterCookie; și identificatori numerici de campanie care marchează fiecare instalare, potrivindu-se cu un tipar cunoscut.
OpenSourceMalware spune limpede că, în ciuda suprapunerii semnificative, nu există dovezi definitive — în infrastructura operatorilor, în victimologie, în metadatele campaniei sau în materialul de semnare — care să atribuie asta concludent Coreei de Nord.
Repetăm asta pentru că un titlu care ar spune „malware nord-coreean" ar circula mai departe și ar fi o afirmație pe care cei care au făcut munca au refuzat s-o facă. Similitudinea funcțională nu e atribuire. Dacă se va dovedi corectă, va fi pentru că cineva a produs dovezi, nu pentru că a rimat codul.
Punctul de depunere, din nou
Payload-ul e adus de pe Npoint.io, un serviciu ușor de găzduire JSON. Geolocalizarea vine de la api.ipify.org și ip-api.com.
E a cincea oară luna asta când scriem despre malware care își rutează traficul cel mai sensibil printr-un serviciu pe care nu-l blochează nimeni. Un implant care își modelează traficul de comandă ca NTP. O platformă de phishing pe proxy-uri rezidențiale. O campanie de scanare din intervalele Google Cloud. Un backdoor care folosește API-ul REST GitHub. Acum, un serviciu de stocare JSON și două API-uri de căutare a IP-ului.
Tiparul e destul de stabil cât să planifici în jurul lui: atacatorii nu își ascund traficul, îl plasează unde nu ajunge inspecția. Ceea ce înseamnă că detecția trebuie să se mute de la destinație la comportament — cine se conectează, cât de des și dacă acea mașină are vreun motiv să o facă.
Ce ai de făcut
- Caută cele treisprezece nume de pachete în fișierele de blocare și în registre.
package-lock.json,yarn.lock,pnpm-lock.yamlși orice proxy sau oglindă internă. Fă-o în toate repository-urile, nu doar în cele active. - Dacă găsești unul, tratează situația ca incident de credențiale. Execuția în memorie înseamnă că s-ar putea să nu existe nimic pe disc de găsit. Rotește ce putea atinge acea mașină și inventariază extensiile de browser instalate pe ea.
- Începe un inventar de extensii pe stațiile dezvoltatorilor. Ce extensii, la ce utilizatori, care dintre ele dețin token-uri sau stare de portofel. E elementul pe care majoritatea organizațiilor nu îl au și care va dura cel mai mult de construit.
- Monitorizează traficul de ieșire către
npoint.iode la agenții de build și de la stațiile dezvoltatorilor. E un serviciu legitim, cu foarte puține utilizări legitime într-un pipeline de build. - Revizuiește cum intră pachetele în proiectele voastre. Un nume ca
process-tailwindtrece de o revizuire superficială exact pentru că nu arată a tipografiere. Lista de scopuri permise, sau cerința de revizuire pentru dependențe directe noi, e controlul care prinde categoria asta.
E al treilea articol din luna asta în care ținta au fost stațiile dezvoltatorilor, nu serverele — după serverele Vite expuse care pierdeau credențiale de cloud și după evadarea din Docker Sandboxes. Tiparul merită spus încă o dată: mediile de dezvoltare dețin cheile de producție și sunt guvernate ca medii de dezvoltare.
4Tify analizează expunerea stațiilor de dezvoltare și a lanțului de aprovizionare, inclusiv inventarele de dependențe și de extensii pe care nu le întreține nimeni. Dacă vrei o evaluare, scrie-ne.
