OGOwnGate

MFA Fatigue: как хакеры заваливают пушами и почему TOTP надёжнее

Нажать «Да, это я» в мобильном пуше кажется идеальным пользовательским опытом, пока злоумышленник не начинает спамить запросами в 3 часа ночи. Разбираем, почему атака на измор ломает push-авторизацию и почему старый добрый TOTP надёжнее.

Push-уведомления против генератора TOTP

Ночь со вторника на среду, 03:14. Ваш телефон на тумбочке начинает вибрировать каждые сорок секунд.

Всплывает push-уведомление от системы авторизации: *«Вход в корпоративную сеть. Это вы? [Да] / [Нет]»*.

Вы нажимаете «Нет» и закрываете глаза. Через минуту телефон вибрирует снова. Потом ещё раз. И ещё.

На пятидесятом уведомлении сквозь сон возникает одна-единственная мысль: «Да заткнись ты уже». Палец рефлекторно нажимает «Да», телефон замолкает, вы засыпаете дальше.

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

Поздравляем: вы только что стали жертвой классической атаки MFA Fatigue (она же Push Bombing).

---

Как ломали гигантов одним пушем

Если вам кажется, что это сценарий из дешёвого шпионского сериала, вспомните громкие взломы последних лет:

  • Uber (2022): Атакующий получил пароль подрядчика в даркнете, начал спамить его пушами Duo MFA посреди ночи, а затем написал в WhatsApp от имени «службы поддержки Uber» с просьбой нажать «Да, чтобы остановить сбой». Подрядчик нажал. Итог — полный доступ к Slack, внутреннему Google Workspace, репозиториям и панели AWS.
  • Cisco (2022): Взлом корпоративного контура через кражу учётных данных сотрудника и последующую серию голосовых и пуш-запросов MFA.
  • Electronic Arts (2021): Злоумышленники купили сессионные куки в даркнете, а недостающий фактор авторизации выпросили у дежурного инженера саппорта в Slack.

Все эти компании тратили миллионы долларов на ИБ, но споткнулись о базовую физиологию: уставший или сонный человек всегда выбирает наименьшее сопротивление.

---

Почему «удобные» пуши проигрывают кодам подтверждения

На волне борьбы за «User Experience» многие вендоры начали продвигать концепцию One-Tap Approval: «Зачем заставлять бедного пользователя руками перепечатывать шесть цифр? Пусть просто нажмёт большую зелёную кнопку на экране!».

Звучит привлекательно для маркетологов. Для безопасности это катастрофа.

1. Отсутствие когнитивного барьера

Когда человеку достаточно нажать одну кнопку на заблокированном экране, он делает это на автомате. Ребёнок взял телефон поиграть? Нажал. Телефон лежал в кармане? Задело экран. Пользователь перепутал с уведомлением от курьера? Нажал.

2. Зависимость от зарубежных push-серверов

Push-уведомления не летают сами по себе. Чтобы отправить пуш на iPhone сотрудника, ваш сервер должен постучаться в Apple APNs. На Android — в Google FCM.

В реалиях российских реалий:

  • Сервисы периодически блокируются, задерживаются или деградируют;
  • Вы отдаёте метаданные о входах сотрудников сторонним зарубежным облакам;
  • Если у сотрудника пропал интернет на телефоне, пуш не придёт вообще.

---

Почему старый добрый TOTP до сих пор держит удар

TOTP (Time-based One-Time Password, RFC 6238) — это генерация 6-значных кодов каждые 30 секунд.

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

1. Атака на измор невозможна. Злоумышленник не может «забомбить» сотрудника запросами. У него нет кнопки «отправить пуш жертве». Он просто упирается в форму ввода: [ _ _ _ _ _ _ ]. Спамить некуда.

2. Требуется осознанное действие. Чтобы пройти авторизацию, сотрудник должен:

- Взять телефон;

- Разблокировать его лицом или отпечатком;

- Открыть приложение-аутентификатор (Google Authenticator, 2FAS, Яндекс Ключ);

- Прочитать код и перепечатать его в поле входа в течение 30 секунд.

Случайно сделать это в кармане или во сне невозможно.

3. Полная автономность (Air-gap). Генератору кодов на телефоне не нужен интернет, Wi-Fi или сотовая связь. Он работает даже в подвале серверной и на телефоне в авиарежиме.

---

Как это реализовано в шлюзе доступа OwnGate

Мы в OwnGate намеренно отказались от рискованных облачных пушей в пользу проверенной и неубиваемой модели:

  • Строгий TOTP по умолчанию. Поддержка любых стандартных приложений-аутентификаторов без привязки к проприетарным сервисам.
  • Лимиты подбора (Rate Limiting). После 3 неверных попыток ввода 6-значного кода форма блокируется с экспоненциальной задержкой. Брутфорс исключён математически.
  • Полная изоляция данных. Секретные ключи хранятся внутри вашего периметра, ни один байт телеметрии не уходит в Google или Apple.
  • Поддержка аппаратных FIDO2 / WebAuthn ключей. Для параноиков и привилегированных админов доступно подтверждение через физический USB-ключ (YubiKey или аналоги), который физически невозможно сфишить даже через фальшивую страницу.

Безопасность должна быть удобной, но не за счёт капитуляции перед ночным спамом. 6 цифр в аутентификаторе занимают 4 секунды, но спасают миллионы рублей и репутацию компании.

← Все статьи