SOC Prime Bias: Critical

26 Aug 2026 06:51 UTC

Атака на ланцюжок постачання Rust націлена на arrayref, internment та append-only-vec

Author Photo
SOC Prime Team linkedin icon Стежити
Атака на ланцюжок постачання Rust націлена на arrayref, internment та append-only-vec
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Вишукана атака на ланцюжок постачання цільовувала екосистему Rust, скомпрометувавши легітимний обліковий запис підтримувача та використовуючи помилки в ідентичності для введення шкідливих залежностей під час побудови. Зловмисники отруїли три широко використовуваних крейти, arrayref, internment, та append-only-vec, для виконання програми-прибирача віддаленого виконання коду під час процесу побудови Cargo. Це дозволило тихо виконувати код на робочих станціях розробників та в конвеєрах CI/CD під час рутинної компіляції.

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

Дослідники аналізували атаку, використовуючи Harden-Runner, що захопив шкідливий скрипт при спробі вихідного з’єднання з сервером завантаження по порту 9089. Судово-медичний огляд історії Git crates.io-index виявив цілеспрямоване вставлення шкідливих залежностей та приманки з відміною та оновленням, призначені для того, щоб підштовхнути розробників до скомпрометованих версій. Дослідники також виявили механізми вторинної стійкості та поведінки C2, про які повідомили постраждалі користувачі.

Пом’якшення

Негайне пом’якшення включає фіксацію легітимних крейтів до перевірених безпечних версій та аудит файлів Cargo.lock щодо скомпрометованих випусків залежностей. Організації повинні очистити локальні та CI/CD кеші, включаючи ~/.cargo/registry/cache, щоб видалити шкідливі .crate файли. Фільтрація вихідних з’єднань для незвичних вихідних з’єднань з середовищ побудови та сувора дисципліна lockfile також є критично важливими заходами захисту в довгостроковій перспективі.

Відповідь

Якщо в lockfile знайдено постраждалі версії, середовище побудови слід вважати скомпрометованим, і всі доступні облікові дані, включаючи SSH-ключі, токени хмари та секрети CI/CD, мають бути змінені. Слід перевірити системи розробників на наявність артефактів стійкості, таких як несанкціоновані служби systemd або підозрілі файли в директоріях конфігурацій. Всі програмні артефакти, створені під час періоду впливу, мають бути відновлені з чистих, перевірених джерел.

Хід атаки

Виявлення

Можливі точки стійкості [ASEPs – ПЗ/Вулик NTUSER] (через registry_event)

Команда SOC Prime
21 Серп 2026

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

Команда SOC Prime
21 Серп 2026

Прихований файл створено на Linux-хості (через file_event)

Команда SOC Prime
21 Серп 2026

IOC (HashSha256) для виявлення: Атака на ланцюжок постачання Rust: arrayref, internment та append-only-vec отруєні програмою-прибирачем proc-macro1 під час побудови

Правила SOC Prime AI
21 Серп 2026

IOC (SourceIP) для виявлення: Атака на ланцюжок постачання Rust: arrayref, internment та append-only-vec отруєні програмою-прибирачем proc-macro1 під час побудови

Правила SOC Prime AI
21 Серп 2026

IOC (DestinationIP) для виявлення: Атака на ланцюжок постачання Rust: arrayref, internment та append-only-vec отруєні програмою-прибирачем proc-macro1 під час побудови

Правила SOC Prime AI
21 Серп 2026

Виявлення аномальних вихідних мережевих з’єднань [Мережева підключення Windows]

Правила SOC Prime AI
21 Серп 2026

Виконання шкідливих PowerShell та VBScript у атаці на ланцюжок постачання Rust [Windows Powershell]

Правила SOC Prime AI
21 Серп 2026

Виконання підозрілого процесу збірки в тимчасовому каталозі Unix [Створення процесу Linux]

Правила SOC Prime AI
21 Серп 2026

Виконання симуляції

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

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

  • Опис атаки та команди: Супротивник успішно ввів шкідливу крейт у проект Rust. Коли запускається процес збірки, скрипт build.rs виконує фоновий потік, що намагається встановити з’єднання з віддаленим сервером C2 на порту 9089 для отримання корисного навантаження. Це імітує “Аномальне вихідне мережеве з’єднання”, описане у правилі. Мета полягає в тому, щоб викликати попередження журналу брандмауера/мережі, потрапивши на конкретний порт 9089.

  • Скрипт регресійного тестування:

    # Симуляція спроби підключення до C2 сервера під час збірки на порту 9089
    # Ми використовуємо TCP-клієнта для симуляції спроби мережевого підключення.
    
    $C2_IP = "127.0.0.1" # Локальний хост для уникнення фактичного зовнішнього трафіку під час тестування
    $C2_PORT = 9089
    
    Write-Host "Симуляція мережевої активності під час процесу збірки..." -ForegroundColor Cyan
    try {
        $client = New-Object System.Net.Sockets.TcpClient
        $beginConnect = $client.BeginConnect($C2_IP, $C2_PORT, $null, $null)
        $success = $beginConnect.AsyncWaitHandle.WaitOne(1000, $false)
    
        if ($success) {
            Write-Host "Підключення успішне! Має бути сформована телеметрія." -ForegroundColor Green
            $client.EndConnect($beginConnect)
        } else {
            Write-Host "Підключення не вдалося (очікувано, якщо слухач не активний), але телеметрія все ж має показати спробу." -ForegroundColor Yellow
        }
        $client.Close()
    } catch {
        Write-Host "Помилка під час симуляції: $($_.Exception.Message)" -ForegroundColor Red
    }
  • Команди очищення:

    # Сценарій не вніс стійких змін, проте переконайтеся, що будь-які локальні слухачі зупинені.
    # Якщо слухач був запущений для тестування, використовуйте:
    Stop-Process -Name "nc" -ErrorAction SilentlyContinue
    Write-Host "Очищення завершено." -ForegroundColor Green