Атаката срещу пакетите в репозиторито NPM достигна ново ниво. В допълнение към използването на злонамерен софтуер за прихващане на плащания и конфиденциална информация, атакуващите преминаха към внедряване на червей в компрометирани пакети, с който автоматично поставят злонамерен софтуер в зависимостите. Използването на червей беше установено след компрометирането на NPM пакета @ctrl/tinycolor, който има 2.2 милиона седмични изтегляния и се използва като пряка зависимост в 964 пакета. В резултат на активността на червея, атаката обхвана 187 пакета, за които бяха създадени злонамерени версии (477 злонамерени издания).
В хода на новата атака, след получаване на параметрите на акаунта на придружаващото лице в резултат на фишинг, атакуващите публикуват версия на пакета с червей, който се активира при инсталирането на компрометирания пакет в зависимостите. След активирането червейят извършва търсене на учетни данни в текущата среда, като зарежда и стартира утилитата TruffleHog. При откритие на токен за свързване с каталога NPM, червейят автоматично публикува ново злонамерено издание и по веригата заразява дървото на зависимостите. В допълнение към токена за достъп до NPM, червейят запазва ключовете за достъп до GitHub и облачните услуги AWS, Azure и GCP (Google Cloud Platform), както и друга конфиденциална информация, която скенерът TruffleHog може да открие.
Злонамерените издания се генерират за 20-те най-популярни пакета, до които има достъп намереният NPM токен. Функционалността за публикуване на издания е реализирана под формата на функция NpmModule.updatePackage, която зарежда изходния архив на пакета, променя номера на версията и добавя postinstall хук в файла package.json, замества обработчика bundle.js, препакетира пакета и го публикува. Поддържа се работа в Linux и macOS.
Вержето получи кодово име Shai-Hulud (гигантски червей, споменат в романа Дюна). Намерените в системата данни се публикуват в GitHub чрез създаване на репозитории с име Shai-Hulud (например, „B611/Shai-Hulud“), а също така в кодирана форма отразяват в логовете на GitHub Actions. В създадения репозиторий се поставя файл data.json, в който присъства ред с кодирана с метод base64 информация за системата, променливите на околната среда и прихванатите ключове за достъп. В CI на база GitHub за предаване на информация към външен хост, червеят създава обработчик GitHub Actions (.github/workflows/shai-hulud-workflow.yml). Явно атаката не се ограничава до споменатите 187 пакета, тъй като в GitHub продължават да се появяват нови репозитории с име Shai-Hulud и файл data.json.

Сред другото, в резултат на активността на червея, 25 пакета на компанията CrowdStrike, развиваща инструменти за защита от атаки чрез зависимости (Supply Chain). Според изявление на CrowdStrike, компрометираните пакети не са били използвани в платформата Falcon и атаката не се е разпространила на клиентите. Също така стана известно, че предишната вълна на публикуване на злонамерени версии в NPM, извършвана без червей, е засегнала проекта gemini-cli, развиван от компанията Google.
Източник: opennet.ru
