Infostealer-uri pentru Windows, macOS și Linux găsite în zece pachete pe npm

 Pachetele npm sunt disponibile din iulie, își deghizează elaborat rutinele malițioase și folosesc un CAPTCHA fals pentru a părea autentice.

Tastatură agățată

De la începutul lunii iulie, pachete care conțin cod malițios bine ascuns au fost disponibile în managerul de pachete JavaScript npm. Socket, o companie specializată în securitatea lanțului de aprovizionare software, a descoperit zece pachete cu un total de 9.900 de descărcări. Conform blogului Socket, acestea erau încă disponibile pe npm pe 28 octombrie, dar nu mai există.

Pachetele descarcă un program de tip „stealer” de informații adaptat sistemului de operare, care fură datele de autentificare pe Windows, macOS și Linux. Atacul este deghizat în mai multe moduri.

Atacatorii folosesc typosquatting pentru a distribui codul malițios: Pachetele npm au nume similare cu pachetele legitime, inclusiv typescriptjs în loc de TypeScript și dizcordjs în loc de discord.js. Socket a găsit următoarele pachete care conțin cod malițios: typescriptjs, deezcord.js, dizcordjs, dezcord.js, etherdjs, ethesjs, ethetsjs, nodemonjs, react-router-dom.js și zustand.js.

Rutina de instalare, situată în "postinstall"fișierul de configurare package.json, deschide o nouă fereastră de terminal în funcție de sistemul de operare, în care pornește apoi aplicația app.js folosind Node. Aceasta menține execuția ascunsă în fereastra principală.

Fișierul app.js obfuscă codul malițios folosind diverse metode, inclusiv codificarea URL-urilor și instrucțiuni switch cu calcule hexazecimale și octale:

// Control flow obfuscation makes it difficult to follow execution path
var kMvc = (0x75bcd15-0O726746425);  // Evaluates to 0
while(kMvc < (0o1000247%0x10023)) {  // Loop condition with mixed bases
  switch(kMvc) {
    case (0x75bcd15-0O726746425):  // Case 0
      kMvc = condition ? (262270%0o200031) : (0o204576-67939);
      break;
    case (0o203030-67070):  // Case 1
      // Actual logic here
      break;
  }
}

Comentariile din fragmentul de cod provin de la Socket. Pentru a părea autentic, malware-ul afișează un CAPTCHA ca artă ASCII înainte de a porni.

CAPTCHA fals

CAPTCHA-ul este pur și simplu o distragere a atenției.

(Imagine: Socket)

După introducerea oricărei secvențe de caractere – CAPTCHA este pur și simplu o distragere a atenției – codul malițios trimite adresa IP a sistemului țintă către un server al atacatorilor și descarcă un fișier binar care corespunde sistemului de operare determinat anterior.

Pentru a realiza acest lucru, malware-ul schimbă limbajul de programare la Python: Codul malițios se găsește în pachetul PyInstaller cu numele complet neascuns „data_extracter”. PyInstaller împachetează o aplicație Python cu toate dependențele sale într-un singur pachet și o execută pe sistemul țintă. PyInstaller este disponibil pentru Linux, Windows și macOS și nu necesită o instalare Python.

`data_extracter` caută în numeroase directoare și fișiere pentru acreditări, inclusiv directoare de date Firefox și Chromium, directoare de chei SSH și directoare de configurare, cum ar fi ~/.aws/credentials. Programul caută, de asemenea, chei API și alte acreditări în fișierele bazei de date SQLite și fișierele de configurare JSON.

Aplicația preia, de asemenea, date cookie din browser și examinează keyring-urile, în funcție de sistemul de operare. De asemenea, încearcă să captureze token-uri de autentificare. Acreditările colectate sunt apoi împachetate de data_extractor într-un fișier ZIP, pe care îl trimite în cele din urmă către serverul unui atacator.

Oricine a instalat unul dintre pachetele menționate anterior trebuie să presupună că atacatorii le-au interceptat datele. Chiar dacă pachetele găsite nu mai sunt disponibile, acestea circulau de peste trei luni și, din cauza tehnicilor sofisticate de ofuscare utilizate, alte pachete ar putea fi afectate de o variantă a atacului.

Mai multe detalii despre pachetele afectate, infrastructura rețelei și tehnicile MITRE ATT&CK utilizate pot fi găsite în blogul Socket .

Comentarii

Postări populare de pe acest blog

10 site-uri gratuite de streaming de filme fără cerințe de înregistrare

De ce nu mai recomand această distribuție Linux asemănătoare Windows

Review Redcore Linux - scris de Cristian Burneci