![](https://habrastorage.org/getpro/habr/upload_files/94d/1a9/845/94d1a98451b395414669e22930bd8a1b.png)
Всем привет! Меня зовут Никита, я работаю в центре машинного обучения «Инфосистемы Джет». Сейчас я учусь в своей второй магистратуре в ВШЭ ФКН на программе «Современные компьютерные науки» и в Школе анализа данных (ШАД).
Сегодня я хочу рассказать о сравнительно новой концепции, которая становится все более актуальной и использование которой совершенно точно необходимо в больших промышленных ML-проектах, — MLSecOps.
❓Что такое MLSecOps?
MLSecOps (Machine Learning Security Operations) — это комбинация методов из области DevOps, безопасности и машинного обучения. Не трудно догадаться, что основной целью MLSecOps является обеспечение безопасности моделей на всех этапах их жизненного цикла, начиная от разработки и обучения и заканчивая деплоем и эксплуатацией. В статье я расскажу о нескольких подходах для защиты ML-систем.
?Почему это так важно?
Представим, что какой-нибудь недобросовестный человек решил проникнуть внутрь системы и украсть ваши конфиденциальные данные, — звучит не очень круто, да?
Например, атаки типа man-in-the-middle могут позволить злоумышленникам перехватывать и изменять данные, передаваемые между компонентами системы.
![Визуализация man-in-the-middle атаки Визуализация man-in-the-middle атаки](https://habrastorage.org/getpro/habr/upload_files/78a/621/fa2/78a621fa26ce2000ce5f8f5cbdb1c70a.png)
Более наглядный пример — это adversarial attacks, когда злоумышленники манипулируют входными данными модели, заставляя ее делать ошибочные предсказания, что в случае, например, медицинских приложений может привести к неправильной диагностике, а в системах финансового анализа — к огромным убыткам.
![Визуализация adversarial атаки Визуализация adversarial атаки](https://habrastorage.org/getpro/habr/upload_files/fc7/10e/57e/fc710e57e8988924c4011fc1f9cc717f.png)
Эти угрозы подчеркивают необходимость внедрения строгих мер безопасности для защиты данных и моделей на всех этапах их жизненного цикла.
?Кому нужна эта статья?
Думаю, всем, кто занимается проектами в сфере ML, этот пост может оказаться полезным, тем более что других статей на эту тему на Хабре я пока не нашел (может, я смогу привлечь внимание и спровоцирую рост количества статей, соответственно и развитие этой концепции).
О том, как внезапно родился и вырос интерес к теме MLSecOps, лучше всяких слов говорит график запросов:
![](https://habrastorage.org/getpro/habr/upload_files/20a/82f/c2d/20a82fc2d1dbd457dbb28118ecdf749e.png)
Space ISAC также подчеркнул критическую важность MLSecOps для обеспечения надежности и безопасности систем AI/ML. Так что вангую, что в последующие месяцы показатель количества интересующихся темой будет также драматически расти. Поэтому предлагаю перейти сразу к делу и узрить MLSecOps.
P.S. Позже планирую опубликовать результаты моего более глубокого погружения в тему с примерами использования различных инструментов, библиотек и фреймворков.
?Три пункта, почему об этом стоит хотя бы задуматься
Данные — новое нефть
Как правило, модели обучаются на больших объемах данных и зачастую могут содержать конфиденциальную информацию, а потеря или компрометация этих данных может иметь катастрофические последствия. Например, для ретейла утечка данных о торговле, используемых для обучения моделей, может позволить вашим конкурентам получить представление о торговых стратегиях, что нарушит рыночную целостность и конкурентоспособность бизнеса.Атаки на модели
Наши недоброжелатели могут манипулировать входными данными (атаки на входы) или изменять поведение моделей (атаки на модели), чтобы они делали неправильные предсказания или получали ту информацию, которую, к примеру, наша LLM не должна выдавать.Приватность данных
Соблюдение, например, федерального закона «О персональных данных» в России или его аналога, действующего в ЕС (General Data Protection Regulation, GDPR), и других нормативных актов требует применения надежных мер безопасности.
?Разница между MLSecOps и DevSecOps
DevSecOps:
интеграция безопасности на всех этапах разработки программного обеспечения;
основной фокус на обеспечении безопасности кода и инфраструктуры.
MLSecOps:
включает в себя все аспекты DevSecOps и добавляет специфические методы и инструменты для обеспечения безопасности данных и моделей машинного обучения;
дополнительный фокус на защите данных, используемых для обучения моделей, и на защиту самих моделей от атак и манипуляций.
?А кто-то уже внедрил MLSecOps?
![](https://habrastorage.org/getpro/habr/upload_files/b0c/12a/423/b0c12a4234b9a7a3ed2b9c41d80c1494.png)
Например, в 2016 году Microsoft запустила AI-чатбота Tay, который подвергся атаке на данные и начал генерировать нежелательный контент. В ответ на эту атаку Microsoft разработала и опубликовала инструменты защиты от атак на основе AI, такие как Counterfit, который есть в открытом доступе.
![](https://habrastorage.org/getpro/habr/upload_files/af3/9a1/38a/af39a138ac68db6173eb3b87941a5dc5.png)
Также компания Ericsson, которая использует AI/ML для различных своих продуктов, внедрила Secure MLOps для интеграции практик безопасности на всех этапах жизненного цикла ML. Они используют базовые меры безопасности, такие как STRIDE, Microsoft AI Security Risk Assessment и MITRE`s ATLAS для оценки и управления рисками.
?Пайплайн разработки MLSecOps
В этой главе я описал справочную информацию об основных аспектах безопасности этой концепции, на которые стоит обратить внимание. Можно пройтись по ним как по чек-листу, чтобы проверить, все ли используется в вашем проекте. :)
![Сделал для вас схему Сделал для вас схему](https://habrastorage.org/getpro/habr/upload_files/913/4ab/61f/9134ab61fd7035ed2a55d5c176b0209c.png)
Этап 1: ML SYSTEM DESIGN
Описание этапа: ML System Design включает в себя проектирование и архитектуру системы машинного обучения, которая будет устойчива к угрозам безопасности и сможет эффективно решать поставленные задачи. Этот этап охватывает выбор архитектуры, проектирование компонентов системы, а также обеспечение безопасности и надежности системы.
1. Оценка безопасности модели
Идентификация угроз: На этапе проектирования ML-модели необходимо проводить всесторонний анализ векторов атак для построения модели угроз.
-
Тип модели и задачи: Разные типы моделей (например, LLMs, GANs, нейронные сети) имеют различные уровни уязвимости. Важно учитывать:
специфику моделей и их уязвимость к различным типам атак;
бизнес-задачи, которые решает модель, и критичность данных.
2. Оценка данных
-
Анализ источников данных: Оценка доверенности и происхождения данных. Важно проверить, что данные поступают из проверенных и надежных источников.
Проверка поставщиков данных и процедур их обработки.
Обеспечение целостности данных на всех этапах сбора и передачи.
-
Конфиденциальность данных: Оценка данных на предмет конфиденциальности.
Оценка наличия PII (Personally Identifiable Information), данных о банковских картах и других видах чувствительной информации.
Внедрение методов защиты данных, таких как шифрование и анонимизация.
3. Выставление требований и анализ рисков по кибербезопасности
-
Формирование требований: Определение и документирование требований безопасности для ML-системы.
Формирование политики безопасности, включающей в себя правила доступа, шифрование данных, мониторинг, управление инцидентами и т.д.
Оценка возможных рисков и принятие обоснованных решений, которое включает в себя разработку планов управления рисками, включающих стратегии снижения, передачи, принятия или отказа от рисков, а также регулярное проведение оценки рисков и обновление стратегий безопасности в соответствии с изменяющимися угрозами и уязвимостями.
Этап 2: Data Operations (Операции с данными)
Описание этапа: Data Operations включает в себя все процессы, связанные с управлением данными на протяжении всего их жизненного цикла. Этот этап включает сбор, обработку, хранение и управление данными, которые будут использоваться для обучения и работы моделей машинного обучения.
Основные процессы:
-
Сбор данных:
сбор данных из различных источников, включая базы данных, сенсоры, веб-сайты и другие системы;
обеспечение соответствия собираемых данных требованиям по качеству и безопасности.
-
Очистка данных:
удаление дубликатов, заполнение пропущенных значений и корректировка некорректных данных;
обнаружение и исправление аномалий.
-
Подготовка данных:
преобразование данных в формат, подходящий для машинного обучения (например, нормализация, кодирование категориальных данных);
создание признаков, которые будут использоваться в моделях (feature engineering).
-
Хранение данных:
безопасное хранение данных с использованием шифрования и других методов защиты;
обеспечение доступа к данным только авторизованным пользователям.
-
Управление данными:
ведение журналов доступа и изменений данных для обеспечения аудируемости;
обеспечение соблюдения нормативных требований (например, 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 включает в себя разработку, оценку и управление моделями машинного обучения. Этот этап охватывает все процессы от выбора и настройки алгоритмов до отслеживания и обновления моделей в процессе их эксплуатации.
Основные процессы:
-
Выбор и настройка алгоритмов:
выбор подходящего алгоритма машинного обучения для решения конкретной задачи;
настройка гиперпараметров модели для оптимизации ее производительности.
-
Тренировка моделей:
обучение модели на подготовленных данных;
валидация модели для проверки ее производительности на новых данных.
-
Оценка моделей:
оценка качества модели с использованием тестовых наборов данных;
проведение экспериментов для улучшения модели и сравнение различных версий.
-
Управление моделями:
версионирование моделей для отслеживания изменений и обновлений;
управление жизненным циклом моделей от разработки до развертывания и эксплуатации.
-
Обеспечение безопасности моделей:
защита моделей от различных угроз, таких как атаки на гиперпараметры, использование вредоносных библиотек и т.д.
Риски и методы защиты | |||
Название риска |
Описание риска |
Методы защиты |
Инструменты |
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 включает в себя процессы развертывания обученных моделей в производственные среды и обеспечение их доступности для использования. Этот этап охватывает создание образов моделей, изоляцию, масштабирование, мониторинг и управление запросами на выводы.
Основные процессы:
-
Создание образов моделей:
подготовка моделей для развертывания, включая контейнеризацию и создание образов;
проверка моделей на наличие уязвимостей перед развертыванием.
-
Изоляция и безопасное развертывание моделей:
обеспечение изоляции моделей для предотвращения несанкционированного доступа и манипуляций;
использование контейнеров или виртуальных машин для безопасного развертывания.
-
Масштабирование и автоматизация:
обеспечение автоматического масштабирования моделей в зависимости от нагрузки;
настройка механизмов автоматического обновления и отката моделей.
-
Мониторинг и управление запросами:
мониторинг производительности и точности моделей в реальном времени;
управление запросами на выводы, включая балансировку нагрузки и ограничение скорости.
-
Обеспечение безопасности моделей:
защита моделей от различных атак, таких как инъекции в запросы, манипуляции с выводами и другие угрозы.
Риски и методы защиты | |||
Название риска |
Описание риска |
Методы защиты |
Инструменты |
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.
Основные процессы:
-
Управление уязвимостями и патчинг:
регулярное сканирование инфраструктуры и приложений на наличие уязвимостей;
оперативное применение обновлений и патчей для устранения выявленных уязвимостей.
-
Изоляция и контроль доступа:
обеспечение изоляции моделей и систем для предотвращения несанкционированного доступа.
настройка и управление правами доступа для различных ролей и пользователей.
-
Мониторинг и аудит:
непрерывный мониторинг работы моделей и платформы для выявления аномалий и инцидентов;
ведение журналов аудита для отслеживания действий и изменений в системе.
-
Эксплуатация инструментов CI/CD:
настройка и использование инструментов для непрерывной интеграции и доставки (CI/CD);
автоматизация процессов развертывания, тестирования и обновления моделей.
-
Соответствие нормативным требованиям:
обеспечение соответствия требованиям безопасности и конфиденциальности данных;
регулярные аудиты и проверки на соответствие нормативным требованиям и стандартам.
Риски и методы защиты | |||
Название риска |
Описание риска |
Методы защиты |
Инструменты |
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
Shaman_RSHU
По сути описанные в гайдах, приведенных в конце статьи, риски и методы защиты можно спроецировать на любое направление. MLSecOps опять же только теория. Покажите готовый продукт, который был бы построен по этой теории. Продукт, который успевает в гонке развития технологии этого направления и может конкурировать с другими аналогичными продуктами, на которые не наложены такие ограничения.
nfrvnikita Автор
Добрый день!
Да, какие-то схожи, Вы правы, но есть атаки и методы защиты характерные исключительно для ML. Например, adversarial атаки и adversarial training как метод защиты.
Внедрение безопасности не приносит продукту явных конкурентных преимуществ, но значительно снижает риски, связанные с возможными репутационными потерями. Давайте рассмотрим гипотетическую ситуацию. Есть две компании: N и M. Первая позаботилась о защите от атак на свою систему автопилота, в то время как вторая этого не сделала. Кто из них сможет в перспективе забрать больший кусок рынка? Очевидно, что N, которая вложилась в безопасность, будет иметь преимущество, как минимум потому, что её продукт надёжнее.
Shaman_RSHU
Репутационные риски - это последний аргумент безопасников, когда уже ничего не остается :) Яндекс Еда допустил утечку ПДн и что, потерял от этого долю рынка? CDEK допустил утечку ПДн, да еще и недоступность на несколько суток. Что-то незаметно, чтобы были потери рынка.
В РФ никому неинтересно, что продукт надежнее. Интересно дешевле, быстрее, функциональнее. К огромному сожалению зарубежные гайды в России не работают.
Вот когда MLSecOps станет хайпом, как DevSecOps, AppSec и т.п. в своё время и крупные фирмы станут драйверами, тогда и остальные потянутся.