Одна из самых популярных библиотек JavaScript скомпрометирована хакерами
Злоумышленник скомпрометировал аккаунт npm одного из ведущих разработчиков библиотеки Axios 30 марта и использовал его для публикации двух вредоносных версий широко используемой JavaScript-библиотеки для HTTP-запросов, сообщает StepSecurity. Отравленные релизы, axios@1.14.1 и axios@0.30.4, внедряли скрытую зависимость, которая тихо устанавливала кроссплатформенный троян удаленного доступа (RAT) на компьютеры разработчиков под управлением macOS, Windows и Linux. Axios загружается примерно 100 миллионов раз в неделю через npm.
Обе вредоносные версии добавляли в манифест пакета одну новую зависимость: plain-crypto-js@4.2.1 — специально созданный троян, замаскированный под легитимную библиотеку crypto-js. Этот пакет нигде не импортировался и не использовался в исходном коде Axios. Его единственной функцией было выполнение скрипта postinstall, который связывался с командным сервером на sfrclak.com, загружал платформо-специфичный RAT, а затем уничтожал все следы своего выполнения.
Атака была развернута примерно за 18 часов: контролируемый злоумышленником аккаунт npm опубликовал чистую версию-приманку plain-crypto-js в 05:57 UTC 30 марта, чтобы создать историю публикаций. Вредоносная версия с полезной нагрузкой последовала в 23:59 UTC. Скомпрометированный аккаунт разработчика Axios (jasonsaayman) затем опубликовал axios@1.14.1 в 00:21 UTC 31 марта, а за ним axios@0.30.4 в 01:00 UTC, охватив как современную ветку 1.x, так и устаревшую 0.x в течение 39 минут.
Анализ времени выполнения от StepSecurity подтвердил, что загрузчик установил первое исходящее соединение с C2-сервером всего через 1,1 секунды после начала команды npm install. На macOS бинарный файл RAT записывался в /Library/Caches/com.apple.act.mond, имитируя системный процесс Apple. На Windows вредоносное ПО копировало PowerShell в %PROGRAMDATA%\wt.exe и выполняло скрытый скрипт. На Linux оно загружало RAT на основе Python в /tmp/ld.py.
После выполнения файл setup.js удалял себя, стирал собственный package.json, содержащий вредоносный хук postinstall, и заменял его заранее подготовленной чистой заглушкой с другим номером версии. Последующий криминалистический анализ установленного пакета не показал бы ничего подозрительного.
Вредоносные версии были доступны примерно два-три часа, прежде чем npm отозвал их и наложил ограничение безопасности на plain-crypto-js. Ни одна из скомпрометированных версий не отображается в тегах репозитория Axios на GitHub, что подтверждает их публикацию напрямую в реестр npm в обход обычного CI/CD-конвейера проекта.
Источник: Tomshardware.com







0 комментариев