Как стать автором
Обновить

Конфиденциальность пользователей Telegram снова нарушена. Представители мессенджера требуют не раскрывать подробностей

Информационная безопасность *Мессенджеры *
✏️ Технотекст 2021

В конце февраля 2021 года выходит обновленный релиз клиента Telegram с заголовком: ‘Автоудаление, виджеты и временные ссылки для приглашений’.

На красивой, художественной обложке к пресс-релизу новой версии Tg-мессенджера пользователи видят корзину с таймером и уничтоженными данными, а также лицезреют главных героев из культового хакерского сериала Мистер Робот. Но действительно ли все так круто с зачисткой следов как и в сериале?

Мистер Робот. Зачистка.
Мистер Робот. Зачистка.

Telegram подготовил для пользователей что-то из security-области, а эти дотошные исследователи тут же навострили ручки. Подробная вербализация одной ‘bug bounty’ описана по тексту ниже...

Цитата из пресс-релиза:

Автоматическое удаление сообщений

Уже несколько лет пользователи Telegram могут бесследно удалять сообщения для всех участников беседы. В секретных чатах с 2013 года также есть таймер самоуничтожения, который позволяет не удалять сообщения вручную.

С сегодняшнего дня автоматическое удаление сообщений для всех участников доступно в любом чате. В этом режиме сообщения исчезают через 24 часа или 7 дней после отправки.

Так же информация о sec-функции упомянута тремя пунктами в официальном changelog-e Tg.

  • Установите автоматическое удаление сообщений для всех через 24 часа или 7 дней после отправки.

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

  • Чтобы включить автоматическое удаление, щелкните правой кнопкой мыши чат в списке чатов> Очистить историю> Включить автоматическое удаление.

Я протестировал нововведение в Telegram на Android и ничего подозрительного не обнаружил. Всё security-заявленное со стороны Tg работало так, как с обложки. Спустя только несколько суток (минимальный, честный срок автоудаления сообщений - 24ч.), проявив усердие, я добился того что искал: сообщения которые должны автоудаляться у участников личного и приватного групповых чатов <удалялись> только визуально (очистка окна сообщений), а в реальности сообщения-картинки оставались на устройствах в открытом кэше, который доступен любому пользователю по пути: /Storage/Emulated/0/Telegram/Telegram Image.

Сам тест на проверку очень прост: устанавливаем таймер автоудаления на 24ч. (в личке или групповых чатах); обмениваемся картинками. Ждем сутки. Проверяем путь /Storage/Emulated/0/Telegram/Telegram Image, картинки автоудалились. Отменяем автоудаление и снова ставим таймер на 24ч и повторяем первоначальные действия. Обычно автоудаление не срабатывает на 2..4 раз. Как только картинки остались в кэше (вышел баг с автоудалением сообщений), можно таймер на чате оставить в покое, все последующие дни будет очищаться только окно сообщений в мессенджере, а картинки будут оставаться в кэше (зачастую у получателя и отправителя, а не только у отправителя сообщений).

Протестированный на разных гаджетах Android 7-10 (Xiaomi; Samsung; Asus), найденный баг обесценивал функционал: автоудаление сообщений для пользователей, позволяя в будущем эксплуатировать уязвимость в своих личных и безобидных интересах.

Зная о негативном отношении компании Telegram к исследователям (в т.ч. на своем предыдущем опыте), а также найдя интересную информацию в СМИ, что за аналогичный баг Telegram выплатил исследователю 2,5к зеленых шуршунчиков, и в последствии: уязвимости был присвоен CVE-2019-16248 с высоким базовым рейтингом опасности 7.5 пунктов (upd: после публикации этой статьи, уязвимость была пересмотрена до 5.5 пунктов):

The "delete for" feature in Telegram before 5.11 on Android does not delete shared media files from the Telegram Images directory. In other words, there is a potentially misleading UI indication that a sender can remove a recipient's copy of a previously sent image (analogous to supported functionality in which a sender can remove a recipient's copy of a previously sent message),

я принял решение снова поработать с Telegram. Согласно программе bug bounty на Hackerone

5.03.21 я отправил отчет по уязвимости на security@telegram.org. К моему удивлению

7.03.21 я получил ответ (далее по тексту пунктуация и орфография сообщений полностью сохранены):

Hello,

Thank you for your email. We will send you an update soon.

All the best, Telegram Support

По истечению ~месяца тишины (вышло очередное обновление мессенджера, в котором уязвимость “автоудаление сообщений” все еще не была исправлена), и я снова напомнил Telegram о своем письме.

3.04.21 получил следующий ответ:

Hello,

Thank you for your email and sorry for the long wait. We will reply soon.

All the best, Telegram Support

Никакого в ближайшее время обновления я не получал (увидел, что Tg мессенджер снова обновился и проблема всё еще сохраняется) и спустя месяц снова напомнил Tg о своем релевантном отчете 2-х месячной давности.

9.05.21 получил ответ, примерно-который я уже получал:

Hello,

We are sorry for the long wait. We will send you an update soon.

All the best, Telegram Support

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

14.05.21 получил ответ:

Hello,

We don't have automatic responses here. Please wait, we will send you an update soon.

All the best, Telegram Support

Я согласился подождать, обычное дело. Через полтора месяца Tg снова обновился до новой версии и снова уязвимость не была исправлена. Я написал в Tg, что уязвимость в новой версии мессенджера все еще не исправлена и

29.06.21 получил ответ:

Hello,

I'm sorry for the delay. Thanks for the details.

Re: logs.

You can send the logs to Saved Messages, open the file and make sure that it does not contain any sensitive information.

All the best, Alex Telegram Support

7.07.21 Я создаю приватный, групповой чат и приглашаю для тестирования бага и наглядности представителя Tg присоединиться к нему.

8.07.21 получаю ответ:

Thanks for the details. There are two different files on your screenshots: they have different names and sizes, and they have been sent in two separate chats.

All the best, Telegram Support

В этот же день в чат заходит представитель Tg (в будущем изменив свое имя с ‘support’ на ‘Николай’) и предлагает в дальнейшем решать вопрос с багом на русском языке.

Тесты

Тестируем мессенджер по моему плану, по его плану. Наглядно показываю, что проблема не выдуманная, когда сообщения-картинки не автоудаляются у 2/3 участников группового чата в рандомном порядке и не автоудаляются в личных чатах. Спустя ~месяц тестирования мессенджера на разных клиентах/версий Android-Telegram (официальных и сторонних: Tg FOSS, Tg GP) Николай признает существование проблемы, и казалось бы развязка уже близка и косвенно затронута тема награды.

Тестирование разных клиентов Tg под Android (FOSS; GP) в групповом чате и личке.
Тестирование разных клиентов Tg под Android (FOSS; GP) в групповом чате и личке.

Обещанную в течение недели beta-версию Tg с исправлением так и не прислали, но позже

23.08.21 попросили еще немного подождать. Цитирую:

(Задерживаемся, но про вас помним.)

К началу сентября мне предоставили ссылку на beta-версию Telegram. Поработав с ней я снова сообщил о том, что проблема автоудаления сообщений все еще сохраняется. Ко всему прочему в ней было сломано: “ручное удаление сообщений”, после такой иллюзорной зачистки данных в чате (очистка окна сообщений клиента) все файлы не удалялись с гаджета пользователя и были доступны в кэше там же: /Storage/Emulated/0/Telegram/*. Также наблюдалась проблема с отправкой аудио-сообщений в форматах .wma/.aac. Забраковал. Прогнав следующую build beta-версию Tg, я согласился, что проблема автоудаления сообщений картинок наконец-то исправлена.

Билды beta-версий Tg выходят каждый день.
Билды beta-версий Tg выходят каждый день.

«Упс! Что-то пошло не так»

Оставалось решить вопрос с наградой и поставить галочку в своем послужном списке.

5.09.21 с security@telegram.org приходит письмо:

Hello,

Thank you for vert long wait. We would like to award you with a bounty of EUR 1,000 for your findings. Could you share the following info for the agreement please?

1. Your bank account details:

* your full name

* bank name

* account number or IBAN for payments in Euro

* SWIFT code

2. Your full address including the postal code.

3. Date of birth.

Much appreciated!

All the best,
Alex
Telegram Support

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

В ответном письме предоставил Telegram свои персональные данные и свой банковский счет в евро для зачисления награждения в 1к евро.

17.09.21 я получил письмо с security@telegram.org на русском языке:

Спасибо! Подпишите, пожалуйста, договор на двух последних страницах и пришлите, пожалуйста, весь документ как PDF. Можно использовать DocuSign, если неудобно печатать.

С уважением,
Alex

Обычно при обнаружении уязвимостей исследователи и разработчики руководствуются в программах подобных bug bounty пунктом о разумных сроках по ответственному раскрытию информации, чтобы у разработчиков было время на исправление, а у исследователя его слава. Например, когда я репортил уязвимость в Яндекс, срок молчания составлял 90 дней. А после окончания срока я всё равно уточнял у Яндекса о том, могу ли я раскрыть тех.детали в СМИ? И тогда сотрудники транснациональной корпорации мягко свели мою просьбу на ‘нет’. И в СМИ (тогда 2020 году) я не опубликовался, сохранив общение с командой Яндекса на позитивной ноте. В течении следующего 2021 года зарепортил еще одну уязвимость по Яндексу и без проблем получил вознаграждение, а также оставил за собой моральное право на публикацию материалов согласно положению об охоте за ошибками.

Но вот иногда компании с хорошей репутацией пытаются вести свои игры.

Изучив присланный на email договор представителем Telegram, обратил внимание на то, что Telegram требует не раскрывать никаких деталей сотрудничества/тех.подробностей по умолчанию без своего письменного одобрения, в т.ч. чеки, банковские выписки и публикации в СМИ с упоминанием имени компании и тд. Договор у Telegram (в моем случае) оказался расписан аж на 8 страницах (приложен в конце статьи), а сама публичная программа мягко говоря сокращена.

Описание всей программы bug bounty (правила, что можно, и как нужно...).
Описание всей программы bug bounty (правила, что можно, и как нужно...).

В ответном письме я задал вопросы по договору (цитата):

Здравствуйте представители и разработчики Telegram!

Некоторые вопросы по договору:

в договоре п1.2. “Confidential Information” сообщается, что к конфиденциальной информации относятся (в том числе и):: техническая информация; и даже уровни сборов и комиссий. И согласно п9.1::. "Консультант не должен ни в течение срока действия настоящего Соглашения, ни в любое другое время после его расторжения: 9.1.1. разглашать или передавать любую Конфиденциальную информацию любому лицу, компании, юридическому лицу или другой организации 9.3. Консультант не должен ссылаться на Компанию или любую Компанию Группы в каком-либо пресс-релизе, реклама или материалы без предварительного письменного согласия Компании."

По умолчанию получается, что Telegram "против" практически любого раскрытия информации без специального письменного запроса. Кроме того при получении гонорара я обязан отчитаться в налоговый орган и предоставить чек, в котором будет отражено получении гонорара (и этот чек также попадает под конфиденциальные данные, что является странным). Можем ли мы в договоре изменить сроки в п9.1 на разумные сроки о неразглашении каких-либо деталей?

Если все же об оказанных услугах/исследованиях не стоит нигде и никогда публично распространяться в СМИ и тд., (в любом случае) можете ли вы пересмотреть добросовестный, финансовый гонорар относительно аналогичной уязвимости, за которую исследователь получил вознаграждение в разы выше, чем предлагается в мою пользу по договору и учитывая мои настойчивые старания по усилению конфиденциальности мессенджера?

Спасибо вам! И на связи.

Выше был последний ping с представителями компании Telegram, после которого те перестали выходить на связь, оборвав общение.

27.09.21 и 28.09.21 Я написал на почту Telegram напоминание о письме без ответа и попросил в Tg Николая напомнить коллегам о переписке. Кроме того я добавил, что баги, которые я обнаружил в beta-версии Telegram (в т.ч. сломанное ‘ручное удаление сообщений’, тот баг за который исследователь в прошлом получил 2,5к $) перешли в официальный релиз (при переходе с beta на версию FOSS и далее на версию Tg с оф.сайта). Он прочитал, но промолчал. И (пару недель молчания) я принял решение обнародовать имеющиеся материалы в СМИ.

Выводы

Конфиденциальность пользователей Telegram снова осталась под угрозой. Пользователи надеются/надеялись на заявленный security-функционал: автоудаление сообщений (картинок), который не работал, как задумано на Android устройствах до версии v8+ (на других платформах баг не проверял) и который вводил их в заблуждение.

Помог разработчикам устранить уязвимость с автоудалением сообщений в мессенджере в период полугода: с 5 марта по 5 сентября 2021 года.

В официальных пресс-релизах новых версий Telegram не упоминалось ни разу о существовании и решении проблемы с автоудалением сообщений. https://desktop.telegram.org/changelog https://telegram.org/blog

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

Обещанную награду от Telegram ни в 1000 евро ни какую другую я не получил, а по классике

палец вверх.

Неизвестно: сколько уязвимостей остается/останется ‘замятых’ из-за NDA-требований Telegram дешевых взяток за молчание, а не за вознаграждение за баги:: не распространяться и косвенно о проблемах мессенджера публично без письменного одобрения со стороны Telegram. Но при этом П. Дуров в СМИ призывает своих пользователей не верить на слово исследователям, а доверять только оф.информации компании, которая иногда чувствительная и скрывается/контролируется юридическими договорами заключенными с исследователями.

Мы рекомендуем пользователям не полагаться на СМИ и дожидаться официальных объявлений Telegram.

П.Дуров

Мы не хотим платить журналистам и исследователям, чтобы они рассказывали о Telegram.

П.Дуров

Прилагаю договор, который мог бы быть заключен между мной и Telegram, но так и остался не акцептованным (в нем изменены только мои персональные данные: ФИО и адрес).

Прилагаю, самое первое (от 5.03.21 года) и последнее (от 28.09.21 года) видео с воспроизведением проблемы в Tg: автоудалением/ручной очисткой чатов.

UPD: спустя несколько дней после публикации статьи

НКО MITRE уязвимости присвоен CVE-2021-41861.

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

Пример сравнения корректной и обфусцированной программ bug bounty на HackerOne
Сравнение программ bug bounty Veracrypt vs Tg.
Сравнение программ bug bounty Veracrypt vs Tg.
Ответ от HackerOne
Ответ (последнее письмо) по поводу программы Tg в списке программ HackerOne.
Ответ (последнее письмо) по поводу программы Tg в списке программ HackerOne.
Теги:
Хабы:
Всего голосов 355: ↑346 и ↓9 +337
Просмотры 108K
Комментарии Комментарии 203