Objavljen analizator, otkrivajući 200 zlonamjernih paketa u NPM i PyPI

OpenSSF (Open Source Security Foundation), koju je formirala Linux fondacija i koja ima za cilj poboljšanje sigurnosti softvera otvorenog koda, uvela je otvoreni projekat Package Analysis, koji razvija sistem za analizu prisustva zlonamjernog koda u paketima. Kod projekta je napisan u Go i distribuiran pod licencom Apache 2.0. Preliminarno skeniranje NPM i PyPI spremišta pomoću predloženih alata omogućilo nam je da identificiramo više od 200 ranije neotkrivenih zlonamjernih paketa.

Većina identifikovanih problematičnih paketa manipuliše presekom imena sa internim nejavnim zavisnostima projekata (napad konfuzije zavisnosti) ili koristi metode tipskanja (dodeljivanje imena sličnih imenima popularnih biblioteka), a takođe poziva skripte koje pristupaju spoljnim hostovima tokom proces instalacije. Prema programerima Package Analysis, većinu identifikovanih problematičnih paketa najvjerovatnije su kreirali istraživači sigurnosti koji učestvuju u programima bug bounty, budući da su podaci koji se šalju ograničeni na ime korisnika i sistema, a radnje se izvode eksplicitno, bez pokušaja da se sakriju svoje ponašanje.

Paketi sa zlonamjernom aktivnošću uključuju:

  • PyPI paket discordcmd, koji bilježi slanje netipičnih zahtjeva na raw.githubusercontent.com, Discord API i ipinfo.io. Navedeni paket je preuzeo backdoor kod sa GitHub-a i instalirao ga u Discord Windows klijentski direktorij, nakon čega je započeo proces traženja Discord tokena u sistemu datoteka i slanja na eksterni Discord server koji kontrolišu napadači.
  • Colorss NPM paket je takođe pokušao da pošalje tokene sa Discord naloga na eksterni server.
  • NPM paket @roku-web-core/ajax - tokom procesa instalacije poslao je podatke o sistemu i pokrenuo rukovalac (obrnutu ljusku) koji prihvata eksterne veze i pokreće komande.
  • PyPI paket secrevthree - pokrenuo obrnutu ljusku prilikom uvoza određenog modula.
  • NPM paket random-vouchercode-generator - nakon uvoza biblioteke, poslao je zahtjev vanjskom serveru, koji je vratio naredbu i vrijeme u kojem bi se trebala pokrenuti.

Rad analize paketa svodi se na analizu paketa koda u izvornom kodu za uspostavljanje mrežnih veza, pristupanje datotekama i pokretanje komandi. Osim toga, prate se promjene u stanju paketa kako bi se utvrdilo dodavanje zlonamjernih umetanja u jednom od izdanja inicijalno bezopasnog softvera. Za praćenje pojavljivanja novih paketa u repozitorijumima i unošenje izmena u prethodno objavljene pakete, koristi se paket alata Package Feeds, koji objedinjuje rad sa NPM, PyPI, Go, RubyGems, Packagist, NuGet i Crate repozitorijumima.

Analiza paketa uključuje tri osnovne komponente koje se mogu koristiti i zajedno i odvojeno:

  • Planer za pokretanje rada analize paketa na osnovu podataka iz paketa.
  • Analizator koji direktno ispituje paket i procjenjuje njegovo ponašanje koristeći tehnike statičke analize i dinamičkog praćenja. Test se izvodi u izolovanom okruženju.
  • Učitavač koji stavlja rezultate testa u BigQuery skladište.

izvor: opennet.ru

Dodajte komentar