Файлы моделей Hugging Face могут запускать скрытый код
Вредоносные пакеты моделей могут выполнять код во время небезопасной загрузки.
Вредоносные пакеты моделей могут выполнять код во время небезопасной загрузки. Три документированных примера объясняют обратные оболочки Pickle, поведение сканера поврежденных файлов и продемонстрированную исследованиями путаницу в именах моделей, с четкими ограничениями на заявления о краже учетных данных.
Читать письменное издание (на английском) ↗
Что освещается в этом видео
- Численные веса моделей, исполняемая сериализация и пользовательский код репозитория – это разные вещи.
- JFrog и ReversingLabs задокументировали полезные нагрузки обратной оболочки; их выбранные отчеты не устанавливают кражу учетных данных у названных жертв.
- Checkmarx Model Confusion была исследовательской демонстрацией, требующей соответствующей удаленной модели и небезопасной загрузки.
- Предпочитайте safetensors и исправленные загрузчики, проверяйте и закрепляйте пользовательский код, а также изолируйте незнакомые пакеты от личных секретов и ненужного сетевого доступа.
Переведенная стенограмма
Переведено с оригинального английского повествования. Доступные аудио и субтитры контролируются YouTube.
Как загрузка модели может пригласить гостя?
0:00 Файл модели — это просто числа на диске. Загрузка одного вредоносного пакета Hugging Face открыла удаленную оболочку, что является амбициозной интерпретацией локального ИИ. Как загрузка становится исполнением? К каким секретам он может получить доступ? Что на самом деле его останавливает? И помните об одной загадке. Модель может не загрузиться после того, как опасная часть уже произошла.
0:18 Это The Daily Diff, изнутри. Hugging Face — это платформа для обмена моделями машинного обучения, наборами данных и приложениями. Веса модели — это изученные числа. Репозиторий также может содержать конфигурацию и код Python. Опасность здесь заключается в исполняемой упаковке, попадающей на ваш компьютер, когда вы загружаете ее. Pickle хранит объекты Python с инструкциями по их восстановлению.
Как загрузчик выполняет инструкции пакета?
0:37 Небезопасный загрузчик может следовать этим инструкциям и вызывать функции во время распаковки. Загрузка байтов помещает пакет на ваш диск. Десериализация открывает его. Где-то формат файла был повышен до неоплачиваемого системного администратора. JFrog сообщил о Goober Two в феврале две тысячи двадцать четвертого года. Его полезная нагрузка Pickle открыла обратную оболочку, подключившись извне, чтобы предложить удаленный доступ к командам. Репозиторий был удален. JFrog также нашел улики, указывающие на причастность исследователей,
1:02 поэтому атрибуция неопределенна. Нежелательный гость был задокументирован. Кража учетных данных у реальных жертв не была установлена.
Какие секреты находятся в пределах досягаемости процесса?
1:09 Код, запущенный от имени вашего пользователя, может читать все, что может читать этот процесс. Подключенный ключ облака или доступный токен становится возможной целью. Для отправки также требуется работающий сетевой маршрут. Только числовые веса не обладают магическими полномочиями учетных данных. Ваши разрешения предоставляют интересную часть карточки модели. Есть еще одна дверь. Некоторые модели просят вас доверять удаленному коду, который авторизует Python из репозитория. Файлы safetensor могут находиться рядом с этим кодом.
1:32 Проверка формата весов закрывает один вход, в то время как код репозитория все еще ждет, пока вы предоставите ему гостевой пропуск.
Почему отсутствующий локальный путь может стать удаленной моделью?
1:38 Checkmarx продемонстрировал Model Confusion. Отсутствующий локальный путь модели может быть разрешен в публичный репозиторий с совпадающим именем. Объедините это с удаленным кодом, включенным, и неправильный пакет может быть выполнен. Это была исследовательская демонстрация, включающая образец неназванной компании, исправленный в течение дня. У отсутствующей папки появился домовладелец. ReversingLabs сообщила о двух образцах в феврале две тысячи двадцать пятого года,
Как поврежденные пакеты обходили старый сканер?
1:58 назвав эту технику nullify AI. Оба содержали обратные оболочки. Их упаковка в 7-zip блокировала обычную загрузку PyTorch, поэтому этот путь требовал извлечения и небезопасной десериализации. Поврежденные потоки Pickle также выявили слепое пятно сканера. Неудачное сканирование требует расследования, прежде чем кто-либо откроет посылку. В безвредном тесте исследователей инструкции записали файл до того, как загрузчик
2:18 достиг поврежденной части и вызвал ошибку. Представьте, что вы открываете посылку, выпускаете енота, а затем замечаете, что накладная недействительна. Сообщение об ошибке приходит с отличной грамматикой и ужасным таймингом. Hugging Face удалил сообщенные образцы в течение двадцати четырех часов и изменил сканер. Это конкретное обнаружение привело к исправлению. Проверка безопасности является полезным доказательством, и рассмотрение каждой ошибки сканера как чистого свидетельства исправности остается на удивление щедрой интерпретацией отказа.
2:43 Предпочитайте безопасные тензоры и текущие исправленные загрузчики.
Что удерживает ключ вне досягаемости гостя?
2:46 PyTorch сузил свой загрузчик по умолчанию, начиная с версии два точка шесть. Проверяйте пользовательский код и закрепляйте проверенную ревизию. Запускайте незнакомые пакеты в изоляции без личных ключей, с ограниченным сетевым доступом. Контейнер, полный подключенных учетных данных, — это подарочная корзина с пространствами имен. У этой начальной загадки есть ответ. Сбой загрузки сообщает вам, где остановилось выполнение. Более ранние инструкции, возможно, уже были выполнены.
3:08 Держите секреты вне его досягаемости, прежде чем открывать посылку. Вердикт, изнутри.
Почему я бы поставил отметку "ТРЕБУЕТСЯ ПРОВЕРКА"?
3:16 загрузчик. Бесплатная загрузка должна включать модель, и список гостей должен оставаться моим решением. Если вы предпочитаете читать это, а не слушать, The Daily Diff попадает в ваш почтовый ящик каждое утро, бесплатно на the daily diff dot dev, ссылка ниже. И это The Daily 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



