Безопасность в машинном обучении: от проектирования до переобучения

Безопасность в машинном обучении: от проектирования до внедрения

Безопасность в машинном обучении: от проектирования до внедрения

Предлагаем узнать, как повысить безопасность в машинном обучении и автоматизировать защиту данных, как отражать состязательные атаки (adversarial attacks) и при чём тут методология CRISP-DM (Cross-Industry Standard Process for Data Mining).

 

 

 

 

 

 

  1. Введение
  2. Безопасность в машинном обучении: зачем это нужно
    1. 2.1. Защита данных
    2. 2.2. Защита моделей
  3. Состязательные атаки
    1. 3.1. Основные методы состязательных атак
    2. 3.2. Конвейер обучения
  4. Нагрузочное тестирование моделей
  5. Автоматизация защиты и анализ данных
  6. Рекомендации для обеспечения безопасности
  7. Выводы

Введение

R&D-лаборатория Центра технологий кибербезопасности ГК «Солар» с 2015 года разрабатывает и внедряет модули на базе ИИ в решения по защите от утечек конфиденциальной информации и по управлению доступом, а также интегрирует машинное обучение в сервисы Центра противодействия кибератакам JSOC. 

Вендор развивает экосистему технологий ИИ, так как требования по защите информации затрагивают большинство решений в продуктовом портфеле «Солара». Таким образом формируется общая магистраль данных, позволяющая использовать наработки и модели ИИ в различных решениях.

Модули на базе ИИ используются для детектирования конфиденциальной информации, выявления аномалий в поведении пользователей и устройств, а также обнаружения сложных атак. К примеру, в Solar Dozor внедрён модуль для распознавания графических файлов, которые могут содержать изображения банковских карт, скан-копии паспортов, служебные документы с печатями, медицинскую и конструкторскую документацию. Запатентованная технология анализа поведения пользователей (UBA) позволяет вести профилактику угроз и прогнозировать риски, которые трудно выявить с помощью настраиваемых вручную средств защиты информации.

R&D-лаборатория также применяет технологии глубокого обучения и автокодировщики (autoencoders) для анализа DGA-доменов и развития больших языковых моделей (LLM). Так, LLM используется для анализа содержимого и категоризации веб-сайтов на 44 языках по 54 категориям контента. При этом точность выявления фишинговых ресурсов достигает 95 %.

Сегодняшний рассказ — о методах работы с данными и ML-моделями, позволяющих соблюсти требования по части прозрачности, ответственности и управления рисками в области искусственного интеллекта. Это направление в работе с ИИ крайне важно учитывать при использовании ML в продуктах для защиты от целенаправленных атак — EDR, NTA, XDR, SIEM и др., — которые и сами могут стать мишенями вредоносной активности.

Безопасность в машинном обучении: зачем это нужно

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

CRISP-DM (Cross-Industry Standard Process for Data Mining) — это стандартная методология разработки ML-моделей и внедрения их в продукты. Она состоит из следующих этапов:

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

Эти этапы могут идти в разном порядке и повторяться. Например, если оценка метрик модели пройдёт неудовлетворительно, придётся вернуться на предыдущий шаг. Более наглядно процесс иллюстрирует следующая схема (рис. 1).

 

Рисунок 1. Оценка метрик модели

Оценка метрик модели

 

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

Что необходимо защищать:

  1. Данные. Исходные и обработанные материалы, используемые для обучения модели, могут содержать конфиденциальную информацию.
  2. Модель. Алгоритмы и параметры модели являются интеллектуальной собственностью и могут быть привлекательны для кражи или подделки.
  3. Конвейер обучения. Инфраструктура и процессы обучения и развёртывания модели могут быть уязвимы к атакам или сбоям.

О защите стоит поговорить более детально.

Защита данных

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

Крайне важно синхронизировать процессы и операции между специалистами по работе с данными (data scientists) и программистами. Те и другие ориентируются на разные метрики датасетов: для первых важна точность модели, для вторых — производительность и масштабируемость. Поэтому команда R&D «Солара» разрабатывает методологию автоматического тестирования продуктов на базе ИИ, чтобы снизить риски появления уязвимостей в готовых решениях, обеспечить прозрачность и подотчётность ИИ-модулей ПО.

Ещё один риск — это утечки при использовании специфических стимулов (промптов) для LLM. Например, сейчас существует много неофициальных «зеркал» последних больших языковых моделей. Злоумышленник может попробовать дообучить какую-либо открытую модель, чтобы она выдавала ссылки на сайты с эксплойтами, вредоносные инструкции или ложную информацию, а затем выложить её в Сеть под видом «оригинальной».

Как мы проверяем данные:

  1. Используем инструменты сканирования файлов на наличие вредоносного кода, такие как VirusTotal.
  2. Применяем статистические методы для оценки целостности и качества данных.
  3. Выполняем ручную разметку и проверку данных.

Глубокая защита:

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

Защита моделей

Безопасность модели зависит от уровня доступа, который может получить злоумышленник. Их три:

  1. «Белый ящик» — полный доступ к модели и её внутренним параметрам.
  2. «Чёрный ящик» — доступ только ко входам и выходам модели.
  3. «Серый ящик» — частичный доступ ко внутренним компонентам модели.

Рассмотрим каждый вариант подробнее. 

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

Если речь идет о «чёрном ящике», то злоумышленник способен взаимодействовать с моделью только через пользовательский интерфейс. Здесь вероятны такие риски: он может «бомбардировать» модель запросами и анализировать ответы в поисках закономерностей либо изучать ответы модели, чтобы потом на их основе создать состязательные примеры. Чтобы предотвратить угрозы, стоит ограничить число запросов и добавить к выводу данных немного шума, чтобы затруднить копирование модели.

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

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

Состязательные атаки

Одна из самых серьёзных угроз в ML — состязательные атаки (adversarial attacks). Это различные методы, с помощью которых злоумышленники могут воздействовать на модели машинного обучения. Такие атаки направлены на искажение результатов работы модели или получение конфиденциальной информации.

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

Для борьбы с подобными атаками используют разные библиотеки: Adversarial Robustness Toolbox (ART) — для проверки модели на устойчивость, Foolbox — для тестирования атак на модель и её защиты, и пр. Устойчивость моделей к уязвимостям может быть усилена путём состязательной тренировки (adversarial training), когда модель обучается на примерах атак.

Основные методы состязательных атак

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

Например, злоумышленники могут использовать подсказки-инструкции (prompts), которые реализовывают джейлбрейк‑инъекции. Такие стимулы могут «сбивать с толку» модель для получения конфиденциальной информации.

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

 

Рисунок 2. Пример использования специального стимула

Пример использования специального стимула

 

Отравление данных (Data Poisoning): на этапе обучения модели злоумышленник меняет данные, добавляя некорректно размеченные или вредоносные примеры. В итоге модель учится на искажённых данных и начинает ошибаться при реальном использовании. Например, хакеры могут обмануть систему слежения с функцией Face ID с помощью специальных очков.

 

Рисунок 3. Обман системы с помощью очков

Обман системы с помощью очков

 

Ещё один приём такого рода — усложнить распознавание изображения с помощью специального второго слоя.

 

Рисунок 4. Пример использования специального слоя

Пример использования специального слоя

 

Как это влияет на R&D? Допустим, вы используете датасет из Kaggle с таблицей заголовков вредоносных программ, а киберпреступник добавил туда заголовки своих инструментов и поставил метки, свидетельствующие о том, что это безопасные файлы. Вы обучили модель на таком датасете, и теперь она будет пропускать эти файлы как безопасные.

Как мы защищаем модели:

  • Включаем в обучающий набор состязательные примеры, чтобы модель научилась с ними справляться.
  • Используем комбинации (ансамбли) нескольких моделей, что затрудняет обман всей системы.
  • Контролируем частоту и характер запросов к модели, чтобы предотвратить атаки.

Отдельная тема — это открытый код. В целом, опенсорсные решения при разработке ML-моделей можно и нужно использовать. Однако уязвимости в исходном коде модели могут дать злоумышленникам доступ к данным или даже контроль над её поведением. Поэтому важно проверять такие компоненты, чтобы обеспечить безопасность. Например, модуль SCA в программном продукте Solar appScreener анализирует используемые библиотеки с открытым кодом и зависимости на наличие уязвимостей и снижает риск использования уязвимых компонентов при обучении ML-моделей.

Что мы делаем с опенсорсными решениями:

  1. Проводим статистический и динамический анализ компонентов с открытым кодом на наличие уязвимостей.
  2. Тестируем на собственных данных — перед внедрением проверяем модель на наших датасетах, чтобы убедиться в её корректной работе.
  3. Проверяем, соответствуют ли сторонние решения нашим стандартам безопасности.

Вот пример бреши, с риском эксплуатации которой вы можете столкнуться: уязвимость в платформе машинного обучения TensorFlow (CVE-2021-41228) позволяла выполнить свой код при обработке утилитой «saved_model_cli» данных атакующего, переданных через параметр «--input_examples». Проблема была вызвана использованием внешних данных при вызове кода функцией «eval». Проблема устранена в выпусках TensorFlow 2.7.0, 2.6.1, 2.5.2 и 2.4.4.

Конвейер обучения

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

Возможные риски:

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

Как это влияет на R&D? Инсайдер может изменить код модели, и она начнёт выдавать результаты хуже ожидаемых или просто неверные — например, отметит, что у вас не скан чертежа, а просто… котик.

Как обезопасить конвейер:

  • Аудит кода и процессов — регулярно проверяем изменения в коде и настройках конвейера.
  • Контроль доступа — разграничиваем права доступа к различным компонентам конвейера.
  • Мониторинг и сигнализация — настраиваем механизмы оповещения о необычной активности или изменениях в поведении модели.

Нагрузочное тестирование моделей

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

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

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

Этот процесс также необходим для планирования мощностей и расчёта необходимого технического обеспечения.

Данные, полученные в результате нагрузочного тестирования, используются для разработки соглашений об уровне обслуживания (SLA) и для сравнения показателей со внутренними эталонами и показателями конкурентов. Кроме того, нагрузочное тестирование помогает организациям подготовиться к периодам роста или аномально высокого уровня нагрузки, что особенно важно для систем работающих в режиме 24×7.

В контексте безопасности ИИ нагрузочное тестирование обеспечивает дополнительный слой защиты. Оно помогает выявить и исправить потенциальные уязвимости, которые могут эксплуатировать злоумышленники, например, в ходе DDoS-атак. В R&D «Солара» мы используем нагрузочное тестирование для больших датасетов и отдельных решений по защите от утечек информации.

Автоматизация защиты и анализ данных

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

Инструменты наподобие MLFlow позволяют отслеживать весь цикл обучения модели и фиксировать изменения на каждом этапе. 

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

Автоматические инструменты для обнаружения аномалий и угроз:

  • Adversarial Robustness Toolbox (ART) — библиотека для генерации и обнаружения состязательных атак, тестирования устойчивости моделей. Она используется для автоматического обнаружения бэкдоров и аномалий в нейронных сетях.
  • Кластеризация активаций DNN: анализируем выходы скрытых слоёв нейронных сетей для выявления аномалий. Кластеризация скрытых слоёв DNN позволяет выявлять датасеты, которые содержат потенциально вредоносные данные. Это помогает защитить модели от возможных атак на этапе обучения.

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

Рекомендации для обеспечения безопасности

Предлагаем следующие советы:

  1. Внедряйте автоматизацию. Использование инструментов вроде MLFlow и ART помогает систематизировать процессы и снизить риск человеческих ошибок.
  2. Проводите регулярные аудиты. Проверка данных, моделей и процессов позволяет своевременно обнаружить и устранить уязвимости.
  3. Обучайте устойчивые модели. Использование методов состязательной тренировки и ансамблей моделей повышает устойчивость к атакам.
  4. Контролируйте доступ. Разграничение прав и мониторинг активности с помощью IdM- и PAM-систем помогают предотвратить инсайдерские угрозы и утечки необходимых для работы данных.
  5. Обращайте внимание на опенсорсные компоненты. Тщательно проверяйте сторонние решения на соответствие требованиям безопасности. Анализ стоит проводить на основе баз уязвимостей, которые включают в себя информацию об актуальных угрозах, ориентированных на российские компании. Например, уже упомянутый Solar appScreener поддерживает 36 языков программирования и 10 форматов исполняемых файлов, помогает выстроить всесторонний контроль безопасности ПО с помощью основных инструментов анализа кода — SAST, DAST, OSA — и снизить риски возникновения инцидентов, вызванных уязвимостями в коде.

Выводы

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

Полезные ссылки: 
Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru