В наши дни пользователи мессенджеров охотно используют голосовые сообщения вместо текста, ведь зачастую послание проще надиктовать, чем напечатать. Соответствующую функцию пользователям предлагают, к примеру, WhatsApp и Facebook Messenger. Египетский исследователь Мохамед А. Басет (Mohamed A. Baset) обнаружил, что в Facebook Messenger с этой функцией сопряжена серьезная проблема. Оказывается, чужие голосовые сообщения можно перехватить и прослушать посредством man-in-the-middle атаки.

Когда пользователь записывает аудиопослание и отправляет его реципиенту, файл загружается на CND-сервер Facebook (то есть формируется URL вида https://z-1-cdn.fbsbx.com/…). После этого файл на сервере будет доступен через HTTPS самому отправителю сообщения, а также его получателю .

Басет объясняет, что злоумышленник, реализовавший man-in-the-middle атаку, может воспользоваться SSL Strip и извлечь абсолютные ссылки (включающие специальный токен, встроенный в URL)  на все аудиофайлы, которыми обмениваются пользователи. Затем атакующему нужно будет осуществить даунгрейд этих ссылок (с HTTPS до HTTP), что позволит ему получить прямой доступ к аудио без всякой аутентификации.

Такая схема атак возможна из-за одной простой проблемы: Facebook не использует механизм HTTP Strict Transport Security (HSTS), чья основная задача – активировать форсированное защищенное соединение через протокол HTTPS. Обычно это значительно облегчает задачу по отражению даунгрейд-атак. Также Басет утверждает, что дело еще и в недостатке аутентификации: если два пользователя поделились друг с другом файлами, эти файлы должны быть доступны только им и никому более, даже если третья сторона располагает абсолютными ссылками.

В качестве доказательства серьезности проблемы исследователь послал аудиосообщение одному из своих друзей через Facebook Messenger, а затем опубликовал ссылку на этот файл, извлеченную в ходе man-in-the-middle атаки. Скачать аудио с сервера Facebook и убедиться, что атака работает, может любой желающий. Также Басет обнародовал proof-of-concept видео атаки, которое можно увидеть ниже.

Как ни странно, вознаграждения за свои труды Басет не удостоился. Когда исследователь связался с представителями Facebook, те признали наличие проблемы, однако сообщили, что даунгрейд-атаки и советы в стиле «нужно использовать HSTS» не подпадают под bug bounty политику компании. Впрочем, разработчики Facebook заверили, что сейчас как раз занимаются развертыванием HSTS для различных поддоменов facebook.com, так что уязвимость рано или поздно будет устранена. Пока найденная Басетом проблема все еще актуальна.

В этом свете интересно выглядит история другого исследователя, Андрей Леонова (Andrew Leonov), который недавно побил bug bounty рекорд и получил от Facebook $40 000. Леонов создал proof-of-concept эксплоит для уязвимости ImageTragick (CVE-2016-3714), обнаруженной летом 2016 года. Напомню, что  баг позволяет атакующему добиться от удаленного сервера выполнения произвольного кода, и для этого достаточно просто загрузить на сервер специально подготовленное изображение. Подробную историю создания эксплоита можно найти в блоге исследователя, где Леонов рассказывает, что обнаружил уязвимость социальной сети перед проблемой ImageTragick случайно, когда искал баги в совсем другом сервисе.



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