Придуман способ массового взлома аккаунтов Facebook

Независимый исследователь из Калифорнии, Гуркират Синх (Gurkirat Singh), в своем блоге дал ответ на животрепещущий для многих вопрос: как взломать аккаунт Facebook? Синх описал метод, который позволял ломать аккаунты массово, вне зависимости от сложности и длины пароля, а также двухфакторной аутентификации.
Придуман способ массового взлома аккаунтов 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. Также исследователь смог присовокупить к своей базе фотографии профилей и полные имена пользователей, так как социальная сеть никак не ограничивала распространение этой свободной информации. Суммарно Синх собрал информацию о двух миллионах учетных записей.

«Я сообщил им о проблеме еще 3 мая 2016 года, но в Facebook не поверили, что такая масштабная операция возможна. Они хотели доказательств. В итоге я провел почти месяц изучая вопрос и подготавливая инфраструктуру для атаки на 2 млн пользователей Facebook. Когда я добавил информацию о баге снова, они огласились, что это определенно проблема».

Имея на руках базу, состоящую из двух миллионов пользователей, Синх написал скрипт, который использовал сотни прокси и рендомных user-agent. Скрипт запрашивал сброс паролей для всех двух миллионов пользователей, быстро исчерпывая пул «одноразовых» шестизначных кодов. Затем исследователь выбрал случайное число (к примеру, 33825) и начал процедуру смены пароля, брутфорсом перебирая весь имеющийся двухмиллионный список. Надежды Синха полностью оправдались, так как в итоге в списке действительно удалось обнаружить пользователей, которым шестизначный код подходил, то есть алгоритм Facebook действительно начал повторяться, как и предполагалось.

Придуман способ массового взлома аккаунтов Facebook Взлом, Аккаунт, Facebook, Смена пароля, Длиннопост

Хотя компания уже выпустила патч, призванный устранить обнаруженную Синхом проблему, исследователь не уверен, что проблема полностью решена.

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

Пруф

Информационная безопасность IT

1.4K постов25.5K подписчиков

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Вы смотрите срез комментариев. Показать все
124
Автор поста оценил этот комментарий

Желтые заголовки такие желтые!

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

т.е. из 2х миллионов код подходит к двум! Потом два ляма итераций нужно повторить снова, ведь

код сменится и придет в негодность после его использования

И можно восстановить пароль еще целым двум страницам! Под массовый взлом никак не подходит.

раскрыть ветку (45)
88
Автор поста оценил этот комментарий

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

раскрыть ветку (23)
16
Автор поста оценил этот комментарий

Да для обычной рабочей машины ломануть такую систему безопасности - раз плюнуть. В среднем 3 миллиона запросов на аккаунт при целенаправленном взломе - вообще изи пизи, только сиди и учетки продавай. По этому у меня код для восстановления пароля генерирует 60 символьный Blowfish хэш код от рандомного символьного набора (пхп 5 умеет это автоматом).

раскрыть ветку (19)
11
Автор поста оценил этот комментарий

в данном случае узким место производительности будет скорость ответа сервера и ширина канала. Если фейсбук все же просечет фишку бутфорса своими алгоритмами они могут понизить время ответа сервера.


Чтобы такого не произошло, как раз и используются прокси, желательно с динамическими IP меняющиеся каждые несколько минут. Чтобы с 1 IP ушло не больше 1000 запросов, он менялся.


Помню с 1 тачке на пыхе 40к сайтов с Алексы пропарсел пока они ip не заблокировали. Заблочали только спустя 9 часов =)

раскрыть ветку (4)
6
Автор поста оценил этот комментарий

Сейчас сайт паршу (не буду палить название, сменят ещё алгоритм) у них проверка куками идёт и если часто опрашивать сайт, то выскакивает капча, НО если обнулить все и зайти с прокси - вуаля, продолжаем парсить! :D

всего в неделю нужно 8 миллионов запросов делать, с одного ip позволительно от 1,5 до 3к, скоро у меня будет не краулер, а машина для убийства уже :D

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
вот мы и нашли тебя!
1
Автор поста оценил этот комментарий
Как вариант они просто могут увеличить длину пароля или же сделать одноразовые ссылки с экспайром в течении часа-двух, при увеличении длины пароля сложность и время брутфорса будет увеличивается экспоненциально, а в случае с одноразовыми ссылками вообще смысла не имеет..
1
Автор поста оценил этот комментарий

Ну, у меня при посылке такого количества запросов, прокси - как само собой разумеющееся =)

3
Автор поста оценил этот комментарий

бугагаг где? на домашней страничке кота Барсика? )))

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Что?

Автор поста оценил этот комментарий
ню ню, лям запросов, ради одного акка.
раскрыть ветку (11)
8
Автор поста оценил этот комментарий

Ради одного ВАЖНОГО акка (это и подразумевается под целенаправленностью). Взломать аккаунт Медведева, например, и написать от его имени какую-нибудь хуйню. Или взломать аккаунт твоей несуществующей девушки, чтобы узнать наверняка, не изменяет ли она с кем-нибудь (тебе конечно изменяет).

раскрыть ветку (10)
1
Автор поста оценил этот комментарий
Тут не получается работать целенаправленно. Автор тупо прогонял по всем аккам.
раскрыть ветку (8)
Автор поста оценил этот комментарий
прогонял по всем аккам, чтобы проверить теорию
1
Автор поста оценил этот комментарий

А я сказал про 3 ляма запросов ради одного важного. Я тут как бы в контексте одной ветки говорю, если ты не заметил.

раскрыть ветку (6)
1
Автор поста оценил этот комментарий
Как ты конкретный акк выцепишь из всех этих 3 миллионов аккаунтов? Получится получить доступ к случайному акку.
раскрыть ветку (5)
3
Автор поста оценил этот комментарий

О боже. Сделай миллион запросов по одному известному акку, одним да попадешь. Неужели это так трудно для понимания?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
О боже. К одному акку нельзя делать лям запросов. Иначе бы уже все важные акки давно перебрутили. Статью перечитай.
раскрыть ветку (3)
Автор поста оценил этот комментарий

В конце статьи написано про заплатку. Такие статьи редко на публику выставляются до залатывания дыр. Особенно в пиндосии, где за такое посадить могут.

раскрыть ветку (2)
Автор поста оценил этот комментарий
Аккаунт Медведева не смысла ломать. Он и сам справляется.
1
Автор поста оценил этот комментарий

так вот именно что это лишь чуть усложненный-направленный брутфорс. а брутом можно сломать все. вопрос только в целесообразности)

раскрыть ветку (2)
6
DELETED
Автор поста оценил этот комментарий

Смысл в том, что тут он как раз целесообразен.

Автор поста оценил этот комментарий
Вот именно. Фейсбук ломанули брутфорсом. Простейшим способом взлома. который большинство нормальных сайтов легко пресекают простейшими же способами защиты. Но не фейсбук.
Автор поста оценил этот комментарий
Комментарий удален. Причина: флуд, повторяющийся комментарий или комментарий содержащий информацию рекламного характера.
раскрыть ветку (1)
Автор поста оценил этот комментарий

@moderator, спам

Автор поста оценил этот комментарий

взлом одного тоже не минутное дело

1
Автор поста оценил этот комментарий

и что мешает ему делать итерации повторно? может вы не в курсе, но в других странах интернет не по карточкам

Иллюстрация к комментарию
3
Автор поста оценил этот комментарий

Тут массовый взлом и не нужен, достаточно взломать аккунты нужных личностей, которых на фейсбук всего лишь несколько сотен, ну или звезд, таких не больше 10 тысяч со всего мира.


То есть пробутфорсить отобраные 10к записей публичных людей планеты займет не больше 3 часов. А дальше делай с учтекой чего хочешь. Хоть данные с банковской карты тырь.

Как был фейсбук дырявым ведром так и остался. Ни чего не поменялось за последние 5 лет. Оно и понятно, пользователи для администрации это лишь стадо для показа им рекламы.

раскрыть ветку (9)
12
Автор поста оценил этот комментарий

Вы внимательно прочтите способ этого взлома:

достаточно взломать аккунты нужных личностей

Из условных двух миллионов ломаются не какие-то определенные петров и сидоров, а те, на кого волей случая попадет проверочный код. Заманаешься таким способом к "нужным" людям подбирать. Способ явно для такой цели не подойдет.

раскрыть ветку (8)
5
Автор поста оценил этот комментарий

Чел сделал сброс пароля списку аккаунтов, а затем выбрал 1 пароль и побежал по всему списку к кому он подойдет.



Вы находите нужные аккаунты.

Делаете этим аккаунитам сброс пароля. После сброса проверяете 1к вариантов пароля. 1 подойдет.

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

раскрыть ветку (5)
5
Автор поста оценил этот комментарий

Так не получится пробрутфорсить личность-то. Там после какой-то попытки пароль меняться должен.
Иначе получается, что в новости ничего интересного.

1
Автор поста оценил этот комментарий
на акк одна попытка ввода

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

серьезно? ну подберите алгоритм, попробуйте.

раскрыть ветку (2)
Автор поста оценил этот комментарий

rand-numb = ->

return (Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000)



exports.start = (next) !->

num-slice = 5

i = 1000000

ar = []

while (--i)

ar.push +(rand-numb!.toString!.substr num-slice)

ar.sort (a, b) ->

a - b


result = {}

ar.forEach ((a) ->

result[a] = result[a] + 1 || 1

return

)


for key of result

console.log "число #{key} == #{result[key]} раз"



Можете поиграться.

В rand-numb засовывайте любой алгоритм рандомайзера,

Чем больше итераций, тем больше повторяющихся элементов и их близость


В зависимости от алгоритма будет примерно такая картина нормального распределения



P.s если num-slice поставить в 0, то выведет все возможные варианты пароля. И при таком значении каждый 8 пароль повторяется по 3 раза., а каждый 20, по 2 раза. Все остальные по 1.

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

а разве это работает не по другому ?
запрашиваешь сброс пароля, и потом перебираешь с помощью этого числа. после недолгого промежутка времени сслыка сработает. к одной этой конерктной учётке

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет не так. Собираешь базу из потенциальных жертв (в примере описывалась база из 2 миллионов учеток). Запрашиваешь сброс пароля. Придумываешь этот 6-и значный код. И пробуешь этот код под все эти учётки. Какие совпадут - те и твои.

Не сработает никакая ссылка после недолгого промежутка времени, то что шестизначный код не может быть просрочен означает что у взломщика есть время с выбранным ним кодом попытаться использовать его со всеми 2 миллионами учеток (это же не за 10 минут делается).

2
Автор поста оценил этот комментарий

Ага. И самое прикольное

....быстро исчерпывая пул «одноразовых» шестизначных кодов. Затем исследователь выбрал случайное число (к примеру, 33825)

раскрыть ветку (2)
2
Автор поста оценил этот комментарий
Случайному числу 33825 однозначно соответствует шестизначный код 033825. Не вижу ничего особо прикольного.
раскрыть ветку (1)
Автор поста оценил этот комментарий

В таком случае так и надо писать

1
Автор поста оценил этот комментарий

Вот только если начать перебирать эти коды, то можно взломать все эти 2 млн. акков (ну или сколько у тебя будет). То, что человеку было этим лень заниматься, да и вообще ему надо было просто доказать, что алгоритм работает.  

раскрыть ветку (2)
Автор поста оценил этот комментарий

Если я правильно понял, пароль создается одноразовый. Если ты его неправильно ввел, то он сбрасывается и генерируется новый.

раскрыть ветку (1)
Автор поста оценил этот комментарий
шестизначный код сменится и придет в негодность лишь после его использования, то есть, фактически у него нет «срока годности»
Автор поста оценил этот комментарий

"пользователей" это >=2. Под сменой кода понимается смена кода для конкретного id.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку