ИЗВЛЕЧЕНИЕ ЧАСТНЫХ ДАННЫХ ИЗ НЕЙРОННОЙ СЕТИ

Автор: Том Титкомб, специалист по данным в Tessella

Резюме: Мы демонстрируем, что нейронные сети уязвимы для атаки, которая воссоздает частные входные данные из выходных данных модели

Часть работы в этой статье была выполнена в рамках Cortex - Ускоритель искусственного интеллекта Тесселлы

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

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

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

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

Атаксономия

Как и любая система, нейронные сети уязвимы для атак в самых разных условиях. Некоторые атаки, такие как радиоактивные данные [2], компрометируют данные, чтобы позволить идентифицировать обучающий набор из обученной модели. Другие, такие как совместная тренировочная атака [3], используют информацию о градиенте из такого процесса, как федеративное обучение, для получения информации о данных обучения других участников.

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

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

Модель инверсии

Нейронные сети принимают некоторую форму входных данных (будь то фотографии, записи голоса или медицинские данные, чтобы назвать несколько примеров) и учатся кодировать их в какое-то новое распределение, из которого можно сделать вывод (какой объект на фотографии; какой было только что сказано, есть ли у кого-то рак…).

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

Фредриксон, Джа и Ристенпарт [4] продемонстрировали метод обнаружения данных, на которых обучалась модель, используя тот факт, что данные обучения оставляют своего рода отпечаток на путях прохождения нейронной сети.

Инверсия модели черного ящика

Атака Фредриксона известна как белый ящик: чтобы она работала, вы должны иметь доступ к внутренним компонентам модели. Здесь мы представим атаку черного ящика [5], названную так потому, что знание того, что происходит внутри модели, не требуется; злоумышленнику просто нужно иметь возможность запрашивать у него данные и наблюдать за результатами. Настройка атаки черного ящика очень распространена для моделей Машинное обучение как услуга (MLaaS), таких как переводчик, размещенный в веб-приложении.

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

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

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

Атака на практике

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

Это не такой надуманный пример, как кажется на первый взгляд. Например, разделенные нейронные сети (SplitNN) представляют собой обучающую парадигму, в которой часть сети размещается на устройстве владельца данных, а вторая часть сети размещается на другом устройстве [6]. Преимущество этого состоит в том, что владельцу данных не нужно отправлять необработанные данные другой стороне для вычислений (вместо этого отправляется кодирование данных нейронной сетью), и это требует меньших вычислительных затрат от держателя данных, чем федеративное обучение. Однако, как мы увидим, если кодировки данных не защищены надлежащим образом с помощью методов шифрования или ограниченного доступа к запросам модели, данные, тем не менее, могут быть раскрыты.

Мы начинаем с создания базового классификатора в PyTorch, разделенного на две части, чтобы обозначить владельца данных и вычислительный сервер SplitNN (в этом примере обе части находятся на одной машине, но вы можете использовать свое воображение).

Предположим, целевая модель была обучена на наборе данных MNIST и что мы можем получить доступ к выходным векторным данным размера 500 из first_part модели. Теперь мы создадим нашего атакующего, который принимает вектор размера 500 в качестве входных данных (вывод первой части цели) и выводит вектор размера 784 (размер данных).

Возможно, мы не знаем, на каких данных была обучена целевая модель, но мы знаем, что это своего рода рукописные изображения. Поэтому мы можем использовать часть набора данных EMNIST [7] рукописных писем для обучения нашего злоумышленника.

Наконец, мы запускаем невидимые данные через нашу модель атаки:

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

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

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

Конечно, представленная здесь инверсия черной модели - не единственный тип атаки, поэтому требуются и другие меры защиты. Одним из эффективных подходов к отделению модели от данных, которые она использует, является дифференциальная конфиденциальность, которая, среди других приложений, будет использоваться в переписи населения США 2020 года для защиты личности [8].

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

Выводы

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

использованная литература

[1]: https://www.openmined.org/

[2]: https://arxiv.org/pdf/2002.00937.pdf

[3]: https://arxiv.org/pdf/1805.04049.pdf

[4]: https://www.cs.cmu.edu/~mfredrik/papers/fjr2015ccs.pdf

[5]: https://www.ntu.edu.sg/home/tianwei.zhang/paper/acsac19.pdf

[6]: https://arxiv.org/pdf/1810.06060.pdf

[7]: https://www.nist.gov/itl/products-and-services/emnist-dataset

[8]: https://www.census.gov/about/policies/privacy/statistical_safeguards/disclosure-avoidance-2020-census.html