Независимый исследователь из Калифорнии, Гуркират Синх (Gurkirat Singh), в своем блоге дал ответ на животрепещущий для многих вопрос: как взломать аккаунт Facebook? Синх метод, который позволял ломать аккаунты массово, вне зависимости от сложности и длины пароля, а также двухфакторной аутентификации.
Придуман способ массового взлома аккаунтов Facebook
Синх нашел проблему в механизме, при помощи которого социальная сеть обнуляет забытые пароли пользователей. Как только кто-то запрашивает смену пароля, Facebook осуществляет эту операцию через генерацию случайного шестизначного кода, то есть комбинаций для таких кодов может быть всего 10⁶ = 1 000 000.

Исследователь обнаружил, что если запросить смену пароля через mbasic.facebook.com, шестизначный код сменится и придет в негодность лишь после его использования, то есть, фактически у него нет «срока годности». Синх понял, что если миллион человек запросит смену пароля примерно одновременно, то код, который социальная сеть создаст для миллион первого, будет дублировать чей-то еще.

Для проверки своей теории исследователь собрал базу Facebook ID, забрасывая запросами API Facebook Graph API. Синх методично перебирал ID, начиная с 100 000 000 000 000. Дело в том, что ID — это уникальный идентификатор, обычно состоящий из 15 символов. С ID разрешено работать только авторизованным приложениям, но если попытаться воспользоваться адресом www.facebook.com/[ID], произойдет редирект, ID будет автоматически заменен на имя пользователя. Что подтвердит верность ID. Также исследователь смог присовокупить к своей базе фотографии профилей и полные имена пользователей, так как социальная сеть никак не ограничивала распространение этой свободной информации. Суммарно Синх собрал о двух миллионах учетных записей.
Имея на руках базу, состоящую из двух миллионов пользователей, Синх написал скрипт, который использовал сотни прокси и рендомных user-agent. Скрипт запрашивал сброс паролей для всех двух миллионов пользователей, быстро исчерпывая пул «одноразовых» шестизначных кодов. Затем исследователь выбрал случайное число (к примеру, 33825) и начал процедуру смены пароля, брутфорсом перебирая весь имеющийся двухмиллионный список. Надежды Синха полностью оправдались, так как в итоге в списке действительно удалось обнаружить пользователей, которым шестизначный код подходил, то есть алгоритм Facebook действительно начал повторяться, как и предполагалось.
Придуман способ массового взлома аккаунтов Facebook
Хотя компания уже выпустила патч, призванный устранить обнаруженную Синхом проблему, исследователь не уверен, что проблема полностью решена.