В реестрах открытого программного обеспечения npm и PyPI обнаружена крупная партия вредоносных пакетов. Они нацелены на разработчиков и похищают конфиденциальные данные, включая ключи криптовалютных кошельков и содержимое файлов с секретами окружения. Угроза затрагивает тысячи пользователей по всему миру, ведь реестрами пользуются миллионы программистов.
Описание
npm остаётся основным каналом распространения библиотек для языка JavaScript, а PyPI - для Python. Обе платформы давно привлекают злоумышленников. Разработчики доверяют готовым компонентам и редко проверяют их внутреннее устройство. Вредоносный код нередко выполняется в момент установки пакета, поэтому подмену трудно заметить заранее. Более того, злоумышленники часто копируют имена популярных библиотек, добавляя к ним незначительные изменения, чтобы жертва перепутала пакеты.
По данным аналитиков Palo Alto Networks Unit 42, большинство выявленных пакетов до сих пор остаются доступными для скачивания. Несмотря на публикацию отчёта, пользователи по-прежнему могут случайно установить вредоносное ПО. Аналитики уже добавили все образцы в базы системы WildFire, которая автоматически распознаёт такие угрозы. Дополнительную защиту обеспечивают продукты Cortex XDR и XSIAM, отслеживающие аномальное поведение после установки.
Среди вредоносных функций выделяется кража данных из файлов окружения, где хранятся логины, пароли и токены доступа. Также пакеты умеют похищать ключи криптовалютных кошельков, перехватывать содержимое буфера обмена и даже целенаправленно уничтожать аккаунты Discord. Отдельная категория ориентирована на разработчиков систем искусственного интеллекта. Речь идёт о MCP-серверах - специальных компонентах, которые подключают ИИ-модели к внешним сервисам и данным. Вредоносные версии таких серверов выполняют произвольные команды на компьютере жертвы, что позволяет злоумышленнику действовать от её имени.
Кроме того, в пакетах встречаются загрузчики дополнительного вредоносного ПО и обратная оболочка с закреплением через AnyDesk. Такое сочетание открывает почти неограниченные возможности для контроля над заражённой системой. Злоумышленник может надолго закрепиться в системе, оставаясь незамеченным после перезагрузки. AnyDesk является легитимной программой удалённого доступа, однако в данном случае хакеры используют её в качестве скрытого канала управления.
Механика подобных атак довольно проста. Разработчик ищет библиотеку для решения задачи и находит в реестре пакет с подходящим названием. Установив его, он запускает вредоносный код на своей машине. Часто такой код маскируется под полезный функционал, поэтому жертва не замечает подвоха. В результате злоумышленник получает доступ к окружению разработчика и всем его проектам.
Важно подчеркнуть, что все эти пакеты - дело рук разных группировок, а не единой скоординированной кампании. Часть образцов ранее уже описывали другие исследователи, однако большинство обнаружено впервые. Разнообразие тактик и целей указывает на то, что атаки на цепочку поставок программного обеспечения стали массовым явлением. Злоумышленники активно эксплуатируют доверие, которое разработчики оказывают открытым компонентам.
Последствия установки такого пакета могут оказаться катастрофическими для бизнеса. Разработчик, занёсший вредоносную зависимость в проект, рискует потерять доступ к корпоративным системам. Полученные учётные данные позволяют атакующему проникнуть во внутреннюю сеть компании и развить атаку дальше. Похищенные ключи криптовалютных кошельков наносят прямой финансовый ущерб, а уничтожение аккаунтов Discord нарушает рабочие коммуникации команды.
Разработчики стали привлекательной целью по нескольким причинам. Их компьютеры содержат доступы к репозиториям кода, серверам и облачным сервисам. Кроме того, через одного разработчика можно выйти на целую компанию, получив контроль над её программными продуктами. Поэтому атаки на цепочку поставок приносят злоумышленникам максимальную отдачу при сравнительно низких затратах.
На этом фоне особенно заметна тенденция к использованию открытых реестров в качестве канала распространения вредоносного кода. За последние годы подобные инциденты фиксировались неоднократно, и их число продолжает расти. Некоторые атаки были направлены на крупные компании через зависимые компоненты, что привело к утечкам данных и простою производства. Поэтому разработчикам стоит рассматривать установку любого нового пакета как потенциальный риск.
Чтобы минимизировать угрозу, следует соблюдать несколько простых правил. Прежде чем устанавливать пакет, проверяйте его популярность, историю версий и репутацию автора. Используйте изолированные среды для тестирования новых зависимостей, чтобы вредоносный код не мог получить доступ к основным системам. Регулярно обновляйте инструменты разработки и следите за предупреждениями систем безопасности. Настройте автоматическое сканирование кода на предмет известных угроз и подключите двухфакторную аутентификацию для учётных записей, связанных с публикацией пакетов.
Тенденция развития таких атак очевидна. Злоумышленники всё активнее используют доверенные платформы для распространения вредоносного кода, и разработчикам приходится балансировать между скоростью и безопасностью. Игнорирование рисков может обойтись дороже любой задержки в поставке программного обеспечения.
Индикаторы компрометации
IPv4
- 103.179.142.105
- 103.179.142.69
- 128.199.217.232
- 135.181.241.80
- 151.115.53.100
- 157.173.114.28
- 178.238.226.8
- 212.2.237.74
- 37.60.255.218
- 45.9.148.93
- 47.98.255.144
- 64.176.198.19
- 64.227.183.144
- 90.189.217.244
Domain
- 855e-35-192-215-234.ngrok.io
- archonseven.com
- b2k4.notun.tech
- cawray.site
- contextfort.ai
- edrukca.site
- keywise.com.br
- mainnet.unstoppableapi.xyz
- nppacks.com
- saferw.serveo.net
- server.saferpanichub.com
- sterlingstfinancehub.com
- strictly-adjusted-ewe.ngrok-free.app
URL
- https://discord.com/api/webhooks/1113576541528539256/dW-eiwYsFwaN2VAlJnYnx6GWSiRb6uz_xA6j2zAntbuElDEvVL5s7OTtVetJLCiATWyJ
- https://discord.com/api/webhooks/1433690093175967776/M-6XGbPIpmhkkleZgRqn0CJH4Icm_71Gvi-bU_fO_ftvEX_l8EYuMejHDlAZif6Wh4pJ
WALLET
- BTC: bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y
- ETH/BSC/Ronin: 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18
- SOL: DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5
- XMR: 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf
SHA256
- 0229f5ef3ce226a3e43d4e739da6914844cc22c7d0a38ba811c76e238b3bacf9
- 02b5185ea06d10ee9f1802e3db61d01b30733f79f6c89a7ee35fa0d9f84a1c38
- 060c0cb74a32b864e70da61865aae13be27e2482fb159db98d46c2e60bea4e16
- 070e0029dd0ef8b4a3be20b306d565115e504d58c9a755424ac263a94c961c46
- 0785e898bc03c8848068f60474dc16fe0d0451e548d760f38cb609c8cd35b176
- 09c05aaf5b7af5d3ed42b0e2a6e77872fe81e2bb549f46441845e03ba2e63546
- 0fa2611df669880532f3c40a37065e4912ab18d20d185f05cb8a3d1735f9312a
- 16f2592e5cc039960acf0c573a481c282769c13b6a22c2feb572382cb1e3c59c
- 270de95a3b5936657266eb219068e8d29f4455db0053981ab317673133a22098
- 2a96a8340e2f0b04c348135a1bd55f2462e9795382c3d0f4007af5cf9678d42e
- 39eb32990a9107a4845733523f7507b29f0c628ddd498489768c269b96bea776
- 3cc6cbcbe66d047d6a9ad88ea3322f5428811a270e2396c783b5e685f3bf22eb
- 3e8bd92ebf7824a05599f7fdeb4b84c94883ac95c3e50a9032beb7064fa1156a
- 40b4d80807de59858ed5f0c2d3d0c6744efa0c6f2e1a81f8a5b4bfac14d1a01f
- 418bfbdf9d2c71e6d4b64ffc0f4bdf930daf7321abbc55788810b3b6e6c6e41d
- 4ad6a34549b01e832a3b36cba8263833571fa86e2cd2ebf14df34d40f88bb133
- 4cc9f23152057b685c4876b805959aae7f97de2c230896c2f186845761909a64
- 5215ccfe518e739bff36b59b63057ee24aed95ab70a1621798284c80fed009f4
- 57d6642fa8b7b5a14e3a9b9e515268e5f6b269a72e24ca092bbc9188fb59220e
- 5db2c52b0ce0bfbc0fa3a00479e2fafe8efbe35a4c670d4bda98bd912cf3b2f5
- 691428f41b35ad6daaf373b5dc2710579f81c26c97d29dd78548b914e0fdaeab
- 6928ac7cd7b67d0661ce3ffc5da2c5e8fa8c07c6c1622024b301c3b25a4bafbb
- 6f23a5d62410fac8d9fcda16e5278db10e58d9c71d9c41357ca208a95d3b35d0
- 73def82b6c52b14bd664007f99f7f469efd809fe99bc5297a77d17674e75459d
- 73ef41931e8ae8d7719e15f29ba66da33edf0855a6d7bf8acf7312fe88fce82e
- 74029fd758da333c05dbc9a577e4ecdddac69e5152f8a79474712b076502d207
- 7f67b6f0e9cd88a7a3b33b7605e0a7d00e0e06f21e14dde7254eed704692502e
- 7fe8a7a48dd7f7c8db49567e5d4130ff22064653b96c2dec227a951898f13ad8
- 816e222b6475fd2bb7ef5d5e06b8369ebaa2a92654071abfb96b00b7f5c97245
- 8c1dcd6f6bec04582deef5875f106dd43c8448d61e15cdffdaccc933536e518b
- 8f053b3357fdc7232c8bb126c0f2da0ee50720d0b9169562a12c4a053742b71b
- 8fff7fdf10316e6ec7c9f1ad23cf764594bb23295af39dcdc9ca629feecb6e06
- 9e00ad4f372792d30854858eff569bcd4b0ea671105f197ac870d3fa73d3f03a
- a5666532c367714568c5d112300e41d3c3fd6b8665c94f2bb98f5d74fc4d2d6c
- acac2d9ab4534341cbb3190ddd50b5be9d9644c26fa98ef4da5e5fce755350fb
- b7d30199d82450aeafda71d910c3c6471c75063cfa4f9b01f3a6c7019c19947a
- c2e9e6231d30d4dc30fa9b2eec300ff06695da6aa8ad685f04b18cf5bc3399a0
- cadf9772c86dd2430cad78a9868871622a71a9a446c144243f3f1a4620fe97f5
- d5b68484311e4039901d8a840c70d49e4332cf99181c747b08d86ddb5933fdad
- edba6ad0048e6987c820d735e8a092db96314418a6abafd6a72b3edf1f1e72c5
- ee5b0dab58d16df64bda6fa14191288e3d261707554416ce2be02d0b60d78099
- ef7645257155714c80a8b2791af1c641dfc5162ff28164a7ab9d43f7d3c19eb3
- f1e3c3d95b8a0dfdfa4931638ba55daf1ad2c873e4ed44eaa7daa9a3ecd24144
- f43e624c36f3870c5702d5f05f2f46fc363d396dfcaadb11165c09d9b7fec85b
- f6b359abe236cef88796983a3e83da055a493b62aa08a501cef4304f469b29d1
- f7bfa8a9a1b138bfc5777c09ca428342dc7e0710d3a522f3b8a6da9b22a340cf
- fe03bc5c77c745463bd5ccc178b4602b337a7c97c9b4151480fcbffe74ed25d4