Не можешь атаковать шифрование – ищи проблемы в клиенте. Именно таким принципом руководствовался египетский исследователь Мохамед А. Басет (Mohamed A. Baset), когда искал возможность скомпрометировать Telegram. Данная тактика принесла плоды: Басет обнаружил уязвимость в веб-клиенте популярного мессенджера.

В блоге исследователь рассказал, что веб-клиент Telegram оказался не защищен от обыкновенных кликджекинг-атак. Вместо заголовка X-Frame-Options веб-версия мессенджера использовала технику так называемого «выталкивания фреймов» (frame busting), чтобы предотвратить внедрение iframe на сайт.

Воспользовавшись одной из особенностей HTML5, а именно добавив атрибут sandbox к своему iframe, Басен успешно атаковал веб-клиент, обойдя защиту.

Исследователь рассказал, что дополнительно Telegram использовал еще один трюк: через CSS любым тегам HTML присваивалось значение «none», что сводило практически весь успех на нет. Однако Басена это не остановило. «Всё, что нам нужно, это просто заблокировать доступ к файлу стиля, который отвечает за главную страницу веб-приложения», — пишет исследователь. Для предотвращения доступа к https://web.telegram.org/css/app.css Басен предложил реализовать man-in-the-middle атаку или воспользоваться какой-либо другой техникой.

Успешно осуществив вышеописанное, злоумышленник получал возможность изменить конфиденциальные данные залогиненного пользователям Telegram (пароль, email для восстановления данных и так далее). Кроме того, атакующий мог отправлять сообщения от лица скомпрометированного пользователя, посылать запросы контактов и приглашения в группы. Также можно было отметить все сообщения пользователя, как прочитанные, дополнительно эксплуатировав CSRF (cross-site request forgery) баг в клиенте.

На устранение проблемы у разработчиков Telegram ушло около четырех дней. Сегодня, 29 апреля 2016 года, Басет сообщил, что уязвимость была исправлена: теперь веб-клиент использует заголовок X-Frame-Options на стороне сервера.

Screen-Shot-2016-04-28-at-1.35.50-PM

Фото: Max Fleishman

1 комментарий

  1. A.T.

    30.04.2016 at 04:42

    Зачем было сообщать, фиксить и помогать этому Дурову в его ЧСВ?!

    И сколько денег заплатил убогий Телеграмм за донос?! Подозреваю, что ровно $0.00

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

Оставить мнение