Крупнейшая атака на npm: скомпрометированы пакеты с 2,6 млрд загрузок
Исследователи выявили крупнейшую атаку на экосистему JavaScript: злоумышленники внедрили вредоносный код в популярные npm-пакеты, включая chalk и strip-ansi, которые суммарно скачиваются более 2,6 миллиарда раз в неделю.
Как произошёл взлом
По данным специалистов, хакеры получили доступ к аккаунту мейнтейнера Джоша Джунона с помощью фишинговой атаки. После компрометации учётной записи они выпустили обновления нескольких широко используемых библиотек.
В эти версии был внедрён код, предназначенный для:
- перехвата сетевого трафика,
- отслеживания криптовалютных транзакций,
- подмены адресов кошельков в реальном времени.
Масштаб угрозы
Эксперты подчёркивают, что речь идёт о крупнейшей на сегодняшний день атаке на цепочку поставок npm.
- Под удар попали десятки пакетов с многолетней историей и миллиардами установок.
- Атака потенциально затронула тысячи проектов — от мелких скриптов до корпоративных решений.
- Вредоносные версии распространялись через официальные каналы npm, что сделало их «невидимыми» для большинства разработчиков.
Неудачный финал для злоумышленников
Несмотря на масштабы, атака оказалась практически бесполезной для её авторов. В коде малвари была допущена критическая ошибка:
- вместо того чтобы подставлять свои кошельки, хакеры случайно перенаправляли транзакции на адреса Uniswap и других swap-контрактов;
- в результате похищенные средства уходили «в пустоту» и не попадали к злоумышленникам;
- по сути, атака не принесла им ожидаемого финансового результата.
Реакция сообщества и npm
Команда npm уже начала процесс удаления скомпрометированных версий библиотек и уведомления пользователей. При этом специалисты рекомендуют разработчикам:
- проверять версии пакетов в своих проектах и откатываться до безопасных релизов,
- использовать блокировку зависимостей (lock-файлы) для предотвращения автоматического обновления на уязвимые версии,
- внедрять дополнительные механизмы мониторинга и аудита поставок.
Почему атаки на цепочку поставок опасны
Подобные инциденты демонстрируют уязвимость всей экосистемы open-source.
- Даже один скомпрометированный аккаунт разработчика может повлиять на миллионы приложений.
- Атака распространяется незаметно: пользователи устанавливают «обновление», не подозревая о вредоносном коде.
- Цепочка зависимостей npm настолько глубока, что затронуты могут быть даже те проекты, где пакет явно не используется, но является вложенной зависимостью.
Выводы
Случай с атакой на npm ещё раз показал:
- экосистема open-source нуждается в более строгом контроле,
- компании должны уделять внимание безопасности цепочки поставок,
- разработчики обязаны внедрять практики zero-trust при работе с внешними зависимостями.