ML под ударом: противодействие атакам на алгоритмы машинного обучения
Ежегодно выходят тысячи научных работ об атаках на алгоритмы машинного обучения. Большая часть из них рассказывает о взломе компьютерного зрения, ведь на его примере можно наглядно продемонстрировать последствия атаки.
На деле первыми под удар попадают спам-фильтры, классификаторы контента, антивирусные сканеры и системы обнаружения вторжений. Например, достается базе VirusTotal. Туда уже давно пробуют загружать безобидные файлы, которые распознаются, как вредоносные и вызывают цепочки ложных срабатываний.
Виды атак на ML-алгоритмы
Среда, в которой выполняются алгоритмы машинного обучения, подвержена большинству стандартных векторов атак, но это еще не все. Подобно тому, как реляционные базы данных привели к появлению SQL-инъекций, а веб-скрипты к XSS, алгоритмы машинного обучения подвержены особым угрозам, от которых плохо помогают стандартные меры защиты.
В атласе MITRE выделено больше 30 методик атак на ML-алгоритмы, но если взглянуть на ландшафт угроз целиком, то они складываются в три основных вектора атак.
1. Атаки на данные
Многие методики атак нацелены на этапы обучения и переобучения модели. Речь о порче датасета с целью повлиять на работу модели машинного обучения.
Data Poisoning (отравление данных) подразумевает добавление неверных данных, изменение разметки или переупорядочивание имеющихся данных. Само собой, недостатки датасета наследуются моделью и влияют на ее точность и производительность.
Поверхность подобных атак охватывает всю цепочку поставки данных, начиная с информационных брокеров и открытых датасетов, заканчивая информацией, которую система собирает в процессе работы. Похожим образом пользователи Twitter испортили чат-бот Microsoft.
Как правило, атаки Data Poisoning наблюдаются во враждебных условиях. Например, злодеи пытаются влиять на работу спам-фильтров, чтобы постепенно снизить их эффективность.
Проблема усугубляется тем, что на работу модели может повлиять даже небольшой объем отправленных данных. В одном из исследований это продемонстрировано на алгоритмах для прогнозирования процентных ставок по кредитам, цен на недвижимость и дозировок лекарств. Добавив 8% вредоносных обучающих данных, исследователи добились 75% изменения дозировок, предложенных алгоритмом для половины пациентов.
2. Атаки на конвейер
Model poisoning (отравление модели) — вмешательство в алгоритмы, используемые в процессе обучения.
Злоумышленник может внести изменения в архитектуру классификатора, чтобы нарушить работу или манипулировать им, а может — подменить модель целиком.
Отравление модели может быть следствием классической кибератаки, но существует и иной путь — использование слабых мест в алгоритмах машинного обучения.
Эту угрозу демонстрируют на примере федеративного обучения. Когда архитектура модели включает несколько локальных агентов, компрометация одного из них позволяет скомпрометировать модель целиком, ухудшить ее работу и внедрить бэкдоры. В начале 2021 года это показано на нескольких десятках приложений из Google Play.
Модель с бэкдором работает в штатном режиме, пока не получит на вход данные с триггером, который меняет ее поведение так, как нужно злоумышленнику. Например, можно заставить антивирусный сканер игнорировать специально помеченные зловреды.
3. Атаки на развернутую модель
Под evasion attack (атака уклонения) имеется в виду изменение входных таким образом, что ML-модель не может их правильно идентифицировать. Как правило, изменения незаметны, но сильно влияют на результаты работы. Такие данные называют adversarial examples (AE).
Наиболее известный пример такой атаки связан с дорожными знаками. Исследователям удалось нарушить процесс их распознавания при помощи нескольких наклеек. На практике с adversarial examples чаще сталкиваются системы фильтрации контента, например, алгоритмы модерации социальных сетей.
Сложность создания AE, а значит, и доступность подобных атак, зависит от того, как много известно об алгоритме машинного обучения, который необходимо обмануть. Если злоумышленник имеет доступ к модели, он может сравнительно легко создавать adversarial examples при помощи методов оптимизации. Кроме того, для подготовки к атаке можно использовать датасет, на котором обучалась модель. Для этого необходимо обучить «модель-копию». Созданный для нее AE вероятно обманет и оригинальный алгоритм. Если есть время, подходящий AE можно подобрать методом проб и ошибок.
При этом стоит иметь в виду, что в теории и развернутую модель, и ее обучающую выборку можно украсть.
При атаках Model stealing и Data extraction злоумышленник анализирует входную, выходную и прочую внешнюю информацию о системе, чтобы восстановить по ним параметры или обучающие данные модели. Исследователи из Института информатики Макса Планка еще в 2018 году показали, как извлечь информацию из ML-алгоритма при помощи последовательности запросов ввод-вывод.
Согласно открытым источникам, Model stealing и Data extraction пока что реализованы только в лабораторных условиях, но даже теоретическая возможность подобных атак заслуживает внимания и изучения. Они особенно опасны для алгоритмов, обученных на конфиденциальной информации: медицинских записях, финансовых данных.
Противодействие атакам
Соблюдение стандартных рекомендаций по информационной безопасности снижает вероятность компрометации ML-алгоритмов. Некоторые советы с поправкой на специфику машинного обучения можно найти в руководствах Национального института стандартов и технологий США и Европейского агентства по кибербезопасности, но в то же время разрабатываются особые контрмеры.
Противодействие отравлению данных
Порой целостность датасетов обеспечивают при помощи криптографии, например, хеширования и хранения подписанных электронной цифровой подписью хэш-сумм. Чтобы оптимизировать этот процесс, исследователи рекомендуют применять хэш-деревья. Впрочем, с учетом площади атаки, предпочтительным видится другой подход.
В руководстве Microsoft рекомендуется выстраивать систему безопасности машинного обучения исходя из того, что данные уже скомпрометированы.
В таком случае необходимо выявить потенциально отравленные образцы и исключить их из обучающей выборки.
Один из первых методов решения этой задачи — RONI (Reject on negative impact) подразумевает чуть ли не простой перебор — исключение из модели по одной точке данных (data point), переобучение и сравнение результатов. И так раз за разом, что довольно медленно и непрактично.
Data Provenance Based Approach использует вероятность отравления и тот факт, что она выше для точек с одним и тем же происхождением. В этом методе датасет сперва кластеризуют, опираясь на метаданные, а уже потом переобучают модель. Однако, чтобы это сработало, информация о происхождении точек должна быть правдивой.
KNHT (Keyed Non-parametric Hypothesis Tests) полагается на сравнение новых данных с эталонным датасетом, который отражает предполагаемое «нормальное» распределение данных.
Эти подходы сравнительно просты в реализации, но стоит помнить, что они подвержены ошибкам и могут пропускать растянутые во времени атаки.
Обнаружение и противодействие внедрению бэкдоров
Data Poisoning это еще и один из методов внедрения бэкдоров в модель машинного обучения. Поэтому вышеописанные меры снижают вероятность появления «закладок» в алгоритме, но вместе с тем существуют и специализированные подходы для обнаружения бэкдоров.
Многие из них сосредоточены на поиске триггеров, вызывающих срабатывание бэкдора.
Spectral Signatures и Activation Clustering основаны на статистических различиях между данными с триггерами и чистым датасетом.
STRIP, SUTO-NEO, SentiNet разработаны для обнаружения триггеров в процессе работы алгоритма.
MNTD, DeepInspect, ULPs предназначены для непосредственного поиска бэкдоров в моделях машинного обучения.
Разрабатываются и методы минимизации ущерба. Например, исследуется возможность переобучения модели с помощью небольшого подмножества чистых данных.
Противодействие атакам уклонения
Средства защиты от подобных атак ориентированы на очистку adversarial examples и предварительное обучение модели.
Чтобы сузить поверхность атаки, применяют преобразование данных. Больше всего таких методов предложено для изображений: метод главных компонент, пороговое преобразование, вейвлет-преобразование, уменьшение глубины цвета, обрезка и масштабирование, но, похоже, что сжатие JPEG эффективно в наибольшем числе случаев.
Другая известная техника — применение состязательного обучения. Она заключается в обучении модели на наборе, дополненном правильно помеченными adversarial examples.
Их можно сгенерировать при помощи атак FGSM и PGD. Использование Projected Gradient Descentпозволяет создавать моделис довольно хорошей устойчивостью к атакам уклонения.
С состязательным обучением граничит NULL labelling. Подход сводится к тому, чтобы обучить классификатор отклонять AE, присваивая им метку NULL.
Подобные методы повышают надежность модели за счет увеличения расходов на обучение. Однако все они, включая Regularization, Certifiable training, Gradient masking, Distillation network будут терять эффективность по мере усложнения атак.
Противодействие краже модели и данных
Основное средство противодействия подобным атакам — ограничение числа запросов к модели, которые можно сделать за единицу времени. Кроме того, можно найти свидетельства того, что правильно составленные ансамбли нейросетей усложняют реверсинжениринг и позволяют защитить обучающую выборку.
Если говорить о мерах защиты, не требующих масштабных изменений в архитектуре модели, то можно выделить Extraction Warning, BDPL, PRADA, MemGuard, Prediction Purification.Они направлены на обнаружение подозрительных запросов и принятие контрмер — обфускацию вывода или отправку предупреждений администратору.
Еще стоит отметить оригинальный подход, который позволяет заявить о краже интеллектуальной собственности и доказать авторские права на модель в суде. По сути, он подразумевает внедрение в модель собственного бэкдора, который заставляет ее выдавать водяные знаки.
Комплексная защита ML-алгоритмов
ML-приложения требуют разработки новых стратегий защиты, включающих и специфические технические меры и организационные — внедрение безопасного цикла разработки и эксплуатации.
Это особенно важно для систем, которые дообучаются на входных данных. Такая развивающаяся ML-модель не может быть полностью протестирована заранее.
Комплексная безопасность ML-алгоритмов складывается из контроля входных данных, понимания внутренней работы модели, постоянного мониторинга и аудита во время работы.
Как и любая защита от кибератак — это не стопроцентный рецепт, но действенный способ снизить риски и сделать ML-алгоритмы не только «умными» и адаптивными, но и более безопасными.