В последние годы атаки с использованием вредоносных пакетов в открытых репозиториях стали одной из наиболее распространённых угроз в кибербезопасности. Несмотря на повышенное внимание исследователей, злоумышленники продолжают зарабатывать миллионы, распространяя заражённые модули через популярные платформы, такие как PyPI, npm и Open VSX. Недавний инцидент, в ходе которого российский блокчейн-разработчик лишился $500 000 криптовалюты, подтвердил, что даже самые осторожные пользователи могут стать жертвами таких атак.
Описание
Заражение через поддельное расширение
В июне 2025 года к нам обратился разработчик, столкнувшийся с хищением крупной суммы криптоактивов. По его словам, система была чистой - новая ОС, установленная всего несколько дней назад, с минимальным набором проверенных приложений. Разработчик тщательно проверял все загружаемые файлы и пользовался бесплатными антивирусными сервисами, но коммерческих решений не использовал.
При анализе диска специалисты обнаружили подозрительный файл extension.js, который оказался частью расширения Solidity Language для среды разработки Cursor AI (на базе VS Code). Это расширение позиционировалось как инструмент для работы с кодом смарт-контрактов, предлагая функции подсветки синтаксиса и автодополнения. Однако при детальном изучении выяснилось, что функционал полностью отсутствовал - вместо этого модуль скачивал и исполнял PowerShell-скрипт с сервера angelic[.]su.
Как разработчик установил вредоносный пакет?
Жертва искал в реестре Open VSX плагин для работы с Solidity, введя запрос "solidity". В результатах поиска вредоносное расширение занимало четвёртое место, тогда как оригинальное находилось лишь на восьмом. Несмотря на меньшую статистику загрузок (54 000 против 61 000), алгоритм ранжирования Open VSX отдал предпочтение поддельному модулю из-за более свежей даты обновления.
Разработчик, не заметив подвоха, установил расширение и столкнулся с отсутствием заявленного функционала. Однако вместо того чтобы сразу удалить пакет, он отложил проблему «на потом», что дало вредоносному коду время для атаки.
Как работала вредоносная нагрузка?
После активации расширения загружался PowerShell-скрипт, который проверял наличие на компьютере программы ScreenConnect - инструмента удалённого управления. Если софт отсутствовал, загружался второй скрипт, который устанавливал ScreenConnect с сервера lmfao[.]su, после чего злоумышленники получали полный контроль над системой.
Далее через ScreenConnect загружались три VBScript-файла, каждый из которых скачивал дополнительные PowerShell-скрипты с сервиса paste.ee. Один из них извлекал VMDetector (известный загрузчик, использовавшийся в фишинговых кампаниях в Латинской Америке) из изображения на archive.org. Финальная стадия атаки включала:
- Quasar RAT - троянец для удалённого доступа (распространялся через a.vbs и b.vbs).
- PureLogs Stealer - сбор данных из браузеров, почтовых клиентов и криптокошельков (через m.vbs).
Собрав пароли и seed-фразы, злоумышленники вывели средства жертвы на свои кошельки.
Продолжение атаки: новая волна поддельных пакетов
После удаления первого вредоносного расширения злоумышленники уже на следующий день загрузили новый пакет под названием "solidity", полностью повторяющий имя оригинала. Количество загрузок было искусственно раздуто до 2 миллионов, что делало его более привлекательным для пользователей.
Более того, авторы подделки использовали визуальную путаницу в именах разработчиков: легитимный пакет принадлежал juanblanco, а вредоносный - juanbIanco (с заменой l на I). В интерфейсе Cursor AI эти символы выглядели одинаково, что затрудняло обнаружение фейка.
Схожие атаки и выводы
Инцидент с Solidity Language - не единственный в своём роде. Вредоносные расширения solaibot, among-eth и blankebesxstnion, обнаруженные в апреле-мае 2025 года, использовали аналогичные методы заражения. Также был выявлен заражённый npm-пакет solsafe, который скачивал ScreenConnect с staketree[.]net.
Основные выводы из этой истории:
- Репутация и количество загрузок - не гарантия безопасности. Даже проверенные репозитории могут содержать поддельные пакеты.
- Алгоритмы поиска уязвимы. Злоумышленники манипулируют рейтингами, используя свежие обновления и накрутку статистики.
- Отсутствие ожидаемого функционала - тревожный сигнал. Если расширение не работает, его стоит немедленно удалить.
- Антивирус обязателен. Бесплатные сканеры не всегда обнаруживают сложные угрозы, а коммерческие решения могут заблокировать атаку на ранней стадии.
Киберпреступники продолжают совершенствовать методы обмана, а значит, разработчикам и криптоинвесторам стоит удвоить бдительность при выборе стороннего ПО. Использование проверенных решений, анализ исходного кода и многофакторная аутентификация кошельков помогут минимизировать риски.
Индикаторы компрометации
IPv4
- 144.172.112.84
URLs
- https://angelic.su/files/1.txt
- https://angelic.su/files/2.txt
- https://lmfao.su/Bin/ScreenConnect.ClientSetup.msi?e=Access&y=Guest
- https://relay.lmfao.su
- https://staketree.net/1.txt
- https://staketree.net/2.txt
SHA256
- 2c471e265409763024cdc33579c84d88d5aaf9aea1911266b875d3b7604a0eeb
- 404dd413f10ccfeea23bfb00b0e403532fa8651bfb456d84b6a16953355a800a
- 70309bf3d2aed946bba51fc3eedb2daa3e8044b60151f0b5c1550831fbc6df17
- 84d4a4c6d7e55e201b20327ca2068992180d9ec08a6827faa4ff3534b96c3d6f
- eb5b35057dedb235940b2c41da9e3ae0553969f1c89a16e3f66ba6f6005c6fa8
- f4721f32b8d6eb856364327c21ea3c703f1787cfb4c043f87435a8876d903b2c