Skip to content Skip to sidebar Skip to footer

Скрытые угрозы: злоумышленники искусно внедряют код в AI модели

Эксперты по кибербезопасности обнаружили два вредоносных примера машинного обучения на платформе Hugging Face. Они использовали специальный метод скрытия через поврежденные файлы Pickle. Это помогало им обходить защитные механизмы, предназначенные для обнаружения вредоносных моделей.
Исследователи из компании ReversingLabs сообщили, что файлы Pickle, извлеченные из архивов PyTorch, содержали вредоносный Python-код в самом начале. В обоих случаях вредоносная нагрузка представляла собой обратную оболочку, подключенную к конкретному IP-адресу.
Метод получил название nullifAI и направлен на обход защитных механизмов, анализирующих загружаемые модели. Опасные репозитории на Hugging Face были идентифицированы.
Эти модели, скорее всего, являются доказательством концепции, чем частью активной атаки на цепочку поставок.
Формат Pickle, используемый для распространения моделей машинного обучения, известен своими уязвимостями. Он позволяет выполнить произвольный код при загрузке, что делает его уязвимым для атак.
Две вредоносные модели были сохранены в формате PyTorch, который в основе является сжатым Pickle-файлом. Злоумышленники использовали формат 7z вместо стандартного ZIP-архива, что позволило им обойти систему сканирования Picklescan Hugging Face.
Вредоносный код в этих моделях прерывает процесс десериализации сразу после выполнения, что приводит к ошибке. Однако анализ показал, что такие файлы могут частично десериализоваться из-за особенностей Picklescan.
Главная уязвимость заключается в том, что инструкции Pickle выполняются последовательно. Если вредоносный код находится в начале файла, он может быть запущен до обнаружения анализатором. После обнаружения атаки Picklescan был обновлен для исправления этой ошибки.
Этот случай еще раз показывает риски использования формата Pickle для распространения моделей машинного обучения. Несмотря на защитные меры Hugging Face, злоумышленники находят способы обойти их. Улучшение механизмов проверки и анализа кода остается важной задачей для платформ, работающих с ML-моделями.