В апреле 2026 года злоумышленники взломали внутренний интерфейс сайта CPUID и заменили ссылки на загрузку популярной утилиты CPU-Z. Вместо оригинального приложения пользователи получали установщик, содержащий вредоносную библиотеку Windows и троян удалённого доступа (RAT). Это происшествие стало одной из самых заметных атак на цепочку поставок за последние месяцы, так как затронуло инструмент, используемый миллионами техников и обычных пользователей.
Описание
Заражённые файлы включали троян STX RAT. Он собирал пароли, данные банковских карт и криптовалютных кошельков, после чего отправлял их злоумышленникам. Вредоносное ПО было создано с расчётом на продолжительное скрытное присутствие в системе. Оно применяло приёмы шифрования и маскировки, чтобы антивирусные решения не замечали его на начальном этапе. Многие жертвы узнавали о проблеме только после того, как с их счетов исчезали средства.
Вредоносный пакет, который проанализировали в RevEng.AI, оказался многоступенчатой конструкцией. Компания использовала собственную платформу Reverser, предназначенную для анализа программ после сборки, но до их выхода в эксплуатацию. ИИ-модель платформы распознаёт структуру программного пакета и выявляет вредоносные компоненты, которые невозможно обнаружить при обычной проверке исходного кода. В случае с CPU-Z система автоматически определила угрозу, указала на подозрительные фрагменты и восстановила цепочку действий вредоносного кода. Это позволило исследователям быстро составить полную картину атаки.
Дальнейший разбор показал, что загрузчик работает в несколько этапов. Первая ступень при запуске создаёт новый поток исполнения и распаковывает из собственного кода следующий модуль. Промежуточные звенья используют хешированные имена системных функций, чтобы скрыть свои обращения к операционной системе. Такой метод часто применяется во вредоносных программах для обхода статического анализа, поскольку антивирусы не видят прямых вызовов системных функций. Каждый модуль тщательно маскируется и выполняет лишь одну задачу: подготовить следующий компонент и передать ему управление.
Количество таких переходов может превышать восемь. Подобная архитектура сильно затрудняет ручной разбор. Если специалист остановится на одной ступени, он не увидит конечной цели злоумышленников. Финальный модуль ведёт себя иначе. Он содержит проверки на наличие аналитического окружения. Для этого он ищет признаки виртуальных машин, отладочных инструментов и прочих средств, характерных для исследовательской среды. Если такие признаки обнаруживаются, вредоносная программа немедленно завершает работу, чтобы не раскрывать свои функции. В противном случае модуль связывается с командным сервером и через встроенные средства Windows, в том числе PowerShell, начинает выполнение команд злоумышленников.
Автоматический ИИ-анализ сыграл решающую роль в расшифровке этой цепочки. Платформа Reverser за короткое время сопоставила фрагменты кода и указала на все ключевые точки перехода между стадиями. Вручную подобная работа потребовала бы нескольких недель интенсивного дизассемблирования. Благодаря использованию искусственного интеллекта исследователи получили готовую карту функций вредоносной программы и смогли сосредоточиться на самых важных элементах.
Инцидент с CPU-Z вписывается в более широкую тенденцию изменения тактики киберпреступников. Сегодня значительная часть программного кода пишется с помощью искусственного интеллекта, и этот процесс ускоряется. При этом безопасность не поспевает за скоростью разработки. Злоумышленники активно используют это обстоятельство, ищут уязвимости в сгенерированном коде и эксплуатируют их в течение нескольких дней после публикации исправлений. Согласно отчёту Google Threat Horizons, атаки на сторонние библиотеки стали обычным делом, а эксплуатация программных ошибок уже обогнала фишинг и кражу учётных данных. Разработчики часто не проверяют все зависимости, полагаясь на репутацию поставщика.
Особую опасность представляет компрометация популярных утилит вроде CPU-Z. Такие программы часто устанавливаются на серверы и рабочие станции администраторов, а также используются во время аудита оборудования. Успешная атака на один установщик может открыть доступ к системам технической поддержки и далее, с помощью бокового перемещения, к внутренним базам данных компании.
Чтобы защититься от подобных угроз, пользователям следует загружать программное обеспечение только с официальных сайтов и обязательно сверять контрольные суммы, опубликованные разработчиком. Для корпоративной среды рекомендуется внедрить автоматизированную проверку бинарных файлов перед их запуском. Инструменты поведенческого анализа выявляют аномалии, даже если вредоносный код не совпадает с известными сигнатурами. Важно регулярно обновлять все компоненты и сторонние библиотеки, поскольку атакующие быстро находят способы эксплуатации свежих уязвимостей.
Подмена CPU-Z - это ещё один признак того, что атаки на цепочку поставок стали основным вектором проникновения в организации. Классические методы защиты, такие как сигнатурный поиск, уже недостаточны. На смену приходят технологии, использующие искусственный интеллект для глубокого анализа исполняемого кода. Они позволяют обнаруживать вредоносные загрузчики на ранних этапах и существенно снижают время реакции на инциденты.
Индикаторы компрометации
URL
- https://welcome.supp0v3.com/d/callback?utm_tag=snip&utm_source=CityOfSin
SHA256
- 8a6c39f97fb86a4ff9dc9226fa8b3445c5fe123abab532ea6afb9be2608780e1
Индикаторы компрометации
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | rule Win64_Trojan_Reflo_A { meta: description = "Detects Win64 Reflo malware loader based on unique strings and C2 configuration artifacts" author = "RevEng.AI" date = "2026-05-22" hash_sha256 = "8a6c39f97fb86a4ff9dc9226fa8b3445c5fe123abab532ea6afb9be2608780e1" severity = "high" confidence = "high" strings: $c2_url = "https://welcome.supp0v3.com/d/callback?utm_tag=snip&utm_source=CityOfSin" ascii wide $json_config = "{\"tag\":\"snip\",\"referrer\":\"CityOfSin\"" ascii wide $str_hello = "{\"hello\":\"\"}" ascii wide $str_sc1 = "c:48:83:e4:f0:e8" ascii wide $str_sc2 = "fc:48:83:e4:f0:e8" ascii wide $cryptbase = "C:\\Windows\\System32\\CRYPTBASE.dll" ascii wide condition: uint16(0) == 0x5A4D and ( any of ($c2_url, $json_config) or all of ($str_sc*) or ($str_hello and $cryptbase and 1 of ($str_sc*)) ) } |