Всем привет! Меня зовут Никита, я работаю в центре машинного обучения «Инфосистемы Джет». Сейчас я учусь в своей второй магистратуре в ВШЭ ФКН на программе «Современные компьютерные науки» и в Школе анализа данных (ШАД).

Сегодня я хочу рассказать о сравнительно новой концепции, которая становится все более актуальной и использование которой совершенно точно необходимо в больших промышленных ML-проектах, — MLSecOps.


❓Что такое MLSecOps?

MLSecOps (Machine Learning Security Operations) — это комбинация методов из области DevOps, безопасности и машинного обучения. Не трудно догадаться, что основной целью MLSecOps является обеспечение безопасности моделей на всех этапах их жизненного цикла, начиная от разработки и обучения и заканчивая деплоем и эксплуатацией. В статье я расскажу о нескольких подходах для защиты ML-систем.

?Почему это так важно?

Представим, что какой-нибудь недобросовестный человек решил проникнуть внутрь системы и украсть ваши конфиденциальные данные, — звучит не очень круто, да?
Например, атаки типа man-in-the-middle могут позволить злоумышленникам перехватывать и изменять данные, передаваемые между компонентами системы.

Визуализация man-in-the-middle атаки
Визуализация man-in-the-middle атаки

Более наглядный пример — это adversarial attacks, когда злоумышленники манипулируют входными данными модели, заставляя ее делать ошибочные предсказания, что в случае, например, медицинских приложений может привести к неправильной диагностике, а в системах финансового анализа — к огромным убыткам.

Визуализация adversarial атаки
Визуализация adversarial атаки

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

?Кому нужна эта статья?

Думаю, всем, кто занимается проектами в сфере ML, этот пост может оказаться полезным, тем более что других статей на эту тему на Хабре я пока не нашел (может, я смогу привлечь внимание и спровоцирую рост количества статей, соответственно и развитие этой концепции).
О том, как внезапно родился и вырос интерес к теме MLSecOps, лучше всяких слов говорит график запросов:

Space ISAC также подчеркнул критическую важность MLSecOps для обеспечения надежности и безопасности систем AI/ML. Так что вангую, что в последующие месяцы показатель количества интересующихся темой будет также драматически расти. Поэтому предлагаю перейти сразу к делу и узрить MLSecOps.
P.S. Позже планирую опубликовать результаты моего более глубокого погружения в тему с примерами использования различных инструментов, библиотек и фреймворков.

?Три пункта, почему об этом стоит хотя бы задуматься

  1. Данные — новое нефть
    Как правило, модели обучаются на больших объемах данных и зачастую могут содержать конфиденциальную информацию, а потеря или компрометация этих данных может иметь катастрофические последствия. Например, для ретейла утечка данных о торговле, используемых для обучения моделей, может позволить вашим конкурентам получить представление о торговых стратегиях, что нарушит рыночную целостность и конкурентоспособность бизнеса.

  2. Атаки на модели
    Наши недоброжелатели могут манипулировать входными данными (атаки на входы) или изменять поведение моделей (атаки на модели), чтобы они делали неправильные предсказания или получали ту информацию, которую, к примеру, наша LLM не должна выдавать.

  3. Приватность данных
    Соблюдение, например, федерального закона «О персональных данных» в России или его аналога, действующего в ЕС (General Data Protection Regulation, GDPR), и других нормативных актов требует применения надежных мер безопасности.

?Разница между MLSecOps и DevSecOps

DevSecOps:

  • интеграция безопасности на всех этапах разработки программного обеспечения;

  • основной фокус на обеспечении безопасности кода и инфраструктуры.

MLSecOps:

  • включает в себя все аспекты DevSecOps и добавляет специфические методы и инструменты для обеспечения безопасности данных и моделей машинного обучения;

  • дополнительный фокус на защите данных, используемых для обучения моделей, и на защиту самих моделей от атак и манипуляций.

?А кто-то уже внедрил MLSecOps?

Например, в 2016 году Microsoft запустила AI-чатбота Tay, который подвергся атаке на данные и начал генерировать нежелательный контент. В ответ на эту атаку Microsoft разработала и опубликовала инструменты защиты от атак на основе AI, такие как Counterfit, который есть в открытом доступе.

Также компания Ericsson, которая использует AI/ML для различных своих продуктов, внедрила Secure MLOps для интеграции практик безопасности на всех этапах жизненного цикла ML. Они используют базовые меры безопасности, такие как STRIDE, Microsoft AI Security Risk Assessment и MITRE`s ATLAS для оценки и управления рисками.


?Пайплайн разработки MLSecOps

В этой главе я описал справочную информацию об основных аспектах безопасности этой концепции, на которые стоит обратить внимание. Можно пройтись по ним как по чек-листу, чтобы проверить, все ли используется в вашем проекте. :)

Сделал для вас схему
Сделал для вас схему

Этап 1: ML SYSTEM DESIGN

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

1. Оценка безопасности модели

  • Идентификация угроз: На этапе проектирования ML-модели необходимо проводить всесторонний анализ векторов атак для построения модели угроз.

  • Тип модели и задачи: Разные типы моделей (например, LLMs, GANs, нейронные сети) имеют различные уровни уязвимости. Важно учитывать:

    • специфику моделей и их уязвимость к различным типам атак;

    • бизнес-задачи, которые решает модель, и критичность данных.

2. Оценка данных

  • Анализ источников данных: Оценка доверенности и происхождения данных. Важно проверить, что данные поступают из проверенных и надежных источников.

    • Проверка поставщиков данных и процедур их обработки.

    • Обеспечение целостности данных на всех этапах сбора и передачи.

  • Конфиденциальность данных: Оценка данных на предмет конфиденциальности.

    • Оценка наличия PII (Personally Identifiable Information), данных о банковских картах и других видах чувствительной информации.

    • Внедрение методов защиты данных, таких как шифрование и анонимизация.

3. Выставление требований и анализ рисков по кибербезопасности

  • Формирование требований: Определение и документирование требований безопасности для ML-системы.

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

  • Оценка возможных рисков и принятие обоснованных решений, которое включает в себя разработку планов управления рисками, включающих стратегии снижения, передачи, принятия или отказа от рисков, а также регулярное проведение оценки рисков и обновление стратегий безопасности в соответствии с изменяющимися угрозами и уязвимостями.

Этап 2: Data Operations (Операции с данными)

Описание этапа: Data Operations включает в себя все процессы, связанные с управлением данными на протяжении всего их жизненного цикла. Этот этап включает сбор, обработку, хранение и управление данными, которые будут использоваться для обучения и работы моделей машинного обучения.

Основные процессы:

  1. Сбор данных:

    • сбор данных из различных источников, включая базы данных, сенсоры, веб-сайты и другие системы;

    • обеспечение соответствия собираемых данных требованиям по качеству и безопасности.

  2. Очистка данных:

    • удаление дубликатов, заполнение пропущенных значений и корректировка некорректных данных;

    • обнаружение и исправление аномалий.

  3. Подготовка данных:

    • преобразование данных в формат, подходящий для машинного обучения (например, нормализация, кодирование категориальных данных);

    • создание признаков, которые будут использоваться в моделях (feature engineering).

  4. Хранение данных:

    • безопасное хранение данных с использованием шифрования и других методов защиты;

    • обеспечение доступа к данным только авторизованным пользователям.

  5. Управление данными:

    • ведение журналов доступа и изменений данных для обеспечения аудируемости;

    • обеспечение соблюдения нормативных требований (например, GDPR, CCPA).

Риски и методы защиты

Название риска

Описание риска

Методы защиты

Инструменты

Insufficient access controls

Несанкционированный доступ к данным может привести к их утечке или манипуляции.

Использование единого входа (SSO) с многофакторной аутентификацией (MFA), ограничение доступа по IP-адресам, настройка прав доступа на основе ролей.

1. KeyCloak

2. IDM Solar inRights

Missing data classification

Неклассифицированные данные по степени чувствительности и критичности сложно защитить должным образом.

Разметка конфиденциальных данных, классификация данных по критерию конфиденциальности.

1. BigID

2. IBM GDP

Poor data quality

Некачественные данные могут привести к ошибочным выводам моделей машинного обучения.

Проведение проверок качества данных, мониторинг и оповещение о проблемах с качеством данных.

1. Pandas Profiling:

2. Prometheus:

3. Informatica Data Quality

Ineffective storage and encryption

Данные могут быть украдены или изменены без надлежащего уровня защиты.

Шифрование данных при хранении и передаче, управление доступом к данным и другим объектам.

1. KeyCloak

2. IDM Solar inRights

3. TDE PostgreSQL

4. TSL/SSL и VPN решения

Lack of data versioning

При повреждении данных может быть сложно восстановить их до предыдущего состояния.

Версионирование данных и отслеживание журналов изменений.

1. DVC

2. Splunk

Insufficient data lineage

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

Захват и просмотр данных lineage, управление доступом к данным и их активам.

1. Apache Atlas

2. Apache Ranger

Lack of data trustworthiness

Атаки на данные могут привести к их порче или манипуляции.

Версионирование данных, отслеживание изменений и использование методов защиты от манипуляций.

1. DVC

2. Apache Atlas

3. Цифровые подписи / Шифрование данных / SHA-256

Data legal

Несоответствие юридическим требованиям (например, GDPR) может привести к штрафам и репутационным потерям.

Удаление записей из наборов данных и повторное обучение моделей для соблюдения прав субъектов данных.

1. BidID

Stale data

Устаревшие данные или данные, которые больше не отражают текущую ситуацию или состояние системы, могут снизить эффективность бизнес-процессов.

Использование потоковых данных в реальном времени, проведение проверок качества данных.

1. Apache Kafka

2. Talend

Lack of data access logs

Отсутствие журналов доступа может привести к невозможности определить источник утечки данных.

Аудит действий, выполненных над наборами данных.

1. Splunk

2. Prometheus

3. Apache Ranger

Этап 3: Model Operations (Операции с моделями)

Описание этапа: Model Operations включает в себя разработку, оценку и управление моделями машинного обучения. Этот этап охватывает все процессы от выбора и настройки алгоритмов до отслеживания и обновления моделей в процессе их эксплуатации.

Основные процессы:

  1. Выбор и настройка алгоритмов:

    • выбор подходящего алгоритма машинного обучения для решения конкретной задачи;

    • настройка гиперпараметров модели для оптимизации ее производительности.

  2. Тренировка моделей:

    • обучение модели на подготовленных данных;

    • валидация модели для проверки ее производительности на новых данных.

  3. Оценка моделей:

    • оценка качества модели с использованием тестовых наборов данных;

    • проведение экспериментов для улучшения модели и сравнение различных версий.

  4. Управление моделями:

    • версионирование моделей для отслеживания изменений и обновлений;

    • управление жизненным циклом моделей от разработки до развертывания и эксплуатации.

  5. Обеспечение безопасности моделей:

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

Риски и методы защиты

Название риска

Описание риска

Методы защиты

Инструменты

Lack of tracking and reproducibility of experiments

Отсутствие отслеживания экспериментов может привести к невозможности воспроизвести результаты и понять, почему модель работает определенным образом.

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

1. MLFlow

2. DVC

3. TensorBoard

Model drift

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

Мониторинг моделей в реальном времени и регулярное обновление моделей на основе новых данных.

1. Evidently AI

2. Grafana

3. Prometheus

Hyperparameters stealing

Гиперпараметры могут быть украдены и использованы для компрометации модели.

Безопасное хранение и управление гиперпараметрами, использование доступа по ролям.

1. KeyCloak

2. IDM Solar inRights

3. Apache HashiCorp Vault

Malicious libraries

Использование вредоносных библиотек может привести к компрометации системы.

Проверка и ограничение использования сторонних библиотек, регулярное сканирование библиотек на наличие уязвимостей.

1. WhiteSource

2. Snyk

3. Veracode

Evaluation data poisoning

Атаки на данные для оценки могут привести к неправильной валидации моделей.

Проверка данных для оценки на наличие аномалий и обеспечение их целостности.

1. PyCaret

2. Great Expectations

3. Alteryx

Insufficient evaluation data

Недостаточные или несоответствующие данные для оценки могут привести к неточным выводам о производительности модели.

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

1. Apache JMeter

2. LoadRunner

3. DataRobot

Backdoor machine learning/Trojaned model

Внедрение «закладок» в модели, особенно при использовании внешних моделей или передаче обучения сторонним организациям.

Сканирование моделей на наличие вредоносного кода перед использованием, проверка источников и поставщиков моделей, использование изоляции при развертывании моделей.

1. Checkmarx

2. Fortify

3. Anchore

Этап 4: Model Deployment and Serving (Развертывание и обслуживание моделей)

Описание этапа: Model Deployment and Serving включает в себя процессы развертывания обученных моделей в производственные среды и обеспечение их доступности для использования. Этот этап охватывает создание образов моделей, изоляцию, масштабирование, мониторинг и управление запросами на выводы.

Основные процессы:

  1. Создание образов моделей:

    • подготовка моделей для развертывания, включая контейнеризацию и создание образов;

    • проверка моделей на наличие уязвимостей перед развертыванием.

  2. Изоляция и безопасное развертывание моделей:

    • обеспечение изоляции моделей для предотвращения несанкционированного доступа и манипуляций;

    • использование контейнеров или виртуальных машин для безопасного развертывания.

  3. Масштабирование и автоматизация:

    • обеспечение автоматического масштабирования моделей в зависимости от нагрузки;

    • настройка механизмов автоматического обновления и отката моделей.

  4. Мониторинг и управление запросами:

    • мониторинг производительности и точности моделей в реальном времени;

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

  5. Обеспечение безопасности моделей:

    • защита моделей от различных атак, таких как инъекции в запросы, манипуляции с выводами и другие угрозы.

Риски и методы защиты

Название риска

Описание риска

Методы защиты

Инструменты

Prompt inject

Атаки, при которых злоумышленник вводит вредоносные данные в запросы на выводы модели.

Валидация и очистка входных данных, использование безопасных механизмов обработки запросов.

1. Garak

2. NeMo

3. IBM AppScan

Model inversion

Атаки, при которых злоумышленник пытается восстановить входные данные модели на основе ее выводов.

Ограничение доступа к чувствительным выводам, применение методов дифференциальной приватности.

1. Microsoft SEAL

2. Google DP

3. IBM Homomorphic Encryption

Model breakout

Атаки, при которых злоумышленник получает доступ к внутренним компонентам модели или системе.

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

1. Docker

2. Kubernetes

3. VMware

4. HashiCorp Vault

Looped input

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

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

1. NGINX

2. AWS Shild

3. Azure DDoS Protection

Infer training data membership

Атаки, при которых злоумышленник пытается определить, использовались ли конкретные данные для обучения модели.

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

1. TensorFlow Privacy

2. PySyft

3. OpenMined

Discover ML model ontology

Атаки, при которых злоумышленник пытается выявить структуру и параметры модели.

Обфускация моделей, ограничение доступа к метаданным моделей.

1. ProGuard

2. PyArmor

3. Azure by Vault

Denial of service (DOS)

Атаки, при которых злоумышленник пытается перегрузить систему, делая ее недоступной для пользователей.

Настройка защиты от DDoS-атак, использование механизмов автоматического масштабирования и балансировки нагрузки.

1. Cloudflare DDoS Protection

2. AWS Shield

LLM hallucinations

Неправильные или неожиданные ответы модели, особенно в больших языковых моделях.

Тщательная настройка и тестирование моделей, внедрение механизмов проверки и фильтрации ответов.

1. LangChain

2. OpenAI Safety Gym

3. HITL

Input resource control

Атаки, при которых злоумышленник пытается исчерпать ресурсы системы, отправляя чрезмерное количество запросов.

Ограничение количества запросов от одного источника, использование квот и ограничений на использование ресурсов.

1. API Gateway

2. NGINX Rate Limiting

3. Google Cloud Endpoint

Accidental exposure of unauthorized data to models

Неумышленное предоставление модели доступа к данным, которые она не должна видеть.

Тщательное управление данными и доступом, регулярные аудиты и проверки конфигураций.

1. Apache Ranger

2. DLP

Этап 5: Operations and Platform

Описание этапа: Operations and Platform включает управление инфраструктурой и операциями, обеспечивающими стабильную и безопасную работу систем машинного обучения. Этот этап охватывает управление уязвимостями платформы, патчинг, изоляцию моделей, контроль доступа и эксплуатацию инструментов CI/CD.

Основные процессы:

  1. Управление уязвимостями и патчинг:

    • регулярное сканирование инфраструктуры и приложений на наличие уязвимостей;

    • оперативное применение обновлений и патчей для устранения выявленных уязвимостей.

  2. Изоляция и контроль доступа:

    • обеспечение изоляции моделей и систем для предотвращения несанкционированного доступа.

    • настройка и управление правами доступа для различных ролей и пользователей.

  3. Мониторинг и аудит:

    • непрерывный мониторинг работы моделей и платформы для выявления аномалий и инцидентов;

    • ведение журналов аудита для отслеживания действий и изменений в системе.

  4. Эксплуатация инструментов CI/CD:

    • настройка и использование инструментов для непрерывной интеграции и доставки (CI/CD);

    • автоматизация процессов развертывания, тестирования и обновления моделей.

  5. Соответствие нормативным требованиям:

    • обеспечение соответствия требованиям безопасности и конфиденциальности данных;

    • регулярные аудиты и проверки на соответствие нормативным требованиям и стандартам.

Риски и методы защиты

Название риска

Описание риска

Методы защиты

Инструменты

Lack of MLOps — repeatable enforced standards

Несоблюдение стандартов MLOps может привести к снижению качества и безопасности моделей.

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

1. MLFlow

2. DVC

3. Kuberflow

4. Airflow

Lack of vulnerability management

Необнаруженные и неустраненные уязвимости могут быть использованы злоумышленниками.

Регулярное сканирование на уязвимости, применение патчей и обновлений, использование инструментов для управления уязвимостями.

1. Nessus

2. Qualys

3. Tenable.io

Lack of penetration testing and bug bounty

Отсутствие регулярного тестирования на проникновение может оставить систему уязвимой для атак.

Проведение регулярных тестов на проникновение, участие в программах поиска багов (bug bounty) для выявления уязвимостей.

1. Bugcrowd

2. Burp Suite

3. Metasploit

Lack of incident response

Отсутствие готовности к инцидентам безопасности может привести к серьезным последствиям.

Разработка и внедрение плана реагирования на инциденты, регулярные тренировки и обновление плана.

1. Splunk

2. ELK Stack

3. IBM QRadar

Unauthorized privileged access

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

Ограничение привилегированного доступа, использование многофакторной аутентификации, регулярные аудиты доступа.

1. KeyCloak

2. CyberArk

3. Okta

Poor SDLC

Недостатки в процессе разработки ПО могут привести к внедрению уязвимостей.

Внедрение и соблюдение лучших практик SDLC, включая безопасное программирование и тестирование на всех этапах разработки.

1. SonarQube

2. Gitlab CI/CD

3. Veracode

Lack of compliance

Несоответствие нормативным требованиям может привести к штрафам и потере репутации.

Регулярные аудиты на соответствие нормативным требованиям, внедрение политик и процедур для обеспечения соответствия.

1. Collibra

2. BigID

3. OneTrust

Резюмирую

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

А насколько, по вашему мнению, необходимо введение нового термина MLSecOps? Может ли существующий подход DevSecOps покрыть все аспекты безопасности в ML-проектах?

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

? Полезные ссылки и материалы:

⏺️ MLSecOps: Ensuring Security and Trust in Machine Learning Systems

⏺️ Snowflake AI Security Framework

⏺️ OWASP: LLM AI Cybersecurity & Governance Checklist

Комментарии (3)


  1. Shaman_RSHU
    30.07.2024 19:19

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


    1. nfrvnikita Автор
      30.07.2024 19:19
      +1


      Добрый день!

      1. Да, какие-то схожи, Вы правы, но есть атаки и методы защиты характерные исключительно для ML. Например, adversarial атаки и adversarial training как метод защиты.

      2. Внедрение безопасности не приносит продукту явных конкурентных преимуществ, но значительно снижает риски, связанные с возможными репутационными потерями. Давайте рассмотрим гипотетическую ситуацию. Есть две компании: N и M. Первая позаботилась о защите от атак на свою систему автопилота, в то время как вторая этого не сделала. Кто из них сможет в перспективе забрать больший кусок рынка? Очевидно, что N, которая вложилась в безопасность, будет иметь преимущество, как минимум потому, что её продукт надёжнее.


      1. Shaman_RSHU
        30.07.2024 19:19

        Репутационные риски - это последний аргумент безопасников, когда уже ничего не остается :) Яндекс Еда допустил утечку ПДн и что, потерял от этого долю рынка? CDEK допустил утечку ПДн, да еще и недоступность на несколько суток. Что-то незаметно, чтобы были потери рынка.

        В РФ никому неинтересно, что продукт надежнее. Интересно дешевле, быстрее, функциональнее. К огромному сожалению зарубежные гайды в России не работают.

        Вот когда MLSecOps станет хайпом, как DevSecOps, AppSec и т.п. в своё время и крупные фирмы станут драйверами, тогда и остальные потянутся.