SOC Prime Bias: Середній

30 Jun 2026 06:44 UTC

Вступ до використання COM загрозами Windows

Author Photo
SOC Prime Team linkedin icon Стежити
Вступ до використання COM загрозами Windows
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Підсумок

Це дослідження розглядає, як шкідливе програмне забезпечення зловживає Windows Component Object Model (COM) для підтримки таких зловмисних дій, як латеральний рух, стійкість і ухилення від захисту. Воно пояснює, як COM дозволяє різним мовам програмування взаємодіяти з Windows службами і показує, як зловмисники приховують функціональність за непрямими викликами vtable через COM інтерфейси. У статті представлені технічні кейс-стадії сімей шкідливих програм, таких як Qakbot, Gh0stRAT, Attor і WarmCookie, щоб продемонструвати ці методи на практиці.

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

Розслідування зосереджено на реверс-інжинірингу бінарних файлів з інтенсивним використанням COM для перекладу непрозорих GUID та зсувів vtable у значущі класси Windows та виклики методів. Дослідники використовували інструменти, такі як OleView.NET і ComView для перевірки реєстрацій реєстру та визначень інтерфейсу. Кейс-стадії показали, що аналіз COM API активації може викрити реальну мету та поведінку зразка шкідливого програмного забезпечення.

Пом’якшення

Стаття більше зосереджена на аналізі та виявленні, ніж на конкретних захисних заходах. Тим не менш, вона пропонує, що моніторинг незвичайної поведінки активації COM і аудит записів реєстру, пов’язаних з CLSID та IID, можуть покращити видимість. Глибоке розуміння послуг, відкритих для COM, таких як BITS та Планувальник завдань, також важливо для ефективного моніторингу та полювання на загрози.

Реакція

Коли ідентифікована підозріла активність COM, реагуючі повинні проаналізувати процес, що ініціює активацію COM, і визначити, який CLSID та IID викликаються. Також важливо простежити батьківський процес і шукати пов’язані заплановані завдання або роботи BITS. Динамічна інструменталізація і засоби логування, зосереджені на COM, можуть допомогти відновити повну ланку зловмисної активності API.

"flowchart TD step_initial_access["Початковий доступ: Qakbot поширюється через фішингові електронні листи, щоб слугувати як завантажувач."] step_c2_ingress["C2 та передача інструментів: Attor використовує BITS (IBackgroundCopyJob) для надійної доставки корисних навантажень."] step_persistence["Стійкість: Gh0stRAT та WarmCookie використовують COM інтерфейси Планувальника завдань (ITaskService) для створення запланованих завдань."] rules_for_persistence("<b>Ім’я правила</b>: Можливе заплановане завдання через COM об’єкт (via cmdline)<br/><b>ID правила</b>: 75015b1f-6813-4288-aa82-b92bb31d8473") step_lateral_movement["Латеральний рух і віддалене виконання: Використання DCOM для активації віддаленого об’єкта через мережу."] step_initial_access –>|веде до| step_c2_ingress step_c2_ingress –>|веде до| step_persistence step_persistence –>|веде до| step_lateral_movement step_persistence -.->|виявлено| rules_for_persistence "

Потік атаки

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

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

Обґрунтування: Цей розділ деталізує точне виконання техніки противника (TTP), розробленої для спрацьовування правила виявлення. Команди і розповідь ПОВИННІ безпосередньо відображати ідентифіковані TTP і спрямовані на створення точної телеметрії, очікуваної логікою виявлення. Або абстрактні, або незв’язані приклади призведуть до неправильного діагнозу.

  • Оповідання про атаку та команди: Нападник має намір виконати латеральний рух або маніпуляцію з віддаленими службами. Щоб уникнути простого виявлення на основі сигнатур, яке шукає загальні шаблони інструментів, вони використовують спеціалізований утиліт (змодельований тут як example.exe) і передають специфічні аргументи, що ініціюють ініціалізацію безпеки COM/DCOM. Передаючи CoCreateInstanceEx and CoInitializeSecurity як командні аргументи, нападник намагається налаштувати контекст безпеки для взаємодії з COM інтерфейсом, який працює поза процесом, щоб полегшити віддалену взаємодію.

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

    # ПРИМІТКА: Цей скрипт передбачає, що 'example.exe' існує в System32 відповідно до логіки правила.
    # Оскільки це є заповнювачем, ми створимо файл-заглушку для симуляції виконуваної програми для тесту.
    
    $targetPath = "C:WindowsSystem32example.exe"
    
    # Створення виконуваного файлу-заглушки, якщо він не існує для цілей симуляції
    if (-not (Test-Path $targetPath)) {
        Write-Host "Створення виконуваного файлу-заглушки для симуляції..."
        New-Item -Path $targetPath -ItemType File -Force
    }
    
    # Симуляція виконання підозрілого командного рядка
    # Ця команда призначена для спрацювання вибору CommandLine виявлення
    Start-Process -FilePath $targetPath -ArgumentList "--action CoCreateInstanceEx --setup CoInitializeSecurity" -Wait
  • Команди очищення:

    # Видалення створеного для симуляції виконуваного файлу-заглушки
    Remove-Item -Path "C:WindowsSystem32example.exe" -Force