В августе Apple объявила о ряде мер по борьбе с распространением материалов с сексуальным насилием над детьми (CSAM).
«iOS и iPadOS будут использовать новые приложения криптографии, чтобы помочь ограничить распространение CSAM в интернете с одновременным обеспечением конфиденциальности пользователей. Обнаружение CSAM поможет Apple предоставить правоохранительным органам ценную информацию о коллекциях CSAM в iCloud Photos», — следует из заявления Apple.
Нововведение вызвало большой ажиотаж, из-за чего в сентябре компания решила отложить ее запуск.
Среди прочего, Apple планировала сканировать iCloud Photos для выявления CSAM с использованием новой технологии, известной как NeuralHash.
Apple собиралась сканировать личные фото?
«Сканирование», пожалуй, не совсем точное слово. На самом деле Apple намеревалась обнаруживать наличие CSAM без необходимости просматривать фото пользователей.
Обратимся к идее отпечатка пальца — уникального для каждого из нас рисунка кожи. Он идентифицирует человека, но сам по себе ничего не может рассказать о нем. В информатике хеш-функция помогает вычислять хеш, который действует как отпечаток пальца файла. Хеш (в своем роде) уникальная характеристика для файла, но сам по себе он ничего не говорит о содержимом файла.
Если два файла производят один и тот же хеш, они, скорее всего, являются одним и тем же файлом. Точно так же, как если два набора отпечатков пальцев совпадают, они, скорее всего, принадлежат одному и тому же человеку.
Apple собиралась создать базу данных хешей, предназначенную для распознавания CSAM. Затем путем хеширования всех фото в iCloud и сравнения хешей с базой CSAM Apple смогла бы идентифицировать совпадения, не просматривая сами фото.
Но легче сказать, чем сделать. Традиционные хеш-функции (MD5, SHA256 и др.) очень чувствительны к изменениям в файле. Например, эти два изображения имеют совершенно разные MD5-хеши, хотя выглядят одинаково (то, что справа, на 2 пикселя короче по ширине).
Сверхчувствительность к изменениям обычно является полезным свойством хеш-функций, потому что позволяет легко определить, был ли файл каким-либо образом изменен.
Но это достоинство становится огромным ограничением при использовании MD5 для обнаружения CSAM. Что если изображение слева вверху окажется запрещенным? Apple может хранить хеш MD5 53f…0bb. Но, немного обрезав изображение, мы все равно получим изображение, которое выглядит так же (справа), но имеет совершенно другой хеш MD5 da2…d16, который избежал бы обнаружения.
Таким образом, наличие у Apple базы данных, помеченных как CSAM, не помешает распространителям детской порнографии просто поворачивать, обрезать или изменять размер изображений, чтобы избежать обнаружения. Apple придется хранить бесконечное количество хешей, чтобы учесть бесконечные способы поворота, обрезки или изменения размера изображений. Представьте себе, что было бы, если бы отпечатки пальцев людей менялись всякий раз, когда они худели, стриглись или подрезали ногти!
Чтобы обнаружение работало, хеш изображения не должен меняться, даже если изображение было немного изменено.
Как работает NeuralHash
NeuralHash — это алгоритм хеширования, нечувствительный к небольшим изменениям входного изображения.
Для одной и той же пары изображений, которые ранее имели разные MD5-хеши из-за незаметного обрезания, получаются идентичные нейрохеши (Все нейрохеши для этой статье были вычислены с помощью демо-версии, работающей в браузере).
Даже в том случае, когда изображение повернуто, значительная часть нейрохешей остается прежней:
- Левый нейрохеш: 11d9b097ac960bd2c6c131fa.
- Правый нейрохеш: 20d8f097ac960ad2c7c231fe.
Вот еще один пример, в котором на изображение наложен текст, но нейрохеши оригинала и измененного снимка все еще похожи:
- Левый нейрохеш: 11d9b097ac960bd2c6c131fa.
- Правый нейрохеш: 11d9b0b7a8120bd286c1b0fe.
Если не слишком вдаваться в детали, можно сказать, что алгоритм NeuralHash использует сверточную нейронную сеть (CNN) для вычисления хеша. В процессе обучения CNN показываются пары изображений:
- Положительные. Состоят из изображений, которые являются несложными преобразованиями друг друга (повороты, обрезания, изменения размеров), такими как приведенные выше примеры.
- Отрицательные. Состоят из совершенно разных изображений.
CNN обучается сопоставлять как положительные пары с одними и теми же хешами, так и отрицательные пары с разными хешами. При этом нейронная сеть учится игнорировать небольшие преобразования, применяемые к изображению.
Можно ли обмануть NeuralHash?
Большинство исследователей и студентов в области ИИ и МО, вероятно, слышали о состязательных атаках, когда нейронные сети пытаются ввести в заблуждение, добавляя шум к изображениям.
Допустим, нейронная сеть изначально пометила изображение Доге как «динго». Но стоит добавить изображению немного шума, и CNN может пометить то же фото как «сиамская кошка».
Уже не один год ИИ-сообществу известны состязательные атаки, а между их разработчиками и исследователями, ищущими средства защиты от них, идет попеременное «перетягивание каната».
Такую атаку можно легко применить к CNN в алгоритме NeuralHash. В середине августа пользователь Reddit AsuharietYgvar опубликовал инструкции о том, как экспортировать копию модели NeuralHash от Apple. Всего через несколько часов появилось несколько сценариев, демонстрирующих успешные атаки.
Состязательные атаки на модель NeuralHash могут быть двух видов. Первый — назовем его «другое изображение, тот же хеш» — добавляет шум к исходному изображению, так что нейрохеши целевого и результирующего изображений оказываются идентичными.
В приведенном выше примере к изображению Сердитой кошки был добавлен шум. В результате оно приобрело точно такую же нейронную связь, как и изображение Доге.
Проблематичная ситуация, когда один и тот же хеш вычисляется из разных изображений, известна как хеш-коллизия. Она означает, что кто-то может добавить шум к безобидным изображениям, чтобы они соответствовали нейрохешам CSAM, а затем распространять их на случайных веб-сайтах, выдавая за обычные изображения.
Эти поддельные изображения CSAM вызовут ложные сигналы тревоги на серверах Apple. Это приведет к тому, что пострадают невинные люди, чьи изображения будут ошибочно помечены. Состязательная атака может быть использована и для маскировки CSAM под обычные изображения.
Другой вид атаки — назовем его «то же изображение, другой хеш» — добавляет немного шума, но резко меняет нейрохеш.
В этом примере, несмотря на то, что оба изображения выглядят одинаково (мы добавили шум с некоторыми светлыми желто-зелеными пятнами справа), нейрохеши совершенно разные. Этот шум специально создан для атаки на основной канал CNN, питающий NeuralHash. Сравните данный пример с предыдущим, где мы добавили несколько слов к изображению, но нейрохеш остался во многом прежним.
С помощью атаки этого вида распространители CSAM могут избежать обнаружения, добавив немного шума к своим изображениям и значительно изменив результирующие нейрохеши. Как показано выше, это может быть небольшое количество шума, которое существенно не ухудшает изображение.
Как это исправить
Одним из способов избежать этих атак было бы решение никогда не хранить CNN на пользовательских устройствах. Без доступа к весам CNN осуществлять состязательные атаки намного сложнее. Однако если Apple запустит хеширование на своих серверах, все личные фото в iCloud окажутся в общем доступе.
В качестве альтернативы Apple может запустить NeuralHash со множеством моделей CNN вместо одной. Использование множества моделей увеличивает сложность создания состязательной атаки: в этом случае нужно будет обмануть все модели одновременно. Однако запуск множества моделей увеличит объем вычислений, которые необходимо выполнять на устройстве, что может оказаться нежелательным для пользователя.
Другое возможное решение — выполнить предварительную обработку изображения перед его хешированием, например преобразовать его в черно-белое, увеличить контрастность или создать несколько случайных обрезаний и поворотов. Это помогает при слабых атаках, которые можно свести на нет достаточной предварительной обработкой изображений.
Алгоритм NeuralHash — это новая технология, и степень ее уязвимости, возможно, не до конца изучен. Попробуйте запустить алгоритм здесь!
Читайте также:
- Скрытые нововведения в iOS 15
- О нейронных сетях в двух словах
- ИИ-технологии на службе у инфлюенс-маркетинга
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Swee Kiat Lim: Apple’s NeuralHash — How it works and how it might be compromised