В 2020 году даже если злоумышленник попал в ваш аккаунт социальной сети, это неприятно, но не критично. Ведь у нас есть двухфакторная аутентификация на многие важные действия, а доступа к почте/телефону у злоумышленника нет и аккаунт ему не угнать. Так ведь? Нет.
В Instagram - социальной сети, которую использует 1 миллиард пользователей (? населения планеты) все совсем не так. И исправлять они это отказались. В этой статье я расскажу вам о логической уязвимости, которая может позволить захватить аккаунт человека, пока он не обратится в тех. поддержку.
Интересно? Добро пожаловать под кат!
Смена email и номера телефона
Итак, злоумышленник каким-то образом зашел в ваш Инстаграм аккаунт в приложении или в веб-версию. Возможно, он просто узнал ваш логин и пароль, или может вы забыли выйти на общественном компьютере, это уже не столь важно. Двухфакторная аутентификация же по умолчанию у всех отключена.
Может ли он что-то такое устроить, чтоб завладеть вашим аккаунтом на продолжительно время? Да, может и в этом как раз проблема.
Ночью, где-то в 3-4 утра, когда вы скорее всего спите, он удаляет привязанный номер телефона.
Нужно ли подтверждение с телефона? Нет, не нужно.
Придет ли смс на номер телефона? Нет, не придет.
Прилетит ли Push-уведомление в приложение? Нет, не прилетит.
Пара кликов и уже номер телефона не привязан, вас уведомят лишь письмом на почту, его вы увидите скорее всего лишь утром. Дальше email, меняем и его.
Нужно ли подтверждение с прошлого email? Нет, не нужно.
Прилетит ли Push-уведомление в приложение? Нет, не прилетит.
Остается лишь подтвердить новый email по ссылке, что злоумышленник сделает — email сменен. И об этом вас уведомят лишь письмом на почту, и его вы увидите скорее всего лишь утром.
В письмах на почте об изменениях в аккаунте вас будут ждать ссылки возврата “secure your account here” (https://instagram.com/accounts/disavow). Они позволяют легко восстановить старое значение email и телефон, переход по ним позволит все откатить. Это ЕДИНСТВЕННЫЙ механизм защиты от перехвата аккаунта, но он работает. А можно ли его обойти? Да, можно.
Account Takeover
Чтобы получить контроль над аккаунтом и не дать владельцу вернуть его обратно, нужно лишь не позволить ему использовать ссылки возврата. Немного обозначений:
“victim@example.com” - почта владельца аккаунта, к которой был привязан аккаунт.
"evil1@anyserver.com” - первая почта злоумышленника.
“evil2@anyserver.com” - вторая почта злоумышленника.
Последовательность действий:
Хакер удаляет телефон жертвы из аккаунта и меняет почту victim@example.com на evil1@anyserver.com.
Хакер подтверждает почту evil1@anyserver.com.
Хакер меняет почту evil1@anyserver.com на evil2@anyserver.com.
Хакер подтверждает почту evil2@anyserver.com.
Хакер нажимает на ссылку возврата “secure your account here” (“https://instagram.com/accounts/disavow/**) на “evil1@anyserver.com” и восстанавливает настройки аккаунта к первоначальным с Шага 1, при этом меняя и пароль.
Он сам вернул привязку к легальном мылу и телефону?! Да, и он повторит шаги 1-5 еще несколько раз, пароль ему известен. Полностью автоматизировано повторит, нет там капчи, ни одной!
При моих тестах было достаточно 3 повторений шагов, чтобы ВСЕ ссылки возврата на ВСЕХ почтах перестали работать. Их использование несколько раз за короткий промежуток времени приводит к блокировки функции возврата “secure your account here“. Злоумышленник же может автоматизировано повторять шаги, чтобы продлить блокировку. Теперь аккаунт без вмешательства тех. поддержки не вернуть, ведь ссылки даже на первоначальном email не работают, а из всех приложений жертву выкинуло после первых действий.
Решения
Решений это проблемы множество, самые важные компенсирующие меры:
Внедрить подтверждение смены email и телефона отправкой сообщения на предыдущий email/телефон.
Блокировать лишь ссылки возврата на определенных email, а не на всех.
Желательно:
Уведомлять об изменения в аккаунте в приложении и/или смс.
Реакция Facebook/Instagram
“В рамках использования описанной вами проблемы кто-то должен взять под контроль устройство пользователя и перевести это устройство в разблокированное и аутентифицированное состояние. Это очень высокий барьер для входа и, похоже, вряд ли произойдет обычно, что делает эту атаку скорее теоретической. Защита в этом случае заключается в том, чтобы не позволить кому-либо украсть и разблокировать ваше устройство.”
То есть, это в целом невозможно?
И перехват веб-версии, через которую я и проделал все описанное выше - не считается?
Править они ничего не будут, судя по всему, и тем более за это не положена никакая награда исследователю. Вот такая интересная "особенность" Инстаграма, а никак не проблема безопасности =)
ultrinfaern
Человек, возможно, меняет телефон или почту, если у него нет доступа к старому телефону или почте. И если слать пуш уведомления на недоступный пользователю телефон или почту, то как сам пользователь может их сменить?
ForbiddenWorld Автор
Как и во всех других приложениях, через тех. поддержку, например.
Ну и через ввод старого пароля, как минимум, тут он не нужен.
ultrinfaern
Я намекал, что большая часть смен — это утеря телефона или почты. А вы предлагаете это все через техподдержку проводить? Ну это не серьезно.
Здесь, конечно, не помешал бы дополнительный канал с пользователем, но его нет. А утерянный телефон или почта это точно не доп. канал подтверждения. Так что тут, я согласен с Instagram. А вот насчет возврата, не все так однозначно. У гугла, вроде, есть превичный емаил, который нельзя сменить или что- то такое.
ForbiddenWorld Автор
Ну хотя бы пароль вводить при смене нужно ведь)
ELForcer
На днях менял у гугла первичный и единственный email.
TheShock
Достаточно не давать менять почту чаще чем раз в три дня. Поменял почту? Всё, три дня больше менять не можешь. Настоящий владелец сможет откатить до оригинального состояния через специальную ссылку
ForbiddenWorld Автор
Отличная идея)
tyomitch
А как с телеграмом: пролюбил симку — прощай аккаунт.
nixtonixto
Переходите на Вайбер, там другая крайность: при входе с другого устройства на Андроиде, вас выбрасывает из первого устройства, и на втором у вас чистый лист без истории переписки и даже без контактов… А RTFM обычно начинают только после того, как всё пропало…
caffeinum
Но если вернуться назад, то всё вернется ведь? В WhatsApp так, например
foxin
Неа, что пропало — то пропало.
Только если настроены бэкапы в гугл драйв, то с потерей 1-2 дней можно восстановить. Ах да, картинки? Забудьте.
bckr75
А у меня почему-то всё удалилось, хотя с другого устройства не заходил...
hogans
в любом отделении оператора сотовой связи бесплатно выдают новую симку с твоим номером, по предъявлении паспорта, конечно.
sumanai
Если симка была зарегана на вас, конечно же. Моя больше 15 лет назад была зарегистрирована на человека, который много лет как умер. И восстановление после того, как она отказала, было тем ещё квестом.
oswxp
слушай, это проблема конкретно твоя. Ты же наверное знал и понимал это, но ничего при этом не сделал, зато зарегистрировался на том или ином сервисе через симку, которая тебе не принадлежит.
Это вопрос между тобой и оператором, никакого отношения к сервису не относится, иначе существенно возрастает риск компрометации, разве нет?
sumanai
Проблема в сервисах, которые можно зарегистрировать на симкарту. Есть логин, есть пароль, есть OTP для критичных сервисов, всё остальное от лукавого.
VANSCoder
Так дело в том, что заставляют регистрироваться через симку! Я бы с радостью использовал PGP, но выбора мне не оставляют.
oswxp
наверное тогда есть смысл отказаться от их услуг. Я их не защищаю. Просто я не понимаю тех, кто жалуется, что мол номер не на него и за все это время не удосужится решить эту проблему с оператором связи.
Тут хоть обминусуйтесь, если сути не понимаете, но заявлять о том, что номер вам не принадлежит и сетовать на валить все на других,, такое себе. Так решил оператор и ему чхать, что в действительности вы им пользуетесь уже давно.
sumanai
Номер в любом случае принадлежит оператору, если что.
tyomitch
Как-то пытался я в Екб восстановить симку МТС, купленную в СПб. В любом отделении оператора мне отвечали «вот где открывали, туда и идите».
Jasper_Kollinz
В телеграме можно отключать активные сеансы по одному,(но не на новых устройствах, что плюс). И всё равно если злоумышленник знает номер, без секретной комбинации 2ФА в аккаунт ему не войти
snuk182
Без двухфакторки номер телефона в телеге меняется из уже залогиненой сессии без подтверждения. С двухфакторкой не пробовал.
irondsd
Смена телефона — запрос подтверждения на почту. Смена почты — запрос на телефон. Маловероятно, что одновременно утеряно будет и то, и то. А если так, то через поддержку.
tyomitch
Смысл 2FA пропадает, если злоумышленник, завладевший одним из факторов, может безо всяких препятствий заменить второй фактор своим.
irondsd
Если включена 2FA, тогда нужно подтверждать любые действия кодом из 2FA, само собой. Если 2FA через симку, а не приложение, и человек хочет сменить телефон для 2FA в связи с утерей, или что-то такое, то только через поддержку.
tcapb1
Вполне вероятно если потерялся телефон, а на почте тоже 2фа. В этом случае если почта не осталась открытой на другом устройстве — в неё тоже будет не войти.
tmin10
Обычно даётся время на откат изменения. Т.е. меняем телефон, на старый сразу сваливается смс о смене и даётся время откатить, день-два.
cleverate
Если взять в пример ВК, то там при смене номера, если он утерян, ставится недельный таймер и отсылается куча уведомлений (почта, пуш, сам номер). Да и в принципе, как бы к ВК все не относились, такие вещи там гораздо лучше проработаны, а уведомления на любой чих — нормальная практика.
ForbiddenWorld Автор
Именно
Big_Shark
Поменял телефон, получи код на почту, поменял почту, получи смс, вот и все.