Практические шаги по защите вашего конвейера MLOps

Все сообщения

Представьте себе следующее заседание совета директоров. Вы, руководитель службы безопасности в своей организации, представите стандартную презентацию рисков, мер по их устранению и инцидентов. Затем один из членов правления спросит: как вы готовитесь защитить новые технологии искусственного интеллекта и конвейеры MLOps, которые компания уже использует? 

Вот твой ответ.

ИИ несет с собой новые риски

Конвейеры MLOps (иногда также называемые AI Ops), хотя и схожи с традиционными системами обработки данных по своей ценности для организаций, имеют определенные уязвимости. Злоумышленники могут стремиться вставляйте предвзятости, манипулируйте результатами модели или ставьте под угрозу целостность данных или инструментов, стремясь подрывает надежность модели и искажает процессы принятия решений. ATLAS, разработанная организацией MITRE концепция защиты MLOps, подчеркивает необходимость принятия индивидуальных мер безопасности, направленных на решение этих проблем.

ИИ принесет с собой новые правила

Растущая область искусственного интеллекта и MLOps находится под пристальным вниманием со стороны регулирующих органов по всему миру. В отсутствие всеобъемлющего федерального законодательства в Соединенных Штатах, рекомендации таких организаций, как Национальный институт стандартов и технологий (NIST), таких как Структура управления рисками искусственного интеллекта 1.0, предлагает взглянуть на будущую нормативную базу. В этой структуре подчеркивается надежность систем ИИ, включая семь определенных характеристик надежных систем ИИ: безопасность, безопасность и устойчивость, объяснимость и интерпретируемость, повышенная конфиденциальность, справедливый, с вредной предвзятостью, управляемый, подотчетный и прозрачный, так же как действительный и надежный.

MLOps и цепочка поставок программного обеспечения имеют много общего

Сходство между уязвимостями конвейера MLOps и традиционными рисками цепочки поставок программного обеспечения поразительно. Обе сферы сталкиваются с угрозами компромисса, направленного на подрыв целостности процесса разработки и безопасности конечного продукта. Злонамеренное изменение LLM очень похоже на злонамеренное изменение зависимости программного обеспечения; злонамеренная модификация программного обеспечения, на котором работает LLM, по сути, является атакой на цепочку поставок программного обеспечения; Требования подотчетности, прозрачности и доверия, обсуждаемые в мире ИИ, — это именно то, что стоит за требованиями SBOM в мире цепочки поставок программного обеспечения.

Организация MITRE публикует модели кибербезопасности. MITRE недавно опубликовала модель Atlas для защиты MLOps, которую можно найти здесь. Обзор модели представлен ниже:

АТЛАС Матрица

Как и в «традиционной» сфере кибербезопасности, правила AI и MLOps все еще находятся в стадии разработки. Следование этим новым правилам облегчит защиту существующих активов MLOps, а также подтвердит соответствие процессов MLOps существующим и новым передовым практикам. Организациям необходимо будет подтвердить целостность своей модели, а также ее беспристрастность.

Существуют технологии, которые будут служить обеим сферам

Технологии, обеспечивающие целостность данных, кода и инструментов, могут обеспечить необходимый контроль целостности для безопасности цепочки поставок программного обеспечения как MLOps, так и DevOps.

Технологии, которые обеспечивают прозрачность и надежность программного обеспечения, могут обеспечить аналогичные значения для MLOps. 

Технология безопасности цепочки поставок на основе аттестации

Концепция доказательной защиты цепочки поставок программного обеспечения проста: программному артефакту нельзя доверять, если нет достаточных доказательств его надежности. Реализация этой концепции включает в себя инструменты сбора доказательств, механизм политики, который оценивает доказательства для их проверки, оповещения о нарушениях и рекомендации по смягчению последствий, а также механизмы обмена, которые обеспечивают прозрачность и сотрудничество. фреймворк in-toto является академическим примером такого решения. Платформа цепочки поставок программного обеспечения Scribe, помимо прочего, является коммерческим проявлением этой технологии и расширила ее возможности для решения задач ML-Ops.

Подход Scribe, основанный на фактических данных, не учитывает специфику доказательств; таким образом, одна и та же технология может служить защитой MLOps, например:

  • Обеспечение целостности программного обеспечения и целостности конвейера машинного обучения.
  • Обеспечение целостности зависимостей с открытым исходным кодом и целостности модели ИИ.
  • Оценка отчетов SAST для обеспечения отчетов об инструментах тестирования, специфичных для ИИ (например, тестирование смещения).
  • Обмен SBOM и оценками политики, а также оценками политики MLBOM и MLOps. 

Технология цепочки поставок программного обеспечения Scribe Security для AI/ML-Ops

MITRE ATLAS и технология Scribe

Ниже приводится карта текущих возможностей Scribe по сравнению с картой атак MITRE ATLAS:

Стадия атакиНасыщенностьРешение писца
Развитие ресурсов злоумышленниковПубликация отравленных наборов данных
Данные обучения ядам.
Целостность данных:
Подтверждайте использованные наборы данных и проверяйте источник и содержимое наборов данных.
Подтвердите данные обучения и проверьте содержание и источник данных обучения.
Первоначальный доступКомпрометация цепочки поставок машинного обученияЦелостность данных и кода:
Подтверждайте данные, модели, программное обеспечение и конфигурации конвейеров машинного обучения.

Применение политики ML Pipeline:
Подтверждайте действия и соответствующим образом проверяйте политики (например, набор процессов выпуска, тесты, шаблоны доступа)
Первоначальный доступ, влияниеМодель уклонения от машинного обучения (например, созданные запросы)Точное отслеживание трубопровода:
Отслеживайте ресурсы и выявляйте аномалии в шаблонах доступа к конвейеру ML (FS-Tracker)
ТипыИнтерпретатор команд и сценариевТочное отслеживание трубопровода:
Отслеживайте ресурсы и выявляйте аномалии в шаблонах доступа к конвейеру ML (FS-Tracker)
НастойчивостьДанные тренировки по ядамЦелостность данных:
Подтвердите данные обучения, проверьте содержание и источник данных обучения.
Упорство,
Постановка ML-атаки
Бэкдор-модель машинного обученияЦелостность данных:
Подтверждение жизненного цикла модели машинного обучения, проверка при использовании.
ВлияниеНеправильное использование системы ради внешнего эффектаПолитики системного уровня:
Подтвердите поведение и характеристики системы и соответствующим образом примените политики (например, затраты на вычисления, шаблоны доступа).

Ниже приводится сопоставление мер по смягчению последствий MITRE по сравнению с технологией Scribe:

Идентификатор смягчения последствий MITREрискаРешение писца
ПОД.M0005Контроль доступа к моделям машинного обучения и хранящимся даннымТочное отслеживание трубопровода:
Отслеживайте ресурсы и выявляйте аномалии в шаблонах доступа к конвейеру ML (FS-Tracker)
ПОД.M0007Очистка данных обученияЦелостность данных:
Подтверждение и проверка данных, используемых для обучения
ПОД.M0011Ограничить загрузку библиотеки Целостность данных и кода:
Подтвердите загрузку модели данных и библиотеки кода.
ПОД.M0013Подписание кода Целостность кода:
Подтвердите и проверьте используемый код.
ПОД.M0014Проверка артефактов MLЦелостность данных и кода:
Подтвердите загрузку модели данных и библиотеки кода.
ПОД.M0016Сканирование уязвимостей Сканирование уязвимостей, оценка политики:
Подтверждайте выполнение таких инструментов, как сканирование уязвимостей. Оцените политику в отношении этих аттестаций.
Сканируйте уязвимости на основе аттестаций SBOM, собранных из конвейера ML.

Подписание и проверка наборов данных и моделей ML с использованием Valint

Valint — это мощный инструмент CLI Scribe для создания и проверки аттестаций. Valint можно использовать для подписи и проверки наборов данных и моделей машинного обучения.

Пример:

Мы хотим использовать модель HuggingFace. wtp-берт-крошка. Чтобы предотвратить компрометацию модели, мы хотим подписать ее и проверить перед использованием. Создание аттестации (подписанного доказательства) можно выполнить с помощью следующей команды:

валинт бом git:https://huggingface.co/benjamin/wtp-bert-tiny -o attest

Эта команда создаст подписанное свидетельство для репозитория модели. Аттестация будет храниться в хранилище аттестаций (в данном случае — в локальной папке) и будет подписана (в данном случае — с использованием подписи без ключа Sigstore).

Типичное использование модели — клонирование репозитория и использование его файлов. Проверить целостность модели сразу после загрузки можно с помощью следующих команд:

git clone git:https://huggingface.co/benjamin/wtp-bert-tiny валинт проверить git:wtp-bert-tiny

Проверку целостности модели перед каждым использованием можно выполнить с помощью следующей команды:

валинт проверить git:wtp-bert-tiny

Примечание: 

  • Аналогичный подход можно использовать для подписания и проверки наборов данных.
  • Одной из характеристик моделей ML является их огромный размер. Чтобы избежать загрузки и обработки ненужных больших файлов, лучшая практика заключается в загрузке только необходимых файлов. Этот вариант использования поддерживается Valint, который поддерживает подписание только определенной папки или файла.

Проверка политик на моделях машинного обучения

Valint от Scribe — мощный инструмент проверки политики. Одним из способов управления рисками является обеспечение соблюдения политик. В следующем разделе мы покажем, как снизить риск, применяя политику лицензирования к используемым моделям ML. 

Предположим, мы разрешаем использовать в нашем проекте только лицензию MIT. После настройки Валинт может ее проверить:

валинт проверить git:wtp-bert-tiny -d att -cverify-license.yml

Эта команда использует проверка лицензии политика, которая определяется следующим образом:

attest: cocosign: политики: - имя: ML-policy включить: true модули: - имя: тип проверки-лицензии: проверка-артефакт включить: правда ввод: подписано: правда формат: attest-cycledx-json rego: путь: проверить-hf -license.rego

Политика, реализованная в проверить-hf-license.rego файл извлекает из подписанного подтверждения идентификатор модели HuggingFace, извлекает из API HuggingFace информацию о модели и проверяет, что это MIT.

Аналогичный процесс можно использовать для проверки лицензий наборов данных с открытым исходным кодом.

Вариант использования: защита реального сервиса ML-Ops

Сервис ML-Ops — это часть приложения, обеспечивающего легкий доступ к моделям ИИ; пользователям службы нужно только изложить свои запросы, а все практические операции по доступу к модели ML выполняются службой за кулисами.

Пример:

Мы хотим создать и использовать службу, предоставляющую доступ к «руководствопакет с открытым исходным кодом (проще говоря, этот пакет позволяет лучше использовать модели большого языка (LLM) за счет выполнения цепочек запросов вместо одного приглашения).

Сервис будет представлять собой образ Docker, содержащий код сервиса и модель. Мы будем основывать наш код на проекте Andromeda-chain. Проект объединяет библиотеку инструкций со службой и создает образ Docker с приложением.

Ниже приведена базовая версия Dockerfile:

ИЗ python:3.10 КОПИРОВАТЬ ./requirements.cpu.txt require.txt ЗАПУСТИТЬ pip3 install -r require.txt ЗАПУСТИТЬ модели mkdir \ cd models \ git clone https://huggingface.co/api/models/benjamin/wtp-bert- tiny COPY ./guidance_server Guidance_server WORKDIR Guidance_server # Установите точку входа CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "9000"]

Это довольно просто; при сборке докера устанавливаются зависимости кода, устанавливается модель и копируется сервисный код в образ Docker. 

После создания образа мы можем создать его подписанное подтверждение с помощью следующей команды Valint:

валинт бом ml-service:latest -o attest

Эта команда создает подписанное подтверждение, содержащее подробный SBOM образа Docker с именем ml-service.

Эту аттестацию можно использовать позже для проверки образа Docker с помощью следующей команды:

валинт проверить мл-сервис: последний

Эта команда проверяет целостность образа — как кода, так и модели ML. Проверка может выполняться каждый раз при развертывании образа, что гарантирует использование действительного контейнера.

Создание защищенной службы ML-Ops

Объединив возможности, продемонстрированные в предыдущих параграфах, теперь мы можем продемонстрировать, как защитить построение службы ML-Ops:

Предварительное условие: После выбора модели создайте ее подтверждение:

валинт бом git:https://huggingface.co/benjamin/wtp-bert-tiny -o attest

Конвейер сборки:

1. Проверьте целостность и лицензию модели в конвейере сборки:

git clone https://huggingface.co/benjamin/wtp-bert-tiny валинт проверить git:wtp-bert-tiny -d att -cverify-license.yml

2. Создайте докер и создайте его подтверждение:

docker build -t ml-service:latest . валинт бом ml-service:latest -o attest

3. Прежде чем использовать изображение, проверьте его:

валинт проверить мл-сервис: последний

Этот этап проверки гарантирует, что развернутый образ создан с проверенной моделью внутри.

Подобную проверку можно выполнять перед каждым развертыванием в Kubernetes с помощью контроллера доступа Scribe. 

Рекомендация 

Инвестирование в продукт для обеспечения безопасности цепочки поставок программного обеспечения в 2024 году, который будет отвечать как непосредственным требованиям цепочки поставок программного обеспечения, так и меняющимся потребностям MLOps, является стратегическим выбором.

Инвестиции в научно обоснованное решение с гибким механизмом политик позволят в будущем интегрировать новые технологии безопасности MLOps, специфичные для конкретной области, по мере их развития.

Почему это сообщение в блоге Scribe Security?

Вы должны знать ответ, если прочитаете все до этого момента: Scribe предоставляет решение для обеспечения безопасности цепочки поставок программного обеспечения на основе фактических данных/аттестаций с гибким и расширяемым механизмом политики. Чтобы просмотреть подробный пример защиты конвейера MLOps с помощью продуктов Scribe, нажмите здесь.

Этот контент предоставлен вам Scribe Security, ведущим поставщиком комплексных решений для обеспечения безопасности цепочки поставок программного обеспечения, обеспечивающим современную безопасность артефактов кода, а также процессов разработки и доставки кода по всей цепочке поставок программного обеспечения. Подробнее.