Výzkumníci ze společnosti JFrog objevili v repozitáři Hugging Face nebezpečné modely strojového učení, jejichž instalace může vést k vykonání kódu útočníka a převzetí kontroly nad systémem uživatele. Problém je způsoben tím, že některé formáty distribuce modelů umožňují vložení spustitelného kódu, například modely používající formát „pickle“ mohou obsahovat serializované objekty v jazyce Python, stejně jako kód spouštěný při načítání souboru, a modely Tensorflow Keras mohou vykonávat kód prostřednictvím Lambda Layer.
Aby se zabránilo šíření podobných nebezpečných modelů, v Hugging Face se provádí skenování na základě substituce serializovaného kódu, ale zjištěné nebezpečné modely ukazují, že existující kontroly lze obejít. Kromě toho Hugging Face ve většině případů pouze označuje modely jako nebezpečné, aniž by zablokoval jejich přístup. Celkem bylo identifikováno přibližně 100 potenciálně škodlivých modelů, z nichž 95 % je určeno pro použití s rámci PyTorch a 5 % s Tensorflow. Nejčastějšími nebezpečnými změnami jsou zmocnění objektu, zajištění externího přístupu do systému (reverse shell), spouštění aplikací a zápis do souboru.

Upozorňuje se, že soudě podle činů většiny zjištěných nebezpečných modelů byly vytvořeny výzkumníky v oblasti bezpečnosti, kteří se snaží získat odměnu za odhalení zranitelností a metod obcházení ochrany Hugging Face (například místo skutečného útoku se snaží tyto modely spustit kalkulačku nebo odeslat síťový požadavek s informacemi o úspěchu útoku). Objevují se také případy, kdy dochází k spuštění reverzního shellu k připojení útočníka k systému.
Například modely „baller423/goober2“ a „star23/baller13“ cílí na útok na systémy, které načítají soubor modelu v PyTorch pomocí funkce torch.load(). Pro provedení kódu se používá metoda „__reduce__“ z modulu pickle, která umožňuje vložení libovolného Python kódu do procesu deserializace prováděného při načítání modelu.
Zdroj: opennet.ru
