Компания Facebook объявила о компрометации как минимум 50 000 000 пользовательских учетных записей.
Представители социальной сети пишут, что неизвестные злоумышленники похищали чужие токены доступа, используя уязвимость, связанную с функцией «Посмотреть как» (View as). Данная функция позволяет увидеть свой профиль глазами другого пользователя. По официальным данным, баг появился в коде еще в июле 2017 года, но, судя по всему, преступники обнаружили его сравнительно недавно. Дело в том, что инженеры Facebook заметили первые странные скачки трафика и подозрительную активность (которая, как оказалось позже, была связана с массовым хищением токенов) только в середине сентября 2018 года, когда, очевидно, и началась активная эксплуатация проблемы.
Полностью разобраться в происходящем специалистам Facebook удалось только 26 сентября 2018 года, и уже на следующий день брешь, использованную преступниками, закрыли. Никаких подробностей о самих злоумышленниках пока нет, так как расследование инцидента еще далеко от завершения, и к делу лишь недавно подключились правоохранительные органы. Также представители компании пока не завершили анализ данных пострадавших пользователей, и не могут точно сказать, были ли атаки направлены против пользователей конкретных регионов или стран. По предварительным данным, атаки не были целевыми.
В ходе экстренной пресс-конференции вице-президент компании Гай Розен (Guy Rosen) рассказал о некоторых технических деталях случившегося. Розен объяснил, что обнаруженная неизвестными хакерами уязвимость, по сути, представляла собой комбинацию трех отдельных багов.
Так, проблема возникла после того, как разработчики создали новый загрузчик видео летом 2017 года. Первый баг заключался в том, что при использовании функции «Посмотреть как» загрузчик видео вообще не должен был отображаться, но в отдельных случаях (из-за записей, призывающих пользователей пожелать счастливого дня рождения), он все же отображался.
Второй баг заключался в том, что загрузчик некорректно использовал SSO (Single Sign-On, технологию единого входа) и генерировал токены доступа, имеющие права в мобильном приложении Facebook.
Третья ошибка проявлялась только в том случае, если перед этим уже были выполнены вышеперечисленные условия для возникновения первых двух проблем. После этого происходила генерация токена доступа, но не для «зрителя», использующего View as, но для пользователя от лица которого «зритель» просматривал профиль.
Именно совокупностью этих ошибок позволила злоумышленникам массово похищать токены пользователей (получив один токен, хакеры тут же переключались на друзей жертвы, затем на их друзей и так далее).
Из-за случившегося инженеры Facebook приняли решения разлогинить около 90 000 000 пользователей социальной сети. Сообщается, что токены для 50 млн учетных записей были аннулированы из-за злоупотреблений злоумышленников, но в качестве превентивной меры также были «отозваны» токены еще для 40 млн человек, которые пользовались функцией «Посмотреть как» за последний год. Сама проблемная функциональность сейчас отключена на время проведения аудита безопасности.