Сбой на DTF 29 ноября 2023 года

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

Что случилось

В 13:18 мы выкатили функцию сквозной авторизации между старой и новой версией DTF, чтобы пользователи при переключении между версиями могли пользоваться сайтом без необходимости повторно авторизовываться.

Задача предполагала внесение изменений в сессионные куки, которые были закэшированы на стороне сервиса Cloudflare. Такого поведения кэша мы не ожидали. Пользователи, которые в этот момент заходили на сайт, получали из кэша Cloudflare сессии других пользователей случайным образом.

В 13:40 мы отключили идентификацию пользователей по этой куке и отключили авторизацию на всем сайте. Затем устранили баг в коде, почистили кэш на своей стороне, на стороне Cloudflare и добавили фильтр, чтобы куки больше не кешировались.

В 14:30 включили авторизацию только для редакции, администраторов платформы и разработчиков, чтобы убедиться что всё работает штатно и баг не воспроизводится.

Все 428 постов, которые были созданы во время сбоя, мы убрали в черновики. Также на всякий случай сбросили всем пользователям DTF авторизацию.

В 15:36 включили авторизацию на всех пользователей. С этого времени сайт уже работал исправно.

Фича, которую мы попробовали запустить, была протестирована на тестовых стендах и прошла все проверки, проблем в ходе тестирования обнаружено не было, поэтому предсказать поведение Cloudflare на боевом стенде мы не смогли.

Сколько пользователей пострадало

Проблема коснулась только части зарегистрированных пользователей, которые заходили на старую версию DTF с 13:18 до 13:40.

С 13:18 до 13:40 на DTF находилось около 800 зарегистрированных пользователей. Некорректные куки по предварительной оценке получили менее 80 пользователей DTF.

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

Пользователи, которые получили некорректную куку, могли вести себя на сайте как другой пользователь. То есть они могли увидеть:

  • Почту другого пользователя, в аккаунт которого они попали (если почта была указана у пользователя в настройках).
  • Никнейм пользователя в социальных сетях, если у пользователи были привязаны соцсети для авторизации.
  • Личные сообщения.
  • Последние четыре цифры привязанной банковской карты.
  • Список черновиков.
  • Список закладок.

Пользователи, получившие доступ к чужому аккаунту, теоретически могли вывести полученные другим пользователем донаты, если бы они были в этот момент на счетах пользователей.

С 13:18 до 13:40 пользователи DTF вывели пять донатов, однако мы пока не располагаем данными, были ли это всё злоумышленники или реальные владельцы аккаунтов. Если вы обнаружили, что ваши донаты были выведены в этот промежуток времени посторонним лицом, напишите на support@dtf.ru — мы поможем вернуть донаты.

Нужно ли сбрасывать пароль

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

Что мы сделали, чтобы избежать подобных ситуаций в будущем

Проблема с Cloudflare полностью исправлена. Мы изменили процесс проведения подобных экспериментов. Задачи, связанные с авторизационными куками теперь проходят дополнительный этап согласования, тестирования и проверки.

Мы продолжаем изучать подробности случившегося инцидента.

1K
562 комментария

Спасибо, что хорошо и подробно описали инцидент, а не обычную отписку. Это повышает к вам доверие. Было бы интересно почитать технические детали, что же там на Клаудфлейре случилось, так сказать, обмен опытом с коллегами из сферы.

599
Ответить

Это буквально стандартная отписка. Только текста чуть побольше. Сказали что был косяк, что могло пострадать, пообещали что приняли меры.

155
Ответить

Обычная отписка была вчера, не прокатило

97
Ответить

Комментарий недоступен

3
Ответить

На клаудфлейре скорее всего ничего не случилось, а то что написано в посте это виляние жопой в попытке не попасть под действие КоАП и УК РФ

7
Ответить

Комментарий недоступен

5
Ответить