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

Что происходит после ввода пароля

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

Это строка символов, которая хранится в браузере и прикладывается к каждому последующему запросу. Смысл её единственный: сообщить серверу, что личность уже подтверждена и заново проверять не нужно. По сути токен — временный пропуск, выданный взамен предъявленных документов.

И вот ключевая деталь: сервер проверяет пропуск, а не его владельца. Предъявителю токена доступ открывается автоматически, потому что процедура аутентификации к этому моменту уже завершена и повторно не запускается.

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

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

Как токен попадает к чужому

Способов немного, и все они не требуют знания пароля.

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

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

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

Чем это отличается от кражи пароля

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

Строка про уведомления объясняет главную неприятность. Компрометация проходит тихо: система не фиксирует нового входа, потому что с её точки зрения никакого входа и не было — просто продолжается ранее начатая работа.

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

Почему целью выбирают именно сотрудников

Здесь стоит остановиться, потому что логика атакующего отличается от ожидаемой. Личные накопления жертвы интересуют его в последнюю очередь. Ценность представляет доступ, который у человека есть по работе: к репозиториям, панелям управления, ключам инфраструктуры.

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

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

Отрасль десять лет объясняла людям, что второй фактор решает проблему кражи учётных данных, и это было правдой ровно про пароли. Атакующие просто перестали красть то, что защищено, и начали красть то, что выдаётся после проверки. Защита не сломалась — её обошли по кругу. Пока в голове у пользователя «у меня двухфакторка» означает «я в безопасности», такие схемы будут работать, потому что охраняется вход, а уносят содержимое.

Анатолий Киш, криптоаналитик cryptium.ru

Анатолий Киш
Криптоаналитик cryptium.ru

Что действительно защищает

Меры делятся на две группы: те, что в руках сервиса, и те, что в руках пользователя.

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

На стороне пользователя правил меньше, но они простые.

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

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

Что делать, если код уже запущен

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

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

Частые вопросы

Значит, двухфакторную защиту можно не включать+
Наоборот, включать обязательно: она закрывает самый массовый сценарий — вход с украденным паролем. Вывод другой: она закрывает вход, но не покрывает кражу уже выданной сессии, и полагаться только на неё нельзя.
Как понять, что моя сессия скомпрометирована+
Надёжного признака нет, и в этом сложность. Косвенные: незнакомые устройства в списке активных сессий, действия в аккаунте, которых вы не совершали, отсутствие письма о входе там, где оно обычно приходит. Список активных сессий стоит проверять регулярно, а не после инцидента.
Вердикт

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

Следите за тем, начнут ли сервисы по умолчанию привязывать сессию к устройству, — вместе с остальными сдвигами, собранными в обзоре ключевых трендов рынка. Разборы по горячим следам — в закрытом канале ПРИВАТ.