+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Hugging Face-modellfiler kan köra dold kod

Skadliga modellpaket kan exekvera kod vid osäker laddning.

Skadliga modellpaket kan exekvera kod vid osäker laddning. Tre dokumenterade exempel förklarar Pickle reverse shells, beteende hos skanner för trasiga filer och forskningsdemonstrerad modellnamnsförvirring, med tydliga begränsningar för påståenden om stöld av referenser.

Läs den skrivna upplagan (engelska) ↗

Vad den här videon täcker

  • Numeriska modellvikter, körbar serialisering och anpassad förvarskod är olika saker.
  • JFrog och ReversingLabs dokumenterade reverse-shell nyttolaster; deras utvalda rapporter fastställer inte stöld av referenser från namngivna offer.
  • Checkmarx Model Confusion var en forskningsdemonstration som krävde en matchande fjärrmodell och osäker laddning.
  • Föredra safetensors och patchade laddare, granska och fäst anpassad kod, och isolera okända paket från personliga hemligheter och onödig nätverksåtkomst.

Översatt transkription

Översatt från den ursprungliga engelska berättelsen. Tillgängligt ljud och undertexter styrs av YouTube.

Hur kan en modellnedladdning bjuda in en gäst?

0:00 En modellfil är bara siffror på disken. Att ladda ett skadligt Hugging Face-paket öppnade ett fjärrskal, vilket är en ambitiös tolkning av lokal AI. Hur blir laddning exekvering? Vilka hemligheter kan den nå? Vad stoppar den egentligen? Och ha ett pussel i åtanke. En modell kan misslyckas med att laddas efter att den farliga delen redan har hänt.

0:18 Detta är The Daily Diff, under huven. Hugging Face är en plattform för att dela maskininlärningsmodeller, datauppsättningar och applikationer. Modellvikter är de inlärda siffrorna. Ett arkiv kan också innehålla konfiguration och Python-kod. Faran här är att körbar paketering korsar in i din dator när du laddar den. Pickle lagrar Python-objekt med instruktioner för att återskapa dem.

Hur kör en laddare paketets instruktioner?

0:37 En osäker laddare kan följa dessa instruktioner och anropa funktioner medan den packas upp. Att ladda ner byten lägger paketet på din disk. Deserialisering öppnar den. Någonstans har ett filformat befordrats till obetald systemadministratör. JFrog rapporterade Goober Two i februari tjugofemtiofyra. Dess Pickle-nyttolast öppnade ett reverse shell, som anslöt utåt för att erbjuda fjärr- kommandoåtkomst. Arkivet raderades. JFrog hittade också ledtrådar som antydde inblandning från forskare,

1:02 så tillskrivningen är osäker. Den oönskade gästen dokumenterades. Stöld av referenser från faktiska offer fastställdes inte.

Vilka hemligheter finns inom processens räckhåll?

1:09 Kod som körs som din användare kan läsa vad den processen kan läsa. En monterad molnnyckel eller en åtkomlig token blir ett möjligt mål. Att skicka ut den kräver också en fungerande nätverksväg. Numeriska vikter ensamma har inga magiska referenskrafter. Dina behörigheter tillhandahåller den intressanta delen av modellkortet. Det finns en annan dörr. Vissa modeller ber dig att lita på fjärrkod, vilket auktoriserar Python från arkivet. Säkra tensorfiler kan ligga bredvid den koden.

1:32 Att kontrollera viktformatet täcker en ingång, medan arkivets kod fortfarande väntar på att du ska ge den ett besöksmärke.

Varför kan en saknad lokal sökväg bli en fjärrmodell?

1:38 Checkmarx demonstrerade Model Confusion. En saknad lokal modellväg kunde lösas till ett offentligt arkiv med ett matchande namn. Kombinera det med fjärrkod aktiverat, och fel paket kan exekveras. Detta var en forskningsdemonstration som involverade ett namnlöst företags exempel, korrigerad inom en dag. En saknad mapp fick en hyresvärd. ReversingLabs rapporterade två exempel i februari tjugofemton,

Hur undvek trasiga paket den gamla skannern?

1:58 och kallade tekniken nullify AI. Båda innehöll reverse shells. Deras sju-zip-paketering blockerade vanlig PyTorch-laddning, så denna väg krävde extraktion och osäker deserialisering. Trasiga Pickle-strömmar avslöjade också en skanningsblind fläck. En misslyckad skanning förtjänar utredning innan någon öppnar paketet. I forskarnas harmlösa test skrev instruktionerna en fil innan laddaren

2:18 nådde den trasiga delen och utlöste ett fel. Föreställ dig att öppna ett paket, släppa ut tvättbjörnen och sedan märka att fraktetiketten är ogiltig. Felmeddelandet anländer med utmärkt grammatik och fruktansvärd timing. Hugging Face tog bort de rapporterade exemplen inom tjugofyra timmar och ändrade skannern. Just detta fynd föranledde en fix. En säkerhetsskanning är användbar bevisning, och att behandla varje skannerfel som ett rent intyg om god hälsa förblir en anmärkningsvärt generös tolkning av misslyckande.

2:43 Föredra safetensors och aktuella patchade laddare.

Vad håller nyckeln utom gästens räckhåll?

2:46 PyTorch begränsade sin standardladdare från och med version två punkt sex. Granska anpassad kod och fäst den granskade revisionen. Kör okända paket isolerat utan personliga nycklar, med begränsad nätverksåtkomst. En container full av monterade referenser är en presentkorg med namnrymder. Det öppningspusslet har ett svar. Laddningsfel berättar var exekveringen stoppades. Tidigare instruktioner kan redan ha körts.

3:08 Håll hemligheterna utom räckhåll innan du öppnar paketet. Dom, under huven.

Varför skulle jag stämpla detta NEEDS REVIEW?

3:16 laddare. Den kostnadsfria nedladdningen bör komma med en modell, och gästlistan bör förbli mitt beslut. Om du hellre läser detta än hör mig säga det, landar diffen i din inkorg varje morgon, gratis på the daily diff dot dev, länk nedan. Och det var diffen för idag. Jag är Niko från Axrisi. Sammanfoga ansvarsfullt.

Källor

  1. Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
  2. Malicious ML models discovered on Hugging Face platformReversingLabs
  3. AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
  4. Pickle ScanningHugging Face
  5. SafetensorsHugging Face
  6. Loading custom modelsHugging Face
  7. Serialization semanticsPyTorch

Relaterade videor