Исследователи кибербезопасности выявили первую в истории сложную вредоносную программу в центральном репозитории Maven. Злоумышленники использовали технику подмены домена (typosquatting) для маскировки под популярную библиотеку обработки JSON Jackson. Данный инцидент сигнализирует о потенциальном смещении вектора атак на экосистему Java, которая ранее считалась более защищенной по сравнению с такими платформами, как npm.
Описание
Вредоносный пакет "org.fasterxml.jackson.core/jackson-databind" был размещен в Maven Central, имитируя легитимное расширение библиотеки Jackson. Атака основана на двухуровневой подмене. Во-первых, пакет использует пространство имен "org.fasterxml.jackson.core", в то время как настоящая библиотека публикуется под "com.fasterxml.jackson.core". Во-вторых, для командного сервера (C2, Command-and-Control) использовался домен "fasterxml[.]org", что является подменой оригинального "fasterxml[.]com". Такая замена ".com" на ".org" достаточно незаметна при беглой проверке, но полностью контролируется злоумышленниками.
После обнаружения пакет был оперативно удален с платформы в течение полутора часов, а домен передан регистратору GoDaddy для блокировки. Этот случай подчеркивает важность бдительности при работе с зависимостями.
Структура и функционал вредоносной программы
Вредоносный код был тщательно обфусцирован, что затрудняло его анализ. Он содержал попытки обмана анализаторов на основе больших языковых моделей (LLM) с помощью инъекций в промпты. После деобфускации выяснилось, что программа маскируется под класс автоконфигурации Spring Boot для Jackson. Её истинная цель - действовать как троянский загрузчик (Trojan downloader) или загрузчик инструмента удаленного доступа (RAT, Remote Access Tool).
Основная логика развертывается в семь этапов. На этапе заражения разработчик по ошибке добавляет вредоносную зависимость в свой проект. При запуске Spring Boot приложения вредоносный класс "JacksonSpringAutoConfiguration" автоматически регистрируется как компонент благодаря аннотациям. Затем программа проверяет наличие файла ".idea.pid", который служит маркером постоянства (persistence) и маскируется под файл среды разработки IntelliJ IDEA.
Следующий шаг - определение операционной системы. После этого вредоносная программа связывается с командным сервером по адресу "http://m.fasterxml.org:51211/config.txt" для получения конфигурации. Конфигурационные строки зашифрованы с использованием AES. Программа расшифровывает их, находит URL, соответствующий обнаруженной ОС, и загружает вредоносную нагрузку (payload) в системную временную директорию под именем "payload.bin".
На этапе выполнения для Unix-систем устанавливаются права на запуск, после чего нагрузка запускается с перенаправлением вывода в "/dev/null" или "NUL", чтобы скрыть свою активность. Финальный шаг - создание маркерного файла для предотвращения повторного запуска. Анализ загружаемых исполняемых файлов показал, что для Linux и macOS используется маяк (beacon) Cobalt Strike - мощный инструмент для удаленного управления, часто применяемый продвинутыми группами злоумышленников (APT, Advanced Persistent Threat).
Уроки для экосистемы и меры защиты
Данная атака демонстрирует уязвимость, связанную с подменой префиксов в пространствах имен Java. Злоумышленники просто заменили "com." на "org." в имени популярной библиотеки. Эта техника проста, и есть риск, что после её публикации последуют копии. В настоящее время у Maven Central, по-видимому, отсутствуют механизмы для автоматического обнаружения подобных подмен.
Для защиты экосистемы можно рассмотреть внедрение превентивных мер. Во-первых, полезной может быть система обнаружения схожести префиксов. Например, при публикации нового пакета под "org.example" можно проверять существование популярных пакетов под "com.example" или "net.example" и отправлять такие случаи на дополнительную проверку. Во-вторых, для критически важных пространств имен, таких как "com.fasterxml" или "org.apache", можно ввести дополнительные шаги верификации перед публикацией.
Экосистема Java долгое время оставалась относительно безопасной от масштабных атак на цепочку поставок. Своевременное и проактивное усиление защиты репозиториев поможет сохранить эту репутацию. Совместные усилия сообщества и операторов платформ необходимы для противодействия новым угрозам.
Индикаторы компрометации
IPv4
- 103.127.243.82
Domains
- fasterxml.org
- m.fasterxml.org
URLs
- http://103.127.243.82:8000/http/192he23/svchosts.exe
- http://103.127.243.82:8000/http/192he23/update
- http://m.fasterxml.org:51211/config.txt
SHA256
- 702161756dfd150ad3c214fbf97ce98fdc960ea7b3970b5300702ed8c953cafd
- 8bce95ebfb895537fec243e069d7193980361de9d916339906b11a14ffded94f