Kibervédelmi kutatók egy új typosquatting kampányra figyelmeztetnek, amely RubyGems felhasználókat céloz egy Windows-alapú adatlopó kártevővel.
Az OpenSourceMalware, amely augusztus 15-én azonosította a tevékenységet, StubMaker néven követi a fenyegetést. A kampány részeként közzétett csomagok teljes listája a következő:
- ubnuler
- ubnlder
- ri18nr
- reaker
- rakier
- orakw
- joxn
- ise18n
- ioe18n
- ie18u
- iai8n
- i1l8n
- i18om
- activesupmport
- brumdler
- brundlef
„Ez az új kártevő böngészőben tárolt hitelesítő adatokat, kriptotárcákat, seed phrase-eket és Telegram-adatokat gyűjt” – mondta Paul McCarty (6mile), biztonsági kutató. „Az összes rosszindulatú RubyGems csomag népszerű Ruby függőségek elgépelt neveire épít, de ahelyett, hogy kifinomult, SEO-val megtámogatott typosquatok lennének, amilyeneket más támadóktól láttunk (például az events-channel, amely a népszerű Node.js events modult utánozta), most ügyetlen elgépelésekről van szó.”
A 16 gemet „mod8rz41mje” (más néven Riley Miller) és „rbq95bwt6q” (más néven Alex Davis) nevű felhasználók tették közzé. A cikk írásakor ezeket a csomagokat már eltávolították a RubyGemsből.
Legalább két esetben – a brumdler és a brundlef esetében – a támadó kihasznált egy ismert RubyGems viselkedést: ha egy gem minden verzióját eltávolítják, a névteret bárki újra lefoglalhatja. Mindkét csomagot eredetileg a „gemlewqqhu1” (más néven Taylor Moore) publikálta, mielőtt a két említett fiók visszafoglalta volna őket.
Jenn Gile, az OpenSourceMalware társalapítója a The Hacker Newsnak elmondta, hogy bár a kampányt viszonylag korán sikerült megakasztani, Ruby „rossz tervezési döntései” – a csomagnevek újrahasznosítása és a nem ellenőrzött szerző mező – miatt így is hatékonyabbá vált.
„Amikor az egyik rosszindulatú gemet eltávolították, a támadó létrehozott egy új tulajdonosi fiókot, és ugyanazon a csomagnéven új, rosszindulatú verziót publikált” – mondta Gile. „Ami végleg halottnak tűnt, azt újraélesztették, hogy még több embert kompromittáljanak.”
„A támadó minden gemhez más-más ‘Author’ nevet adott, hogy úgy tűnjön, nincs kapcsolat köztük, noha mind ugyanabból a tulajdonosi fiókból származott. Ezt az teszi lehetővé, hogy az Author mező teljesen ellenőrizetlen, sima szöveg. Nem kell egyeznie a tulajdonossal vagy bármi mással.”
A támadási lánc magas szinten egy „extconf.rb” hookot használ, hogy elindítsa a végrehajtást. Hasonlóan az npm lifecycle hookjaihoz, az „extconf.rb” automatikusan lefut, amikor a felhasználó telepít egy gemet. A fájlt jellemzően arra használják, hogy beállítsák a C-ben, C++-ben vagy Rust-ben írt natív kiterjesztéseket, amelyeket a Ruby csomag „ext/” könyvtárában helyeznek el, és a gem telepítésekor fordítanak le.
A StubMaker esetében a Ruby hook egyfajta átjáróként működik: letölt egy 22 MB-os, Rust-alapú loadert egy GitHub kiadásból, amely aztán elindítja a beleágyazott, Go-alapú adatlopó („wincfg”) kártevőt. A GitHub fiók („GitHub[.]com/bebraz1”) már nem érhető el.
Az adatlopó egy „abe_payload.dll” nevű DLL-t is tartalmaz, amelyet arra használnak, hogy megszerezze a Chromium-alapú böngészők (Google Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi, Yandex, Avast, AVG és CCleaner Browser) hitelesítő adatait, megkerülve a Google által bevezetett app-bound encryption (ABE) védelmet.
Ezen felül begyűjti a böngészőbővítmények adatait, a böngészési előzményeket és a bankkártyaszámokat; kriptotárcákat és seed phrase-eket keres; kinyeri a Telegram Desktop adatait; rendszertájékoztató adatokat gyűjt; valamint külső kérést küld az „api.ipify[.]org” címre, hogy megszerezze az áldozat nyilvános IP-címét.
Miután összegyűjtötte a releváns adatokat, jelszóval védett ZIP archívumba csomagolja, feltölti a Gofile-ra, majd az így kapott letöltési linket titkosítatlan HTTP kapcsolaton keresztül elküldi a támadónak („dresslee.com”).
„A StubMaker valójában nem fordít le semmit – egy Makefile-t generál, amelyben az all, install és clean célok üresek, valamint Unix- és Windows-stub scripteket, amelyek nem csinálnak mást, csak sikerrel térnek vissza. Így a kiterjesztés fázis tiszta buildet jelez, miközben a valódi munka (a platform beacon, a Windows loader letöltése és futtatása) magában az installer hookban zajlik” – magyarázta McCarty.
„A név pontosan erre a trükkre utal: egy hamis build toolchain gyártására, amelytől a rosszindulatú telepítés rutinszerűnek tűnik, ahelyett, hogy csak egy újabb typosquatted RubyGems csomagot írna le.”
A közzététel egybeesik két, a szoftver-ellátási láncot célzó kampány felfedezésével, amelyek az npm-et támadják –
- A 21 npm csomagból álló csoport, amely a Google scoped csomagjai által létrehozott CLI binárisnevek typosquattingjával egy minimális postinstall beacont juttat célba. „A csomagok nem csomagneveket foglaltak el” – közölte a SafeDep. „A bin mezőt vették célba, a package.json azon részét, amely a futtatható parancsneveket határozza meg. Minden scoped csomag, amely bin bejegyzést deklarál, létrehoz egy unscoped nevet, amit bárki regisztrálhat. A szokásos dependency confusion elleni védekezések (scoped publikálás, registry allowlisták, lockfile rögzítés) egyike sem fedi le ezt a rést.”
- Egy Baileys npm forkokból álló csoport, amelyek többféle rosszindulatú tevékenységet végeznek: észrevétlenül feliratkoztatják a telepítő WhatsApp-fiókját a csomag szerzője által kezelt csatornákra, és a szerző hirdetési URL-jét szúrják be minden képbe és videóba, amit a bot elküld.
„Az npm registry folyamatos monitorozása 4250 olyan csomagnevet mutat, amely tartalmazza a baileys szót, és további 112-t, amelyben szerepel a libsignal-node” – mondta a SafeDep, hozzátéve, hogy 70, Baileysre épülő csomagnév 343 verziójában és 15 libsignal-node utánzó 38 verziójában figyeltek meg rosszindulatú viselkedést.

