Виявлення та боротьба з шкідливою програмою Daolpu за допомогою Wazuh

Daolpu – це шкідливе програмне забезпечення, яке викрадає конфіденційну інформацію з інфікованих кінцевих точок Windows. Вперше це шкідливе програмне забезпечення було помічене в липні 2024 року, коли компанія CrowdStrike розповсюдила офіційне оновлення для свого продукту Falcon, яке спричинило масові збої в роботі систем Windows, на яких було встановлено цей продукт. Через це оновлення приблизно 8,5 мільйонів систем Windows вийшли з ладу і не змогли нормально перезавантажитися. Зловмисники скористалися цією можливістю, щоб встановити Daolpu на уражені системи Windows, надавши фальшивий посібник з відновлення CrowdStrike.

Шкідлива програма Daolpu розповсюджується через фішингові електронні листи, які містять вкладені документи Microsoft Word зі шкідливими макросами. Це шкідливе програмне забезпечення збирає облікові дані для входу в систему, історію браузера та файли cookie, що зберігаються в Google Chrome, Microsoft Edge, FireFox та інших веббраузерах. Шкідливе програмне забезпечення надсилає викрадені дані на віддалений сервер управління (C2) за допомогою HTTP POST-запитів.

У цій статті продемонстровано, як використовувати Wazuh для виявлення та реагування на шкідливе програмне забезпечення Daolpu на інфікованій кінцевій точці Windows.

Поведінковий аналіз шкідливої програми Daolpu

  • Шкідливе програмне забезпечення Daolpu вбиває процес Chrome, виконуючи наступну команду:
taskkill /F /IM chrome.exe

Після цього шкідливе програмне забезпечення збирає дані для входу та файли cookie, що зберігаються в Google Chrome, Microsoft Edge, Firefox та інших браузерах Chromium.

  • Daolpu зберігає викрадені дані у файлі %TMP%\result.txt і надсилає цей файл на віддалений сервер C2, контрольований зловмисниками.
  • Врешті-решт шкідливе програмне забезпечення видаляє файл result.txt, щоб уникнути виявлення.

Інфраструктура

Для демонстрації виявлення шкідливого програмного забезпечення Daolpu за допомогою Wazuh використовується наступна інфраструктура:

  • Налаштована і готова до використання остання версія віртуальної машини Wazuh OVA, що включає основні компоненти рішення (сервер, indexer, дешборд).
  • Встановлена і зареєстрована на сервері Wazuh кінцева точка Windows 10 із агентом Wazuh.

Виявлення за допомогою Wazuh

  • Правила виявлення Wazuh: Виявлення шкідливих дій, що виконуються шкідливим програмним забезпеченням Daolpu.
  • Інтеграція YARA з Wazuh: Виявлення та видалення шкідливого програмного забезпечення Daolpu.

Правила виявлення Wazuh

За допомогою Sysmon здійснюється моніторинг декількох системних подій і створюються правила на сервері Wazuh для виявлення шкідливих дій, що виконуються шкідливим програмним забезпеченням Daolpu.

Кінцева точка, на яку таргетується зловмисник

У цьому розділі розглядається установка Sysmon на кінцеву точку Windows і налаштування агента Wazuh для збору журналів Sysmon.

Для виявлення шкідливих дій, що виконуються шкідливим програмним забезпеченням Daolpu на кінцевій точці Windows, слід виконати наведені нижче кроки.

  • Завантажити Sysmon і конфігураційний файл sysmonconfig.xml.
  • Змінити файл sysmonconfig.xml і включити наведену нижче конфігурацію в блок <EventFiltering>. Ця конфігурація фіксує активність, коли Daolpu видаляє файл, який він використовує для зберігання викрадених даних:
<!-- This configuration records the activity when Daolpu deletes a file it uses to store stolen data -->
<RuleGroup groupRelation="or">
 <FileDeleteDetected onmatch="include">
  <TargetFilename condition="contains">\Temp\result.txt</TargetFilename>
 </FileDeleteDetected>
</RuleGroup>
  • Запустити PowerShell з правами адміністратора і встановити Sysmon наступним чином:
.\Sysmon64.exe -accepteula -i .\sysmonconfig.xml
  • Відредагувати файл агента Wazuh C:\Program Files (x86)\ossec-agent\ossec.conf і включити наступні налаштування в блоці <ossec_config>:
<!-- Configure Wazuh agent to receive events from Sysmon -->
<localfile>   
  <location>Microsoft-Windows-Sysmon/Operational</location>
  <log_format>eventchannel</log_format>
</localfile>
  • Перезапустити агент Wazuh, щоб зміни набули чинності:
Restart-Service -Name wazuh

Сервер Wazuh

Щоб налаштувати правила виявлення на сервері Wazuh, необхідно виконати наступні кроки.

  • Створити новий файл /var/ossec/etc/rules/daolpu_malware.xml на сервері Wazuh:
# touch /var/ossec/etc/rules/daolpu_malware.xml
  • Відредагувати файл /var/ossec/etc/rules/daolpu_malware.xml і додати наступні правила виявлення шкідливого програмного забезпечення Daolpu:
<group name="windows,sysmon,daolpu_detection_rule,">
<!-- Daolpu malware attempts to kill the Chrome process -->
  <rule id="100060" level="10">
    <if_sid>92032</if_sid>
    <field name="win.eventdata.image" type="pcre2">(?i)\\\\taskkill.exe</field>
    <match type="pcre2">(?i)cmd.exe /c taskkill /F /IM chrome.exe</match>
    <description>Possible Daolpu malware detected. Malware has attempted to kill the Chrome process.</description>
    <mitre>
      <id>T1489</id>
    </mitre>
  </rule>
<!-- Daolpu creates a file it uses to store sensitive data -->
  <rule id="100061" level="12">
          <if_sid>61613</if_sid>
    <field name="win.system.eventID">11</field>
    <field name="win.eventdata.image" type="pcre2">(?i)\\\\.+(exe|dll|bat|msi)</field>
    <field name="win.eventdata.targetFilename" type="pcre2">(?i)\\\\Windows\\\\Temp\\\\result.txt</field>
    <description>Possible Daolpu malware detected. Malware creates a file it uses to store sensitive data.</description>
    <mitre>
      <id>T1555</id>
    </mitre>
  </rule>
<!-- Daolpu deletes a file it uses to store sensitive data -->
   <rule id="100062" level="10">
          <if_sid>61654</if_sid>
    <field name="win.system.eventID">26</field>
    <field name="win.eventdata.image" type="pcre2">(?i)\\\\.+(exe|dll|bat|msi)</field>
    <field name="win.eventdata.targetFilename" type="pcre2">(?i)\\\\Windows\\\\Temp\\\\result.txt</field>
    <description>Possible Daolpu malware detected. Malware deletes the file it uses to store sensitive data.</description>
    <mitre>
      <id>T1070.004</id>
    </mitre>
  </rule>
</group>

Де:

  • Правило з ID 100060 спрацьовує, коли шкідливе програмне забезпечення вбиває процес Chrome.
  • Правило з ID 100061 спрацьовує, коли шкідливе програмне забезпечення створює файл для зберігання конфіденційних даних.
  • Правило з ID 100062 спрацьовує, коли шкідливе програмне забезпечення видаляє файл, який воно використовує для зберігання конфіденційних даних.
  • Перезапустити менеджер Wazuh, щоб зміни набули чинності:
sudo systemctl restart wazuh-manager

Візуалізація сповіщень на інформаційній панелі Wazuh

Наведені нижче сповіщення генеруються на інформаційній панелі Wazuh, коли шкідливе програмне забезпечення Daolpu запускається на кінцевій точці. Щоб переглянути сповіщення на інформаційній панелі Wazuh, потрібно виконати наступні кроки.

  • Перейти до “Threat intelligence” > “Threat Hunting“.
  • Натиснути + Add filter. Потім відфільтрувати rule.id у полі “Field“.
  • У полі “Operator” вибрати one of.
  • Відфільтрувати 100060, 100061 і 100062 у полі “Values“.
  • Натиснути кнопку “Save“.
daolpu-alerts

Інтеграція YARA з Wazuh

YARA – це універсальний багатоплатформний інструмент з відкритим вихідним кодом, який ідентифікує та класифікує зразки шкідливого програмного забезпечення на основі їхніх текстових або бінарних шаблонів. Далі розглядається використання модуля активного реагування Wazuh для автоматичного сканування файлів, доданих або змінених у папці Downloads.

Кінцева точка, на яку таргетується зловмисник

Щоб завантажити та встановити YARA, необхідно, щоб на кінцевій точці були встановлені наступні пакети:

Після встановлення вищевказаних пакетів, слід виконати наведені нижче дії, щоб завантажити виконуваний файл YARA:

  • Запустити PowerShell з правами адміністратора і завантажити YARA:
Invoke-WebRequest -Uri https://github.com/VirusTotal/yara/releases/download/v4.5.1/yara-master-2298-win64.zip -OutFile v4.5.1-2298-win64.zip
  • Витягнути виконуваний файл YARA:
Expand-Archive v4.5.1-2298-win64.zip
  • Створити папку з назвою C:\Program Files (x86)\ossec-agent\active-response\bin\yara\ і скопіювати в неї двійковий файл YARA:
mkdir 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\'
cp .\v4.5.1-2298-win64\yara64.exe 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\'

Щоб завантажити правила YARA, потрібно виконати наведені нижче дії:

  • Використовуючи той самий термінал PowerShell, запущений раніше, встановити valhallaAPI за допомогою програми pip:
pip install valhallaAPI
  • Створити файл download_yara_rules.py і скопіювати в нього наступний скрипт:
from valhallaAPI.valhalla import ValhallaAPI
v = ValhallaAPI(api_key="1111111111111111111111111111111111111111111111111111111111111111")
response = v.get_rules_text()

with open('yara_rules.yar', 'w') as fh:
    fh.write(response)
  • Завантажити правила YARA і скопіювати їх в папку C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\:
python download_yara_rules.py 
mkdir 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\'
cp yara_rules.yar 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\'
  • Відредагувати файл C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\yara_rules.yar і додати наступне правило YARA для виявлення шкідливого програмного забезпечення Daolpu:
rule Daolpu_infostealer 
{
    meta:
        Author = "Benjamin Nworah"
        Description = "Detect Daolpu malware"
        Date = "16-08-2024"
        Hash1 = "3a9323a939fbecbc6d0ceb5c1e1f3ebde91e9f186b46fdf3ba1aee03d1d41cd8"
        Hash2 = "4ad9845e691dd415420e0c253ba452772495c0b971f48294b54631e79a22644a"

    strings:
        $a1 = "D:\\c++\\Mal_Cookie_x64\\x64\\Release\\mscorsvc.pdb"
        $a2 = "C:\\Windows\\Temp\\result.txt"
     
    condition:
        all of ($a*)
}
  • Відредагувати файл агента Wazuh C:\Program Files (x86)\ossec-agent\ossec.conf і додати наведену нижче конфігурацію в блоці для моніторингу the Downloads folders всіх користувачів в режимі реального часу:
<directories realtime="yes">C:\Users\*\Downloads</directories>

Примітка: В цьому дописі відстежуються the Downloads folders всіх користувачів. Однак можна налаштувати інші папки, які потрібно відстежувати.

  • Створити командний файл yara.bat у папці C:\Program Files (x86)\ossec-agent\active-response\bin. Модуль активного реагування Wazuh використовує цей файл для виконання сканування YARA для виявлення та видалення шкідливого програмного забезпечення:
:: This script deletes Daolpu malware and other malicious files matched by the YARA Rules 
@echo off
setlocal enableDelayedExpansion
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && SET OS=32BIT || SET OS=64BIT
if %OS%==32BIT (
    SET log_file_path="%programfiles%\ossec-agent\active-response\active-responses.log"
)
if %OS%==64BIT (
    SET log_file_path="%programfiles(x86)%\ossec-agent\active-response\active-responses.log"
)
set input=
for /f "delims=" %%a in ('PowerShell -command "$logInput = Read-Host; Write-Output $logInput"') do (
    set input=%%a
)
set json_file_path="C:\Program Files (x86)\ossec-agent\active-response\stdin.txt"
set syscheck_file_path=
echo %input% > %json_file_path%
FOR /F "tokens=* USEBACKQ" %%F IN (`Powershell -Nop -C "(Get-Content 'C:\Program Files (x86)\ossec-agent\active-response\stdin.txt'|ConvertFrom-Json).parameters.alert.syscheck.path"`) DO (
SET syscheck_file_path=%%F
)
set yara_exe_path="C:\Program Files (x86)\ossec-agent\active-response\bin\yara\yara64.exe"
set yara_rules_path="C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\yara_rules.yar"
echo %syscheck_file_path% >> %log_file_path%
for /f "delims=" %%a in ('powershell -command "& \"%yara_exe_path%\" \"%yara_rules_path%\" \"%syscheck_file_path%\""') do (
    echo wazuh-yara: INFO - Scan result: %%a >> %log_file_path%
    :: Deleting the scanned file.
    del /f "%syscheck_file_path%"
    echo wazuh-yara: INFO - Successfully deleted: %%a >> %log_file_path%
)
exit /b
  • Перезапустити агент Wazuh за допомогою PowerShell, щоб зміни набули чинності:
Restart-Service -Name wazuh

Сервер Wazuh

Виконати наступні кроки, щоб налаштувати користувацькі декодери, правила та активну відповідь на сервері Wazuh.

  • Відредагувати файл /var/ossec/etc/decoders/local_decoder.xml на сервері Wazuh і додати наступні декодери:
<!-- The decoders parse logs from the YARA scans -->
<decoder name="yara_decoder">
    <prematch>wazuh-yara:</prematch>
</decoder>
<decoder name="yara_decoder1">
    <parent>yara_decoder</parent>
    <regex>wazuh-yara: (\S+) - Scan result: (\S+) (\S+)</regex>
    <order>log_type, yara_rule, yara_scanned_file</order>
</decoder>

<decoder name="yara_decoder1">
    <parent>yara_decoder</parent>
    <regex>wazuh-yara: (\S+) - Successfully deleted: (\S+) (\S+)</regex>
    <order>log_type, yara_rule, yara_scanned_file</order>
</decoder>
  • Відредагувати файл /var/ossec/etc/rules/local_rules.xml на сервері Wazuh і включити наступні правила:
<!-- File added to the Downloads folder -->
<group name= "syscheck,">
  <rule id="100028" level="7">
    <if_sid>550</if_sid>
    <field name="file" type="pcre2">(?i)C:\\Users.+Downloads</field>
    <description>File modified in the Downloads folder.</description>
  </rule>
<!-- File modified in the Downloads folder -->
  <rule id="100029" level="7">
    <if_sid>554</if_sid>
    <field name="file" type="pcre2">(?i)C:\\Users.+Downloads</field>
    <description>File added to the Downloads folder.</description>
  </rule>
</group>
<!--  Rule for the decoder (yara_decoder) -->
<group name="yara,">
  <rule id="100063" level="0">
    <decoded_as>yara_decoder</decoded_as>
    <description>Yara grouping rule</description>
  </rule>
<!--  YARA scan detects a positive match -->
  <rule id="100064" level="12">
    <if_sid>100063</if_sid>
    <match type="pcre2">wazuh-yara: INFO - Scan result: </match>
    <description>File "$(yara_scanned_file)" is a positive match. Yara rule: $(yara_rule)</description>
  </rule>
  <rule id="100065" level="12">
    <if_sid>100063</if_sid>
    <match type="pcre2">wazuh-yara: INFO - Successfully deleted: </match>
    <description>Successfully removed "$(yara_scanned_file)". YARA rule: $(yara_rule)</description>
  </rule>
</group>
  • Додати наступну конфігурацію до файлу /var/ossec/etc/ossec.conf на сервері Wazuh в блоці <ossec_config>:
<!-- The YARA batch script is executed when a file is added or modified in the Downloads folder monitored by Wazuh -->
<command>
  <name>yara</name>
  <executable>yara.bat</executable>
  <timeout_allowed>no</timeout_allowed>
</command>
<active-response>
  <command>yara</command>
  <location>local</location>
  <rules_id>100028,100029</rules_id>
</active-response>
  • Перезапустити менеджер Wazuh, щоб зміни набули чинності:
sudo systemctl restart wazuh-manager

Візуалізація сповіщень на інформаційній панелі Wazuh

Інформаційна панель Wazuh генерує сповіщення, коли шкідливе програмне забезпечення Daolpu завантажується до папки Downloads на кінцевому атакованому пристрої. Щоб переглянути сповіщення на інформаційній панелі Wazuh, потрібно виконати наступні кроки.

  • Перейти до “Threat intelligence” > “Threat Hunting“.
  • Натиснути + Add filter. Потім у полі “Field” відфільтрувати rule.id.
  • У полі “Operator” вибрати one of .
  • Відфільтрувати 553, 100029, 100064 і 100065 у полі “Values“.
  • Натиснути кнопку “Save“.
wazuh-dashboard

Висновок

У цій статті було використано інтеграцію Sysmon з Wazuh для виявлення поведінки шкідливого програмного забезпечення Daolpu. Крім того, також застосувалась інтеграція YARA з Wazuh, щоб виявити та видалити це шкідливе ПЗ після його завантаження на кінцеву точку.

Підписатися на новини