Многие пользователи Facebook могут даже не понимать, что их номер телефона привязан к их учетной записи. Они просто забыли, что когда-то это сделали. Facebook не в состоянии просто извлечь номер с вашего телефона, но они могут делать то, что мы называем «кибербуллингом» (cyberbullying) путем постоянных напоминаний и просьб подтвердить ваш номер телефона при каждом входе в Facebook.
В Facebook настройки конфиденциальности по умолчанию позволяют любому пользователю найти вас по номеру телефона сразу после того, как вы его добавите. Это не новая проблема. Она существует уже с тех пор, как был реализован поиск в Facebook Graph, но Facebook решил трактовать эту проблему как фичу (классика: «не баг, а фича»).
А зная ваше имя и номер, злоумышленники могут запросто использовать такую информацию для социальной инженерии, позвонив вам напрямую. Подумайте о классической мошеннической «технической поддержке Microsoft», только с той разницей, что звонящий пытается обмануть вас — он знает ваше имя и всю остальную информацию из профиля facebook, которую с радостью любят предоставлять общественности (мошенники говорят им огромное спасибо:). Вооружившись такими сведениями легко заставить жертву думать, что звонящий человек является вполне добросовестным работником службы техподдержки.
Как же хакер сможет найти ваш номер?
Теоретически, если у него есть очень много времени, то он может просто проверить все 9.999.999.999 потенциальных номеров. Ясное дело, что это абсолютно неэффективно, поэтому давайте посмотрим, как это можно сделать. В качестве подопытного кролика мы будем использовать мэра Округа Колумбия (DC) Мюриэль Боузер (2017) в качестве случайного городского чиновника. В приведенных ниже примерах ее номер был изменен. (эти же самые действия применимы и к остальным странам)
Шаг 1. Использование кодов областей
Если вы думаете о номере телефона цели как об одном из возможных 10-значных телефонных номеров США, то вы очень быстро поймете, что 10 миллиардов североамериканских телефонных номеров — это слишком большой список, по которому можно эффективно осуществлять поиск. К счастью для хакера, этот список можно сократить благодаря Североамериканскому плану нумерации (NANP), в, в котором излагаются рекомендации по назначению телефонных номеров в США.
Возьмем пример: 234-235-5678. Посмотрев на NANP, мы увидим, что первые три числа (234) являются кодом области, а план допускает в качестве первой цифры от 2 до 9, в качестве второй и третьей — цифры от 0 до 9. Эта информация тут же исключает один миллиард возможных номеров из списка хакера.
Хакер также может быстро сузить круг поисков, если он знает или может получить обоснованное предположение о том, где вы живете — для этого бывает достаточно просто погуглить. Сделав это, хакер сократит свой список телефонных номеров еще на 9 миллиардов 990 миллионов номеров.
Следующие три числа после кода области (в нашем примере это 235) являются префиксом центрального офиса телефонной компании. Опять же, план требует от 2 до 9 для первой цифры и 0-9 для второй и третьей цифр, но с оговоркой.
В кодах областей, где вторая цифра равна 1, третья не может быть тоже 1. Это правило также удалит большое количество телефонных номеров из списка хакера. Последние четыре цифры номера телефона — это номер телефонной линии, в данном случае — 5678.
Мы можем обоснованно предположить, что у мэра DC будет код DC и что хакер сможет также найти учетную запись цели в Facebook и, вероятно, также сможет найти родной или текущий город, в котором цель проживает или работает. В некоторых крупных городах, таких как Лос-Анджелес, будет несколько кодов областей, но вне зависимости от того, сколько отдельных телефонных кодов областей относятся к одному городу, это правило все же значительно уменьшает список возможных телефонных номеров, который могут использовать хакеры.
Шаг 2. Выберите последние номера
Теперь, когда мы знаем, что номер нашей цели равен 202-???-????, нужно попытаться удалить как можно больше этих вопросительных знаков, что упростит поиск телефонного номера в Facebook чуть позже. К счастью, Facebook на нашей стороне и сделал это, вероятно, вторым самым простым шагом после использования кода области. Чтобы получить последние два числа, нам нужно выполнить несколько шагов в процессе сброса пароля.
Для этого хакер переходит на главную страницу Facebook и нажимает кнопку «Забыли аккаунт?» и начинает процесс сброса пароля.
Затем он вводит имя цели и нажимает кнопку «Поиск».
Затем хакеру отображается список пользователей вместе с фотографиями профилей, который очень быстро помогает идентифицировать свою цель. Наша цель наверху!
Facebook любезно предоставляет хакеру последние две цифры телефонного номера цели, а также некоторую информацию об учетных записях электронной почты, привязанных к их учетной записи Facebook, например, первую и последнюю букву, а иногда и домен электронной почты.
И на этом хакер должен остановиться. Он не должен сбрасывать пароль, поскольку иначе цель получит уведомление о сбросе пароля, а этого нельзя допускать ни в коем случае.
Шаг 3. Используйте внешние источники
Такие сервисы как PayPal и ему подобные с более чем 218 миллионами пользователей могут помочь расширить ту информацию, которую собрал злоумышленник. В нашем случае, если цель также является еще и пользователем PayPal, то хакер может получить две дополнительные цифры номера телефона, который мы ищем.
На приведенном выше скриншоте вы, возможно, заметили, что первым указанным адресом электронной почты является учетная запись Gmail, которая начинается с «M» и заканчивается на «R».
Это забавно, но имя нашей цели начинается с буквы «M», а ее фамилия заканчивается на «R». Хммм, какой же адрес использовался у данной почты)). Чтобы проверить эту гипотезу, мы проверяем этот адрес в Gmail, просто набрав его.
Но допустим, что это совпадение и это не адрес электронной почты нашей цели. Хакер может проверить это, выполнив тот же трюк со сбросом пароля, который был применен в истории с Facebook.
М-да… случилось так, что у этой учетной записи номер телефона тоже заканчивается на 69. Еще одно совпадение?! Не думаю). Теперь, когда у нас есть электронная почта, с которой можно работать, мы можем переключиться на PayPal на новой вкладке и снова использовать тот же трюк со сбросом пароля.
На этот раз, когда мы доберемся до экрана сброса пароля, мы получим не только все четыре цифры номера телефонной линии, но также и первое число кода области!
Это может говорить нам о том, что мы находимся на правильном пути с кодом области и подтверждает правильность выводов от всей нашей предыдущей работы по поиску последних нескольких цифр в номере телефона. Это значит, что у нас есть номер 202 — ??? 6969. Другими словами, наш список из 10 миллиардов возможных вариантов телефонных номеров превратился за несколько минут в список, состоящий всего лишь из нескольких тысяч вариантов.
Шаг 4. Брутфорс умным способом
На данный момент хакер может просто остановиться и начать подставлять произвольные цифры в панель поиска Facebook, но это все равно крайне неэффективный способ. И что же сделает ленивый хакер? Он воспользуется специальной функцией Facebook, которая позволяет проводить бинарный поиск.
Facebook позволяет загружать списки контактов в формате CSV, а затем сообщает нам о том, зарегистрированы ли они на Facebook, чтобы мы могли добавить их в друзья. Составив собственный список всех потенциальных телефонных номеров, мы можем быстро исключить большие куски этого списка с неправильными числами.
В этом случае мы знаем, что число должно быть в диапазоне от 202-000-6969 до 202-999-6969. Сократив это пополам и сформировав список чисел с 202-000-6969 до 202-500-6969, мы можем эффективно исключить половину нашего списка, так как наша цель будет только в одном из двух созданных половинных списков. Затем мы можем загрузить этот список в Facebook и сразу определить, находится ли в нем нужный номер телефона.
Чтобы создать этот список, мы переходим в Google Contacts и кликаем «Экспорт» (Export), чтобы получить пример CSV-файла.
Facebook предпочитает принимать этот список контактов в CSV-формате, поэтому мы сохраняем его из Google Contacts.
Можно открыть этот файл в Google Таблицах или Excel и изменить столбец с номерами телефонов на тот, по которому будет происходить перебор номеров, которые необходимо проверить, как показано в следующем примере.
В приведенной ниже формуле excel мы начинаем с того, что берем наименьший номер телефона, в этом случае 2020006969, а затем добавляем к нему 10 000, чтобы увеличить цифру, находящуюся на пятом месте на 1. Эта формула будет повторяться столько раз, сколько необходимо, но мы не должны делать это более 1000 раз, потому что в нашем списке есть только одна тысяча номеров. Если у цели не было счета в PayPal и мы не смогли выяснить какие цифры стояли на третьем и четвертом месте, то мы должны прибавить 100, чтобы увеличить третью цифру.
=(ROW()*10000) +2020006969
Затем нужно войти в учетную запись Facebook и перейти к функции Friend Finder. Кликнуть на логотип Gmail и затем — «Найти друзей» (Find Friends).
Прокрутить страницу до конца вниз и загрузить ваш CSV-файл, содержащий номера телефонов, которые вы хотите попробовать.
После того, как он загрузится, Facebook представляет хакеру список «друзей», которых можно добавить из этого списка. Нужно найти свою цель внутри этого списка. Нашей цели здесь, похоже, нет, поэтому мы знаем, что ее нет и в этой половине списка с телефонными номерами.
Затем вместо тестирования следующей части списка из 500 номеров мы разделяем следующие 500 пополам и проверяем одну из этих половинок. Мы это делаем потому, что уже знаем, что цель будет находиться во втором списке, поскольку ее не было в первой половине. Хакер может продолжать искать таким образом, пока цель не появится в списке номеров телефонов.
С каждым последующим разом хакер проверяет все меньшие и меньшие списки номеров до тех пор, пока для теста у него не останется совсем небольшое количество. Мы остановились, когда осталось всего около 30 номеров. Очевидно, что этот процесс занимает больше времени, если у хакера меньше информации о других цифрах этого номера телефона, поскольку ему придется делать большее количество попыток поиска. Facebook ограничивает такой поиск пятью попытками в день, но это ограничение можно обойти, если использовать другой аккаунт.
Шаг 5. Проверка последних нескольких чисел
Как только у этого хакера останется всего несколько номеров, то он сможет вводить их по одному в строку поиска Facebook. Для этого просто вводите номер в строку поиска без дефиса. Если запросы от вас будут идти слишком быстро или если вы ищете слишком много, то Facebook начнет ограничивать их с помощью капчи.
Однако это не слишком серьезная защита, когда хакеру нужно проверить всего 30 номеров.
В общей сложности нам потребовалось от 30 минут до часа, чтобы найти номер нашей цели, и эти же шаги можно было использовать для всех, кто привязал свой телефон к Facebook.
Шаг 6. Как защититься
Самый простой способ защитить себя — никогда не привязывать свой телефон к Facebook. Если вы все еще хотите использовать двухфакторную аутентификацию, то Facebook позволяет использовать устройство USB U2F, а не полагаться на ваш телефон. (а лично на мой взгляд, вообще не стоит пользоваться ни facebook, ни вк, тк оба неудобные, некрасивые куски, telegram one love {^_^})
Если вам действительно необходимо привязать ваш телефон, то перейдите в Настройки Facebook, выберите меню «Конфиденциальность», а затем «Кто может искать вас, используя номер телефона, который вы предоставили?» Установите этот параметр в «Друзья». К сожалению, Facebook не позволяет вам установить этот параметр в «Только я».
На мобильном устройстве вам нужно нажать меню (с тремя полосками), выбрать «Настройки учетной записи» (пользователям iOS сначала нужно будет выбрать «Настройки»), затем нажать «Конфиденциальность». Вы увидите тот же вопрос «Кто может искать вас», где вы можете изменить свои предпочтения на «Друзья».