42 зброєні репозиторії GitHub виявляють прихованого видавця npm
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Складна кампанія, відома як testmetest використовує шкідливі пакети npm і зламані репозиторії GitHub для крадіжки облікових даних і автоматизації випуску зловмисних пакетів. Зловмисники покладаються на поліморфні обгортки, нативні додатки Node.js та зашифровані навантаження для уникнення виявлення. Кампанія також включає інфраструктуру для сканування та використання вразливостей cPanel.
Розслідування
Дослідники JFrog Security виявили 42 озброєні репозиторії GitHub разом із декількома зловмисними пакетами npm. Вони з’ясували, що зловмисники використовують метод камуфляжу з нативними додатками, в якому скомпільований .node файл розшифровує приховане навантаження під час виконання. Розслідування також пов’язало активність з shellpanel сканерами, що націлені на системи cPanel через CVE-2026-41940.
Запобіжні заходи
Користувачі повинні видалити виявлені шкідливі пакети npm та відновити уражені системи з довірених джерел. Організації повинні змінити всі потенційно скомпрометовані облікові дані, включаючи GitHub, npm і токени хмари. Також важливо перевірити репозиторії на наявність несанкціонованих конфігураційних файлів, таких як .github/init.js та несподіваних виконуваних гачків у package.json файлах або Makefiles.
Відповідь
Коли виявлена шкідлива активність, відкасуйте викриті секрети та негайно змініть облікові дані. Пошукайте механізми збереження, такі як net-health-checker or pkg-runtime. Перегляньте журнали GitHub Actions на наявність несанкціонованих робочих процесів та контролюйте системи на предмет розшифрованих навантажень, записаних у тимчасові каталоги.
Хід атаки
Ми ще оновлюємо цю частину.
Виявлення
Прихований файл було створено на хості Linux (через file_event)
Підозрілі дочірні процеси NodeJS [Windows] (через cmdline)
Ймовірне завантаження файлів з GitHub, ініційоване незвичайним процесом (через network_connection)
Використання Nohup (через cmdline)
Підозрілі дочірні процеси NodeJS [Linux] (через cmdline)
Підозрілі виконані chmod, які вказують на підозрілі каталоги (через cmdline)
Завантаження у підозрілі каталоги (через cmdline)
IOC (HashSha256) для виявлення: За межами testmetest: Камуфляж нативного додатку та 42 озброєні GitHub репозиторії відкривають прихованого видавця npm
IOC (SourceIP) для виявлення: За межами testmetest: Камуфляж нативного додатку та 42 озброєні GitHub репозиторії відкривають прихованого видавця npm
IOC (DestinationIP) для виявлення: За межами testmetest: Камуфляж нативного додатку та 42 озброєні GitHub репозиторії відкривають прихованого видавця npm
Перевірка присутності відлагоджувача через IsDebuggerPresent або CheckRemoteDebuggerPresent [Журнал безпеки Windows]
Підозріла активація процесу та виконання тимчасового JS файлу [Створення процесу Windows]
Виявлення виконання нативного додатку Node.js [Завантаження зображень Windows]
Виявлено виконання зловмисних процесів Node Addon [Створення процесу Linux]
Підозрілі зчитування пам’яті нативного додатку [Google Cloud Platform]
Імітація виконання
-
Опис атаки та команди: Супротивник успішно доставив шкідливе навантаження JavaScript в тимчасову директорію користувача, назвавши його
.ncщоб, можливо, імітувати файл, пов’язаний з Netcat, чи просто приховати його призначення. Для виконання цього зловмисник використовує завантажувач, який викликаєCreateProcessAWin32 API для запуску Windows Script Host (wscript.exe) з тимчасовим файлом як аргументом. Цей специфічний порядок — використання ANSI версії API створення процесу для запуску скрипту з%TEMP%— це точний зразок, який призначено для виявлення правилом детекції. -
Скрипт регресійного тестування:
# Скрипт симуляції: Виклик 'Підозріле створення процесу та виконання тимчасового JS файлу' # 1. Визначте шляхи $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" # 2. Створіть фіктивний зловмисний JS файл у директорії %TEMP% # Примітка: Ми називаємо його .nc згідно з потребою логіки виявлення "WScript.Echo('Симулюється зловмисна діяльність');" | Out-File -FilePath $targetFile -Encoding ascii Write-Host "[+] Зловмисний файл створено за адресою: $targetFile" # 3. Симулюйте виконання за допомогою wscript.exe # У реальному сценарії 'CallTrace', що містить 'CreateProcessA', генерується # під час виклику відповідного API Windows, який використовується завантажувачем шкідливого ПО. # Запуск цього за допомогою PowerShell/CMD згенерує подію створення процесу. Write-Host "[+] Виконання скрипту для виклику детекції..." Start-Process "wscript.exe" -ArgumentList "`"$targetFile`"" Write-Host "[+] Команда симуляції відправлена." -
Команди очищення:
# Скрипт прибирання: Видаліть артефакти симуляції $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" if (Test-Path $targetFile) { Remove-Item -Path $targetFile -Force Write-Host "[+] Прибирання успішне: $targetFile видалено." } else { Write-Host "[!] Прибирання не вдалося: Файл не знайдено." }