Ошибка Facebook Messenger позволяла подслушивать вызываемого абонента до принятия им звонка

23 ноября 2020 г. 11:07
 9760

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

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

Уязвимости были обнаружены Натальей Сильванович из команды Google Project Zero по поиску ошибок 6 октября и проявляются на версии Facebook-мессенджера 284.0.0.16.119 и более ранних.

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

«Это спровоцирует сценарий, при котором, пока устройство звонит, звонящий начнет получать звук либо до тех пор, пока вызываемый абонент не ответит, либо до истечения времени ожидания звонка», - сообщил менеджер по безопасности Facebook Дэн Гурфинкель.

Согласно технической записи Натальи Сильванович, баг заключается в WebRTC's Session Description Protocol (SDP), который определяет стандартизированный формат для обмена потоковым мультимедиа между двумя конечными точками, позволяющий злоумышленнику послать специальный тип сообщения, известный как «SdpUpdate», которое вызовет соединение с устройством вызывающего абонента до того, как он ответит на звонок.

Аудио и видео звонки через WebRTC обычно не передают аудио до тех пор, пока получатель не нажмет кнопку «Принять», но если сообщение «SdpUpdate» будет отправлено на другое конечное устройство во время звонка, «это заставит его немедленно начать передачу аудио, что может позволить злоумышленнику наблюдать за окружением вызываемого аппарата».

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

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

Но в отличие от ошибки FaceTime, использовать баг Facebook-мессенджера не так просто. Звонящий должен был бы уже иметь разрешение звонить конкретному человеку, другими словами, звонящий и вызываемый должны быть друзьями на Facebook.

Более того, атака также требует, чтобы злоумышленник использовал инструменты реверс-инженерии, такие как Frida, чтобы манипулировать своим собственным приложением и заставить его отправить пользовательское сообщение «SdpUpdate».

Наталья Сильванович была награждена премией за сообщение об ошибке в $60 000, которая, по словам исследователя Google, была пожертвована некоммерческой организации под названием GiveWell.

Это не первый раз, когда Сильванович обнаружила критические недостатки в приложениях для обмена сообщениями, ранее она выявила ряд проблем в приложениях WhatApp, iMessage, WeChat, Signal и Reliance JioChat, некоторые из которых позволяли «вызываемому устройству отправлять аудио без взаимодействия с пользователем».
 

Перевод сделан со статьи: https://thehackernews.com