A fost publicat un analizor care a identificat 200 de pachete rău intenționate în NPM și PyPI

OpenSSF (Open Source Security Foundation), formată din Fundația Linux și care vizează îmbunătățirea securității software-ului open source, a introdus proiectul deschis Package Analysis, care dezvoltă un sistem de analiză a prezenței codului rău intenționat în pachete. Codul proiectului este scris în Go și distribuit sub licența Apache 2.0. O scanare preliminară a depozitelor NPM și PyPI folosind instrumentele propuse ne-a permis să identificăm mai mult de 200 de pachete rău intenționate nedetectate anterior.

Cea mai mare parte a pachetelor problematice identificate manipulează intersecția numelor cu dependențele interne non-publice ale proiectelor (atac de confuzie de dependență) sau utilizează metode de typosquatting (atribuirea de nume similare cu numele bibliotecilor populare) și, de asemenea, apelează script-uri care accesează gazde externe în timpul procesul de instalare. Potrivit dezvoltatorilor Package Analysis, cele mai multe dintre pachetele problematice identificate au fost cel mai probabil create de cercetătorii de securitate care participă la programele de recompense pentru erori, deoarece datele trimise sunt limitate la numele utilizatorului și a sistemului, iar acțiunile sunt efectuate în mod explicit, fără încercări de a ascunde comportamentul lor.

Pachetele cu activitate rău intenționată includ:

  • Pachetul PyPI discordcmd, care înregistrează trimiterea solicitărilor atipice către raw.githubusercontent.com, Discord API și ipinfo.io. Pachetul specificat a descărcat codul backdoor de pe GitHub și l-a instalat în directorul clientului Discord Windows, după care a început procesul de căutare a token-urilor Discord în sistemul de fișiere și de a le trimite către un server Discord extern controlat de atacatori.
  • Pachetul colorsss NPM a încercat, de asemenea, să trimită jetoane dintr-un cont Discord către un server extern.
  • Pachetul NPM @roku-web-core/ajax - în timpul procesului de instalare a trimis date despre sistem și a lansat un handler (reverse shell) care a acceptat conexiuni externe și a lansat comenzi.
  • Pachetul PyPI secrevthree - a lansat un shell invers la importul unui anumit modul.
  • Pachetul NPM random-vouchercode-generator - după importarea bibliotecii, a trimis o solicitare către un server extern, care a returnat comanda și ora la care ar trebui să fie rulată.

Activitatea Analizei pachetelor se reduce la analiza pachetelor de cod din codul sursă pentru stabilirea conexiunilor la rețea, accesarea fișierelor și rularea comenzilor. În plus, schimbările în starea pachetelor sunt monitorizate pentru a determina adăugarea de inserții rău intenționate într-una dintre versiunile de software inițial inofensiv. Pentru a monitoriza apariția pachetelor noi în depozite și pentru a face modificări la pachetele postate anterior, se folosește setul de instrumente Package Feeds, care unifică munca cu depozitele NPM, PyPI, Go, RubyGems, Packagist, NuGet și Crate.

Analiza pachetului include trei componente de bază care pot fi utilizate atât împreună, cât și separat:

  • Scheduler pentru lansarea lucrărilor de analiză a pachetelor pe baza datelor din pachete Feed-uri.
  • Un analizor care examinează direct un pachet și evaluează comportamentul acestuia utilizând tehnici de analiză statică și de urmărire dinamică. Testul se efectuează într-un mediu izolat.
  • Un încărcător care plasează rezultatele testului în stocarea BigQuery.

Sursa: opennet.ru

Adauga un comentariu