Light mode

Что такое MLSecOps

12 минут
  • #MLSecOps
  • #AppSec
  • #DevSecOps

Пока все повально внедряют ML в SecOps, мы пошли дальше и начали внедрять SecOps в ML! Но обо всем по порядку...

1_рис.jpg
Рисунок 1.  Составляющие MLSecOps.svg
Рисунок 1. Составляющие MLSecOps

MLSecOps сочетает решение задач по обеспечению безопасности приложений с операциями ML и AI. По сути, речь о комплексной защите систем машинного обучения — тех самых нейронок, которые плотно осели в нашей жизни. Процесс MLSecOps поможет устранить уязвимости, обнаружить атаки (да-да, не забываем про этап Ops) и защититься от утечек, а заодно сохранить целостность и конфиденциальность моделей и данных. Кроме того, подобные практики повышают общую доступность ML-приложений и переводят весь окружающий их контекст на качественно новый уровень. А безопасность, как мы знаем, — это всегда про качество ;)

Внедрение MLSecOps также затрагивает вопросы регуляторики. Чтобы не было мучительно больно при проверке регулятора, мы должны гарантировать доверие к ML-моделям, а значит, и к приложениям для конечного пользователя.
 

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

При чем здесь DevSecOps

Помните, сколько лет назад в нашей повседневной жизни (читай: разработке) появилось понятие DevSecOps? Development_Security_Operations, «восьмерка DevSecOps», «три столпа безопасной разработки» и т. д. Если открыть статьи по теме, написанные 5–7 лет назад, вы увидите, что они очень размытые. Одни и те же вопросы муссируются в огромном количестве материалов, которые лишь немного меняют форму, но не содержание.

Рисунок 2. Составляющие DevSecOps.svg
Рисунок 2. Составляющие DevSecOps

Не кажется ли вам, что органиграммы похожи? По крайней мере, что-то общее точно есть...

Раньше внедрять практики безопасной разработки без DevOps и крепкого кибербеза было невозможно, да и попросту не нужно. Потому что зачем оно все, когда не защищен периметр? Со временем ситуация изменилась: DevSecOps отщепился от стандартного понятия безопасности пайплайна и немного отдалился от самой разработки. Теперь это что-то самостоятельное! DevSecOps диктует правила, меняет подходы к разработке и отношение специалистов к кибергигиене. Лично меня ничто не останавливает от внедрения практик безопасной разработки в компаниях, где DevOps-конвейера еще нет. Более того, в организациях с почти отсутствующим кибербезом тоже! В моей практике есть кейсы, когда разработка становилась трендсеттером для всей компании: после успешного внедрения конвейера безопасной разработки рядом вырастали SOC, полноценный мониторинг, ИБ-обучение, харденинг инфраструктуры и т. д.

Где подстерегают опасности

Переходим непосредственно к безопасной разработке в контексте ML (будем учитывать все возможные ответвления: классическое машинное обучение, глубокое обучение и др.). Все ML-модели нужно разрабатывать с учетом требований ИБ и в адекватном, качественном конвейере.

Рисунок 3. Базовые домены безопасности разработки ML.svg
Рисунок 3. Базовые домены безопасности разработки ML

Если посмотреть на архитектуру MLSecOps (см. рис. 3), мы увидим следующее: часть практик пришла из DevSecOps, остальные — из процесса разработки и эксплуатации ML-моделей. Так, в классической безопасной разработке в качестве базовых доменов выделяются блоки, связанные с управлением, разработкой и мониторингом. В случае ML огромное внимание также уделяется этапам работы с данными и обучению моделей.
Что мы делаем, когда создаем обычное приложение? Правильно: последовательно проходим определенные этапы разработки (см. рис. 4). 

Рисунок 4. Этапы разработки классического приложения (упрощенно).svg
Рисунок 4. Этапы разработки классического приложения (упрощенно)

А что, если мы захотим добавить туда немного магии ML? В этом случае к привычной схеме добавятся уже упомянутые этапы работы с данными (см. рис. 5) и обучения моделей (см. рис. 6). На последний, кстати, приходится много угроз и атак — supply chain никто не отменял!

Рисунок 5. Работа с данными.svg
Рисунок 5. Работа с данными
Рисунок 6. Обучение модели.svg
Рисунок 6. Обучение модели

А теперь прибавим ко всему этому возможные риски и получим перечень угроз, которые возникают в процессе разработки и эксплуатации ML-моделей (см. рис. 7).

Рисунок 7. Угрозы и риски при работе с ML-моделями.svg
Рисунок 7. Угрозы и риски при работе с ML-моделями

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

  • Атаки на данные. Отравление датасетов, внедрение закладок на этапе обучения, манипуляции с признаками — все это способно подорвать доверие к модели и привести к непредсказуемым последствиям.
  • Утечки данных для обучения модели. Злоумышленники могут найти недостатки в данных и использовать их для будущих атак.
  • Получение доступа к серверам и кластерам, которые используются для обучения модели. Злоумышленники могут внедрить в них вредоносный код и даже подменить саму модель.
  • Эксплуатация уязвимостей в библиотеках и фреймворках, которые используются при разработке.
  • Кража обученных ML-моделей.

Ситуацию усугубляет отсутствие единой базы реальных инцидентов, связанных с атаками на ML- и AI-продукты. Компании не спешат делиться информацией о взломах, а порой даже не имеют адекватных инструментов для их обнаружения.

Этапы ML-разработки

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

  1. Все начинается со сбора и подготовки данных — это фундамент, на котором строится проект. Низкое качество данных, их предвзятость или неполнота могут привести к созданию неэффективной или даже опасной для бизнеса модели.
  2. Следующий этап — обучение модели. Это итеративный процесс, требующий постоянной настройки гиперпараметров и оценки качества продукта. Обучение таит в себе риски, связанные с использованием уязвимых библиотек и фреймворков. Но еще важнее понимать, что доступ к самим гиперпараметрам модели даст злоумышленникам огромное преимущество. Зная тонкости ее обучения, они смогут миновать этап разведки (на котором можно спалиться) и сразу подобрать максимально эффективные методы атаки.
  3. После успешного обучения модель разворачивается в продуктовом контуре. Деградация решения, вызванная течением времени или определенным изменением входных данных, открывает возможности для манипулирования ее поведением.
  4. Отдельно остановимся на способах доставки моделей до конечного пользователя. Самый распространенный вариант развертывания — через API. Этот подход помогает нивелировать ряд угроз, но не является полностью безопасным без дополнительных мер защиты и постоянного мониторинга. С помощью тщательного анализа запросов и поиска аномалий в ответах модели злоумышленники могут выявлять уязвимости и разрабатывать эффективные методы атаки (особенно если модель выдает чуть больше информации, чем нужно). Кроме того, ML-модель может быть не только развернута как отдельный сервис, но и встроена непосредственно в приложение. В этом случае злоумышленники могут получить доступ к ее коду и данным, анализировать ее работу, а в некоторых случаях даже извлечь модель и использовать в своих целях.

Почему безопасность не построить без автоматизации

DevSecOps строится вокруг конвейера DevOps, а MLSecOps — вокруг MLOps. Появление конвейера MLOps было ожидаемо: с ростом запроса на ML- и AI-решения увеличилась и нагрузка на команды разработки. Из-за стремительного роста объемов данных и сложности моделей (а вместе с ними и всех описанных угроз) эффективно обеспечивать их безопасность вручную стало невозможно. Логичным решением этой проблемы стала автоматизация мер безопасности на всех этапах ML-разработки.

Конвейер MLOps состоит их нескольких крупных этапов:

  1. Обработка данных. Мероприятия, затрагивающие подготовку данных для обучения модели (сбор, хранение, предобработка, разметка и т. д.). 
  2. Разработка модели. Анализ данных с целью выявления закономерностей, создание архитектуры модели, а также процесс ее обучения и тестирования.
  3. Развертывание. Бесшовная интеграция модели со смежными системами и внедрение в производственные процессы и продуктовую среду (на отдельные устройства или в локальные и облачные среды). 
  4. Мониторинг модели и инфраструктуры. Сбор метрик и оценка ML-модели в промышленной эксплуатации. На этом этапе анализируется работа модели — для повышения ее эффективности и выявления дрейфа. В итоге можно выявить ряд проблем и составить план доработки (корректировки).
     
Рисунок 8. Конвейер MLOps.svg
Рисунок 8. Конвейер MLOps

Методология MLOps предполагает автоматизацию всех вышеперечисленных этапов и несет с собой ряд преимуществ:

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

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

Когда ML под ударом: реальные (ну почти) кейсы

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

Кейс № 1

Среди показательных примеров — отравление антивирусной базы VirusTotal. Исследователи McAfee обнаружили подозрительную активность на платформе, связанную с резким увеличением количества загрузок образцов одного семейства программ-вымогателей. Оказалось, злоумышленник использовал инструмент метаморфического кода metame для создания многочисленных модифицированных вариантов оригинального вредоносного файла. Эти образцы (зачастую вообще нерабочие) были загружены на платформу и классифицировались антивирусными движками как принадлежащие к одному семейству. 

Как следствие, модифицированные образцы попали в датасет для обновления ML-моделей и отравили его. В результате модели, которые использовались для обнаружения этого семейства вымогателей, начали ошибочно классифицировать нерелевантные файлы как ВПО.

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

Кейс № 2

Не совсем инцидент, но все же: кейс представлен как исследование компании Skylight Cyber. Исследователи смогли создать универсальную строку, которая, будучи добавленной к вредоносному файлу, позволяла ему обходить Cylance AI (антивирус на базе ИИ). Для этого специалисты проанализировали публично доступную информацию о работе модели (в том числе патентные заявки Cylance), включили функцию подробного ведения журнала приложения и выявили слабое место в алгоритме оценки репутации файлов. Это позволило исследователям легко обойти Cylance AI. 

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

Кейс № 3

Последний кейс на сегодня — атака на PyTorch. Это реальный инцидент, случившийся в конце 2022 г. В результате атаки на цепочку поставок вредоносный код, замаскированный под зависимость PyTorch, попал в репозиторий PyPI. Когда пользователи устанавливали зараженную версию PyTorch Nightly, злоумышленники получали доступ к конфиденциальной информации. Все это привело к масштабной утечке чувствительных данных.

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

Рисунок 9. Домены фреймворка MLSecOps.svg
Рисунок 9. Домены фреймворка MLSecOps
Рисунок 10. Практики и активности на примере одного домена.svg
Рисунок 10. Практики и активности на примере одного домена

При создании фреймворка мы ориентировались на мировые best practices и старались комплексно подойти к задаче по обеспечению безопасности ML-разработки. Отмечу, что это не просто сухой список активностей, но и своего рода инструкция. Инструмент точно будет полезен всему человечеству индустрии, поэтому он лежит в открытом доступе и ждет ваших комментариев, предложений и замечаний ;)

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

Кадры и обучение

Рассказывая о MLSecOps, нельзя не затронуть самый острый вопрос — кадровый (никогда такого не было, и вот опять…). Можно сказать, что развитие MLSec в целом и MLSecOps в частности напрямую зависит от его решения. Проблема заключается не просто в нехватке специалистов, а в том, что их, можно сказать, вообще не существует :) Есть ученые, которые занимаются исследованиями в области безопасности машинного обучения, но их работа далека от практической реализации защищенных ML-систем. Есть энтузиасты, которые изучают тему в свободное время, но их разрозненные усилия не закроют потребностей отрасли. Отдельного внимания заслуживает тот факт, что большинство специалистов сосредоточены на пентесте ML-решений, а не на разработке и внедрении защитных мер. Как результат — профессионалов, работающих на стыке машинного обучения, информационной безопасности и MLOps, практически невозможно найти.

Что делать? Пока оптимальным решением видится обучение ML-инженеров основам кибербезопасности. Человеку, который уже неплохо разбирается в машинном обучении, будет значительно проще освоить специфику атак на ИИ и научиться им противодействовать. Так что наша задача на ближайшее будущее — создавать образовательные программы, проводить воркшопы и митапы, которые помогут ML-инженерам стать экспертами в области безопасности машинного обучения. А заодно — повышать экспертизу ИБ-специалистов в этом направлении.

Мы дěлаем Positive Research → для ИБ-экспертов, бизнеса и всех, кто интересуется ✽ {кибербезопасностью}