Специалисты столкнулись с новой модификацией фишинг-кита EvilTokens, которая использует шифрование на стороне браузера для маскировки вредоносного содержимого. Этот приём создаёт слепую зону для систем, полагающихся на статический анализ URL, и затрудняет расследование инцидентов, связанных с захватом учётных записей Microsoft 365. Несмотря на то что сам кит известен уже несколько месяцев, именно его способность прятать ключевые элементы фишинговой страницы после расшифровки в DOM делает атаку особенно опасной для операционных центров безопасности (SOC).
Описание
EvilTokens относится к категории фишинг-китов, нацеленных на кражу доступа к корпоративным учётным записям Microsoft 365. В отличие от классических схем, где злоумышленник пытается перехватить пароль жертвы, этот кит использует легитимный механизм проверки подлинности Microsoft Device Code Flow. Жертву убеждают авторизовать сессию на официальном странице входа Microsoft, а злоумышленник получает полный доступ к аккаунту, включая почту, документы и корпоративные сервисы. Таким образом, пароль остаётся неизменным, и жертва может даже не заметить, что её учётная запись скомпрометирована.
Главная особенность последней версии EvilTokens - шифрование HTML-кода посадочной страницы с помощью AES-GCM. В ответе HTTP сервер отправляет зашифрованный блок, который становится читаемым только после того, как браузер выполнит JavaScript и расшифрует содержимое. Для статического анализатора трафика это выглядит как обычный набор байтов, не несущий угрозы. В результате SOC-команда получает неполную картину: видны лишь начальные запросы, а фишинговый интерфейс с полем ввода кода доступа остаётся невидимым. Как показывают данные ANY.RUN, именно на этом этапе происходит самая важная часть атаки, и её пропуск замедляет расследование и увеличивает время доступа злоумышленника.
Слепая зона для статического анализа оборачивается рядом последствий. Без полной картины трафика аналитик не может подтвердить вредоносность страницы, что ведёт к дополнительным ручным проверкам, излишнему эскалированию инцидентов и задержкам в принятии решений о блокировке. Чем дольше SOC не реагирует, тем выше риск полного захвата учётной записи Microsoft 365 и доступа к конфиденциальным данным, внутренним коммуникациям и смежным сервисам. Особенно уязвимы организации из секторов управляемых услуг безопасности, технологий, производства, образования, банков, консалтинга и финансов. По данным ANY.RUN, активность EvilTokens в последнее время сосредоточена преимущественно в США и Европе, а атаки направлены именно на те компании, где один скомпрометированный почтовый ящик может открыть доступ к системам десятков клиентов.
Чтобы раскрыть полный ход атаки, необходим динамический анализ на уровне браузера. Только выполнив страницу в изолированной среде, можно увидеть, как после расшифровки в DOM появляется поле для ввода пользовательского кода, а JavaScript начинает опрашивать конечные точки бэкенда. В частности, при разборе в интерактивной песочнице удаётся отследить моменты, когда размер DOM меняется на 48 байт - именно столько добавляет строка с кодом доступа. Дополнительно аналитик может изучить HTTP-запросы, которые инициирует фишинговая страница: вызовы к /api/device/start для получения пользовательского кода, периодические опросы статуса через /api/device/status/{sessionId} и конечный перенаправитель на легитимный сайт OneDrive после успешной авторизации.
Такой подход позволяет не только верифицировать угрозу, но и собирать индикаторы компрометации, пригодные для построения правил обнаружения. Например, в рамках одного сеанса анализа можно выявить домен, URI конечных точек и хеш файла с расшифрованным кодом. Однако при выборе индикаторов стоит учитывать, что часть артефактов, такие как IP-адреса с CDN Cloudflare, могут быть общими и использование их в блокирующих правилах вызовет ложные срабатывания. Более надёжными сигнатурами становятся характерные паттерны в JavaScript-коде, например, обращения к /api/device/gate с идентификатором страницы или специфическое форматирование запросов на получение статуса.
Используя типовые сигнатуры, например "Microsoft OAuth device-code phishing has been detected", можно через Threat Intelligence найти другие сеансы анализа, где применялся тот же приём, даже если они не были помечены как EvilTokens. Таким образом, одно расследование превращается в поиск связанных фишинговых кампаний, инфраструктуры и индикаторов. Это позволяет команде реагировать не на изолированный инцидент, а на целый пул угроз, повышая качество защиты.
Код, расшифрованный в браузере, также даёт материал для создания низкоуровневых правил детектирования. Разбор логики EvilTokens показывает, что после получения страницы клиент отправляет проверочный запрос к /api/device/gate/{PAGE_ID}. В ответ он получает флаг killed, определяющий, показывать ли реальный фишинг или маскировочную страницу с ошибкой Microsoft. Если всё в порядке, выполняется POST-запрос к /api/device/start, возвращающий userCode и sessionId, после чего этот код отображается жертве. Далее скрипт запускает цикл опроса статуса сессии через GET-запросы к /api/device/status/{sessionId}. Как только статус меняется на completed, пользователя перенаправляют на официальный сайт OneDrive. Все эти шаги можно отследить, используя инспекцию DOM и сетевых запросов в песочнице.
Для защиты от EvilTokens и подобных ему китов, полагающихся на Device Code Flow, SOC-командам следует включить в свою практику полный анализ на уровне браузера. Статическая проверка URL, даже с использованием репутационных баз, не даёт гарантии обнаружения, если вредоносный код зашифрован. Интеграция интерактивных песочниц, способных перехватывать и отображать изменения DOM, сетевые вызовы и снимки экрана после выполнения сценариев, существенно сокращает время триажа. Дополнительная ценность такого подхода - возможность извлекать из одного сеанса анализа индикаторы и сигнатуры, которые затем можно использовать для проактивного поиска угроз во всей среде. В результате команда получает не только полные доказательства для вердикта, но и инструменты для долгосрочного улучшения детектирования.
Индикаторы компрометации
Domains
- emp01825.workers.dev
MD5
- fcd1b654a0b3e8f85ca7cfdafe494d4b