Как угоняют аккаунты с 2FA. Чем опасна кража cookie

714
Как угоняют аккаунты с 2FA. Чем опасна кража cookie

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

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

Масштаб проблемы показало исследование Okta от 9 сентября 2026 года. Компания изучила 7 ГБ данных инфостилеров с 5871 заражённого компьютера из 162 стран. Дамп появился в Telegram 2 августа. Исследователи нашли 44 791 уникальный JWT, из которых 555, вероятно, относились к аутентификации в сервисах искусственного интеллекта.

Как кража сессии позволяет обойти 2FA

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

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

Кража сессии не ломает двухфакторную аутентификацию. Атакующий использует результат проверки, которая уже успешно прошла.

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

Что такое cookie, токен доступа, токен обновления и JWT

Что такое токен, cookie и JWT

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

JWT, или JSON Web Token, представляет собой формат токена. Криптографическая подпись защищает содержимое от незаметного изменения, но не мешает скопировать действительный JWT целиком. Подписанный JWT также не обязан быть зашифрованным.

Okta обнаружила 44 791 уникальный JWT. В 17,7% токенов содержались открытые персональные данные, например имя, адрес электронной почты или номер телефона. Такие сведения остаются полезными для фишинга даже после истечения токена.

Исследователи также нашли 2937 связанных с аутентификацией JWE. По данным Okta, значительную часть таких токенов выпускал OpenAI с использованием NextAuth.js. На 2 августа срок действия 1843 найденных JWT и JWE ещё не закончился. Шифрование скрывает содержимое JWE, но само по себе не мешает повторно предъявить действительный токен серверу.

В отдельной таблице Okta указаны 9829 уникальных токенов аутентификации Google, из которых 9213 оставались действующими. Для Microsoft значения составили 2491 и 1763, для Anthropic 561 и 164. Цифры Google и Microsoft нельзя считать числом украденных аккаунтов сервисов искусственного интеллекта, поскольку общие системы входа обслуживают разные продукты.

Цена утечки может быть высокой. Unit 42 описывает отдельный случай с расходами почти на $1 млн. В другом публичном инциденте, на который ссылается Okta, архитектор программного обеспечения Джесси Дэвис сообщил о несанкционированном использовании Gemini примерно на A$25 673. Атакующий обращался к публичному сервису Cloud Run, а не крал браузерную сессию.

Ещё один отдельный сценарий произошёл у METR. Из-за ошибки fail-open публичный экземпляр EC2 фактически остался без проверки доступа, после чего атакующий добился раскрытия ключа программного интерфейса и около трёх недель расходовал кредиты номинальной стоимостью примерно $600 000. Инфостилер и кража cookie здесь не использовались. Кейс показывает общий риск: получив действующий секрет, злоумышленник часто может пользоваться доступом без нового входа.

Что делать, если украли сессию или cookie

Инфостилеры ищут сохранённые пароли, cookie, данные браузерных профилей, токены приложений и ключи программных интерфейсов. Атрибут HttpOnly мешает обычному сценарию веб-страницы читать cookie, но не защищает от вредоносной программы, которая уже работает на компьютере.

При подозрении на инфостилер не меняйте пароль и не входите в важные аккаунты с заражённого устройства. Вредоносная программа может сразу украсть новые cookie и токены.

  1. Отключите подозрительное устройство от сети.
  2. С чистого устройства откройте настройки безопасности аккаунта.
  3. Завершите все активные сессии.
  4. Отзовите неизвестные приложения, ключи и токены.
  5. Смените пароль.
  6. Перевыпустите резервные коды 2FA.
  7. Проверьте историю входов и изменения настроек.
  8. Очистите заражённую систему, а при серьёзной компрометации переустановите её.

Кнопка «Выйти» часто закрывает только текущую сессию. Смена пароля тоже не всегда отзывает все ранее выданные токены.

Сначала отзывайте старые сессии с чистого устройства. Смена пароля на заражённом компьютере может просто передать инфостилеру новый пароль и новую сессию.

Как браузеры защищают сессию от копирования

В 2024 году Google добавила в Chrome 127 для Windows App-Bound Encryption. Механизм привязал расшифровку защищённых данных браузера к Chrome и усложнил прямое извлечение cookie. Защита подняла стоимость атаки, но не решила проблему полностью. Специалисты  Red Canary обнаружили обходы у Stealc, Vidar, LummaC2 и других инфостилеров. Вредоносные программы, например, извлекали cookie из памяти браузера или задействовали удалённую отладку.

Device Bound Session Credentials, или DBSC, идёт дальше и привязывает продолжение сессии к криптографическому ключу устройства. Браузер создаёт пару ключей, а закрытый ключ не должен покидать устройство. Для выдачи нового короткоживущего cookie сервер просит браузер доказать владение ключом. Поэтому украденная копия cookie на другом компьютере быстро теряет ценность.

Google начала разворачивать DBSC в Chrome 145 для Windows, где ключи защищает аппаратный модуль TPM. В апреле 2026 года компания объявила публичную доступность DBSC для Windows в Chrome 146. В том же сообщении Google говорила лишь о поддержке macOS в одном из следующих выпусков Chrome и не называла конкретную версию. Поэтому утверждать, что DBSC для macOS появился именно в Chrome 147, без отдельного официального подтверждения нельзя.

DBSC нельзя просто включить на любом сайте и считать проблему решённой. Сервер самого сервиса должен поддерживать протокол, а вредоносная программа на исходном компьютере всё равно способна действовать от имени пользователя непосредственно на заражённом устройстве.

Вопросы и ответы

Можно ли войти в аккаунт без пароля и кода 2FA?

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

Спасает ли смена пароля после кражи cookie?

Не во всех сервисах. Безопаснее с чистого устройства отдельно завершить все сессии, отозвать связанные приложения и токены, а затем сменить пароль.

Защищает ли подпись JWT от кражи?

Нет. Подпись защищает JWT от незаметного изменения, но не мешает скопировать действительный токен целиком и попытаться предъявить его серверу.

Как понять, что сессию аккаунта украли?

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

Что опаснее: сессионный cookie или токен обновления?

Оба секрета опасны. Сессионный cookie может сразу дать доступ к действующей сессии, а токен обновления способен позволить получать новые токены доступа дольше. Конкретный риск зависит от архитектуры сервиса и правил отзыва токенов.

Поможет ли удалить cookie из браузера после заражения?

Удаление локальных cookie не отзывает копию, которую преступник уже успел получить. Нужно завершить активные сессии на стороне сервиса и сделать это с чистого устройства.

Защищает ли режим инкогнито от кражи сессии?

Нет. Режим инкогнито в основном ограничивает сохранение локальной истории и данных после закрытия окна. Если инфостилер уже работает на компьютере, приватный режим браузера нельзя считать защитой от кражи действующих токенов.

Заключение

2FA и ключи доступа сильно повышают безопасность аккаунта, но не закрывают угрозу кражи уже созданной сессии. После заражения нужно с чистого устройства отозвать действующие сессии и токены, затем удалить вредоносную программу. Короткоживущие токены, повторная проверка перед критическими действиями и привязка сессии к устройству сокращают возможность повторно применить украденный секрет.

Материал предназначен для защиты собственных аккаунтов и систем. Кража, перехват и использование чужих токенов или сессий без разрешения владельца могут нарушать законодательство РФ. Проверяйте такие механизмы только на собственных системах или при наличии явного разрешения.

Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
тризтех
24 сентября · 10:30
Звезда родилась Первое онлайн-мероприятие ТризТеха
Регистрация
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+

Комнатный Блогер

Объясняю новую цифровую реальность