Soubory modelů Hugging Face mohou spouštět skrytý kód
Škodlivé balíčky modelů mohou spouštět kód během nebezpečného načítání.
Škodlivé balíčky modelů mohou spouštět kód během nebezpečného načítání. Tři zdokumentované příklady vysvětlují reverzní shelly Pickle, chování skeneru poškozených souborů a výzkumem prokázaný zmatek v názvech modelů, s jasnými omezeními ohledně tvrzení o krádeži pověření.
Přečtěte si psané vydání (anglicky) ↗
Co toto video pokrývá
- Číselné váhy modelu, spustitelná serializace a vlastní kód úložiště jsou odlišné věci.
- JFrog a ReversingLabs zdokumentovaly reverzní shell payloady; jejich vybrané zprávy neprokazují krádež pověření od jmenovaných obětí.
- Checkmarx Model Confusion byla výzkumná demonstrace vyžadující odpovídající vzdálený model a nebezpečné načítání.
- Preferujte safetensors a opravené načítací programy, zkontrolujte a připněte vlastní kód a izolujte neznámé balíčky od osobních tajemství a zbytečného síťového přístupu.
Přeložený přepis
Přeloženo z původního anglického vyprávění. Dostupné audio a titulky jsou řízeny YouTube.
Jak může stažení modelu pozvat hosta?
0:00 Soubor modelu jsou jen čísla na disku. Načtení jednoho škodlivého balíčku Hugging Face otevřelo vzdálenou shell, což je ambiciózní interpretace lokální AI. Jak se načítání stane spuštěním? K jakým tajemstvím se může dostat? Co to skutečně zastaví? A mějte na paměti jednu hádanku. Model se může nenačíst poté, co se nebezpečná část již stala.
0:18 Toto je The Daily Diff, pod kapotou. Hugging Face je platforma pro sdílení modelů strojového učení, datových sad a aplikací. Váhy modelu jsou naučená čísla. Úložiště může také obsahovat konfiguraci a kód Pythonu. Nebezpečí spočívá v tom, že spustitelný balíček se dostane do vašeho počítače, když jej načtete. Pickle ukládá objekty Pythonu s instrukcemi pro jejich opětovné sestavení.
Jak načítací program spouští pokyny balíčku?
0:37 Nezabezpečený načítací program může tyto instrukce následovat a volat funkce během rozbalování. Stažení bajtů umístí balíček na váš disk. Deserializace ho otevře. Někde byl formát souboru povýšen na neplaceného správce systému. JFrog nahlásil Goober Two v únoru 2024. Jeho Pickle payload otevřel reverzní shell, který se připojil ven, aby nabídl vzdálený přístup k příkazům. Úložiště bylo smazáno. JFrog také našel stopy naznačující zapojení výzkumníků,
1:02 takže atribuce je nejistá. Nežádoucí host byl zdokumentován. Krádež pověření od skutečných obětí nebyla prokázána.
Jaká tajemství jsou v dosahu procesu?
1:09 Kód spuštěný jako váš uživatel může číst cokoli, co může číst tento proces. Připojený cloudový klíč nebo přístupný token se stávají možným cílem. Odeslání také vyžaduje funkční síťovou cestu. Samotné číselné váhy nemají žádné magické schopnosti pověření. Vaše oprávnění dodávají zajímavou část karty modelu. Je tu další dveře. Některé modely vás žádají, abyste důvěřovali vzdálenému kódu, což autorizuje Python z úložiště. Soubory safetensor mohou být vedle tohoto kódu.
1:32 Kontrola formátu vah pokrývá jeden vchod, zatímco kód úložiště stále čeká, až mu předáte návštěvní odznak.
Proč se chybějící lokální cesta může stát vzdáleným modelem?
1:38 Checkmarx předvedl Model Confusion. Chybějící lokální cesta modelu by se mohla vyřešit na veřejné úložiště s odpovídajícím jménem. Zkombinujte to se vzdáleným kódem povoleným, a špatný balíček se může spustit. Jednalo se o výzkumnou demonstraci zahrnující vzorek nejmenované společnosti, opravený během jednoho dne. Chybějící složka získala pronajímatele. ReversingLabs nahlásil dva vzorky v únoru 2025,
Jak poškozené balíčky obešly starý skener?
1:58 nazval techniku nullify AI. Oba obsahovaly reverzní shelly. Jejich balení 7zip blokovalo běžné načítání PyTorch, takže tato cesta vyžadovala extrakci a nebezpečnou deserializaci. Poškozené Pickle streamy také odhalily slepou skvrnu skeneru. Neúspěšné skenování si zaslouží prošetření, než kdokoli balíček otevře. V neškodném testu výzkumníků instrukce napsaly soubor dříve, než načítací program
2:18 dosáhl poškozené části a vyvolal chybu. Představte si, že otevřete balíček, vypustíte mývala, a pak si všimnete, že přepravní štítek je neplatný. Chybová zpráva přichází s vynikající gramatikou a hrozným načasováním. Hugging Face odstranil nahlášené vzorky do 24 hodin a změnil skener. Toto konkrétní zjištění podnítilo opravu. Bezpečnostní sken je užitečný důkaz, a považovat každou chybu skeneru za čistý list zdraví zůstává pozoruhodně velkorysou interpretací selhání.
2:43 Preferujte safetensory a aktuální opravené načítací programy.
Co drží klíč mimo dosah hosta?
2:46 PyTorch zúžil svůj výchozí načítací program počínaje verzí 2.6. Zkontrolujte vlastní kód a připněte revidovanou revizi. Spouštějte neznámé balíčky v izolaci bez osobních klíčů, s omezeným síťovým přístupem. Kontejner plný připojených pověření je dárkový koš s jmennými prostory. Ta úvodní hádanka má odpověď. Selhání načítání vám řekne, kde se provádění zastavilo. Předchozí instrukce se již mohly spustit.
3:08 Udržujte tajemství mimo jeho dosah před otevřením balíčku. Verdikt, pod kapotou.
Proč bych toto označil jako POTŘEBUJE REVIZI?
3:16 načítací program. Bezplatné stažení by mělo obsahovat model, a seznam hostů by měl zůstat mým rozhodnutím. Pokud si to raději přečtete, než abyste mě slyšeli to říkat, diff vám přistane v doručené poště každé ráno, zdarma na the daily diff dot dev, odkaz níže. A to je dnešní diff. Jsem Niko z Axrisi. Sloučit zodpovědně.
Zdroje
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



