Специалисты по кибербезопасности компании Aikido выявили серьезную угрозу в популярном NPM-пакете rand-user-agent, который еженедельно загружается более 45 000 раз. В компрометированные версии пакета был внедрен обфусцированный вредоносный код, активирующий троян удаленного доступа (RAT) на устройствах пользователей.
Детали компрометации и механизм атаки
Злоумышленники воспользовались тем, что проект находился в полузаброшенном состоянии, несмотря на его широкое использование в задачах веб-скрапинга и автоматизированного тестирования. Компрометация была обнаружена 5 мая 2025 года в версии 1.0.110. Анализ показал, что последней легитимной версией была 2.0.82, а версии 2.0.83, 2.0.84 и 1.0.110 содержали вредоносный код.
Технический анализ вредоносного кода
Внедренный троян создавал скрытый каталог ~/.node_modules и модифицировал module.paths для загрузки вредоносных зависимостей. После установки малварь устанавливала постоянное соединение с командным центром по адресу http://85.239.62[.]36:3306, передавая системную информацию, включая имя хоста, данные пользователя и уникальный идентификатор.
Механизм компрометации и последствия
Компания WebScrapingAPI, разработчик rand-user-agent, подтвердила, что атака стала возможной из-за компрометации устаревшего токена автоматизации без двухфакторной аутентификации. Злоумышленники использовали его для публикации вредоносных версий в npm, при этом GitHub-репозиторий проекта не пострадал.
Рекомендации по безопасности
Пользователям, установившим версии 2.0.83, 2.0.84 или 1.0.110, настоятельно рекомендуется провести полное сканирование систем. Важно отметить, что простое обновление пакета не устраняет уже установленный троян. В настоящее время вредоносные версии удалены из npm, и последняя доступная версия безопасна для использования.
Этот инцидент подчеркивает критическую важность регулярного аудита безопасности npm-пакетов и необходимость использования двухфакторной аутентификации даже для старых учетных записей. WebScrapingAPI заверила пользователей в полной прозрачности расследования и принятии мер по предотвращению подобных инцидентов в будущем.