
Защита от атак на сериализацию моделей
Модели машинного обучения (ML) публикуются в открытом доступе в интернете, используются внутри команд и между командами. Развитие фундаментальных моделей привело к тому, что публичные ML-модели всё чаще используются для дальнейшего обучения и тонкой настройки. ML-модели всё чаще применяются для принятия критически важных решений и работы критически важных приложений. Несмотря на это, модели до сих пор не сканируются с той же тщательностью, что и PDF-файл в ваших входящих.
Это нужно менять, и правильный инструментарий — первый шаг.

ModelScan — проект с открытым исходным кодом от Protect AI, который сканирует модели и определяет, содержат ли они небезопасный код. Это первый инструмент сканирования моделей, поддерживающий несколько форматов моделей. В настоящее время ModelScan поддерживает форматы: H5, Pickle и SavedModel. Это защищает вас при использовании PyTorch, TensorFlow, Keras, Sklearn, XGBoost, и это далеко не всё.
Если вы готовы приступить к сканированию моделей, всё просто:
pip install modelscan
После установки отсканируйте модель:
modelscan -p /path/to/model_file.pkl
Модели часто создаются с помощью автоматизированных конвейеров, другие могут быть получены с ноутбука специалиста по данным. В любом случае модель должна быть перемещена с одной машины на другую до её использования. Этот процесс сохранения модели на диск называется сериализацией.
Атака на сериализацию модели (Model Serialization Attack) — это добавление вредоносного кода в содержимое модели во время сериализации (сохранения) перед распространением — современная версия троянского коня.
Атака работает за счёт эксплуатации процессов сохранения и загрузки моделей. Когда вы загружаете модель с помощью model = torch.load(PATH), PyTorch открывает содержимое файла и начинает выполнять код внутри. В момент загрузки модели эксплойт уже выполнен.
Атака на сериализацию модели может быть использована для выполнения:
Эти атаки невероятно просты в исполнении, и вы можете посмотреть рабочие примеры в нашей папке 📓notebooks.
ModelScan предоставляет надёжное сканирование с открытым исходным кодом. Если вам нужна комплексная безопасность ИИ, рассмотрите Guardian. Это наш корпоративный продукт для сканирования моделей.

Если загрузка модели с помощью вашего фреймворка машинного обучения автоматически выполняет атаку, как ModelScan проверяет содержимое без загрузки вредоносного кода?
Всё просто: он читает содержимое файла по одному байту за раз, как строку, и ищет сигнатуры небезопасного кода. Это делает его невероятно быстрым: модели сканируются за то время, которое требуется вашему компьютеру для чтения файла с диска (в большинстве случаев — секунды). Кроме того, это безопасно.
ModelScan классифицирует небезопасный код по уровням:

Если обнаружена проблема, немедленно свяжитесь с авторами модели, чтобы определить причину.
В некоторых случаях код может быть встроен в модель, чтобы специалисту по данным было проще воспроизвести результаты, но это открывает возможность для атаки. Используйте собственное суждение, чтобы решить, допустимо ли это для ваших рабочих нагрузок.
Этот список будет постоянно расширяться, поэтому следите за изменениями в наших примечаниях к выпускам.
В настоящее время ModelScan поддерживает любой формат на основе Pickle и многие другие: