Независимый исследователь из Калифорнии, Гуркират Синх (Gurkirat Singh), в своем блоге дал ответ на животрепещущий для многих вопрос: как взломать аккаунт 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. Также исследователь смог присовокупить к своей базе фотографии профилей и полные имена пользователей, так как социальная сеть никак не ограничивала распространение этой свободной информации. Суммарно Синх собрал информацию о двух миллионах учетных записей. «Я сообщил им о проблеме еще 3 мая 2016 года, но в Facebook не поверили, что такая масштабная операция возможна.
Они хотели доказательств. В итоге я провел почти месяц изучая вопрос и подготавливая инфраструктуру для атаки на 2 млн пользователей Facebook. Когда я добавил информацию о баге снова, они огласились, что это определенно проблема». Имея на руках базу, состоящую из двух миллионов пользователей, Синх написал скрипт, который использовал сотни прокси и рендомных user-agent.
Скрипт запрашивал сброс паролей для всех двух миллионов пользователей, быстро исчерпывая пул «одноразовых» шестизначных кодов. Затем исследователь выбрал случайное число (к примеру, 33825) и начал процедуру смены пароля, брутфорсом перебирая весь имеющийся двухмиллионный список.
Надежды Синха полностью оправдались, так как в итоге в списке действительно удалось обнаружить пользователей, которым шестизначный код подходил, то есть алгоритм Facebook действительно начал повторяться, как и предполагалось. Хотя компания уже выпустила патч, призванный устранить обнаруженную Синхом проблему, исследователь не уверен, что проблема полностью решена. «Я знаю, что Facebook выпустила патч, и они теперь агрессивно фильтруют IP-адреса. Но я по-прежнему сомневаюсь, что их патч достаточно эффективен против этой уязвимости, так как можно использовать больший пул IP-адресов, симулировать глобальный трафик и применить социальную инженерию», — говорит исследователь.
Взято с xakep.ru
Читайте также
Последние новости