Сломанный механизм
Чтобы восстановить пароль от Facebook, используется механизм, который обнуляет забытые пароли. Когда пользователь, который забыл пароль от аккаунта, делает соответствующий запрос, социальная сеть отправляет ему на почту письмо с шестизначным кодом, сгенерированным случайным образом.
Если запрос на смену пароля отправлять через mbasic.facebook.com, то полученный код не будет иметь срока годности. Если миллион человек одновременно решат поменять пароль, то для следующего пользователя сгенерируют такой же пароль, как для одного из первого миллиона.
Как взломать аккаунт в Facebook
Синх собрал базу аккаунтов Facebook, генерируя запросы к Facebook Graph API и перебирая пользователей с ID больше 100 трлн (10 в 14 степени). Кроме того, исследователь прикрепил к ID имена, ссылки на страницы и аватары пользователей – эта информация находится в открытом доступе.
Располагая базой из 2 млн записей, эксперт запустил скрипт, который сбрасывал пароли для каждой из них, а затем использовал одно и то же случайное число для смены пароля. В результате ему удалось сломать несколько аккаунтов и доказать, что метод действительно работает.
Хорошая новость
Исследователь передал описание уязвимости Facebook 3 мая, однако в компании не поверили, что такое возможно. Позднее Синх подкрепил заявление результатами своего эксперимента.
В ответ Facebook выпустила патч, который агрессивно фильтрует IP-адреса. Теперь описанным способом взломать аккаунты уже не получится.