RedC2 у npm: імпорт пакета запускає бекдор Linux

RedC2 запускає бекдор Linux під час імпорту зараженого npm-пакета. Як перевірити версії, завдання збірки, доступні секрети та відновити середовище.

Календар відкриває приховані двері — метафора ризику імпорту пакета RedC2.

RedC2 4.0 приховує бекдор Linux у робочих календарних пакетах npm: шкідлива програма запускається під час імпорту. У дослідженні від 20 серпня TrendAI визначила 14 пакетів із RedShell. Якщо один із них знайшовся у проєкті, головне питання — яке середовище Linux його завантажило, навіть коли скрипти встановлення були вимкнені.

Як звичайна збірка запускає прихований код

Точка входу dist/index.mjs запускає вбудований файл ELF і водночас надає робочі функції обробки дат. Успішний тест тому мало говорить про безпеку. Параметр npm ignore-scripts керує скриптами пакета, але не перетворює JavaScript, який імпортують пізніше, на пасивні дані.

Після встановлення залежностей без скриптів розробник може запустити тест, сервер розробки або збірку, що завантажить залежність. Перевіряйте і ці наступні завдання. Це відрізняється від кампанії з postinstall у Packagist, де вирішальним був етап встановлення.

Пакет streak-metrics-math містить index.mjs і math-calc.bin поруч із функціями обробки дат.
Структура пакета з дослідження TrendAI: поряд із функціями дат розміщено завантажувач і виконуваний файл.

Звірте назву та версію пакета

Підтверджені версії — streak-metrics-math 1.0.0 і 1.0.1, а також 1.0.0 кожного пакета нижче:

  • kit-map-vim
  • streak-map-cache
  • streak-map-kit
  • map-streak-kit
  • streak-cache-map
  • streak-calc-metrics
  • streak-calc-math
  • streak-math-abz
  • streak-metricsaz
  • streak-math-metrics
  • streak-metricazbd
  • streak-metricsazb
  • streak-kit-map

Спершу шукайте назви у збережених маніфестах і файлах фіксації залежностей як звичайний текст. Не імпортуйте підозрілу залежність, щоб дізнатися її версію чи перевірити роботу.

Визначте, що саме сталося

Що знайденоНаступна дія
Назва лише в документаціїЗнайдіть фактичний запис залежності. Сама згадка не визначає уражену машину.
Збіг у lockfile або кешіЗбережіть запис і встановіть, які завдання використали цю версію. Зберігання пакета не доводить його запуск.
Пакет встановлено, імпорт невідомийПризупиніть завдання цього робочого каталогу. Перевірте журнали тестів, збірок і сервера.
Пакет імпортовано в LinuxІзолюйте робочу станцію, виконавця CI або контейнер. З’ясуйте доступні його обліковому запису секрети й ресурси.
Невідомий дочірній процес або мережеві з’єднанняРозслідуйте підозру на злам. До очищення збережіть дані про виконання.

Для кожного збігу запишіть номер завдання, час, машину, користувача, версію пакета та створений результат збірки. На ПК із Windows і WSL визначте середовище Linux, де працював Node. Для контейнера врахуйте змонтовані каталоги й передані секрети: коротке життя контейнера не скорочує строк дії викраденого токена.

Відновіть середовище та перевірте випуски

  1. Зупиніть повторне використання. Вимкніть призначення нових завдань ураженому виконавцю CI та ізолюйте підозріле середовище. Збережіть файли залежностей, журнали завдань і дані про процеси та з’єднання для фахівців.
  2. Визначте доступ. Складіть перелік доступних середовищу токенів репозиторію, реєстру пакетів, хмари, ключів SSH і паролів баз даних. Із чистого пристрою відкличте скомпрометовані токени та сеанси й створіть заміни. Не повертайте нові секрети старому виконавцю.
  3. Перезберіть із чистої основи. Видаліть залежність із перевіреного дерева проєкту та заново визначте версії у довіреному середовищі. Одноразовий виконавець чи контейнер створіть із завідомо чистого образу. Саме видалення node_modules не підтверджує відновлення.
  4. Перевірте автозапуск. На машинах, які залишаються в роботі, фахівці мають перевірити зміни під ураженим обліковим записом. Проаналізована програма підтримує закріплення через cron, початкові файли оболонки, systemd і XDG; це ще не означає, що конкретний механізм спрацював на вашій машині.
  5. Призупиніть сумнівні випуски. Знайдіть пакети, образи й розгортання, створені після ймовірного імпорту. Перед випуском перевірте їх походження та вміст; сумнівні результати створіть заново. Окрема кампанія Megalodon у CI пояснює, чому розслідування залежності має охоплювати й шлях випуску.

Проаналізоване навантаження цих пакетів призначене для Linux. Ширші рекламовані можливості платформи не доводять зараження Windows чи macOS цим шляхом або виконання всіх її функцій. Завершуйте перевірку за записаними результатами огляду машин і випусків, а не лише за успішним повторним встановленням залежностей.

Джерела

  1. Aliakbar Zahravi. Аналіз доставки бекдора RedC2 через пакети npm. TrendAI, 20 серпня 2026 року.
  2. npm. Налаштування ignore-scripts. Документація npm CLI, перевірено 7 вересня 2026 року.

Пишу про те, як зробити життя онлайн комфортним і безпечним. Вірю, що сучасний цифровий світ вартий того, щоб бути його частиною.