Безопасность
September 9, 2025

18 популярных пакетов кодов взломаны и используются для кражи криптовалюты

8 сентября 2025 года

По меньшей мере 18 популярных пакетов кода JavaScript, которые в совокупности загружаются более двух миллиардов раз в неделю, сегодня были на короткое время скомпрометированы вредоносным программным обеспечением после того, как разработчик, участвовавший в поддержке проектов, стал жертвой фишинга. Атака, судя по всему, была быстро локализована и была направлена исключительно на кражу криптовалюты. Но эксперты предупреждают, что аналогичная атака с чуть более серьёзной полезной нагрузкой может привести к разрушительному распространению вредоносного ПО, которое гораздо сложнее обнаружить и сдержать.

Это фишинговое письмо побудило разработчика войти в систему на поддельном сайте NPM и ввести одноразовый токен для двухфакторной аутентификации. Затем фишеры использовали учётную запись NPM этого разработчика, чтобы добавить вредоносный код как минимум в 18 популярных пакетов JavaScript.

Aikido — бельгийская компания по кибербезопасности, которая отслеживает обновления кода в основных репозиториях с открытым исходным кодом и сканирует все обновления на наличие подозрительного и вредоносного кода. В опубликованном сегодня сообщении в блоге Aikido говорится, что её системы обнаружили вредоносный код, добавленный как минимум в 18 широко используемых библиотек кода, доступных на NPM (сокращение от) «Node Package Manager», который является центральным узлом для разработки на JavaScript и получения последних обновлений широко используемых компонентов JavaScript.

JavaScript — это мощный веб-скриптовый язык, который используется на бесчисленном множестве веб-сайтов для создания более интерактивного взаимодействия с пользователями, например для ввода данных в форму. Но разработчикам веб-сайтов не нужно создавать программу для ввода данных в форму с нуля, если они могут просто использовать уже существующие пакеты кода на NPM, специально разработанные для этой цели.

К сожалению, если киберпреступникам удастся выманить у разработчиков учётные данные NPM, они смогут внедрить вредоносный код, который позволит злоумышленникам полностью контролировать то, что люди видят в своих веб-браузерах при посещении сайтов, использующих одну из уязвимых библиотек кода.

По данным Aikido, злоумышленники внедрили фрагмент кода, который незаметно перехватывает криптовалютные операции в браузере, «манипулирует взаимодействием с кошельком и переписывает адреса платежей, чтобы средства и подтверждения перенаправлялись на подконтрольные злоумышленникам счета без каких-либо очевидных для пользователя признаков».

«Эта вредоносная программа по сути является браузерным перехватчиком, который перехватывает как сетевой трафик, так и API-интерфейсы приложений, — написал исследователь Aikido Чарли Эриксен . — Опасность заключается в том, что она работает на нескольких уровнях: изменяет контент, отображаемый на веб-сайтах, подменяет вызовы API и манипулирует тем, что, по мнению приложений пользователей, они подписывают. Даже если интерфейс выглядит корректно, базовая транзакция может быть перенаправлена в фоновом режиме».

В Aikido сообщили, что использовали социальную сеть Bsky, чтобы уведомить пострадавшего разработчика Джоша Джунона, который быстро ответил, что знает о том, что его только что обманули. Фишинговое письмо, на которое попался Джунон, было частью более масштабной кампании, в рамках которой злоумышленники выдавали себя за NPM и сообщали получателям, что им необходимо обновить свои учётные данные для двухфакторной аутентификации (2FA). Фишинговый сайт имитировал страницу входа в NPM и перехватил учётные данные Джунона и токен 2FA. После входа в систему фишеры изменили адрес электронной почты в учётной записи NPM Джунона, временно заблокировав его доступ.

Aikido уведомила об этом сопровождающего Bluesky, который в 15:15 по всемирному координированному времени ответил, что ему известно о взломе и что он начинает удалять скомпрометированные пакеты.

Джунон также принёс свои извинения на HackerNews, сообщив сообществу, состоящему в основном из программистов: «Привет, да, меня взломали».

«Это выглядит и ощущается как целенаправленная атака», — написал Джунон. «Извините, всем очень неловко».

Филипп Катурельги, «главный специалист по хакерским атакам» в консалтинговой компании по вопросам безопасности Seralys, заметил, что злоумышленники, судя по всему, зарегистрировали поддельный веб-сайт — npmjs[.]help — всего за два дня до отправки фишингового письма. Поддельный веб-сайт использовал сервисы dnsexit[.]com, компании, предоставляющей «динамический DNS», которая также предлагает «на 100 % бесплатные» доменные имена, которые можно мгновенно перенаправить на любой IP-адрес, контролируемый пользователем.

Сегодня на Hackernews Джунон опубликовал список затронутых пакетов.

Катурели отметил, что примечательно то, что злоумышленники в данном случае не были более амбициозными или злонамеренными в своих модификациях кода.

«Самое безумное в том, что они взломали миллиарды веб-сайтов и приложений только для того, чтобы получить доступ к паре криптовалютных сервисов, — сказал он. — Это была атака на цепочку поставок, и она могла легко обернуться чем-то гораздо худшим, чем сбор криптовалюты».

Эриксен из Akito согласился с этим, сказав, что бесчисленное множество веб-сайтов избежали опасности, потому что этот инцидент был устранён в течение нескольких часов. В качестве примера того, как быстро могут распространяться атаки на цепочки поставок, Эриксен привёл ещё один случай компрометации разработчика NPM в конце августа, когда вредоносное ПО было добавлено в nx, набор инструментов для разработки с открытым исходным кодом, который еженедельно скачивают до шести миллионов раз.

В ходе компрометации nx злоумышленники внедрили код, который искал на устройстве пользователя токены аутентификации из таких источников, как GitHub и NPM, а также ключи SSH и API. Но вместо того, чтобы отправить украденные учётные данные на центральный сервер, контролируемый злоумышленниками, вредоносный код создал новый публичный репозиторий в аккаунте жертвы на GitHub и опубликовал там украденные данные, чтобы их мог увидеть и скачать любой желающий.

Эриксен сказал, что такие платформы для разработки, как GitHub и NPM, должны делать больше для того, чтобы любые новые коммиты в широко используемых пакетах требовали более высокого уровня подтверждения того, что код был отправлен владельцем аккаунта, а не просто пользователем этого аккаунта.

«Для более популярных пакетов должна требоваться проверка подлинности, чтобы убедиться, что они получены из надёжного источника, а не просто случайным образом из какого-то места в интернете, — сказал Эриксен. — Откуда загружается пакет: с GitHub в ответ на новый запрос на включение в основную ветку или откуда-то ещё? В данном случае они не скомпрометировали учётную запись GitHub жертвы. Они её не трогали. Они просто загрузили изменённую версию, которая поступила не оттуда, откуда ожидалось».

Эриксен сказал, что взлом репозитория с кодом может иметь катастрофические последствия для разработчиков, многие из которых после такого инцидента полностью отказываются от своих проектов.

«Это прискорбно, потому что мы видели, как люди, чьи проекты были скомпрометированы, говорили: «Знаете что, у меня нет на это сил, и я просто откажусь от всего пакета», — сказал Эриксен.

Кевин Бомонт, часто цитируемый эксперт по безопасности, который пишет об инцидентах в сфере безопасности в блоге doublepulsar.com, сегодня внимательно следил за этой историей и часто обновлял свой аккаунт в Mastodon. Бомонт сказал, что этот инцидент напоминает нам о том, что большая часть планеты по-прежнему зависит от кода, который в конечном счёте поддерживается крайне небольшим количеством людей, которые в основном перегружены работой и испытывают нехватку ресурсов.

«Последние 15 лет каждая компания разрабатывала приложения, используя 178 взаимосвязанных библиотек, написанных 24 людьми в сарае в Скегнессе, — написал Бомонт в Mastodon. — Последние 2 года организации покупали инструменты для программирования на основе искусственного интеллекта, где какой-нибудь руководитель кричит в компьютер: «Сделай интернет-магазин», добавляются 389 библиотек, и приложение готово. Вывод: если вы хотите владеть мировыми компаниями, просто подкупите одного парня в Скегнессе.

Изображение: https://infosec.exchange/@GossiTheDog@cyberplace.social.

Компания Aikido недавно выпустила продукт, призванный помочь командам разработчиков проверять каждую используемую библиотеку кода на наличие вредоносного ПО перед применением или установкой. Николас Уивер, исследователь из Международного института компьютерных наук, некоммерческой организации в Беркли, штат Калифорния, сказал, что новое предложение Aikido появилось потому, что многие организации по-прежнему находятся на расстоянии одной успешной фишинговой атаки от кошмара в цепочке поставок.

Уивер сказал, что подобные нарушения в цепочке поставок будут продолжаться до тех пор, пока люди, ответственные за поддержку широко используемого кода, будут полагаться на уязвимые для фишинга формы двухфакторной аутентификации.

«NPM должен поддерживать только аутентификацию с защитой от фишинга», — сказал Уивер, имея в виду физические ключи безопасности, которые защищены от фишинга. Это значит, что даже если фишерам удастся украсть ваше имя пользователя и пароль, они всё равно не смогут войти в вашу учётную запись без физического ключа.

«Вся критически важная инфраструктура должна использовать двухфакторную аутентификацию с защитой от фишинга, а учитывая зависимости в современном программном обеспечении, такие архивы, как NPM, являются абсолютно критически важной инфраструктурой, — сказал Уивер. — То, что NPM не требует от всех участников использования ключей безопасности или аналогичных методов двухфакторной аутентификации, следует считать халатностью».

Эта запись была опубликована в понедельник, 8 сентября 2025 года, в 18:53