Взлом WhatsApp: разбираемся с последствиями

Случился очередной взлом WhatsApp. Рассказываем о том, кто, где и как это сделал!

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

Кто взломал WhatsApp

Прямо говорится о том, что за обнаружением и использованием уязвимости стоит израильская NSO Group. Компания разрабатывает шпионское программное обеспечение для использования правительственными спецслужбами. Было зарегистрировано несколько попыток взлома (сколько из них было удачными не сообщается).

Как это работает снаружи

Работа эксплоита для пользователя практически незаметна и не требует никакого взаимодействия. Взлом WhatsApp и установка трояна могут быть отмечены только пропущенным звонком. Но после установки трояна даже логи могут быть подчищены. Работает все и на iOS, и на Android.

Переполнение буфера в WhatsApp

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

Официальные подробности изложены в бюллетене  CVE-2019-3568 – «переполнение буфера в VOIP–стеке WhatsApp с помощью серии SRTCP-пакетов приводит к удаленному выполнению кода».

Как на самом деле работает эта уязвимость?

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

Переполнение буфера обычно возникает из-за неправильной работы с данными, полученными извне, и памятью, при отсутствии жесткой защиты со стороны подсистемы программирования (компилятор или интерпретатор) и операционной системы. В результате переполнения могут быть испорчены данные, расположенные следом за буфером (или перед ним).

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

Специалисты CheckPoint сравнили две версии WhatsApp в поисках изменений.

В WhatsApp сделана собственная реализация протокола SRTCP. Причем сделано это нативно, то есть на C/C++. Во время разбора патча были обнаружены две дополнительные проверки размера, защищающие от переполнения памяти при разборе и обработке сетевых пакетов.

Проверка размера №1

В обработчике RTCP в самом начале добавлена проверка переменной на максимальный размер в 1480 байт.

взлом WhatsApp

Во время дебага программисты выяснили, это действительно важная функция RTCP-модуля. Она вызывается еще до ответа на голосовой вызов WhatsApp.

Проверка размера №2

Та же самая переменная еще дважды используется во вновь добавленных проверках:

  1. Проверка того, что поле длины пакета не превышает установленную длину.
  2. Дополнительная проверка, что длина снова <= 1480, прямо перед копированием в память.

взлом WhatsApp

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

Весь модуль SRTCP довольно большой. Специалисты CheckPoint признают, что могут быть и другие изменения, которые остались незамеченными.

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

Угрожает ли такой взлом WhatsApp лично вам?

Скорее всего, нет. NSO Group работает на правительства и атаки носили целевой характер. Это не предмет массового использования. Пока.

Как защититься?

В тот же день, что был опубликован бюллетень безопасности, Facebook выпустил обновленные версии WhatsApp для iOS и Android. В них уязвимость закрыта. Просто обновите ваши приложения.

Павел Дуров и взлом WhatsApp

В России одним из самых заметных медийных последствий взлома стала публикация колонки Павла Дуров, в которой он критикует своего главного конкурента.

В частности он пишет:

Дуров про взлом WhatsApp

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

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

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

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

Что делать разработчику

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

Используете ли вы WhatsApp? А Telegram? Какому мессенджеру вы больше доверяете, как разработчик? Как улучшить безопасность того и другого? Напишите в комментариях!

Что еще почитать о безопасности:

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Go-разработчик
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ