В экосистеме npm выявлена масштабная кампания по компрометации популярных пакетов, включая debug и chalk, которые еженедельно скачиваются сотни миллионов раз. Атака, обнаруженная 8 сентября системой мониторинга Aikido, затронула 18 критически важных компонентов JavaScript с совокупным объемом загрузок, исчисляющимся миллиардами.
Описание
Под удар попали ключевые зависимости, включая ansi-styles (371,41 млн загрузок в неделю), debug (357,6 млн), chalk (299,99 млн) и supports-color (287,1 млн). Злоумышленники опубликовали новые версии этих пакетов, содержащие обфусцированный вредоносный код, который активируется на стороне клиента и незаметно перехватывает криптовалютные операции в браузере.
Технический анализ показал, что вредоносный код внедряет сложный механизм перехвата, модифицируя ключевые API браузера, включая fetch и XMLHttpRequest. При обнаружении активности, связанной с криптовалютами и web3-транзакциями, код манипулирует взаимодействием с кошельками и переписывает платежные назначения, перенаправляя средства и разрешения на контролируемые злоумышленниками счета без видимых признаков для пользователя.
Особую опасность представляет многоуровневый подход атаки: вредоносный код оперирует одновременно на нескольких уровнях, изменяя контент, отображаемый на веб-сайтах, манипулируя вызовами API и подменяя данные, которые приложения считают подписанными. Даже при корректном отображении интерфейса базовая транзакция может быть перенаправлена в фоновом режиме.
Механизм работы включает сложную систему подмены адресов с использованием алгоритмов сравнения строк, которая заменяет легитимные адреса назначения на контролируемые злоумышленниками, используя похожие по написанию адреса для снижения подозрений. Код распознает множество форматов across различных блокчейн-сетей, включая Ethereum, Bitcoin, Solana, Tron, Litecoin и Bitcoin Cash.
Эксперты по кибербезопасности отмечают, что данная атака демонстрирует растущую изощренность атак на цепочки поставок программного обеспечения. Использование популярных пакетов в качестве вектора атаки позволяет злоумышленникам достигать максимального охвата, поскольку разработчики часто косвенно зависят от этих компонентов через свои зависимости.
Рекомендуется немедленно проверить проекты на наличие подозрительных версий скомпрометированных пакетов и принять стандартные меры безопасности, включая обновление зависимостей, аудит package-lock.json и мониторинг необычной активности в системах. Особое внимание следует уделить проектам, связанным с обработкой криптовалютных транзакций или взаимодействием с блокчейн-сетями.
Данный инцидент подчеркивает критическую важность реализации строгих мер безопасности в цепочках поставок программного обеспечения и необходимость непрерывного мониторинга уязвимостей в зависимостях. Разработчикам следует рассмотреть возможность внедрения автоматизированных инструментов проверки целостности пакетов и подписывания кода для предотвращения подобных атак в будущем.
Индикаторы компрометации
Package Version
- backslash 0.2.1
- chalk-template 1.1.1
- supports-hyperlinks 4.1.1
- has-ansi 6.0.1
- simple-swizzle 0.2.3
- color-string 2.1.1
- error-ex 1.3.3
- color-name 2.0.1
- is-arrayish 0.3.3
- slice-ansi 7.1.1
- color-convert 3.1.1
- wrap-ansi 9.0.1
- ansi-regex 6.2.1
- supports-color 10.2.1
- strip-ansi 7.1.1
- chalk 5.6.1
- debug 4.4.2
- ansi-styles 6.2.2