Компания 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.
В новых версиях с патчем от этой уязвимости сообщение сначала проверяется на наличие вредоносного файла, только потом зашифровывается.
Советы по безопасности от 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 хранит разрешенные типы файлов в клиентской переменной с именем W [«default«]. DOC_MIMES. Эта переменная хранит разрешенные MIME-типы, используемые приложением.
Так как зашифрованный файл отправляется на серверы WhatsApp, в переменную можно добавить новый MIME-тип, такой как «text/html», чтобы обойти ограничение клиента и загрузить вредоносный документ HTML.
После добавления вредоносного документа Mime-типа в клиентскую переменную, клиент шифрует содержимое файла с помощью функции encryptE2Media, затем загружает его в виде BLOB на сервер WhatsApp.
Кроме того, изменение имени и расширения документа, а также создание фейкового превью путем изменения клиентских переменных делают вредоносный файл более привлекательным и легитимным для жертвы.
Результат:
После того как получатель нажимает на файл, он видит изображение котенка под блоб-объектом, который и есть объектом html5 FileReader на web.whatsapp.com. Это означает, что хакер получает доступ к ресурсам в браузере, хранящихся на web.whatsapp.com
Даже если только просматривать страницу и ничего не нажимать, данные из местного хранилища пользователя будут отправлены злоумышленнику, что позволит ему получить доступ к учетной записи.
Хакер вписывает функцию JavaScript, которая с периодичностью в 2 секунды проверяет, нет ли новых данных в бэкенде, и заменяет их в локальном хранилище жертвы.
Часть кода злоумышленника:
Хакер перенаправляется к учетной записи жертвы и получает доступ к любым данным.
Веб-клиент WhatsApp не разрешает пользователю иметь более одного активного сеанса одновременно. Поэтому после того как взломщик возьмет контроль над аккаунтом, жертва получит сообщение:
Злоумышленник может преодолеть эту проблему, добавив код JavaScript:
Вредоносный HTML-файл приведет к зависанию окна браузера клиента и позволит злоумышленнику управлять учетной записью без помех. Злоумышленник будет подключен к учетной записи жертвы до тех пор, пока жертва не выйдет из учетной записи. При закрытии браузера злоумышленник не выйдет из аккаунта и может дальше пользоваться учетной записью жертвы.
Технические подробности Telegram
Веб-клиент Telegram способен отправлять различные типы документов, и только изображения и видео хранятся в файловой системе браузера.
Исследователи из Check Point также сумели обойти политику клиента и загрузили вредоносный документ HTML, применив MIME-тип видеофайла “video/mp4”. После этого у них получилось отправить файл жертве через зашифрованный канал на серверы Telegram. Пользователь открывает видео в новой вкладке браузера, файл воспроизводится, и данные о его сеансе отправляются злоумышленнику.
Атака на Telegram состоит из нескольких, описываемых ниже этапов.
Хакер сначала создает вредоносный файл HTML с видеоданными.
Telegram хранит MIME-тип файла в качестве объекта «t» и во время загрузки проверяет, является ли MIME-тип изображением или видео. Если да, файл хранится под URI файловой системы клиента.
Поскольку зашифрованный файл отправляется на серверы Telegram, можно изменить тип MIME на «video/mp4», для того, чтобы обойти ограничения по загрузке и отправить вредоносный HTML-документ в Telegram как видео.
После изменения MIME-типа, клиент отправляет зашифрованный файл на сервер Telegram.
В результате получается файл, замаскированный под видео, но с вредоносной начинкой:
Как только пользователь воспроизводит видео, HTML-файл загружается в память браузера под web.telegram.org. Пользователю нужно открыть видео в новой вкладке, чтобы получить доступ к ресурсу в браузере по URI файловой системы в URI web.telegram.org.
Во время просмотра видео данные из локального хранилища жертвы отправляются злоумышленнику, что позволит ему получить контроль над учетной записью.
С этой целью злоумышленник применяет функцию JavaScript, которая через каждые 2 секунды проверяет, нет ли новых данных в бэкенде, и заменяет локальное хранилище, как это видно из фрагментов кода WhatsApp POC.
Хакер перенаправляется к учетной записи жертвы и получает доступ к любым данным.
Пользователь не подозревает о взломе его учетной записи, потому что Telegram разрешает проводить неограниченное количество сеансов одновременно.