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

06 May 2026 11:26 UTC

Quasar Linux (QLNX): Точка входу в ланцюг постачання з повними можливостями RAT

Author Photo
SOC Prime Team linkedin icon Стежити
Quasar Linux (QLNX): Точка входу в ланцюг постачання з повними можливостями RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Quasar Linux (QLNX) – це вдосконалений троян для віддаленого доступу в Linux, який поєднує користувацький простір і руткіт eBPF з бекдором PAM та широкими можливостями збору облікових даних. Шкідлива програма підтримує безфайлове виконання, маскування імені процесу та кілька технік для збереження, які допомагають їй залишатися прихованою на інфікованих системах. Її зосередження на робочих станціях розробників робить її особливо небезпечною для атаки на ланцюжок постачання, оскільки вона може красти токени, SSH-ключі та хмарні облікові дані. Шкідливе ПЗ також використовує зашифровані комунікації та підтримує однорангову архітектуру для покращення стійкості та підтримання доступу.

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

Дослідники з Trend Micro отримали бінарний файл QLNX та провели як статичний, так і динамічний аналіз, виявивши вбудований вихідний код для компонентів руткіта і бекдора PAM. Їх розслідування документувало здатність шкідливої програми компілювати компоненти безпосередньо на цільовому хості, спектр механізмів стійкості, які вона використовує, і повний набір команд, які підтримує імплантат. Аналіз мережі також виявив призначений для користувача протокол на основі TLS та унікальний ідентифікатор, що використовується в комунікаціях. Внаслідок цієї роботи дослідники витягнули показники компрометації для підтримки полювання та виявлення.

Пом’якшення

Захисники повинні шукати QLNX, відстежуючи його унікальний файл блокування м’ютексу, підозрілі LD_PRELOAD записи і незвичайні gcc команди компіляції, що генерують шкідливі спільні об’єкти. Організації також повинні блокувати виконання невідомих двійкових файлів з назвою quasar-implant і обмежувати записування доступу до /etc/ld.so.preload. Автентифікація з кількома факторами повинна бути застосована для облікових записів розробників, а групи безпеки повинні ретельно стежити за спробами вивести з системи облікові дані та файли з чутливими токенами.

Відповідь

Якщо знайдено індикатори QLNX, негайно ізолюйте уражену систему, зберіть образи пам’яті та диска, та завершити шкідливий процес. Видаліть несанкціоновані записи з /etc/ld.so.preload, видаліть скомпільовані шкідливі .so файли, і очистіть файл блокування, який використовує імплантат. Усі потенційно компрометовані облікові дані, особливо токени хмар і реєстрів пакетів, повинні бути змінені без зволікання. Слідчі також мають оцінити, чи були якісь системи ланцюжка постачання, репозиторії або будівельні навколишні середовища забруднені під час проникнення.

Потік Атаки

Виявлення

Можлива спроба зв’язку домену IP-lookup (через dns)

Команда SOC Prime
05 травня 2026

Підозрілий автозапуск .desktop скинуто в профіль користувача (через file_event)

Команда SOC Prime
05 травня 2026

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

Команда SOC Prime
05 травня 2026

Індикатори компрометації (HashSha256) для виявлення: Quasar Linux (QLNX) – Невидимий плацдарм у ланцюжку постачання: Внутрішньо функціональний Linux RAT з руткітом, бекдором PAM, збором облікових даних та інше

Правила SOC Prime AI
05 травня 2026

Індикатори компрометації (HashSha1) для виявлення: Quasar Linux (QLNX) – Невидимий плацдарм у ланцюжку постачання: Внутрішньо функціональний Linux RAT з руткітом, бекдором PAM, збором облікових даних та інше

Правила SOC Prime AI
05 травня 2026

Індикатори компрометації (HashMd5) для виявлення: Quasar Linux (QLNX) – Невидимий плацдарм у ланцюжку постачання: Внутрішньо функціональний Linux RAT з руткітом, бекдором PAM, збором облікових даних та інше

Правила SOC Prime AI
05 травня 2026

Виявлення безфайлового виконання та впровадження коду QLNX [Створення процесу в Linux]

Правила SOC Prime AI
05 травня 2026

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

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

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

  • Опис атаки та команди:

    1. Етап 1 – Генерація корисного навантаження: Зловмисник пише мінімальний C-навантажувач, що викликає memfd_create для створення анонімного файлу у пам’яті, записує просту кодову оболонку (наприклад, execve("/bin/sh", …)), робить його виконуваним та запускає його через execveat.
    2. Етап 2 – Компілювання на льоту: Використовуючи gcc (видимий індикатор у правилі) зловмисник компілює джерело без звернення до диска (вихід спрямований на /dev/fd/3).
    3. Етап 3 – Виконання та Впровадження: Скомпільований бінарний файл запускається, викликає memfd_create, завантажує кодову оболонку, і нарешті викликає execveat для виконання ELF у пам’яті. Опціонально ptrace може бути використано для впровадження коду у суміжний процес, що також задовольнить правило.
  • Скрипт регресійного тесту:

    #!/usr/bin/env bash
    #
    # Симуляція безфайлового виконання QLNX‑
    # Генерує ELF у пам'яті за допомогою memfd_create і запускає його з execveat.
    # Потребується: gcc, libcap2-bin (для демонстрації execveat) та auditd правила перед польотом.
    
    set -euo pipefail
    
    # 1️⃣ Створити C код, що здійснює маніпуляцію з memfd + execveat
    cat > /tmp/payload.c <<'EOF'
    #define _GNU_SOURCE
    #include <sys/mman.h>
    #include <sys/syscall.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <string.h>
    
    int main(void) {
        // Створити анонімний дескриптор файлу (memfd)
        int fd = syscall(SYS_memfd_create, "memfd_payload", MFD_CLOEXEC);
        if (fd == -1) _exit(1);
    
        // Простий ELF бінарний файл, що лише виконує execve /bin/sh
        const unsigned char elf[] = {
            0x7f,0x45,0x4c,0x46,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            // ... (скорочено для стислості – мінімальний статично пов'язаний ELF для /bin/sh)
        };
        write(fd, elf, sizeof(elf));
        // Зробити його виконуваним
        fchmod(fd, 0755);
    
        // Використати execveat, щоб запустити бінарний файл у пам'яті
        syscall(SYS_execveat, fd, "", NULL, NULL, AT_EMPTY_PATH);
        _exit(0);
    }
    EOF
    
    # 2️⃣ Компілювати з gcc (це буде зафіксовано правилом виявлення)
    gcc -static -o /tmp/payload /tmp/payload.c
    
    # 3️⃣ Виконати шкідливий бінарний файл – це тригерує execveat
    /tmp/payload
    
    # 4️⃣ Очистка
    rm -f /tmp/payload /tmp/payload.c
  • Команди очистки:

    # Видалити залишкові файли і відключити потенційні правила аудиту (якщо тестове середовище є одноразовим)
    rm -f /tmp/payload /tmp/payload.c
    sudo auditctl -d -a always,exit -F arch=b64 -S execveat -k qlnx_execveat
    sudo auditctl -d -a always,exit -F arch=b64 -S memfd_create -k qlnx_memfd
    sudo auditctl -d -a always,exit -F arch=b64 -S ptrace -k qlnx_ptrace