С 2025 по начало 2026 года группировка Kimsuky, связанная с Северной Кореей, целенаправленно атаковала инфраструктуру южнокорейских вендоров программного обеспечения для групповой работы (groupware). Целью злоумышленников было проникновение во внутренние сети разработчиков, а затем - в системы их клиентов. В ходе кампании применялись как уже известные, так и ранее не документированные вредоносные программы.
Описание
Первоначальный доступ к инфраструктуре вендоров осуществлялся двумя основными способами. В одном случае, зафиксированном в ноябре 2025 года, злоумышленники использовали уязвимость удалённого выполнения кода в почтовом сервере, доступном из интернета. В другом - атака началась с заражения рабочей станции сотрудника через целевой фишинг. На компьютере жертвы была установлена вредоносная программа HttpTroy, известная по более ранним кампаниям Kimsuky. С её помощью атакующие получали возможность загружать дополнительные инструменты, включая прокси-утилиты и легитимное средство удалённого доступа DWAgent, которое затем использовалось для скрытого управления заражёнными узлами.
После получения начального доступа Kimsuky сразу же устанавливала на скомпрометированные серверы под управлением Linux бэкдор Gomir. Эта программа, написанная на Go, обеспечивала удалённое управление, выполнение команд, передачу файлов и организацию прокси-туннелей для перемещения внутри сети. Для закрепления в системе Gomir использовал стандартные механизмы: если процесс выполнялся с правами root, он регистрировал себя как службу systemd, в противном случае - как задачу в планировщике cron.
В рамках данной кампании аналитики выявили две новые модификации вредоносного ПО, основанные на коде Gomir и HttpTroy, - BirdTroy и DriveTroy. Обе программы также написаны на Go и ориентированы на Linux-системы. BirdTroy, получивший название по внутреннему проекту разработчика, отличается использованием кастомных сетевых пакетов для связи с командным сервером. В частности, он поддерживает транспортный протокол HTTP/3 (QUIC), работающий поверх UDP. Это позволяет обходить проверки сетевых устройств безопасности, которые анализируют только TCP-трафик.
Ещё более примечательной новинкой стал DriveTroy - бэкдор, использующий Google Drive в качестве канала связи с командным сервером. Злоумышленники зарегистрировали учётную запись Google и встроили в тело вредоносной программы токены аутентификации. После запуска на атакованном сервере DriveTroy получал внешний IP-адрес жертвы, шифровал его и загружал на Google Drive в виде файла с определённым именем. В дальнейшем программа каждую секунду опрашивала облачное хранилище, скачивая оттуда файл с командами, выполняла их и загружала результаты обратно, как отмечается в отчёте ENKI WhiteHat. Такой подход существенно усложняет обнаружение вредоносной активности, поскольку она смешивается с легитимным трафиком к облачным сервисам.
Анализ показал, что BirdTroy и DriveTroy разделяют с Gomir ключевые элементы: механизмы закрепления (systemd или crontab), форматы команд и общую архитектуру. Это подтверждает, что все три программы разрабатываются одной и той же группой в рамках непрерывной эволюции инструментария.
После закрепления в сети вендора Kimsuky активно стремилась к боковому перемещению и компрометации downstream-целей. В ходе расследования были выявлены случаи, когда злоумышленники, получив доступ к внутренним системам разработчика группового ПО, похищали конфигурационные данные и ключи аутентификации, а затем использовали их для вторжения в инфраструктуру клиентов этого вендора. Так, заражение сервера DriveTroy на стороне одного из заказчиков было зафиксировано на следующий день после того, как на Google Drive, управляемом атакующими, появились листинги директорий с сервера поддержки клиентов (VOC-сервера) самого вендора.
Кроме того, получив контроль над сервером группового ПО, Kimsuky не могла извлечь пароли сотрудников напрямую из базы данных, поскольку те хранились в хешированном виде. Для обхода этого ограничения злоумышленники модифицировали HTML-код страницы входа в групповое ПО, добавив в него код, который перехватывал введённые учётные данные и отправлял их на командный сервер. Так как на момент атаки на сервере не использовалась двухфакторная аутентификация (например, одноразовые пароли TOTP), скомпрометированные логины и пароли позволяли Kimsuky напрямую входить в систему под видом легитимных пользователей и продолжать разведку.
Атрибуция кампании группировке Kimsuky подтверждается несколькими факторами. Все командные серверы использовали один и тот же самоподписанный HTTPS-сертификат XAMPP - признак, неоднократно наблюдавшийся в предыдущих операциях этой группы. IP-адреса принадлежали автономным системам ASN 19318 и ASN 26666, исторически предпочитаемым Kimsuky. Кроме того, имя пользователя "jira", найденное в путях сборки DriveTroy, совпало с метаданными документов-приманок из другой кампании Kimsuky, что указывает на общее окружение разработки.
Для защиты от подобных атак организациям рекомендуется регулярно проводить тестирование на проникновение внешнего периметра, внедрять обязательную двухфакторную аутентификацию на всех критических системах, а также шифровать ключи доступа к инфраструктуре клиентов, хранящиеся у вендоров. Development-командам следует изолировать внутренние системы управления от производственных серверов и вести детальный аудит обращений к клиентским ресурсам. Кампания Kimsuky наглядно демонстрирует, что цепочка поставок программного обеспечения становится всё более привлекательной мишенью: атака на одного разработчика способна открыть доступ к десяткам и сотням его заказчиков.
Индикаторы компрометации
IPv4
- 163.245.195.172
- 208.73.202.29
- 69.10.50.165
URL
- http://www.ilskdeid.o-r.kr:8000/
- https://69.10.50.165:8443
- https://auth.samecloud.o-r.kr/index.php
- https://commit.hanbiro.o-r.kr/index.php
- https://global.webjine.o-r.kr/index.php
- https://oauth.shacloud.o-r.kr:8443
- https://oobe.webjine.o-r.kr/index.php
MD5
- 633c3076c396f2200048d1b62da204d2
- 84e9b066bebd49036b7fc71b5f5f8d83
- a452a860f973c7a43ea804c17e9427d2
- aa61e76255a6e13313439655bc02bdf5
- b1c72139f2cdd9419562369fc6ced4fc
- c2e37232556357944a04edf1dec3934b
- ca98a51cebdc802d255030b4baa44ca0
- dff787bce68c7653495f153c0534cb96
- e6c6fa32da47d9341b778bfa424abb4c
- e911f8f7c49476806ada37f3ebb7a28a