Группа COLDRIVER, известная как государственно-спонсируемая киберпреступная организация, продемонстрировала беспрецедентную скорость адаптации после публичного раскрытия своего вредоносного ПО LOSTKEYS в мае 2025 года. Согласно исследованию Google Threat Intelligence Group (GTIG), уже через пять дней после разоблачения группа полностью отказалась от предыдущего инструмента и перешла на новые семейства вредоносного ПО, которые стали использоваться более агрессивно, чем в предыдущих кампаниях.
Описание
Новое вредоносное ПО представляет собой связанные между собой семейства, объединенные цепочкой доставки. Исследователи отмечают множественные итерации развития с момента обнаружения, что указывает на значительно возросшие темпы разработки и оперативной деятельности группы.
Эволюция началась с новой вредоносной DLL-библиотеки под названием NOROBOT, доставляемой через обновленную приманку COLDCOPY "ClickFix", которая имитирует пользовательскую CAPTCHA. Этот метод напоминает предыдущие схемы распространения LOSTKEYS, однако использует обновленную инфекционную технику с выполнением вредоносной DLL через rundll32 вместо устаревшего многоэтапного метода с PowerShell.
Первоначальная версия NOROBOT приводила к развертыванию громоздкого бэкдора на Python, отслеживаемого как YESROBOT, однако вскоре разработчики отказались от него в пользу более гибкого и расширяемого бэкдора на PowerShell, получившего название MAYBEROBOT.
Цепочка доставки NOROBOT подвергалась постоянной эволюции - сначала была упрощена для увеличения вероятности успешного развертывания, затем вновь усложнена за счет разделения криптографических ключей. Эти постоянные изменения демонстрируют усилия группы по обходу систем обнаружения для продолжения сбора разведданных против высокоценных целей.
Новая цепочка заражения состоит из трех отдельных компонентов, доставляемых через новый вариант приманки COLDCOPY "ClickFix". Обновленная версия пытается заставить пользователя загрузить и выполнить DLL с использованием rundll32, маскируясь под CAPTCHA с текстом, предлагающим подтвердить, что пользователь не является роботом. Первоначально наблюдаемая DLL называлась "iamnotarobot.dll" с экспортом "humanCheck", что соответствует CAPTCHA-тематике и частично вдохновило исследователей на ROBOT-тематику в именовании последующего вредоносного ПО.
NOROBOT, также известный как BAITSWITCH по классификации Zscaler, представляет собой DLL-библиотеку, находящуюся в постоянной разработке с мая по сентябрь 2025 года. Основное предназначение NOROBOT во всех наблюдаемых версиях - получение следующей стадии с жестко запрограммированного адреса командного центра и подготовка системы к получению финальной полезной нагрузки.
Самая ранняя версия NOROBOT использовала криптографию с разделением ключа между несколькими компонентами, которые необходимо было определенным образом рекомбинировать для успешного дешифрования финальной полезной нагрузки. Несмотря на попытку затруднить анализ, эта версия включала загрузку и установку полной версии Python 3.8, что создавало заметные артефакты, способные вызвать подозрения.
YESROBOT, представляющий собой дешифрованную версию libcryptopydatasize.py, является бэкдором на Python, использующим HTTPS для получения команд с жестко запрограммированного командного центра. Команды шифруются AES с жестко запрограммированным ключом. Системная информация и имя пользователя кодируются в заголовке User-Agent запроса. YESROBOT представляет собой минималистичный бэкдор, требующий наличия всех команд в виде валидного Python-кода, что делает реализацию типичной функциональности более громоздкой.
Исследователи GTIG наблюдали только два случая развертывания YESROBOT в течение двух недель в конце мая, после чего он был оставлен в пользу другого бэкдора - MAYBEROBOT. Это позволяет предположить, что YESROBOT был поспешно развернут как временное решение после публикации о LOSTKEYS.
В начале июня 2025 года исследователи обнаружили вариант NOROBOT, значительно упрощенный по сравнению с предыдущими версиями. Эта версия загружала единственный файл, представляющий собой команду настройки скрипта входа в систему для обеспечения устойчивости. Скрипт входа представлял собой команду PowerShell, которая загружала и выполняла следующую стадию - MAYBEROBOT.
MAYBEROBOT представляет собой сильно обфусцированный скрипт PowerShell, использующий жестко запрограммированный командный центр и пользовательский протокол, поддерживающий три команды: загрузку и выполнение с указанного URL; выполнение указанной команды с использованием cmd.exe; выполнение указанного блока PowerShell. Во всех случаях подтверждение отправляется на командный центр по другому пути, а в случае команд 2 и 3 вывод отправляется по третьему пути.
Исследователи предполагают, что MAYBEROBOT был разработан для замены YESROBOT, поскольку не требует установки Python для выполнения, а его протокол является расширяемым и предоставляет злоумышленникам больше гибкости при достижении целей на целевых системах.
С июня по сентябрь 2025 года исследователи продолжали отслеживать попытки COLDRIVER доставить NOROBOT целевым объектам, наблюдая изменения как в самой NOROBOT, так и в цепочке выполнения вредоносного ПО, что указывает на увеличение темпов разработки. Было отмечено множество версий NOROBOT с различной степенью сложности, демонстрирующих постоянные усилия группы по обходу систем обнаружения при обеспечении продолжения сбора разведданных против высокоценных целей.
По мере того как MAYBEROBOT становился более часто наблюдаемым финальным бэкдором в этих операциях, цепочка заражения NOROBOT продолжала развиваться. COLDRIVER упростили свою цепочку заражения вредоносным ПО и внедрили базовые методы уклонения, такие как ротация инфраструктуры и соглашений об именах файлов, путей, откуда загружались файлы, способов построения этих путей, изменения имени экспорта и имени DLL.
Наряду с этими незначительными изменениями, группа вновь ввела необходимость сбора криптографических ключей и промежуточных стадий загрузчика для возможности полного восстановления цепочки заражения. Добавление сложности может повысить операционную безопасность деятельности, поскольку затрудняет восстановление их активности. Сетевым защитникам необходимо собрать несколько файлов и криптографических ключей для восстановления полной цепочки атаки, тогда как в упрощенной цепочке NOROBOT им нужен только URL из скрипта входа для получения финальной полезной нагрузки.
В рамках борьбы с угрозами Google использует результаты исследований для повышения безопасности своих продуктов. Все выявленные вредоносные веб-сайты, домены и файлы добавляются в Safe Browsing для защиты пользователей от дальнейшей эксплуатации. Также отправляются целевые предупреждения о атаках, поддерживаемых государством, пользователям Gmail и Workspace, уведомляя их о деятельности и рекомендуя потенциальным целям включить расширенную безопасность просмотра для Chrome и обеспечить обновление всех устройств.
Индикаторы компрометации
IPv4
- 85.239.52.32
Domains
- applicationformsubmit.me
- blintepeeste.org
- captchanom.top
- documentsec.com
- documentsec.online
- inspectguarantee.org
- ned-granting-opportunities.com
- onstorageline.com
- oxwoocat.org
- preentootmist.org
- southprovesolutions.com
- system-healthadv.com
- viewerdoconline.com
SHA256
- 2e74f6bd9bf73131d3213399ed2f669ec5f75392de69edf8ce8196cd70eb6aee
- 3b49904b68aedb6031318438ad2ff7be4bf9fd865339330495b177d5c4be69d1
- 87138f63974a8ccbbf5840c31165f1a4bf92a954bacccfbf1e7e5525d750aa48
- b60100729de2f468caf686638ad513fe28ce61590d2b0d8db85af9edc5da98f9
- bce2a7165ceead4e3601e311c72743e0059ec2cd734ce7acf5cc9f7d8795ba0f
- c4d0fba5aaafa40aef6836ed1414ae3eadc390e1969fdcb3b73c60fe7fb37897
- e9c8f6a7dba6e84a7226af89e988ae5e4364e2ff2973c72e14277c0f1462109b
- f2da013157c09aec9ceba1d4ac1472ed049833bc878a23bc82fe7eacbad399f4
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | rule G_APT_MALWARE_NOROBOT_1 { meta: author = "Google Threat Intelligence" description = "DLL which pulls down and executes next stages" strings: $path = "/konfiguration12/" wide $file0 = "arbeiter" wide $file1 = "schlange" wide $file2 = "gesundheitA" wide $file3 = "gesundheitB" wide $new_file0 = "/reglage/avec" wide $new_file1 = "/erreur" wide condition: $path or all of ($file*) or all of ($new_file*) or ( for any s in ("checkme.dll", "iamnotarobot.dll", "machinerie.dll"): (pe.dll_name == s) and for any s in ("humanCheck", "verifyme"): (pe.exports(s)) ) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | rule G_APT_BACKDOOR_YESROBOT_1 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $s0 = "return f'Mozilla/5.0 {base64.b64encode(str(get_machine_name()).encode()).decode()} {base64.b64encode(str(get_username()).encode()).decode()} {uuid} {get_windows_version()} {get_machine_locale()}'" $s1 = "'User-Agent': obtainUA()," $s2 = "url = f\"https://{target}/connect\"" $s3 = "print(f'{target} is not availible')" $s4 = "tgtIp = check_targets(tgtList)" $s5 = "cmd_url = f'https://{tgtIp}/command'" $s6 = "print('There is no availible servers...')" condition: 4 of them } |
| 1 2 3 4 5 6 7 8 | rule G_APT_BACKDOOR_MAYBEROBOT_1 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $replace = "-replace '\\n', ';' -replace '[^\\x20-\\x7E]', '' -replace '(?i)x[0-9A-Fa-f]{4}', '' -split \"\\n\"" condition: all of them } |