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

Некоторые особенности чат-ботов позволяют восстановить тексты зашифрованных переписок с OpenAI ChatGPT, Microsoft Copilot и большинством других чат-ботов.

Как можно прочитать зашифрованные сообщения от ChatGPT и других чат-ботов

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

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

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

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

Пример токенизации текста моделями GPT-3.5 и GPT-4

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

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

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

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

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

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

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

Схема атаки, позволяющей восстанавливать сообщения от чат-ботов с ИИ

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

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

Пример удачной реконструкции текста

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

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

Пример не очень удачной реконструкции текста

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

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

Пример крайне неудачной реконструкции текста

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

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

Список рассмотренных чат-ботов с ИИ

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

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

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

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

Пример полностью успешной реконструкции текста

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

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

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

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

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

Советы