Файловете на моделите на Hugging Face могат да изпълняват скрит код
Злонамерени пакети с модели могат да изпълняват код по време на опасно зареждане.
Злонамерени пакети с модели могат да изпълняват код по време на опасно зареждане. Три документирани примера обясняват обратни обвивки на Pickle, поведение на скенер за повредени файлове и демонстрация на объркване на имената на модели, с ясни ограничения върху твърденията за кражба на идентификационни данни.
Прочетете писменото издание (английски) ↗
Какво обхваща този видеоклип
- Числовите тегла на модела, изпълнимият сериализатор и персонализираният код на хранилището са различни неща.
- JFrog и ReversingLabs документираха пейлоади за обратна обвивка; техните избрани доклади не установяват кражба на идентификационни данни от посочени жертви.
- Checkmarx Model Confusion беше изследователска демонстрация, изискваща съвпадащ отдалечен модел и несигурно зареждане.
- Предпочитайте safetensors и пачнати зареждачи, преглеждайте и фиксирайте персонализиран код и изолирайте непознати пакети от лични тайни и ненужен мрежов достъп.
Преведен препис
Преведено от оригиналния английски разказ. Наличните аудио и субтитри се контролират от YouTube.
Как изтегляне на модел може да покани гост?
0:00 Файлът на модела е просто числа на диска. Зареждането на един злонамерен пакет на Hugging Face отвори отдалечена обвивка, което е амбициозна интерпретация на локален AI. Как зареждането се превръща в изпълнение? До кои тайни може да достигне? Какво всъщност го спира? И имайте предвид една загадка. Модел може да не успее да се зареди, след като опасната част вече се е случила.
0:18 Това е The Daily Diff, "под капака". Hugging Face е платформа за споделяне на модели за машинно обучение, набори от данни и приложения. Теглата на модела са научените числа. Хранилището може да съдържа също конфигурация и Python код. Опасността тук е изпълнимото пакетиране, което преминава във вашия компютър, когато го заредите. Pickle съхранява Python обекти с инструкции за тяхното възстановяване.
Как зареждачът изпълнява инструкциите на пакета?
0:37 Несигурен зареждач може да следва тези инструкции и да извиква функции по време на разопаковане. Изтеглянето на байтовете поставя пакета на вашия диск. Десериализацията го отваря. Някъде, файлов формат е повишен до неплатен системен администратор. JFrog докладва за Goober Two през февруари 2024 г. Неговият Pickle пейлоад отвори обратна обвивка, свързвайки се навън, за да предложи отдалечен достъп до команди. Хранилището беше изтрито. JFrog също така намери улики, предполагащи участие на изследователи,
1:02 така че приписването е несигурно. Нежеланият гост беше документиран. Кражбата на идентификационни данни от действителни жертви не беше установена.
Кои тайни са в обсега на процеса?
1:09 Код, работещ като ваш потребител, може да чете всичко, което този процес може да чете. Монтиран облачен ключ или достъпен токен става възможна цел. Изпращането му навън също изисква работещ мрежов маршрут. Само числените тегла нямат магически сили за идентификационни данни. Вашите разрешения предоставят интересната част от картата на модела. Има и друга врата. Някои модели ви молят да се доверите на отдалечен код, който разрешава Python от хранилището. Файловете safetensor могат да стоят до този код.
1:32 Проверката на формата на теглото покрива един вход, докато кодът на хранилището все още чака да му дадете значка за посетител.
Защо липсващ локален път може да се превърне в отдалечен модел?
1:38 Checkmarx демонстрира Model Confusion. Липсващ локален път на модел може да се разреши до публично хранилище със съвпадащо име. Комбинирайте това с отдалечен код активиран и грешният пакет може да бъде изпълнен. Това беше изследователска демонстрация, включваща проба на неназована компания, коригирана в рамките на един ден. Липсваща папка придоби наемодател. ReversingLabs докладва два примера през февруари 2025 г.,
Как повредени пакети са избягвали стария скенер?
1:58 наричайки техниката nullify AI. И двата съдържаха обратни обвивки. Тяхното 7z пакетиране блокира обикновеното зареждане на PyTorch, така че този път изискваше извличане и несигурна десериализация. Повредените потоци на Pickle също разкриха сляпа точка на скенера. Неуспешното сканиране заслужава разследване, преди някой да отвори пакета. При безвредния тест на изследователите, инструкциите написаха файл, преди зареждачът
2:18 да достигне повредената част и да предизвика грешка. Представете си, че отваряте пакет, освобождавате енота, след което забелязвате, че етикетът за доставка е невалиден. Съобщението за грешка пристига с отлична граматика и ужасен момент. Hugging Face премахна докладваните проби в рамките на 24 часа и промени скенера. Това конкретно откритие доведе до корекция. Сканирането за сигурност е полезно доказателство, а третирането на всяка грешка на скенера като чист здравен сертификат остава забележително щедра интерпретация на провала.
2:43 Предпочитайте safe tensors и актуални пачнати зареждачи.
Какво държи ключа извън обсега на госта?
2:46 PyTorch ограничи своя зареждач по подразбиране, започвайки от версия 2.6. Прегледайте персонализирания код и фиксирайте прегледаната ревизия. Стартирайте непознати пакети изолирано, без лични ключове, с ограничен мрежов достъп. Контейнер, пълен с монтирани идентификационни данни, е кошница с подаръци с имена на пространства. Тази начална загадка има отговор. Неуспехът при зареждане ви казва къде е спряло изпълнението. Предишни инструкции може вече да са изпълнени.
3:08 Дръжте тайните извън обсега му, преди да отворите пакета. Присъда, "под капака".
Защо бих сложил този NEEDS REVIEW?
3:16 зареждач. Безплатното изтегляне трябва да идва с модел, а списъкът с гости трябва да остане мое решение. Ако предпочитате да прочетете това, отколкото да ме чуете да го казвам, diff-ът пристига във вашата пощенска кутия всяка сутрин, безплатно на thedailydiff.dev, линк по-долу. И това е diff-ът за днес. Аз съм Нико от Axrisi. Обединявайте отговорно.
Източници
- 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



