Хакерам удалось завладеть данными миллионов учетных записей в WhatsApp и Telegram

8359

Компания Check Point обнаружила уязвимость, из-за которой хакерам удалось завладеть данными миллионов учетных записей в WhatsApp и Telegram.

Хакеры взломали миллионы учетных записей в WhatsApp и Telegram

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

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

Demo of WhatsApp Web Account Takeover | Hacking Demonstration

Demo of Telegram Web Account Takeover | Hack Demonstration | Cyber Security


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

Примеры уязвимостей WhatsApp и Telegram

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

Файл может содержать привлекательный контент, а это повышает вероятность, что адресат его откроет. В то время, как пользователь WhatsApp щелкает на файл, чтобы открыть изображение, вредоносный файл предоставляет злоумышленнику возможность доступа к локальному хранилищу с данными пользователя. Пользователь Telegram должен щелкнуть еще раз, чтобы открыть новую вкладку и так предоставить доступ к локальному хранилищу. С этого момента злоумышленник может получить полный контроль над учетной записью и данными. Отправив файл другим контактам пользователя, хакер способен осуществить масштабную атаку в сетях WhatsApp и Telegram.

Поскольку сообщения зашифровываются без предварительной проверки, WhatsApp и Telegram не могут видеть из содержимое и предотвратить отправку опасного кода.

Check Point предоставила эту информацию службам, отвечающим за безопасность WhatsApp и Telegram 7 марта. Обе компании после проверки признали проблемы безопасности и вскоре разработали исправление для веб-клиентов. «К счастью, WhatsApp и Telegram быстро отреагировали и приняли соответствующие меры для безопасности веб-клиентов», — сказал Одед Вануну, директор исследовательского отдела Check Point. Пользователям рекомендуется перезапустить свой браузер, чтобы использовать последнюю версию WhatsApp и Telegram.

Хакеры взломали миллионы учетных записей в WhatsApp и Telegram
Хакеры взломали миллионы учетных записей в WhatsApp и Telegram

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

Советы по безопасности от Check Point

Хотя WhatsApp и Telegram исправили уязвимость, Check Point рекомендует применять следующие превентивные меры:

Периодически выходите из WhatsApp и Telegram на всех устройствах. Это позволит вам управлять устройствами с вашей учетной записью и завершать нежелательные действия.

Не открывайте подозрительные файлы и ссылки от неизвестных источников.

WhatsApp насчитывает более 1 миллиарда пользователей по всему миру, что делает его самой распространенной службой для отправки мгновенных сообщений. Веб-версия доступна на всех браузерах и поддерживаемых платформах, включая Android, iPhone (IOS), Windows Phone 8. x, BlackBerry, BB10 и смартфоны Nokia.

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

В сентябре команда Check Point 2015 года нашла другую уязвимость в веб-версии WhatsApp. Хакеры имели возможность посылать пользователям на вид неопасную электронную визитку с вредоносным кодом. Компания WhatsApp исправила погрешность в безопасности.

Технические подробности Whatsapp

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

Файлы поддерживаемых форматов можно загрузить и отправить клиентам WhatsApp как вложение.

Но исследовательской группе удалось обойти ограничения, и они смогли загрузить документ HTML с изображением для предварительного просмотра, что может обмануть жертву и побудить получателя открыть файл с кодом.

После того как получатель щелкает на документе, веб-клиент WhatsApp запускает FileReader HTML 5 API, который генерирует уникальный BLOB URL с содержимым файла отправителя и переходит по этому адресу.

Атака на WhatsApp состоит из нескольких этапов, которые описываются ниже.

Сначала злоумышленник создает вредоносный файл HTML с изображением для предварительного просмотра:

Хакеры взломали миллионы учетных записей в WhatsApp и Telegram

Хакерам удалось завладеть данными миллионов учетных записей в WhatsApp и Telegram
Хакерам удалось завладеть данными миллионов учетных записей в WhatsApp и Telegram

Веб-клиент WhatsApp хранит разрешенные типы файлов в клиентской переменной с именем W [«default«]. DOC_MIMES. Эта переменная хранит разрешенные MIME-типы, используемые приложением.

Взлом WhatsApp Web
Взлом WhatsApp Web

Так как зашифрованный файл отправляется на серверы WhatsApp, в переменную можно добавить новый MIME-тип, такой как «text/html», чтобы обойти ограничение клиента и загрузить вредоносный документ HTML.

Добавляем новый MIME-тип для отправки на сервер Whatsapp
Добавляем новый MIME-тип для отправки на сервер Whatsapp

После добавления вредоносного документа Mime-типа в клиентскую переменную, клиент шифрует содержимое файла с помощью функции encryptE2Media, затем загружает его в виде BLOB на сервер WhatsApp.

Загрузка в виде BLOB на сервер WhatsApp
Загрузка в виде BLOB на сервер WhatsApp

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

Результат:

Зараженный документ получен жертвой whatsapp
Зараженный документ получен жертвой whatsapp

После того как получатель нажимает на файл, он видит изображение котенка под блоб-объектом, который и есть объектом html5 FileReader на web.whatsapp.com. Это означает, что хакер получает доступ к ресурсам в браузере, хранящихся на web.whatsapp.com

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

Хакер вписывает функцию JavaScript, которая с периодичностью в 2 секунды проверяет, нет ли новых данных в бэкенде, и заменяет их в локальном хранилище жертвы.

Часть кода злоумышленника:

Часть кода злоумышленника
Часть кода злоумышленника

Хакер перенаправляется к учетной записи жертвы и получает доступ к любым данным.

Доступ к аккаунту жертвы whatsapp
Доступ к аккаунту жертвы whatsapp

Веб-клиент WhatsApp не разрешает пользователю иметь более одного активного сеанса одновременно. Поэтому после того как взломщик возьмет контроль над аккаунтом, жертва получит сообщение:

«WhatsApp открыт на другом компьютере или браузере. Нажмите «Использовать здесь», чтобы открыть его в этом окне».
«WhatsApp открыт на другом компьютере или браузере. Нажмите «Использовать здесь», чтобы открыть его в этом окне».

Злоумышленник может преодолеть эту проблему, добавив код JavaScript:

 JavaScript code for whatsapp
JavaScript code for whatsapp

Вредоносный HTML-файл приведет к зависанию окна браузера клиента и позволит злоумышленнику управлять учетной записью без помех. Злоумышленник будет подключен к учетной записи жертвы до тех пор, пока жертва не выйдет из учетной записи. При закрытии браузера злоумышленник не выйдет из аккаунта и может дальше пользоваться учетной записью жертвы.

Технические подробности Telegram

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

Исследователи из Check Point также сумели обойти политику клиента и загрузили вредоносный документ HTML, применив MIME-тип видеофайла “video/mp4”. После этого у них получилось отправить файл жертве через зашифрованный канал на серверы Telegram. Пользователь открывает видео в новой вкладке браузера, файл воспроизводится, и данные о его сеансе отправляются злоумышленнику.

Атака на Telegram состоит из нескольких, описываемых ниже этапов.

Хакер сначала создает вредоносный файл HTML с видеоданными.

Атака на Telegram
Атака на Telegram

Telegram хранит MIME-тип файла в качестве объекта «t» и во время загрузки проверяет, является ли MIME-тип изображением или видео. Если да, файл хранится под URI файловой системы клиента.

Telegram хранит MIME-тип файла в качестве объекта «t»
Telegram хранит MIME-тип файла в качестве объекта «t»

Поскольку зашифрованный файл отправляется на серверы Telegram, можно изменить тип MIME на «video/mp4», для того, чтобы обойти ограничения по загрузке и отправить вредоносный HTML-документ в Telegram как видео.

После изменения MIME-типа, клиент отправляет зашифрованный файл на сервер Telegram.

В результате получается файл, замаскированный под видео, но с вредоносной начинкой:

Файл для Telegram, замаскированный под видео, но с вредоносной начинкой
Файл для Telegram, замаскированный под видео, но с вредоносной начинкой

Как только пользователь воспроизводит видео, HTML-файл загружается в память браузера под web.telegram.org. Пользователю нужно открыть видео в новой вкладке, чтобы получить доступ к ресурсу в браузере по URI файловой системы в URI web.telegram.org.

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

С этой целью злоумышленник применяет функцию JavaScript, которая через каждые 2 секунды проверяет, нет ли новых данных в бэкенде, и заменяет локальное хранилище, как это видно из фрагментов кода WhatsApp POC.

Хакер перенаправляется к учетной записи жертвы и получает доступ к любым данным.

Хакер перенаправляется к учетной записи Telegram жертвы
Хакер перенаправляется к учетной записи Telegram жертвы

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