Уязвимости в PickleScan: стандартный инструмент проверки моделей машинного обучения стал ахиллесовой пятой безопасности

vulnerability

Исследователи из JFrog Security Research обнаружили три критические уязвимости нулевого дня в инструменте PickleScan, который является отраслевым стандартом для сканирования моделей машинного обучения на наличие вредоносного содержимого. Эти уязвимости позволяют злоумышленникам полностью обойти механизмы обнаружения вредоносных программ в PickleScan, что потенциально открывает путь для масштабных атак на цепочки поставок через распространение вредоносных моделей со скрытым кодом. Данное открытие подчеркивает фундаментальную слабость экосистемы безопасности искусственного интеллекта, которая чрезмерно полагается на единственное решение.

Детали

Популярность фреймворка PyTorch в машинном обучении сопряжена со значительными рисками безопасности. Библиотека размещает более 200 000 публично доступных моделей на таких платформах, как Hugging Face, однако по умолчанию использует сериализационный формат Python под названием «pickle». Гибкость pickle позволяет воссоздавать любой объект Python, но эта же характеристика создает критическую уязвимость. Файлы pickle могут внедрять и исполнять произвольный код Python в процессе десериализации. Следовательно, загрузка непроверенной модели PyTorch сопряжена с риском выполнения вредоносного кода, способного похитить конфиденциальные данные, установить бэкдоры или скомпрометировать целые системы. Эта угроза не является теоретической: вредоносные модели уже были обнаружены на Hugging Face, нацеливаясь на ничего не подозревающих специалистов по данным.

Инструмент PickleScan стал передовой линией обороны отрасли, анализируя байт-код pickle для обнаружения опасных операций до их выполнения. Он проверяет файлы на уровне байт-кода, сверяет результаты с черным списком опасных импортов и поддерживает несколько форматов PyTorch. Однако его модель безопасности основана на критическом допущении: PickleScan должен интерпретировать файлы идентично тому, как это делает PyTorch. Любое расхождение в анализе создает эксплуатируемые бреши.

Первая уязвимость, получившая идентификатор CVE-2025-10155 и оценку CVSS 9.3, эксплуатирует логику определения типа файла в PickleScan. Переименовав вредоносный файл pickle, используя расширение, связанное с PyTorch, такое как .bin или .pt, злоумышленник может вызвать сбой в работе сканера, предназначенного специально для PyTorch. При этом сам PyTorch успешно загрузит файл, анализируя его содержимое, а не расширение, и вредоносная нагрузка выполнится незамеченной.

Вторая уязвимость, CVE-2025-10156 с тем же высоким баллом CVSS, связана с ошибками контрольной суммы CRC в ZIP-архивах. PickleScan полностью прекращает работу при обнаружении несоответствия CRC, вызывая исключения, которые останавливают сканирование. Однако загрузчик моделей PyTorch часто игнорирует эти проверки CRC. Это создает опасное несоответствие, при котором PickleScan помечает файлы как непроверенные, а PyTorch успешно загружает и исполняет их содержимое.

Третья уязвимость, CVE-2025-10157, демонстрирует, что проверку небезопасных глобальных объектов в PickleScan можно обойти, используя подклассы опасных модулей вместо их точных имен. Например, импорт внутренних классов из черного списка, такого asyncio, полностью обходит проверку. Это позволяет атакующим внедрять вредоносную нагрузку, в то время как PickleScan классифицирует угрозу лишь как «подозрительную», а не «опасную».

Эти уязвимости обнажают более глубокие системные проблемы в инфраструктуре безопасности ИИ. Зависимость экосистемы от единственного инструмента, PickleScan, создает единую точку отказа. Когда этот инструмент не срабатывает, вся архитектура безопасности рушится. Организации, полагающиеся на Hugging Face, который интегрирует PickleScan для сканирования миллионов загружаемых моделей, подвергаются особому риску. Данные уязвимости наглядно показывают, как расхождения между работой средств безопасности и целевых приложений создают эксплуатируемые пробелы.

В качестве первоочередной меры организациям следует немедленно обновить PickleScan до версии 0.0.31, в которой исправлены все три проблемы. Однако одного этого патча недостаточно. Необходимо внедрять многоуровневую защиту, включая изолированные песочницы и защищенные прокси-репозитории для моделей, такие как JFrog Artifactory. Кроме того, компаниям стоит рассмотреть переход на более безопасные форматы моделей, например Safetensors, и наладить автоматическое удаление файлов, проверка которых завершилась с ошибкой. Сообществу безопасности искусственного интеллекта важно признать, что ни один инструмент не может гарантировать полную защиту, а стратегия глубокой эшелонированной обороны остается критически важной в условиях постоянно развивающегося ландшафта угроз.

Ссылки

Комментарии: 0