Objavljen je bil analizator, ki je identificiral 200 zlonamernih paketov v NPM in PyPI

OpenSSF (Open Source Security Foundation), ki ga je ustanovila Linux Foundation in je namenjena izboljšanju varnosti odprtokodne programske opreme, je predstavila odprti projekt Package Analysis, ki razvija sistem za analizo prisotnosti zlonamerne kode v paketih. Projektna koda je napisana v Go in se distribuira pod licenco Apache 2.0. Predhodni pregled repozitorijev NPM in PyPI z uporabo predlaganih orodij nam je omogočil identifikacijo več kot 200 prej neodkritih zlonamernih paketov.

Večina ugotovljenih problematičnih paketov manipulira s presečiščem imen z notranjimi nejavnimi odvisnostmi projektov (napad zmede odvisnosti) ali uporablja metode typosquatting (dodeljevanje imen, podobnih imenom priljubljenih knjižnic), in tudi kliče skripte, ki dostopajo do zunanjih gostiteljev med postopek namestitve. Po mnenju razvijalcev Package Analysis so večino identificiranih problematičnih paketov najverjetneje ustvarili varnostni raziskovalci, ki sodelujejo v programih za nagrajevanje hroščev, saj so poslani podatki omejeni na uporabniško in sistemsko ime, dejanja pa se izvajajo izrecno, brez poskusov skrivajo svoje vedenje.

Paketi z zlonamerno dejavnostjo vključujejo:

  • PyPI paket discordcmd, ki beleži pošiljanje netipičnih zahtev na raw.githubusercontent.com, Discord API in ipinfo.io. Navedeni paket je prenesel backdoor kodo iz GitHuba in jo namestil v imenik odjemalca Discord Windows, nato pa je začel postopek iskanja žetonov Discord v datotečnem sistemu in jih poslal na zunanji strežnik Discord, ki ga nadzirajo napadalci.
  • Paket colorsss NPM je prav tako poskušal poslati žetone iz računa Discord na zunanji strežnik.
  • NPM paket @roku-web-core/ajax - med postopkom namestitve je poslal podatke o sistemu in zagnal upravljalnik (obratna lupina), ki je sprejel zunanje povezave in zagnal ukaze.
  • PyPI paket secrevthree - zagnal obratno lupino pri uvozu določenega modula.
  • NPM paket random-vouchercode-generator - po uvozu knjižnice je poslal zahtevo zunanjemu strežniku, ki je vrnil ukaz in čas, ko naj se zažene.

Delo analize paketov se zmanjša na analizo paketov kode v izvorni kodi za vzpostavitev omrežnih povezav, dostop do datotek in izvajanje ukazov. Poleg tega se spremljajo spremembe v stanju paketov, da se ugotovi dodajanje zlonamernih vstavkov v eno od izdaj prvotno neškodljive programske opreme. Za spremljanje pojavljanja novih paketov v repozitorijih in spreminjanje že objavljenih paketov se uporablja paket orodij Package Feeds, ki poenoti delo z repozitoriji NPM, PyPI, Go, RubyGems, Packagist, NuGet in Crate.

Analiza paketa vključuje tri osnovne komponente, ki jih je mogoče uporabiti skupaj in ločeno:

  • Razporejevalnik za zagon analize paketov na podlagi podatkov iz virov paketov.
  • Analizator, ki neposredno pregleda paket in oceni njegovo obnašanje z uporabo statične analize in tehnik dinamičnega sledenja. Test se izvaja v izoliranem okolju.
  • Nalagalnik, ki postavi rezultate testa v shrambo BigQuery.

Vir: opennet.ru

Dodaj komentar