A JFrog kutatói a Hugging Face tárolójában kártevő gépi tanulási modelleket azonosítottak, amelyek telepítése támadói kód futtatásához vezethet, így lehetőséget biztosítva a felhasználói rendszer feletti ellenőrzés megszerzésére. A probléma azzal magyarázható, hogy egyes modellterjesztési formátumok lehetővé teszik a végrehajtható kód beágyazását, például a «pickle» formátumot használó modellek szerializált Python objektumokat tartalmazhatnak, valamint kódot futtathatnak a fájl betöltésekor, míg a Tensorflow Keras modellek a Lambda Layer-en keresztül is végrehajthatnak kódot.
A Hugging Face védelme érdekében a kártevő modellek elterjedésének megakadályozására ellenőrzi a beágyazott szerializált kódot, de a felfedezett kártevő modellek azt mutatják, hogy a meglévő ellenőrzések megkerülhetők. Ezen kívül a Hugging Face a legtöbb esetben csak megjelöli a modelleket veszélyesnek, anélkül, hogy blokkolná a hozzáférést. Összesen körülbelül 100 potenciálisan kártevő modellt azonosítottak, amelyből a modellek 95%-a a PyTorch keretrendszerhez készült, míg 5%-a a Tensorflowhoz. A leggyakoribb kártevő módosítások között szerepel az objektum elfogása, a fordított shell létrehozása, alkalmazások indítása és fájlba írás.

Megjegyzendő, hogy a végrehajtott tevékenységek alapján a legtöbb megtalált kártevő modellt biztonsági kutatók hozták létre, akik jutalmat próbálnak szerezni a Hugging Face sebezhetőségeinek és a védelem megkerülésének felfedezéséért (például a valódi támadás helyett ezek a modellek megpróbálnak kalkulátort indítani vagy hálózati kérést küldeni a támadás sikeréről). Ezen kívül előfordulnak olyan példányok is, amelyek fordított shellet indítanak a támadó rendszerhez való csatlakozás érdekében.
Például a «baller423/goober2» és a «star23/baller13» modellek a PyTorch rendszerben betöltődő modellfájlok támadására irányulnak a torch.load() funkció segítségével. A kód végrehajtásának lebonyolítására a pickle modul «__reduce__» metódusát használják, amely lehetővé teszi tetszőleges Python kód beillesztését a deszerializálás folyamatába, amely a modell betöltésekor történik.
Forrás: opennet.ru
