Google подтвердил, что компрометация библиотеки Axios в npm была связана с северокорейской хакерской группировкой UNC1069. Это событие в очередной раз подчеркивает высокие риски оказания влияния на разработчиков, использующих данную популярную библиотеку.
Проблема с пакетами npm
Атака произошла, когда злоумышленники получили доступ к аккаунту поддерживающего пакет разработчика, в результате чего были выпущены две уязвимые версии: 1.14.1 и 0.30.4. Эти обновления содержали вредоносную зависимость, известную как "plain-crypto-js", способную заражать системы на Windows, macOS и Linux. По словам Джона Халткуиста, главного аналитика группы Google Threat Intelligence, "северокорейские хакеры имеют большой опыт в атаках через цепочку поставок, которые они традиционно использовали для кражи криптовалюты".Вредоносный код использует "postinstall" хук в файле "package.json" для скрытого выполнения. Когда уязвимый пакет устанавливается, npm автоматически запускает выполнение вредоносного кода в фоновом режиме. Так, создаётся кроссплатформенная задняя дверь, которая извлекает дополнительные вредоносные компоненты в зависимости от операционной системы.
Технические детали атаки
Вредоносный "plain-crypto-js" выполняет роль "доставщика нагрузки" для JavaScript-дроппера с названием SILKBELL. Он загружает следующие этапы атаки с удалённого сервера в зависимости от операционной системы жертвы. Например, для Windows он использует PowerShell-малварь, для macOS — бинарный файл C++, а для Linux — Python-заднюю дверь. Разработчики также предусмотрели средства для самоочистки и удаляют вредоносное содержимое после активации.Задняя дверь, именуемая WAVESHAPER.V2, является улучшенной версией предыдущего вредоносного ПО WAVESHAPER, которое использовалось в атаках на сектор криптовалют. Эксперты из Mandiant и GTIG подтвердили, что обе версии имеют схожее поведение, однако WAVESHAPER.V2 поддерживает больше команд для управления.
Проблемы для разработчиков
Пользователям настоятельно рекомендуется провести аудит зависимостей и откатиться к безопасной версии Axios, если найдены уязвимые пакеты. Данная ситуация подчеркивает, как важна безопасность в экосистеме npm, которая используется миллионами разработчиков по всему миру. Важно быть внимательными к обновлениям и активно проверять свои зависимости на наличие уязвимостей.Следующий шаг для разработчиков — внимательно отслеживать сообщения о безопасности и обновления из источников, таких как Google, чтобы минимизировать риски атак на программное обеспечение.