Зафиксирована вторая атака на пакеты в репозитории NPM, проводимая с использованием модификации самораспространяющегося червя Shai-Hulud, подставляющего вредоносное ПО в зависимости. В результате атаки опубликованы вредоносные выпуски 605 пакетов, насчитывающих в сумме более 100 млн загрузок.
Для проведения атаки злоумышленники путём фишинга перехватили параметры учётной записи сопровождающего одного из популярных пакетов, используемого в качестве зависимости у большого числа пакетов. Воспользовавшись захваченной учётную записью атакующие опубликовали релиз пакета, в который был добавлен код для активации червя при установке поражённого пакета в числе зависимостей. Запущенный червь выполняет поиск учётных данных в текущем окружении, загружая и запуская утилиту TruffleHog.
В случае обнаружения токена подключения к каталогу NPM червь автоматически публикует новые вредоносные релизы для пакетов, разрабатываемых в текущем окружении. Таким способом по цепочке поражается всё дерево зависимостей. Помимо NPM-токена червь сохраняет ключи доступа к GitHub и облачным сервисам AWS, Azure и GCP (Google Cloud Platform), а также переменные окружения и другие конфиденциальные данные, которые способен обнаружить сканер TruffleHog.
Найденные в системе конфиденциальные данные размещаются в GitHub через создание репозиториев с хаотичными именами (например, "qzx15djl71alh6p80h") и фразой "Sha1-Hulud: The Second Coming" в описании, а также в закодированном виде выводятся в логи GitHub Actions. В создаваемом репозитории размещатся файл в формате JSON (например, jsonactionsSecrets.json или contents.json), в котором присутствует строка с закодированной методом base64 информацией о системе, переменными окружения и захваченными данными. Для передачи информации вовне из систем непрерывной интеграции на базе GitHub червь создаёт обработчик GitHub Actions с именем ".github/workflows/formatter_123456789.yml" и настраивает runner с именем SHA1HULUD.
Отличия от похожей сентябрьской атаки сводятся к иному методу подстановки вредоносного кода в пакет. В формируемых червём вредоносных релизах заявляется реализация поддержи JavaScript-платформы Bun. В файл package.json в секцию "preinstall", определяющую скрипты, запускаемые до начала установки, добавляется команда "node setup_bun.js".
В файле "setup_bun.js" присутствует код для выполнения обфусцированного скрипта "bun_environment.js", содержащего код червя. Для своего дальнейшего распространения червь находит код пакетов, вносит изменения в файл package.json (увеличивает номер версии и включает вызов setup_bun.js), добавляет файлы setup_bun.js и bun_environment.js, переупаковывает пакет и выполняет команду "npm publish" для размещения нового релиза.
Среди скомпрометированных популярных пакетов: @zapier/zapier-sdk (2.8 млн загрузок в неделю), @posthog/core (2.8 млн), posthog-node (1.5 млн), @asyncapi/specs (1.4 млн), @postman/tunnel-agent (1.2 млн). Предполагается, что атака началась с компрометации сопровождающего пакет @asyncapi/specs.
Дополнение: Выявлен деструктивный вариант червя, который пытается удалить все данные в системе в случае одновременной потери доступа к захваченным учётным данным к GitHub и NPM. В Windows червь удаляет все файлы и перезаписывает содержимое секторов на диске, а в Unix-подобных системах удаляет файлы, предварительно записав в них другое содержимое.
Источник: https://www.opennet.ru/opennews/art.shtml?num=64322
(opennet.ru, основная лента)
[ON] При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Модератор: Модераторы разделов
-
rssbot
- Бот
- Сообщения: 6001
- ОС: gnu/linux
[ON] При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Последний раз редактировалось rssbot 28.11.2025 09:44, всего редактировалось 1 раз.
Причина: Updated upstream
Причина: Updated upstream
-
Janik
- Сообщения: 866
- Статус: Оператор вычислительных машин
- ОС: Debian
Re: [ON] При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
То есть, причина - человеческий фактор?! Ну чтож...
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Опыт - это когда все получается с первого раза.
-
Bizdelnick
- Модератор
- Сообщения: 21391
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [ON] При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
Да, причём человек этот — автор npm, решивший, что чего б не дать пакету при установке запустить какой-нибудь скрипт, ну чего плохого из этого может выйти, правда ведь?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
