Обнаружение и борьба с вредоносным ПО 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 и добавить приведенную ниже конфигурацию в блоке <syscheck> для мониторинга 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, чтобы обнаружить и удалить это вредоносное ПО после его загрузки на конечную точку.

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