Незадокументированная программа удалённого доступа Kothamine Agent даёт злоумышленникам полный контроль над заражённым компьютером на Windows. Первыми под удар попали разработчики, которые устанавливали заражённые библиотеки из npm (менеджер пакетов для JavaScript), а вместе с ними - обычные пользователи чужих программ. Как минимум с июля агент находился в разработке и распространялся. Речь идёт о кампании, где вредоносная сборка приходит вместе с зависимостью, которую никто не проверяет вручную. Угроза касается компаний, собирающих продукты из открытых компонентов, и небольших команд без отдельной службы безопасности.
Описание
Вредоносные сборки разместили в пакетах с привычными именами. Один из них выдавал себя за вспомогательную библиотеку для платформы .NET. При установке он запускал исполняемый файл, который разворачивал на машине полноценного агента. Ещё два пакета того же автора к моменту публикации удалили из каталога. Часть компонентов загружалась из открытого репозитория на GitHub. Авторы кампании допустили ошибку: в одном из пакетов осталась инструкция по сборке агента и заметки о дальнейших планах. Это заметно упростило разбор. Публично о Kothamine до сих пор не сообщалось, поэтому защитные средства могли не знать о нём.
Как показало исследование, ключевое отличие Kothamine от десятков похожих программ - способ связи с оператором. Вместо привычного управляющего сервера агент использует tailcat, недавний открытый инструмент от разработчиков Tailscale (сервис защищённого удалённого доступа). Инструмент работает поверх шифрованного туннеля и не требует учётной записи или регистрации устройства. У защитников не остаётся домена или адреса, который можно заблокировать привычными способами. Обмен не отличается от обычного шифрованного трафика, и инспектировать его заметно труднее.
Внутри агента - более тридцати команд. Оператор запускает произвольные команды оболочки, просматривает и изменяет файлы, завершает процессы, создаёт и удаляет каталоги, скачивает и загружает данные. Отдельный механизм позволяет подгружать новые модули, поэтому набор возможностей расширяется без обновления самого агента. Некоторые сборки обходят механизм контроля учётных записей и получают повышенные права. Другие сразу добавляют свои файлы в исключения встроенного антивируса и создают задачу в планировщике. Так программа закрепляется в системе и переживает перезагрузку. Самые первые варианты соединялись с полноценным сервисом Tailscale, более свежие перешли на tailcat.
Часть сборок собирает данные о жертве. Они похищают сохранённые данные браузеров, включая файлы активных сессий, и игровые конфигурации, связанные со Steam и Minecraft. Отдельные версии делают снимки экрана, записывают изображение с камеры и звук с микрофона, читают содержимое буфера обмена. Для компании это означает утечку переписок, паролей и внутренних документов. Частный пользователь теряет доступ к аккаунтам, а личные записи могут уйти в публичное пространство. Записи с микрофона и камеры нередко используют для давления и вымогательства.
npm - не единственный канал, однако именно открытые библиотеки злоумышленники используют чаще всего. Им доверяют по умолчанию, а команда проекта редко проверяет каждое обновление зависимости. Разработчик ставит пакет одной командой и не читает его исходный код. Перед установкой незнакомой библиотеки стоит посмотреть на её репозиторий, сопровождающих, зависимости и историю выпусков. Полезно поискать отзывы и упоминания о подозрительной активности. Пакет с многолетней историей и регулярными обновлениями проверить проще, чем свежий, у которого почти нет загрузок. Для госсектора и промышленности риски выше: одна заражённая сборочная машина открывает путь в закрытую сеть.
Имя пакета стоит проверять отдельно. Подделки с похожими названиями появляются постоянно, и опечатка в одну букву приводит к заражению. Убедитесь, что издатель выглядит правдоподобно: у него есть сайт, репозиторий на GitHub или страница с историей релизов. Если пакет скачали тысячи пользователей и о нём есть отзывы, риск ниже. Инструкция по сборке, оставленная внутри пакета, говорит о небрежности авторов атаки, но сама угроза от этого не исчезает.
Переход на сторонние инструменты связи усложняет блокировку. Раньше защитники могли заблокировать домен управляющего сервера и остановить кампанию. Теперь блокировать нечего: адреса принадлежат стороннему сервису, а обмен зашифрован. Компаниям стоит следить за тем, какие пакеты попадают в сборочные конвейеры, и ограничивать права, с которыми запускаются скрипты установки. Пользователям достаточно внимательнее относиться к новым зависимостям и не отключать защитные механизмы ради удобства. Пока агент остаётся в системе, он может вернуться даже после удаления заражённого пакета.
Индикаторы компрометации
URL
- https://github.com/cphc811-ui/
SHA256
- 74eca3973ad72a6ddc9397aff8250d9ee287211fc9a055d5ee290d01cf76a70c
- ec4219a7ecf132c29080fbb20e4ab410c57faa85aeed7acade1eb15d905a6ee0