SOC Prime Bias: Критично

12 Jun 2026 18:47 UTC

Solana FakeFix: 25 шкідливих пакетів npm і PyPI маскуються під стабільні версії

Author Photo
SOC Prime Team linkedin icon Стежити
Solana FakeFix: 25 шкідливих пакетів npm і PyPI маскуються під стабільні версії
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Кампанія з поширення шкідливих пакетів націлена на розробників Solana через бібліотеки npm і PyPI з помилковими назвами, просуваючи їх як стабільні виправлення. Шкідливе програмне забезпечення зловживає виконанням життєвого циклу пакету та гачками імпорту для крадіжки секретів гаманців, хмарних облікових даних та SSH ключів з уражених середовищ. Деякі зразки також розширюють свою діяльність за межі крадіжки, діючи як повноцінні бекдори через управління командами та контроль через Telegram або розгортаючи завантажувачі, орієнтовані на Windows, побудовані на основі Deno.

Розслідування

Дослідники безпеки JFrog виявили дві окремі, але пов’язані операції. Перша, відома як Solana FakeFix, використовувала підроблені пакети стиль SDK для збору конфіденційних секретів від розробників та систем збірки. Друга використовувала пакети npm, тематично оформлені як CMS, для завантаження виконуваних файлів Windows. Їх аналіз показав, що шкідливий код часто додавався до бібліотек, які виглядали функціонуючими, допомагаючи їм здаватися легітимними, у той же час мовчки завантажуючи другорядні корисні навантаження динамічно через Deno.

Пом’якшення

Організації повинні видалити всі уражені пакети з робочих станцій розробників, CI/CD конвеєрів та внутрішніх кешів пакетів. Будь-які потенційно скомпрометовані облікові дані повинні бути негайно змінені, включаючи ключі гаманця Solana, ключі SSH, облікові дані AWS та токени GitHub. Команди безпеки повинні також перевірити хости на наявність методів персистенції, таких як ключі запуску Registry Run, заплановані завдання та модифікації профілю оболонки.

Відповідь

Захисники повинні видалити ідентифіковані шкідливі пакети та перевірити файли залежностей на наявність несанкціонованих або несподіваних бібліотек. Усі викриті секрети повинні бути негайно замінені, а будь-яка криптовалюта, зберігана в потенційно скомпрометованих гаманцях, повинна бути переведена на нові довірені адреси. Потім системи CI і розробників мають бути відновлені з чистих образів, щоб забезпечити відсутність прихованих бекдорів або механізмів зберігання.

"graph TB %% Class Definitions Section classDef technique fill:#99ccff classDef persistence fill:#ff99cc classDef command_control fill:#cc99ff classDef exfiltration fill:#ffcc99 classDef credential_access fill:#ffff99 %% Initial Access and Execution Phase attack_supply_chain["<b>Техніка</b> – <b>T1195.001 Підробка Ланцюга Постачання: <br/>Підробка програмного забезпечення й інструментів розробки</b><br/><b>Опис</b>: Використання підроблених імен та спаму в GitHub для залучення розробників до встановлення шкідливих пакетів npm і PyPI, які видають себе за легітимні SDK Solana.<br/><b>Цілі</b>: @solana-labs/web3.js та інші подібні інструменти."] class attack_supply_chain technique attack_user_exec_copy["<b>Техніка</b> – <b>T1204.004 Виконання Користувачем: Шкідливе Копіювання та Вставка</b><br/><b>Опис</b>: Розробники виконують команди, запропоновані зловмисниками через проблеми GitHub або інструкції по пакеті."] class attack_user_exec_copy technique attack_user_exec_lib["<b>Техніка</b> – <b>T1204.005 Виконання Користувачем: Шкідлива Бібліотека</b><br/><b>Опис</b>: Розробники імпортують шкідливі бібліотеки в свої проєкти."] class attack_user_exec_lib technique op_exec_trigger(("AND")) class op_exec_trigger technique attack_event_trigger["<b>Техніка</b> – <b>T1546.016 Виконання, що Викликане Подією: Інсталяційні Пакети</b><br/><b>Опис</b>: Виконання коду з підконтрольного зловмиснику через npm скрипти postinstall або PyPI імпорти __init__.py."] class attack_event_trigger technique attack_drive_by["<b>Техніка</b> – <b>T1189 Компрометація Жертви у Рухові</b><br/><b>Опис</b>: Завантаження вторинних корисних навантажень, таких як виконувані файли Windows або навантажувачі на основі Deno."] class attack_drive_by technique %% Persistence Phase persist_active_setup["<b>Техніка</b> – <b>T1547.014 Виконання Автозапуску Завантаження або Входу: Активне Налаштування</b><br/><b>Опис</b>: Створення ключів запуску Registry Run для запуску шкідливих корисних навантажень."] class persist_active_setup persistence persist_windows_service["<b>Техніка</b> – <b>T1543.003 Створення або Зміна Процесу Системи: Служба Windows</b><br/><b>Опис</b>: Забезпечення персистенції шляхом створення Служб Windows."] class persist_windows_service persistence payload_deno["<b>Шкідливе програмне забезпечення</b> – <b>Кампанія CMS на основі Deno</b><br/><b>Опис</b>: Шкідливе JavaScript-корисне навантаження, що працює в безголовому режимі через conhost.exe."] class payload_deno technique %% Command and Control Phase c2_web_service["<b>Техніка</b> – <b>T1102.003 Веб-сервіс: Односторонній Зв’язок</b><br/><b>Опис</b>: Використання Telegram токенів бота для отримання команд і ексфільтрації даних."] class c2_web_service command_control c2_dynamic_res["<b>Техніка</b> – <b>T1568 Динамічна Розв’язка</b><br/><b>Опис</b>: Використання динамічних методів для зв’язку з інфраструктурою C2."] class c2_dynamic_res command_control %% Credential Access and Exfiltration Phase cred_files["<b>Техніка</b> – <b>T1552.001 Небезпечні Облікові Дані: Облікові Дані у Файлах</b><br/><b>Опис</b>: Сканування локальної файлової системи на наявність JSON-файлів гаманця Solana id.json, SSH ключів id_rsa, облікових даних AWS та файлів .env."] class cred_files credential_access exfil_c2["<b>Техніка</b> – <b>T1041 Ексфільтрація через Канал C2</b><br/><b>Опис</b>: Відправка вкрадених конфіденційних даних через API Telegram."] class exfil_c2 exfiltration %% Connections attack_supply_chain –>|веде до| op_exec_trigger op_exec_trigger –>|вимагає| attack_user_exec_copy op_exec_trigger –>|вимагає| attack_user_exec_lib attack_user_exec_copy –>|запускає| attack_event_trigger attack_user_exec_lib –>|запускає| attack_event_trigger attack_event_trigger –>|завантажує через| attack_drive_by attack_drive_by –>|встановлює| payload_deno payload_deno –>|встановлює| persist_active_setup payload_deno –>|встановлює| persist_windows_service persist_active_setup –>|зв’язок через| c2_web_service persist_windows_service –>|зв’язок через| c2_web_service c2_web_service –>|використовує| c2_dynamic_res payload_deno –>|здійснює доступ до облікових даних| cred_files cred_files –>|дані відправлені через| exfil_c2 exfil_c2 –>|використовує| c2_web_service "

Потік атаки

Виявлення

Можливі точки персистенції [ASEPs – ПЗ/Реєстр NTUSER] (через подію реєстру)

Команда SOC Prime
12 червня 2026 р.

LOLBAS Conhost (через командний рядок)

Команда SOC Prime
12 червня 2026 р.

Можливе зловживання Telegram як Каналом Управління і Зв’язку (через dns-запит)

Команда SOC Prime
12 червня 2026 р.

Можливі C2 комунікації через HTTP на Прямий IP з Незвичайним Портом (через проксі)

Команда SOC Prime
12 червня 2026 р.

IOC (джерело IP) для виявлення: Solana FakeFix: 25 шкідливих пакетів npm і PyPI, що заманюють розробників під виглядом стабільних виправлень

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

IOC (призначення IP) для виявлення: Solana FakeFix: 25 шкідливих пакетів npm і PyPI, що заманюють розробників під виглядом стабільних виправлень

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

Виявлення злочинної активності пакетів з віддаленим динамічним навантаженням і Telegram C2 [Windows Network Connection]

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

Виконання conhost.exe в безголовому режимі для шкідливого виконання скриптів [Створення процесу Windows]

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

Виявлення персистенції ключа реєстру CMS Windows Loader [Подія реєстру Windows]

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

Виявлення персистенції гачок профілю PowerShell і прихованого виконання PowerShell [Windows Powershell]

Правила штучного інтелекту SOC Prime
12 червня 2026 р.

Тестове виконання

Передумова: Перевірка телеметрії та базова перевірка перед польотом повинні бути успішно пройдені.

Раціональність: Цей розділ детально описує точне виконання техніки супротивника (TTP), призначеної для виклику правила виявлення. Команди й розповідь МАЄТЬСЯ відображати ідентифіковані TTP і націлені на генерацію точної телеметрії, очікуваної логікою виявлення. Абстрактні або не пов’язані приклади приведуть до неправильної діагностики.

  • Пояснення атаки та команди: Атакуючий отримав початковий доступ і має намір зберегти свою присутність. Вони вирішили використовувати навантаження на основі Deno. Щоб приховати виконання терміналу, вони використовують --headless флаг для conhost.exe. Вони виконують команду, яка змінює HKCUSoftwareMicrosoftWindowsCurrentVersionRun ключ реєстру, додаючи значення під назвою DenoUpdater , що виконує conhost.exe --headless deno.exe [malicious_script]. Це забезпечить, що навантаження буде працювати незауважено у фоні при вході користувача.

  • Сценарій тестування регресії:

    # Імітація Deno-персистенції через ключ реєстру Run
    $RegistryPath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    $Name = "DenoUpdater"
    $Value = "C:WindowsSystem32conhost.exe --headless C:UsersPublicdeno.exe malicious_payload.js"
    
    Write-Host "[*] Імітація механізму персистенції..."
    New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType String -Force
    Write-Host "[+] Ключ реєстру створено. Перевірте СУІБ для сигналу тривоги."
  • Команди очищення:

    # Очистіть імітовану персистенцію
    $RegistryPath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    $Name = "DenoUpdater"
    
    if (Get-ItemProperty -Path $RegistryPath -Name $Name -ErrorAction SilentlyContinue) {
        Remove-ItemProperty -Path $RegistryPath -Name $Name -Force
        Write-Host "[+] Очищення завершено. Ключ реєстру видалено."
    } else {
        Write-Host "[-] Очищення не вдалося: ключ реєстру не знайдено."
    }