banner

Новости

Aug 28, 2023

Обучение машинному обучению, часть 3: атака на модели «черного ящика»

Главная » Кибербезопасность » Аналитика и интеллект » Обучение машинному обучению, часть 3: атака на модели «черного ящика»

В первом посте этой серии мы кратко рассказали о машинном обучении, подходе Revoke-Obfuscation для обнаружения запутанных сценариев PowerShell и моих усилиях по улучшению набора данных и моделей для обнаружения запутанных сценариев PowerShell. В итоге мы получили три модели: регуляризованную логистическую регрессию L2 (Ridge), классификатор LightGBM и архитектуру нейронной сети.

Во втором посте речь шла об атаке на эти модели сбелая коробка перспектива, т. е. где у нас есть вся обученная модель, включая входные функции, архитектуру модели, параметры/веса модели и данные обучения. Я настоятельно рекомендую хотя бы просмотреть эти первые два поста, прежде чем продолжить, чтобы убедиться, что все это имеет как можно больше смысла.

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

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

Кроме того, большая часть исследований, по-видимому, была связана с распознаванием изображений. Хотя это интересно, это определенно другая проблемная область, чем та, с которой мы имеем дело. В частности, изображения могут иметь несколько пикселей, слегка искаженных, при этом результирующее состязательное изображение не будет выглядеть измененным для человеческого глаза. Для многих проблем, с которыми мы сталкиваемся в области безопасности, например, в нашем пространстве проблем обфускации PowerShell, мы более ограничены в а) количестве функций, которые мы можем изменить, и б) в степени, в которой мы можем изменять указанные функции. То есть у нас есть меньшее функциональное подпространство изменений, которые мы можем внести в сценарии PowerShell, а не в изображения.

Ряд атак «черного ящика» включает в себяизвлечение модели (см. следующий раздел) для создания локальной модели, иногда называемой замещающей или суррогатной моделью. Затем существующие атаки выполняются против локальной модели для создания состязательных образцов в надежде, что эти образцы также обойдут целевую модель. Это часто работает из-за явлениявозможность передачи атаки, о котором мы вскоре поговорим.

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

Извлечение модели, по мнению Уилла Пирса и других, является одним из наиболее фундаментальных примитивов в состязательном машинном обучении. Хотя эта идея, вероятно, существовала некоторое время, я считаю, что первыми формализацией извлечения моделей (или, по крайней мере, той, которая популяризировала этот метод), была статья 2016 года «Переносимость в машинном обучении: от феноменов к атакам черного ящика с использованием состязательных выборок» и Статья 2017 года «Практические атаки черного ящика против машинного обучения» от Papernot и др. Общее резюме их подхода из статьи 2017 года таково:

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

Вся идея состоит в том, чтобы аппроксимировать границу решения целевой модели с меньшим количеством (и обычно другими) данными, чем модель изначально обучалась. По сути, извлечение модели предполагает сначала передачу ряда известных помеченных образцов в модель, которая действует как оракул маркировки. Представьте себе, что вы отправляете кучу двоичных файлов на какой-то веб-сайт, который позволяет узнать, являются ли эти двоичные файлы вредоносными или нет. Или представьте, что наши адаптированные модели Revoke-Obfuscation являются своего рода внутренним API, куда мы можем отправлять измерения наших функций и получать результат метки «нормальный» или «запутанный», или оценку вероятности запутывания. Имея достаточно входных данных, мы можем обучить локальную модель-заменитель, которая будет функционировать аналогично целевой модели.

ДЕЛИТЬСЯ