
Всем привет! Меня зовут Никита, я работаю в центре машинного обучения «Инфосистемы Джет». Сейчас я учусь в своей второй магистратуре в ВШЭ ФКН на программе «Современные компьютерные науки» и в Школе анализа данных (ШАД).
Сегодня я хочу рассказать о сравнительно новой концепции, которая становится все более актуальной и использование которой совершенно точно необходимо в больших промышленных ML-проектах, — MLSecOps.
❓Что такое MLSecOps?
MLSecOps (Machine Learning Security Operations) — это комбинация методов из области DevOps, безопасности и машинного обучения. Не трудно догадаться, что основной целью MLSecOps является обеспечение безопасности моделей на всех этапах их жизненного цикла, начиная от разработки и обучения и заканчивая деплоем и эксплуатацией. В статье я расскажу о нескольких подходах для защиты ML-систем.
?Почему это так важно?
Представим, что какой-нибудь недобросовестный человек решил проникнуть внутрь системы и украсть ваши конфиденциальные данные, — звучит не очень круто, да?
Например, атаки типа man-in-the-middle могут позволить злоумышленникам перехватывать и изменять данные, передаваемые между компонентами системы.

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

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

Space ISAC также подчеркнул критическую важность MLSecOps для обеспечения надежности и безопасности систем AI/ML. Так что вангую, что в последующие месяцы показатель количества интересующихся темой будет также драматически расти. Поэтому предлагаю перейти сразу к делу и узрить MLSecOps.
 P.S. Позже планирую опубликовать результаты моего более глубокого погружения в тему с примерами использования различных инструментов, библиотек и фреймворков. 
?Три пункта, почему об этом стоит хотя бы задуматься
- Данные — новое нефть 
 Как правило, модели обучаются на больших объемах данных и зачастую могут содержать конфиденциальную информацию, а потеря или компрометация этих данных может иметь катастрофические последствия. Например, для ретейла утечка данных о торговле, используемых для обучения моделей, может позволить вашим конкурентам получить представление о торговых стратегиях, что нарушит рыночную целостность и конкурентоспособность бизнеса.
- Атаки на модели 
 Наши недоброжелатели могут манипулировать входными данными (атаки на входы) или изменять поведение моделей (атаки на модели), чтобы они делали неправильные предсказания или получали ту информацию, которую, к примеру, наша LLM не должна выдавать.
- Приватность данных 
 Соблюдение, например, федерального закона «О персональных данных» в России или его аналога, действующего в ЕС (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 включает в себя все процессы, связанные с управлением данными на протяжении всего их жизненного цикла. Этот этап включает сбор, обработку, хранение и управление данными, которые будут использоваться для обучения и работы моделей машинного обучения.
Основные процессы:
- 
Сбор данных: - сбор данных из различных источников, включая базы данных, сенсоры, веб-сайты и другие системы; 
- обеспечение соответствия собираемых данных требованиям по качеству и безопасности. 
 
- 
Очистка данных: - удаление дубликатов, заполнение пропущенных значений и корректировка некорректных данных; 
- обнаружение и исправление аномалий. 
 
- 
Подготовка данных: - преобразование данных в формат, подходящий для машинного обучения (например, нормализация, кодирование категориальных данных); 
- создание признаков, которые будут использоваться в моделях (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 и т.п. в своё время и крупные фирмы станут драйверами, тогда и остальные потянутся.