Rosszindulatú rustdecimal csomagot észleltünk a Rust repository crates.io-ban

A Rust nyelv fejlesztői arra figyelmeztettek, hogy egy rosszindulatú kódot tartalmazó rustdecimális csomagot azonosítottak a crates.io tárolóban. A csomag a legitim rust_decimal csomagon alapult, és a névbeli hasonlóság (typesquatting) felhasználásával terjesztették, azzal az elvárással, hogy a felhasználó ne vegye észre az aláhúzás hiányát, amikor keres vagy kiválaszt egy modult a listából.

Figyelemre méltó, hogy ez a stratégia sikeresnek bizonyult, és a letöltések számát tekintve a fiktív csomag alig maradt el az eredetitől (~111 ezer letöltés a rustdecimal 1.23.1-ből és 113 ezer letöltés az eredeti rust_decimal 1.23.1-ből) . Ugyanakkor a letöltések többsége egy ártalmatlan klón volt, amely nem tartalmazott rosszindulatú kódot. A rosszindulatú módosításokat március 25-én adták hozzá a rustdecimal 1.23.5-ös verzióhoz, amelyet körülbelül 500-szor töltöttek le a probléma azonosítása és a csomag blokkolása előtt (feltehetően a rosszindulatú verzió legtöbb letöltését botok végezték), és nem használták a tárolóban lévő más csomagoktól való függőségként (lehetséges, hogy a rosszindulatú csomag a végalkalmazásoktól függött).

A rosszindulatú változtatások egy új funkció, a Decimal::new hozzáadását jelentették, amelynek megvalósítása obfuszkált kódot tartalmazott a külső szerverről történő letöltéshez és egy futtatható fájl elindításához. A függvény meghívásakor a GITLAB_CI környezeti változót ellenőriztük, és ha beállítottuk, akkor a /tmp/git-updater.bin fájl letöltődött a külső szerverről. A letölthető rosszindulatú kezelő támogatta a munkát Linuxon és macOS-en (a Windows platform nem támogatott).

Feltételezték, hogy a rosszindulatú funkció a folyamatos integrációs rendszereken végzett tesztelés során kerül végrehajtásra. A rustdecimal blokkolása után a crates.io adminisztrátorai elemezték a lerakat tartalmát hasonló rosszindulatú beillesztések keresésére, de nem azonosítottak problémákat más csomagokban. A GitLab platformon alapuló folyamatos integrációs rendszerek tulajdonosainak azt tanácsolják, hogy a szervereiken tesztelt projektek ne használják a rustdecimális csomagot függőségeikben.

Forrás: opennet.ru

Hozzászólás