Эксперты по информационной безопасности из GoDaddy Security обнаружили новую кампанию, в рамках которой злоумышленники прячут команды управления в комментариях к профилям игровой платформы Steam. Такой подход позволяет использовать легитимную инфраструктуру компании Valve вместо того, чтобы разворачивать собственные серверы для связи с вредоносным кодом. С июля 2025 года специалисты выявили заражение примерно 1980 сайтов на WordPress, а само вредоносное ПО продолжает распространяться.
Описание
Техника скрытой передачи данных основана на стеганографии с применением невидимых символов Юникода. Вредоносная программа извлекает содержимое из раздела "commentthread_comment_text" профиля Steam, где среди обычного текста, похожего на ASCII-арт или спам, вставлены специальные символы с нулевой шириной - например, U+200C (zero-width non-joiner), U+200D (zero-width joiner) и другие. После удаления всех видимых символов остаётся последовательность этих невидимых знаков, которая кодирует двоичные данные. Каждый символ соответствует числу от 0 до 5, затем числа преобразуются в биты, собираются в байты, а к каждому байту применяется побитовое отрицание. При необходимости полученные данные дополнительно распаковываются с помощью gzip.
Для ещё более надёжного сокрытия разработчики вредоносного ПО предусмотрели слой шифрования. В зашифрованном варианте полезная нагрузка дополнительно защищается алгоритмом AES-256-CTR (симметричное шифрование с длиной ключа 256 бит и режимом счётчика), причём ключ выводится через функцию PBKDF2 (алгоритм растяжения ключа) на основе SHA-512 с 10 тысячами итераций. Для проверки целостности используется HMAC-SHA256 (код аутентификации сообщения). Такая комбинация делает перехват команд практически бесполезным без знания пароля.
Атака состоит из двух параллельных цепочек. Первая работает на стороне посетителя сайта: когда пользователь открывает заражённую страницу WordPress, вредоносный код с помощью функции "wp_enqueue_script" загружает внешний JavaScript-файл по адресу, который был извлечён из комментария Steam. Этот скрипт маскируется под популярную библиотеку lodash.core.min.js, но на самом деле выполняет произвольный код, например, может воровать данные банковских карт или перенаправлять трафик. Характерно, что разработчики дали своему скрипту дескриптор "asahi-jquery-min-bundle", чтобы имитировать легитимный jQuery-бандл.
Вторая цепочка - это серверный бэкдор с аутентификацией по cookie. Если злоумышленник отправляет на заражённый сайт POST-запрос, содержащий один из двух специальных куки-файлов, вредоносное ПО реагирует соответствующим образом. При наличии cookie "DEpjndDbNc" сервер возвращает строку "OK" и версию кода - это механизм проверки, что бэкдор активен. Если же присутствует cookie "tEcaKKXEsb", атакующий может передать через параметр "new_code" PHP-код, закодированный в base64. Вредоносная функция заменяет ранее внедрённый код во всех файлах плагинов и тем WordPress, что позволяет обновлять полезную нагрузку даже после частичного удаления вредоносного ПО.
Исследователи GoDaddy Security в своём отчёте отметили, что механизм замены кода ищет в файлах плагинов и тем маркер - строку "G7jp2L84mnVc4LNW9wcbZcaVFAyC9N72", и заменяет её на новую, переданную злоумышленником. Таким образом, даже если администратор сайта удалит часть вредоносного кода, но оставит нетронутым хотя бы один файл с этим маркером, атакующий может дистанционно восстановить полный контроль. Файл с вредоносным кодом обычно находится в functions.php темы или плагина, но может располагаться в любом исполняемом PHP-файле.
Пока не установлен точный вектор первичного заражения. Скорее всего, злоумышленники используют украденные учётные данные администраторов WordPress, скомпрометированные FTP/SFTP-доступы или уязвимости в плагинах и темах. Возможна также атака через цепочку поставок - заражённый сторонний плагин или тему. Сам по себе код не эксплуатирует какую-то конкретную уязвимость WordPress, а использует стандартные функции ядра, что затрудняет обнаружение.
Специалистам по безопасности стоит обращать внимание на несколько индикаторов компрометации. В файлах плагинов и тем следует искать упоминания "steamcommunity.com", массивы с невидимыми символами Юникода, а также вызовы функций "hash_pbkdf2", "openssl_decrypt" с режимом "aes-256-ctr" и отключённую проверку SSL-сертификатов ("CURLOPT_SSL_VERIFYPEER"). В сетевом трафике подозрительны исходящие соединения от сервера WordPress к Steam Community, а также загрузка JavaScript с незнакомых доменов, отличных от известных CDN. Особое внимание стоит уделить POST-запросам с куки-файлами "DEpjndDbNc" или "tEcaKKXEsb" и параметром "new_code".
Данный инцидент демонстрирует, что злоумышленники продолжают искать нестандартные способы маскировки своей инфраструктуры. Использование доверенной платформы Steam для хранения зашифрованных команд - изящный ход, который позволяет избежать блокировки вредоносных серверов и усложняет работу систем обнаружения, основанных на анализе сигнатур. Кампания активна уже несколько месяцев, и с каждым днём число заражённых сайтов может расти. Владельцам сайтов на WordPress следует усилить контроль за безопасностью учётных записей, регулярно обновлять плагины и темы, а также использовать решения для мониторинга целостности файлов, которые способны замечать изменения в коде, особенно скрытые с помощью невидимых символов. Полное восстановление после атаки возможно только из заведомо чистой резервной копии, предшествующей заражению, поскольку удалённое перезаписывание кода через бэкдор сводит на нет любую частичную очистку.
Индикаторы компрометации
Domains
- hello-mywordl.info
URLs
- https://hello-mywordl.info/js/lodash.core.min.js
- https://steamcommunity.com/id/enomisvool123/
- https://steamcommunity.com/id/eremohin342
- https://steamcommunity.com/id/ravypadliha
- https://steamcommunity.com/profiles/76561199096946028/
