Найти в Дзене
SEBERD IT Base

[962] Почему двухфакторная аутентификация не спасает от всех взломов

ПРЕДУПРЕЖДЕНИЕ: Статья предназначена для повышения осведомленности о киберугрозах и методах защиты. Все методы и инструменты, упомянутые в статье, должны использоваться только в законных целях, с разрешения владельцев систем и в рамках действующего законодательства. SMS использует служебный канал сети с высоким приоритетом. Сообщение доставляется напрямую через центр коммутации, минуя интернет-протоколы. Push-уведомление проходит длинный путь. В итоге код из SMS оказывается в телефоне раньше, чем банк успевает предупредить о подозрительном входе. Двухфакторная аутентификация создаёт ощущение защищённости, которое не соответствует реальности. Включение второй проверки входа не гарантирует сохранность аккаунта. Доступ получают несмотря на активные токены и аппаратные ключи. Система безопасности работает до момента вмешательства человека или компрометации канала доставки кода. Технически вход остаётся легитимным потому что второй фактор пройден успешно. Пользователь сам подтверждает дос
Оглавление

ПРЕДУПРЕЖДЕНИЕ: Статья предназначена для повышения осведомленности о киберугрозах и методах защиты. Все методы и инструменты, упомянутые в статье, должны использоваться только в законных целях, с разрешения владельцев систем и в рамках действующего законодательства.

Почему код из SMS приходит мгновенно, а push-уведомление банка задерживается на секунды?

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

Двухфакторная аутентификация создаёт ощущение защищённости, которое не соответствует реальности. Включение второй проверки входа не гарантирует сохранность аккаунта. Доступ получают несмотря на активные токены и аппаратные ключи. Система безопасности работает до момента вмешательства человека или компрометации канала доставки кода. Технически вход остаётся легитимным потому что второй фактор пройден успешно. Пользователь сам подтверждает доступ не осознавая последствий.

https://seberd.ru/962/
https://seberd.ru/962/

Время между уведомлением и компрометацией составляет меньше минуты. Этого недостаточно для осознанной проверки геолокации. Система безопасности банка фиксирует вход из другого региона. Алгоритм не блокирует операцию потому что второй фактор пройден успешно. Пользователь сам подтверждает доступ. Логи доступа показывают закономерности которые указывают на системные проблемы в архитектуре безопасности.

Как перехватывают SMS через протокол SS7

SMS приходит по протоколу SS7. Signaling System 7 разработан в 1970-х годах для телефонных сетей. Протокол принимает сообщения от других сетей операторов без дополнительной проверки. Атакующий отправляет запрос на перенаправление номера через стык сетей. Оператор выполняет команду без верификации источника. В отчёте оператора связи видна запись о перенаправлении номера на другой регион в течение часа. Код ушёл не на телефон владельца. Сигнал был перенаправлен через шлюз в другой стране. Протокол SS7 не имеет встроенной проверки подлинности отправителя запроса.

Звонок в поддержку оператора позволяет перевыпустить SIM-карту. Атакующий называет паспортные данные из утёкших баз. Проверка номера в сервисе Have I Been Pwned показывает утечку из базы ритейлера. Там были серия и номер паспорта, дата выдачи. Оператор подтверждает перевыпуск по этим данным. Старая карта теряет связь с сетью. Банки отслеживают такие случаи в системах мониторинга транзакций. Восстановление номера занимает от двух до шести часов. За это время атакующий подтверждает транзакции через SMS. В логах банка виден IP-адрес из другого города. Время входа совпадает с моментом потери связи SIM-карты. Операторы знают об уязвимости протокола. Обновление инфраструктуры требует замены оборудования на всех узлах связи. Стоимость работ превышает потенциальный ущерб от единичных случаев компрометации. Бизнес принимает этот риск намеренно. Пользователь остаётся один на один с проблемой восстановления доступа.

Запрос истории перенаправлений номера оператор отклоняет. Детализация сигнальных сообщений считается внутренней технической информацией. Проверить был ли перехват невозможно. Приходится верить на слово что всё в порядке. Пока связь есть — всё нормально. Когда связь пропадает — поздно проверять.

Фишинг с захватом сессии в реальном времени

Фишинговые страницы копируют интерфейс банка с высокой точностью. Пользователь вводит логин и пароль на поддельном сайте. Затем приходит настоящее push-уведомление от банка. Тестирование поддельного сайта на виртуальной машине показывает как сессия передаётся после подтверждения входа.

Прокси-сервер атакующего передаёт данные на настоящий сайт банка. Браузер жертвы работает как реле. Файлы cookie сессии копируются в браузер атакующего.

Банк видит правильный IP-адрес жертвы на этапе ввода пароля. Затем сессия продолжается с IP-адреса атакующего.

Push-уведомления требуют проверки IP и устройства. В настройках банка можно включить оповещение о геолокации. Уведомление показывает страну и модель устройства перед кнопкой «Разрешить». На тестовом стенде задержка между запросом и уведомлением составляет 200 миллисекунд. Этого достаточно для передачи токена.

Атакующие используют домены похожие на оригинальные. Отличия находятся в одном символе. Пользователь не замечает подмены в адресной строке браузера. Мобильные приложения защищают лучше потому что адрес сервера зашит в код. Веб-версия банка остаётся уязвимой для подмены интерфейса.

Письма со ссылками на обновление реквизитов приходят с адреса отправителя совпадающего с именем банка. Ссылки ведут на ресурсы с SSL-сертификатами. Браузер показывает значок защищённого соединения. Это создаёт ложное чувство безопасности. Сертификат подтверждает шифрование канала, а не принадлежность сайта организации.

Проверка сертификата стала формальностью. Раньше зелёный замок означал доверие. Сейчас его получает любой сайт с бесплатным сертификатом Let's Encrypt. Злоумышленники пользуются этим доверием. Пользователь видит замок и расслабляется. Внимание притупляется.

Проблема автоматического одобрения push-уведомлений

Привычка одобрять уведомления формируется из ежедневных входов. Наблюдения в течение недели показывают 12 автоматических подтверждений без проверки деталей. Палец нажимает «Разрешить» раньше чем мозг считывает текст. Атакующий получает сессию. Пользователь замечает позже в истории операций.

Атаки усталостью используют этот эффект. Серии уведомлений приходят ночью. Пользователь нажимает «Отклонить». Уведомления продолжаются. Через десять попыток пользователь нажимает «Разрешить» чтобы прекратить шум. Система фиксирует успешную аутентификацию.

Правило в телефоне позволяет настроить приход уведомлений от банка только в рабочие часы. Ночью телефон переходит в режим полёта. Это разрывает канал доставки push-сообщений. Атакующий не получает подтверждение. Сессия остаётся незавершённой.

Психология восприятия уведомлений работает против безопасности. Цвет кнопки подтверждения обычно зелёный. Цвет кнопки отклонения серый или красный. Мозг ассоциирует зелёный с безопасным действием. Дизайн интерфейса подталкивает к ошибке. Изменить привычку сложнее чем настроить фильтр уведомлений.

Механическое действие требует осознанности. Без осознанности палец работает быстрее мозга. Особенно когда спешишь.

Аппаратные ключи и слабое звено в восстановлении доступа

Аппаратные ключи по FIDO2 подписывают запрос криптографически. Данные не передаются по сети. Ключ хранит приватную часть ключа внутри себя. YubiKey к почте требует физического касания сенсора. Перехват невозможен без доступа к устройству.

Протокол использует механизм challenge-response. Сервер отправляет случайную строку. Ключ подписывает её приватным ключом. Сервер проверяет подпись публичным ключом. Пароль не покидает устройство. Фишинг не работает потому что домен входит в состав подписываемых данных.

Процедура восстановления остаётся централизованной. Человек в колл-центре принимает решение о доступе. Инструкции позволяют сбросить защиту при наличии копий документов. Документы попадают в открытые источники регулярно. Ключ защищает от автоматической атаки, но не от социальной инженерии в поддержке.

Вредоносное ПО перехватывает сессию после подтверждения

Троян на устройстве захватывает токены авторизации. Вредоносное ПО ждёт аутентификации. Потом скачивает данные из облака через API браузера. Антивирус не реагирует потому что файл подписан легальным сертификатом. Сессия уязвима после входа. Процесс обращается к токену через API браузера. Вредоносное ПО отправляет токен на удалённый сервер. Сервер использует токен для доступа к аккаунту. Двухфакторная аутентификация уже пройдена. Защита не срабатывает.

Стеалеры логинов работают в фоне. Они читают файлы Cookies из профиля браузера. Файл хранится в открытом виде или шифруется ключом ОС. Если ОС разблокирована вредоносное ПО получает доступ. Стандартные права доступа позволяют процессам пользователя читать данные.

Вредоносное ПО обходит защиту через доступ к буферу обмена или специальным возможностям для людей с ограниченными возможностями. Пользователь сам выдаёт права при установке приложения из непроверенного источника. Система запрашивает подтверждение но не объясняет последствия выдачи прав.

Биометрия как второй фактор и её необратимость

Биометрия заменяет пароль в смартфонах. Отпечаток используется как второй или третий фактор. Распознавание лица в банковском приложении позволяет входить за секунду без кода. Система сравнивает хеш лица с эталоном в защищённой области процессора.

Пароль можно сменить. Отпечаток пальца нельзя изменить. Если хеш отпечатка утёк из базы сервера аутентификации пользователь теряет метод входа навсегда. В настройках телефона биометрия хранится локально. Но некоторые сервисы требуют загрузки биометрии на сервер для удалённой верификации.

Хранение биометрических шаблонов на стороне сервиса создаёт риск. При компрометации базы данные нельзя заменить. Пользователь вынужден использовать другой палец или лицо. Количество уникальных биометрических параметров ограничено. После исчерпания резервов человек остаётся без метода входа. Биометрия удобна пока устройство в руках. Потеря телефона означает потерю биометрического ключа. Восстановить отпечаток на новом устройстве нельзя.

Разделение каналов доставки факторов защиты

TOTP-аутентификатор генерирует коды локально. Authy и перенос секретов из SMS решают проблему зависимости от оператора. Резервные коды сохраняются в зашифрованном файле на внешнем диске. Алгоритм RFC 6238 использует текущее время и секретный ключ. Код меняется каждые 30 секунд.

Почту защищают отдельным ключом. В настройках Gmail можно добавить аппаратный токен. Схема работает без зависимости от оператора связи. СМС не участвует в цепочке. Атака на SS7 не влияет на доступ.

Сервисы не позволяют полное разделение. Резервные коды лежат в той же почте. Отдельный email для восстановления привязанный к аппаратному ключу решает эту проблему. Почта не используется для повседневной переписки. Доступ к ней имеют только два устройства.

Разделение аккаунтов по уровням риска выглядит так. Почта для восстановления имеет максимальную защиту. Аппаратный ключ и резервные коды на бумаге. Социальные сети используют TOTP. Финансовые сервисы используют биометрию и push с проверкой геолокации.

Резервные коды записываются на бумагу. Процедура передачи доступа наследникам требует продумывания. Юристы советуют завещание.

Рабочие схемы защиты для разных типов аккаунтов

Существует набор действий которые снижают вероятность успешной атаки. Каждый пункт требует времени на настройку но повышает стоимость взлома для атакующего. Проверка каждого пункта в своих аккаунтах обязательна. Заменить SMS-аутентификацию на TOTP-коды в настройках безопасности всех сервисов. Использовать отдельный email для восстановления доступа без привязки к основному номеру телефона. Включить отображение геолокации и модели устройства в push-уведомлениях банка. Настроить фильтр уведомлений чтобы блокировать запросы входа в ночное время. Сохранить резервные коды в зашифрованном виде на внешнем носителе вне облака. Проверить историю активных сессий и завершить все устройства кроме текущего. Отключить возможность восстановления доступа через ответы на контрольные вопросы.

Управление сессиями требует регулярной чистки. Раздел «Активные устройства» проверяется раз в месяц. Завершение всех сессий кроме текущей сбрасывает украденные токены. Атакующий теряет доступ даже если у него есть валидный cookie.

Некоторые сервисы не дают завершить сессию удалённо. Приходится менять пароль. Это сбрасывает все токены. Нужно заново входить на всех устройствах. Баланс между безопасностью и удобством всегда нарушен. Либо безопасно и сложно. Либо удобно и рискованно.

Почему сервисы оставляют уязвимые методы по умолчанию

Обработка потери ключа требует верификации документов. В поддержке банка паспорт проверяется вручную. Оператор сравнивает фото в базе с присланным файлом. Экономия на инфраструктуре приводит к выплатам компенсаций после инцидентов.

Массовая подмена SIM остаётся редкостью. Статистика оператора показывает три случая на миллион абонентов в квартал. Экономика диктует текущий подход. Улучшение защиты стоит дороже чем компенсация ущерба. Бизнес принимает этот риск намеренно.

https://seberd.ru/962/
https://seberd.ru/962/

Интерфейсы настроек безопасности скрыты. Опция отключения SMS-аутентификации находится на третьей вкладке раздела «Профиль». Путь занимает пять кликов. Кнопка «Выключить SMS» выделена серым цветом. Кнопка «Включить SMS» яркая и заметная. Техническая поддержка часто не понимает вопросов безопасности. Запрос об отключении входа по SMS приводит к предложению сбросить пароль. Это не решает проблему. Проблема в методе доставки второго фактора. Операторы не хотят терять доход от SMS. Банки не хотят терять клиентов из-за сложной настройки.

Требование отключить SMS через угрозу жалобы в регулятор иногда находит кнопку. Обычный пользователь не станет угрожать. Он просто оставит как есть. Риски остаются на пользователе.

Технические детали реализации 2/MFA

Протокол OAuth 2.0 использует токены доступа. Токен имеет срок жизни. Refresh token позволяет получить новый access token без ввода пароля. Если refresh token украден атакующий поддерживает сессию бесконечно. Срок жизни токенов в некоторых сервисах достигает 90 дней. Стандарт WebAuthn использует асимметричную криптографию. Приватный ключ не покидает устройство. Публичный ключ передаётся серверу при регистрации. При входе сервер отправляет challenge. Устройство подписывает challenge приватным ключом. Сервер проверяет подпись публичным ключом.

Базы данных утечек пополняются ежедневно. Уведомления о новых утечках приходят если email найден в новом дампе. Пароль меняется немедленно. Старый пароль удаляется из менеджера паролей.

В логах доступа к аккаунту Yandex или Google иногда видны входы из других стран. Время совпадает со сном владельца. Пароль был сложный. Двухфакторка была включена. Видимо украли сессию через расширение браузера. Приходится отзывать все токены. Менять пароль несколько раз за неделю.

Человеческий фактор в цепочке безопасности

Сотрудники поддержки имеют доступ к сбросу 2FA. Менеджер первого уровня может инициировать сброс. Менеджер второго уровня подтверждает операцию. Журналирование действий ведётся во внутренней системе. Выписка из журнала показывает кто и когда сбрасывал настройки.

Социальная инженерия работает лучше технических уязвимостей. Атакующий звонит пользователю представляясь поддержкой. Просит продиктовать код из SMS. Пользователь думает что подтверждает вход. На самом деле он передаёт код для сброса пароля. Тренировка не называть коды вслух помогает.

Физический доступ к устройству ломает любую защиту. Если телефон разблокирован вредоносное ПО получает доступ ко всем токенам. Отдельный пин-код для приложения банка решает проблему. Биометрия запрашивается при каждом входе. Настройки требуют ввода пин-кода для изменения параметров безопасности.

Операторы колл-центров устают к вечеру. Проверяют документы невнимательно. Достаточно качественной копии паспорта. Цветная печать решает вопрос. Оригиналы никто не видит. Система доверяет скану. Человек доверяет системе.

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

Квантовые компьютеры создадут угрозу для текущей криптографии. Алгоритмы RSA и ECC станут уязвимы. Переход займёт годы. Децентрализованная идентификация использует блокчейн. Пользователь хранит данные у себя. Сервис запрашивает подтверждение атрибута без доступа к данным. Тестирование входа через систему децентрализованной идентификации занимает больше времени чем обычный вход. Безопасность всегда проигрывает удобству.

Связка методов остаётся оптимальной. Аппаратный ключ для почты. TOTP для сервисов. Биометрия для телефона. SMS только как резервный канал. Абсолютной защиты не существует. Цель состоит в повышении стоимости взлома для атакующего. Страховка от мошенничества предлагается банками. Стоимость — один процент от оборота в месяц. Условия мелким шрифтом исключают случаи когда пользователь сам подтвердил транзакцию. Социальная инженерия не покрывается. Проверка настроек безопасности занимает время. Час в воскресенье на аудит аккаунтов. Проверка активных сессий методов входа резервных контактов. Удаление старых устройств из списка доверенных. Это рутина но она снижает риск. Индустрия движется к беспарольному входу. Пароли исчезнут через пять лет. Останутся биометрия и аппаратные ключи. Проблема восстановления доступа сохранится. Кто-то должен подтверждать личность пользователя при потере ключа. Пока это человек в колл-центре с доступом к базе данных.

За системой стоят люди с доступом к логам входов и запросам на восстановление. Они ошибаются. Они устают. Технические меры защиты работают только до момента вмешательства человека в процесс принятия решения.

Защита стала сложнее чем взлом. Помнить кучу ключей паролей кодов. Атакующему нужен один успех. Пользователю нужна удача каждый раз.

Чек-лист проверки настроек безопасности

  • Заменить SMS-аутентификацию на TOTP-коды в настройках всех сервисов
  • Использовать отдельный email для восстановления без привязки к телефону
  • Включить отображение геолокации в push-уведомлениях банка
  • Настроить фильтр уведомлений для блокировки ночных запросов
  • Сохранить резервные коды на внешнем носителе вне облака
  • Проверить активные сессии и завершить лишние устройства
  • Отключить восстановление через контрольные вопросы
  • Установить пин-код на приложение банка отдельно от разблокировки телефона
  • Проверить права доступа установленных приложений
  • Подписаться на уведомления об утечках своего email

#информационнаябезопасность #кибербезопасность #защитаданных #аутентификация #технологии #IT #безопасность