Kiadtak egy elemzőt, amely 200 rosszindulatú csomagot azonosított az NPM-ben és a PyPI-ben

A Linux Foundation által létrehozott OpenSSF (Open Source Security Foundation), amelynek célja a nyílt forráskódú szoftverek biztonságának javítása, bemutatta a nyílt forrású Package Analysis projektet, amely a rosszindulatú kódok csomagokban való jelenlétének elemzésére fejleszt rendszert. A projekt kódja Go nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre. Az NPM- és PyPI-tárolók előzetes vizsgálata a javasolt eszközökkel lehetővé tette számunkra, hogy azonosítsunk több mint 200 korábban nem észlelt rosszindulatú csomagot.

Az azonosított problémás csomagok nagy része manipulálja a nevek metszéspontját a projektek belső, nem nyilvános függőségeivel (függőségi zavaros támadás), vagy typosquatting módszereket használ (a népszerű könyvtárak nevéhez hasonló neveket rendel), valamint olyan szkripteket hív meg, amelyek külső gazdagépekhez férnek hozzá a telepítési folyamat. A Package Analysis fejlesztői szerint a legtöbb azonosított problémás csomagot nagy valószínűséggel bug bounty programokban részt vevő biztonsági kutatók hozták létre, mivel az elküldött adatok a felhasználó és a rendszer nevére korlátozódnak, és a műveleteket kifejezetten, anélkül hajtják végre, elrejteni viselkedésüket.

A rosszindulatú tevékenységet tartalmazó csomagok a következők:

  • PyPI-csomag discordcmd, amely rögzíti az atipikus kérések elküldését a raw.githubusercontent.com, a Discord API és az ipinfo.io címre. A megadott csomag letöltötte a GitHubról a backdoor kódot és telepítette a Discord Windows kliens könyvtárába, majd elindította azt a folyamatot, hogy a fájlrendszerben megkeresse a Discord tokenekeket és elküldje azokat a támadók által irányított külső Discord szerverre.
  • A colorss NPM csomag is megpróbált tokeneket küldeni egy Discord fiókból egy külső szerverre.
  • NPM csomag @roku-web-core/ajax - a telepítési folyamat során adatokat küldött a rendszerről, és elindított egy kezelőt (reverse shell), amely elfogadta a külső kapcsolatokat és elindította a parancsokat.
  • Secrevthree PyPI csomag – egy adott modul importálásakor egy fordított shellt indított el.
  • NPM csomag random-vouchercode-generator - a könyvtár importálása után kérést küldött egy külső szervernek, amely visszaadta a parancsot és a futtatás időpontját.

A Package Analysis munkája a forráskódban található kódcsomagok elemzésében rejlik a hálózati kapcsolatok létrehozásához, a fájlok eléréséhez és a parancsok futtatásához. Ezen túlmenően a csomagok állapotában bekövetkezett változásokat figyelik annak megállapítására, hogy a kezdetben ártalmatlan szoftverek valamelyik kiadásában nem kerültek-e be rosszindulatú beillesztések. Az új csomagok lerakatokban való megjelenésének figyelésére és a korábban közzétett csomagok módosítására a Package Feeds eszközkészletet használják, amely egyesíti a munkát az NPM, PyPI, Go, RubyGems, Packagist, NuGet és Crate tárolókkal.

A csomagelemzés három alapvető összetevőt tartalmaz, amelyek együtt és külön-külön is használhatók:

  • Ütemező a csomagelemzési munka elindításához a Package Feeds adatai alapján.
  • Egy elemző, amely közvetlenül megvizsgál egy csomagot, és statikus elemzéssel és dinamikus nyomkövetési technikákkal értékeli annak viselkedését. A vizsgálatot elszigetelt környezetben végzik.
  • Betöltő, amely a teszteredményeket a BigQuery tárolóba helyezi.

Forrás: opennet.ru

Hozzászólás