Как хакеры могут читать ваши чаты с ChatGPT или Microsoft Copilot

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
29.223
Репутация
11.695
Реакции
61.957
RUB
50
Израильские исследователи из Offensive AI Lab опубликовали , описывающую метод восстановления текста из перехваченных сообщений от чат-ботов с ИИ.


Рассказываем о том, как работает эта атака и насколько она опасна в реальности.

ai-chatbot-side-channel-attack-featured.jpg

Какую информацию можно извлечь из перехваченных сообщений чат-ботов на основе ИИ

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

Чтобы понять, что же происходит в ходе этой атаки, придется слегка погрузиться в детали механики LLM и чат-ботов. Первое, что надо знать: большие языковые модели оперируют не отдельными символами и не словами как таковыми, а так называемыми токенами — своего рода смысловыми единицами текста. На сайте OpenAI есть страница под названием «Токенизатор», которая позволяет понять, как это работает.


Этот пример демонстрирует, как работает токенизация сообщений моделями GPT-3.5 и GPT-4

Вторую особенность, важную для данной атаки, вы наверняка замечали, когда общались с чат-ботами: они присылают ответ не крупными кусками, а постепенно — примерно так же, как если бы его печатал человек. Но, в отличие от человека, LLM пишут не отдельными символами, а токенами. Соответственно, чат-бот отправляет сгенерированные токены в режиме реального времени, один за другим. Вернее, так делает большинство чат-ботов — исключение составляет Google Gemini, из-за чего он не подвержен данной атаке.

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

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

Как извлеченную информацию можно использовать, чтобы восстановить текст сообщения

А дальше остается лишь угадать, какие же слова скрываются за «пустыми клетками» — токенами. И вы ни за что не поверите, кто очень хорош в играх такого рода: конечно же, это (LLM)! Собственно, это их прямое предназначение — угадывать подходящие слова. Так что для дальнейшего восстановления текста исходного сообщения из полученной последовательности длин токенов исследователи использовали именно LLM.

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


Общая схема описанной в этом посте атаки выглядит так

Таким образом получается некий текст, длины токенов в котором соответствуют длинам токенов в оригинальном сообщении. А вот конкретные слова могут быть подобраны с той или иной степенью успешности. Надо заметить, что полное соответствие восстановленного сообщения оригиналу случается довольно редко — как правило, какую-то часть слов правильно угадать не получается. В удачном случае восстановленный текст выглядит, например, так:


В этом примере текст удалось восстановить достаточно адекватно.

А в неудачном случае воссозданный текст может иметь мало — а то и вовсе ничего — общего с оригиналом. Например, возможны и такие результаты:


А вот в этом примере угадать получилось не очень хорошо

Или даже вот такие результаты:


Как говорится, «не то чтобы совсем не попал, но только не попал в шарик»

Всего исследователи рассмотрели полтора десятка существующих чат-ботов на основе ИИ и признали большинство из них уязвимыми для данной атаки — исключение составляют Google Gemini (в девичестве Bard) и GitHub Copilot (не путать с Microsoft Copilot).


Значительная часть существующих чат-ботов на момент публикации работы была уязвима для описанной атаки

Насколько все это опасно?

Стоит заметить, что данная атака ретроспективна. Предположим, кто-то удосужился перехватить и сохранить ваши беседы с ChatGPT (это не так просто, но возможно), в которых вы обсуждали с чат-ботом какие-то страшные тайны. В таком случае, используя описанный выше метод, этот кто-то теоретически сможет прочитать сообщения.

Правда, лишь с некоторой вероятностью: как отмечают исследователи, даже общую тему беседы им удавалось правильно установить в 55% случаев. А успешно восстановить текст — лишь в 29%. Тут стоит уточнить, что под критерии, по которым исследователи оценивали восстановление текста как полностью успешное, подпадает, например, вот такая реконструкция:


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

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

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

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



Тексты на разных языках токенизируются по-разному. И хотя атака работает для английского языка, для текстов на других языках она может оказаться неэффективной. Пример для английского языка.


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


Тексты на разных языках токенизируются по-разному. И хотя атака работает для английского языка, для текстов на других языках она может оказаться неэффективной. Пример для русского языка.



Тексты на разных языках токенизируются по-разному. И хотя атака работает для английского языка, для текстов на других языках она может оказаться неэффективной. Пример для иврита.

Как минимум два разработчика чат-ботов с ИИ — Cloudflare и OpenAI — уже отреагировали на публикацию исследования и начали использовать упомянутый выше метод дополнения (padding), который как раз и придуман для противодействия такого рода атакам. Вероятно, остальные разработчики чат-ботов с ИИ вскоре последуют их примеру, и в дальнейшем общение с чат-ботами, скорее всего, будет защищено от данной атаки.


 
  • Теги
    chatgpt microsoft copilot openai хакеры чат-бот
  • Сверху Снизу