Descoperirea provine de la cercetători în securitate cibernetică care au identificat un pachet npm malițios numit fezbox, publicat pe npmjs.com, ce folosește coduri QR ascunse pentru a descărca un payload care fură cookie-uri și alte date sensibile de pe sistemul compromis. Pachetul, prezentat ca o bibliotecă utilă pentru dezvoltatori JavaScript/Node.js, a fost retras din registru după ce înregistrase cel puțin 327 de descărcări. Metoda folosește combinații între concepte vechi de steganografie și tehnici moderne de evitare a detecției, ilustrând modul în care atacatorii pot transforma unelte banale în vectori de atac.
Codul malițios din fezbox este ascuns în fișierul dist/fezbox.cjs (versiunea analizată 1.3.0). Autorii l-au minificat și camuflat astfel încât, la o primă vedere, să pară inofensiv. Analiza arată că pachetul verifică dacă rulează într-un mediu de dezvoltare și, dacă nu detectează acest lucru, așteaptă 120 de secunde înainte de a trece la etapa următoare. Această practică este frecventă la atacatori care nu vor ca codul lor să fie rulat într-un sandbox sau într-un laborator de analiză automatizat. Pentru a complica și mai mult detectarea, URL-ul care conduce la etapa următoare este stocat în cod scris invers, astfel încât scanerele statice să nu-l identifice imediat ca link.
De la acel URL se descarcă o imagine JPG ce conține un cod QR. Spre deosebire de codurile QR utilizate în marketing, acesta era foarte dens și dificil de citit cu o cameră de telefon obișnuită. Ideea este simplă, dar inteligentă: pachetul decodează codul QR din imagine și execută codul obfuscat găzduit acolo. În testele publicate, linkul inversat din cod a condus către o adresă de tip hxxps://res.cloudinary.com/…/b52c81c1767…_h7f6pn.jpg. Pentru a evita dezvăluirea directă a linkului, versiunea oficială îl prezintă cu secțiuni înlocuite, dar, în esență, este o imagine publică care conține payload-ul.
Payload-ul obfuscat citește document.cookie pentru a colecta cookie-urile disponibile și parsează din ele username-ul și parola, folosind din nou trucuri de ascundere precum inversarea șirurilor de caractere (drowssap = password). Dacă găsește atât username, cât și password, transmite datele printr-o cerere HTTPS POST către o adresă de tip https://my-nest-app-production.up.railway.app/users. În lipsa acestor informații, nu întreprinde nicio acțiune și se oprește discret. Această abordare transformă codul QR dintr-un simplu container vizual într-un canal de comandă și control care, din perspectiva unui proxy sau a unui filtru de rețea, pare doar trafic de imagine către Cloudinary sau un alt serviciu legitim.
Folosirea codurilor QR în escrocherii nu este nouă, de la sondaje false la bilete de parcare contrafăcute, , însă majoritatea scenariilor au presupus implicarea umană, adică cineva scanează și este redirecționat către un site de phishing. Noua metodă arată că un atacator poate elimina componenta umană și poate transforma o imagine într-un mijloc automatizat de livrare a codului malițios și de exfiltrare a datelor, ceea ce îngreunează mult detectarea, mai ales când traficul pare doar o descărcare de media. Metoda reprezintă o variantă modernă a steganografiei: în loc să ascunzi cod în metadatele unei imagini, îl inserezi sub forma unui cod QR dens care conține instrucțiuni lizibile doar pentru acel pachet malițios.
Câteva concluzii practice reies din această descoperire: npm rămâne o țintă pentru pachete troianizate care se prezintă ca utilitare legitime; pachetele pot include mecanisme de evitare a sandbox-ului; și canale aparent banale, servicii de hosting imagini, coduri QR, pot fi folosite pentru livrarea de payload-uri. Registrul npm a eliminat pachetul după raportare, dar existaseră deja sute de descărcări. Cercetări precum cea a echipei Socket subliniază importanța verificării semnăturilor pachetelor, auditului codului terț și reglementărilor de securitate în lanțul de aprovizionare software, ținând cont că actorii malițioși caută constant noi metode de a ocoli controalele automate.
fezbox demonstrează cât de inventivi pot fi atacatorii când combină tehnologii vechi, cum sunt codurile QR, cu infrastructuri moderne de hosting. Rămâne esențială verificarea atentă a dependențelor (versiuni, autori, semnături) și monitorizarea traficului de ieșire către domenii neobișnuite. Care ți se pare cea mai eficientă măsură de protecție pe care ai putea să o aplici în proiectele tale?
Fii primul care comentează