Эксплойт FCM, скрывающийся за странными уведомлениями от Microsoft Teams и Hangouts

Недавно обнаруженная уязвимость в Firebase Cloud Messaging привела к появлению странных уведомлений от таких приложений, как Microsoft Teams и Hangouts.

Кажется, мы не можем прожить и дня без того, чтобы где-нибудь в каком-нибудь программном обеспечении или сервисе не обнаружилась еще одна серьезная ошибка безопасности. Похоже, на этой неделе пришло время для Firebase Cloud Messaging столкнуться с легко эксплуатируемой уязвимостью.

Облачный обмен сообщениями Firebase — это платформа Google, которая упрощает доставку уведомлений через приложения практически на любой платформе. С помощью простой настройки вашего приложения и сервера вы можете отправлять общие или целевые push-уведомления своим пользователям в течение нескольких минут. Большинство приложений Android, которые доставляют push-уведомления, скорее всего, используют для этого Firebase Cloud Messaging (или устаревшую версию Google Cloud Messaging). Сюда входят как приложения от разработчиков-любителей, так и приложения от таких гигантских корпораций, как Microsoft и, конечно же, Google.

Эксплойт

И вот тут-то и появляется этот эксплойт. Если вы используете такие приложения, как Команды Майкрософт или Google Hangouts, возможно, вы недавно заметили, что приходят случайные уведомления, как на следующем снимке экрана. Это от людей, воспользовавшихся неправильными конфигурациями Firebase Cloud Messaging.

Скриншот из /u/ToTooThenThan на Reddit.

Я не буду вдаваться в подробности, но эта проблема на самом деле не вина Google. Чтобы безопасно отправлять push-уведомления, Google требует, чтобы сервер, который их фактически отправляет, также отправлял ключ для проверки их подлинности. Этот ключ должен находиться только в вашей консоли Firebase и на вашем сервере.

Но в затронутые приложения по какой-то причине также встроен ключ. Он не используется, но доступен в виде открытого текста, чтобы каждый мог его увидеть и использовать. По иронии судьбы, Google Hangouts и Google Play Music, как и Microsoft Teams, уязвимы для этого эксплойта. Так что это своего рода вина Google, но не совсем.

И это может быть использовано в весьма гнусных целях. Хотя кажется, что большинство «реализаций» этой уязвимости использовались только для отправки людям странного текста, злоумышленник может реализовать фишинговую аферу. Текст уведомления может быть примерно таким: «Ваша сессия истекла. Пожалуйста, нажмите здесь, чтобы войти снова», с URL-адресом, который запускается при нажатии на него. Этот URL-адрес может оказаться сайтом, оформленным, скажем, как страница входа в систему Microsoft. Но вместо входа в Microsoft вы даете кому-то свой логин.

Что следует делать пользователям?

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

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

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

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

Если вы внедрили Firebase Cloud Messaging в свои приложения, проверьте файлы конфигурации и убедитесь, что там нет ключей вашего сервера. Если да, немедленно аннулируйте их, создайте новые и перенастройте сервер.

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

Ответы Google и Microsoft

Об этом сообщил представитель Google Ежедневный глоток что проблема «конкретно связана с разработчиками, включающими ключи API в свой код для сервисов, которые не должны быть включен, что затем может быть использовано», вместо того, чтобы сама служба Firebase Cloud Messaging была скомпрометирован. «В тех случаях, когда Google может определить, что используется серверный ключ, мы пытаемся предупредить разработчиков, чтобы они могли исправить свое приложение», — добавил представитель.

Microsoft опубликовала следующее заявление в Twitter:

Дальнейшее чтение

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

  • Поглощение облачной службы сообщений Firebase: небольшое исследование, которое привело к получению вознаграждений на сумму более 30 тысяч долларов
  • Уязвимость обмена сообщениями Google Firebase позволяла злоумышленникам отправлять push-уведомления пользователям приложения.