Уязвимость платформы · 24 марта 2023

Ошибка в redis-py показала пользователям ChatGPT чужие чаты и платёжные данные

20 марта 2023 года из-за ошибки в открытой библиотеке redis-py часть пользователей ChatGPT видела заголовки чужих диалогов, а у 1,2% активных подписчиков ChatGPT Plus могли раскрываться частичные платёжные данные. OpenAI временно отключила сервис, исправила ошибку и уведомила затронутых пользователей.

Иллюстрация к инциденту «Ошибка в redis-py показала пользователям ChatGPT чужие чаты и платёжные данные»
ЗатронутоOpenAI ChatGPT, подписчики ChatGPT Plus
КритичностьВысокий
Дата24 марта 2023

Что произошло

20 марта 2023 года пользователи ChatGPT сообщили, что видят в своей истории заголовки чужих диалогов, и OpenAI отключила сервис. Расследование показало, что изменение на серверах OpenAI резко увеличило число отменённых запросов к Redis и спровоцировало редкую ошибку в клиентской библиотеке redis-py. В течение примерно девяти часов часть пользователей могла видеть заголовки чужих чатов, а в ряде случаев и первое сообщение нового диалога. У 1,2% подписчиков ChatGPT Plus, активных в этот период, другим пользователям могли быть показаны имя, адрес электронной почты, платёжный адрес, тип карты, последние четыре цифры и срок действия карты. 24 марта 2023 года OpenAI опубликовала отчёт об инциденте.

Где нарушилась защита

Сервис кэшировал данные пользователей в Redis через общий пул соединений. Если запрос отменялся в определённый момент, соединение оставалось в некорректном состоянии и следующий запрос другого пользователя получал чужой ответ. Граница изоляции между пользователями держалась только на корректности сторонней библиотеки, без дополнительной проверки, что данные из кэша принадлежат запрашивающему.

Последствия

  • Заголовки чужих диалогов и в ряде случаев первые сообщения были видны другим пользователям
  • У 1,2% подписчиков ChatGPT Plus, активных в течение девятичасового окна, могли раскрываться частичные платёжные данные; полные номера карт не раскрывались
  • Затронутые пользователи получили уведомления от OpenAI

Реакция

OpenAI исправила ошибку в redis-py, добавила проверку соответствия кэшированных данных запрашивающему пользователю, усилила устойчивость кластера Redis и уведомила затронутых подписчиков.

Уроки для бизнеса

  1. Классические ошибки инфраструктуры в AI-сервисах так же опасны, как атаки на модель, потому что в истории чатов накапливаются чувствительные данные
  2. Изоляция данных пользователей не должна зависеть от корректности одной сторонней библиотеки
  3. Журналы и история запросов к AI являются полноценным хранилищем чувствительных данных

Меры, которые предотвратили бы инцидент

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

Первоисточники

Security Affairs · 2023-03-25OpenAI: A Redis bug caused a recent ChatGPT data exposure incidentHelp Net Security · 2023-03-27A bug revealed ChatGPT users' chat history, personal and billing data