XRUST.ru » Новости » Хакеры заразили сотни npm-пакетов вирусом-вымогателем данных
Новости / Программирование

Хакеры заразили сотни npm-пакетов вирусом-вымогателем данных

Сегодня, 06:37 63 0 0

Взлом одного-единственного аккаунта на GitHub обернулся крупнейшей за последние месяцы эпидемией в мире программирования: заражённый код за несколько часов расползся по сотням библиотек, которыми пользуются миллионы разработчиков по всему миру, включая российских.

Всё началось с одного пароля

4 августа кто-то получил доступ к аккаунту разработчика по имени Джаред Рэй (Jared Wray) — человека, который годами поддерживал два небольших, но крайне популярных инструмента для программистов: keyv и cacheable. Это библиотеки для jаvascript, которые помогают программам временно «запоминать» данные, чтобы не запрашивать их заново — что-то вроде кэша в браузере, только внутри кода. Казалось бы, мелочь, пишет xrust. Но именно на таких «мелочах» держится половина интернета: только у keyv свыше 127 миллионов скачиваний в неделю.

Получив доступ к аккаунту, злоумышленник около 9 утра по Гринвичу тихо внёс изменения прямо в главную ветку репозитория и почти сразу выпустил новую «версию» пакета. Спустя считаные минуты заражённый код появился ещё в восьми связанных библиотеках того же автора.

Как безобидное обновление превращается в диверсию

Здесь стоит объяснить, как вообще работает установка программ для разработчиков. Когда программист подключает к своему проекту чужую библиотеку через менеджер пакетов npm — это как скачать приложение из магазина, только магазин этот открыт вообще для всех, и любой может туда что-то выложить. При установке пакет может автоматически выполнить служебный скрипт — например, чтобы что-то донастроить под систему пользователя. Эта функция и стала оружием.

В заражённые версии добавили именно такой скрипт: он незаметно скачивал легитимную программу Bun (это альтернативный движок для запуска jаvascript-кода) и с её помощью запускал уже собственно вредоносную начинку — около 700 килобайт запутанного, специально изуродованного кода, который аналитики так и не смогли сразу прочитать глазами.

А дальше начиналось самое неприятное: программа-паразит рыскала по компьютеру или серверу в поисках всего, что похоже на пароли и ключи доступа — токены npm, доступы к облаку Amazon, ключи GitHub, конфигурации Kubernetes и даже криптокошельки. Всё найденное шифровалось и незаметно отправлялось «хозяину» — так, что расшифровать украденное мог только он сам.

Червь, который сам себя копирует

Обычная вирусная программа на этом бы и успокоилась. Но здесь сценарий оказался куда изобретательнее: если на заражённой машине находились ключи доступа самого разработчика к npm, вредонос использовал их, чтобы... опубликовать заражённые версии уже его собственных пакетов. Получилась классическая цепная реакция: один скомпрометированный аккаунт заражает библиотеку, через неё — компьютер другого разработчика, а тот невольно заражает уже свои проекты. К вечеру того же дня счёт заражённых пакетов пошёл на сотни, а версий — на тысячи.

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

Самое тревожное — код выглядит абсолютно «настоящим»

Отдельная головная боль для специалистов в том, что заражённые пакеты прошли через официальную, полностью законную систему сборки GitHub и получили настоящую, проверяемую цифровую подпись. Формально всё чисто: код действительно собран в том самом репозитории, тем самым автоматическим процессом. Просто сам код внутри — вредоносный. То есть привычные способы проверить «это точно официальная версия?» в данном случае бессильны: подделка неотличима от оригинала со всеми её печатями и подписями.

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

Что это значит для обычного разработчика — и не только

История с keyv — не единичный случай, а очередное напоминание о хронической болезни всей современной разработки софта. Мы привыкли собирать программы из сотен чужих «кубиков» — библиотек, написанных незнакомыми людьми, которым мы, по сути, слепо доверяем. Один скомпрометированный пароль одного не самого известного автора — и под ударом оказываются тысячи компаний, использующих его код где-то в глубине своих систем, зачастую сами того не подозревая.

Для российских компаний, активно использующих открытые библиотеки jаvascript в вебе и бэкенде, риск ровно тот же: npm — интернациональная экосистема без границ, и заражённый пакет с одинаковой вероятностью может оказаться и в стартапе из Сан-Франциско, и в интернет-магазине из Екатеринбурга. Специалисты по безопасности в один голос советуют то, что раньше многие считали избыточной перестраховкой: не давать пакетам автоматически запускать скрипты при установке, регулярно сверять версии зависимостей в проектах и, если есть подозрение на заражение, менять все пароли и ключи доступа, до которых теоретически мог дотянуться заражённый компьютер.

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


Источники: wiz.io, microsoft.com, snyk.io

Xrust: Хакеры заразили сотни npm-пакетов вирусом-вымогателем данных



Поделится
0 0

Комментарии


На Луну упадёт ступень ракеты SpaceX
В среду утром обломок ракеты Falcon 9 на скорости почти 8700 км/ч врежется в Луну — это вторая ступень, брошенная SpaceX в космосе полтора года назад. Падение никто не планировал, но оно поможет учёным изучить лунный грунт. Вторая ступень Falcon 9 отправила к Луне в январе 2025-го посадочные модули компаний Firefly Aerospace и ispace, после чего осталась дрейфовать на орбите, пересекающей лунную траекторию, пишет xrust. Астроном Билл Грей, автор популярного софта для отслеживания космических объектов, первым вычислил, что блуждающую четырёхтонную «болванку» рано или поздно затянет на Луну, и с января следил за её курсом. Столкновение произойдёт около 6:35 по Гринвичу возле кратера Эйнштейна на видимой стороне Луны — объект врежется в поверхность со скоростью около 8700 км/ч, выбив облако пыли и породы. Разглядеть вспышку невооружённым глазом вряд ли получится, а вот в телескоп — вполне. В SpaceX подтвердили: падение непреднамеренное, столкновение вызвала комбинация солнечной
126 1