Уразливість в Facebook Messenger дозволяє перехоплювати голосові повідомлення

В наші дні користувачі месенджерів охоче використовують голосові повідомлення замість тексту, адже найчастіше послання простіше надиктувати, ніж надрукувати. Відповідну функцію користувачам пропонують, наприклад, 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), що дозволить йому отримати прямий доступ до аудіо без всякої аутентифікації.

Потім атакуючому потрібно буде здійснити даунгрейд цих посилань (з 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 випадково, коли шукав баги в зовсім іншому сервісі.