Обнаружение и противодействие BlackSuit с Wazuh

blacksuit-logo

BlackSuit – это вредоносное программное обеспечение, предназначенное для проникновения в компьютерные системы и шифрования критически важных данных. Оно прежде всего нацелено на организации с высоким уровнем ценности в критически важных секторах, демонстрируя свой потенциал нарушать работу и наносить масштабный ущерб.

Эта программа-вымогатель вызвала значительные финансовые убытки и операционные перебои в различных отраслях. Понимание того, как работает BlackSuit, и внедрение стратегий противодействия ей помогает организациям проактивно защищать активы и поддерживать бесперебойную работу бизнеса в условиях меняющегося ландшафта угроз.

В этом блоге показано, как организации могут обнаруживать и реагировать на программы-вымогатели BlackSuit на скомпрометированных конечных точках Windows.

Поведение программы-вымогателя BlackSuit

Ниже приведены некоторые поведенческие признаки успешного выполнения программы-вымогателя BlackSuit на компьютере с ОС Windows:

  • Для выполнения и шифрования файлов на конечной точке программе-вымогателю требуются аргументы командной строки для выполнения и шифрования файлов на конечной точке. Она поддерживает несколько аргументов, за которыми следует любое 32-значное значение. В этом посте использовался аргумент -name, за которым следует случайное 32-значное значение.
  • Чтобы предотвратить восстановление после шифрования файлов, она удаляет службу теневых копий томов (Volume Shadow Copies Service, VSS). Это делается с помощью скрытой shell-команды, которая запускает VSSADMIN.EXE с параметрами /ALL и /Quiet.
"C:\Windows\Sysnative\vssadmin.exe" Delete Shadows /All /Quiet
  • Перед шифрованием программа использует Microsoft-Windows-RestartManager, чтобы определить, используются ли целевые файлы в данный момент или заблокированы другими программами. Это делается для того, чтобы зашифровать как можно больше файлов. Последовательность API диспетчера перезапусков (Windows Restart Manager APIs), которые использует BlackSuit: RmStartSession, RmRegisterResources, RmGetList, RmShutdown и RmEndSession.
  • Программа-вымогатель создает требование с файлом README.BlackSuit.txt в нескольких каталогах, таких как C:\PerfLogs\, C:\Temp\, C:\Users\AppData\Roaming\, C:\Users\AppData\local\ C:\Users\, C:\ProgramData.
  • Она шифрует файлы на конечной точке и смонтированных ресурсах, добавляя к зашифрованным файлам расширение .blacksuit.

Проанализированные индикаторы компрометации (IOC)

Хеш-алгоритмЗначение
SHA25690ae0c693f6ffd6dc5bb2d5a5ef078629c3d77f874b2d2ebd9e109d8ca049f2c
MD5748de52961d2f182d47e88d736f6c835

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

Использована следующая инфраструктура для демонстрации обнаружения программ-вымогателей BlackSuit:

  • Предварительно собранная, готовая к использованию последняя доступная версия Wazuh, которая включает центральные компоненты Wazuh (сервер Wazuh, индексатор Wazuh и информационную панель Wazuh).
  • Компьютер с Windows 11 и установленным агентом Wazuh.

Обнаружение с помощью Wazuh

Использованы следующие методы для обнаружения поведения программы-вымогателя BlackSuit на скомпрометированной конечной точке Windows:

  • Использование правил обнаружения для распознавания активности, связанной с программой-вымогателем BlackSuit.
  • Обнаружение и удаление вредоносных файлов с помощью интеграции с YARA и модулем Wazuh Active Response.

Правила обнаружения

Wazuh отслеживают системные события на конечной точке Windows с помощью Sysmon и создают собственные правила на своем сервере, чтобы обнаружить злонамеренное поведение программ-вымогателей BlackSuit.

Конечная точка Windows

Чтобы настроить Sysmon на контролируемой конечной точке и перенаправить журналы в канале событий Sysmon на сервер Wazuh для анализа, необходимо выполнить приведенные ниже шаги.

1. Загрузить Sysmon со страницы Microsoft Sysinternals.

2. Распаковать сжатый файл Sysmon в нужное место.

3. Загрузить файл настройки Sysmon – sysmonconfig.xml, используя PowerShell от имени администратора. Заменить путем к исполняемому файлу Sysmon.

> wget -Uri https://wazuh.com/resources/blog/emulation-of-attack-techniques-and-detection-with-wazuh/sysmonconfig.xml -OutFile <SYSMON_EXECUTABLE_PATH>\sysmonconfig.xml

4. Перейти в каталог, содержащий исполняемый файл Sysmon. Запустить команду ниже, чтобы установить и запустить Sysmon:

> .\Sysmon64.exe -accepteula -i sysmonconfig.xml

5. После успешной установки Sysmon следует добавить следующие настройки <ossec_config> в блок файла C:\Program Files (x86)\ossec-agent\ossec.conf для перенаправления событий Sysmon на сервер Wazuh:

<localfile>
  <location>Microsoft-Windows-Sysmon/Operational</location>
  <log_format>eventchannel</log_format>
</localfile>

Перезапустить агент Wazuh, чтобы применить изменения:

> Restart-Service -Name wazuh

Сервер Wazuh

В этом разделе созданы правила для обнаружения активности программ-вымогателей BlackSuit на контролируемой конечной точке.

1. Создать файл blacksuit_ransomware.xml в каталоге /var/ossec/etc/rules/:

# touch /var/ossec/etc/rules/blacksuit_ransomware.xml

2. Добавить следующие правила в файл /var/ossec/etc/rules/blacksuit_ransomware.xml:

<group name="BlackSuit, ransomware,">

<!-- Ransomware execution -->
  <rule id="100011" level="12">
    <if_sid>61603</if_sid>
    <field name="win.eventdata.CommandLine" type="pcre2">(?i).*.exe\s+-name\s\d{32}$</field>
     <description>Possible BlackSuit ransomware executed.</description>
    <mitre>
       <id>T1059</id>
       <id>T1086</id>
    </mitre>
  </rule>
  
<!-- Inhibit system recovery -->
  <rule id="100012" level="12">
    <if_sid>61603</if_sid>
    <field name="win.eventdata.CommandLine" type="pcre2">(?i)vssadmin.exe\\"\sDelete\sShadows\s\/All\s\/Quiet</field>
    <description>Volume shadow copy deleted using $(win.eventdata.originalFileName). Potential ransomware activity detected.</description>
    <mitre>
      <id>T1490</id>
      <id>T1059.003</id>
    </mitre>
  </rule>
 
<!-- Ransom note file creation -->
  <rule id="100013" level="15" timeframe="100" frequency="2">
    <if_sid>61613</if_sid>
    <field name="win.eventdata.image" type="pcre2">\.exe</field>
    <field name="win.eventdata.targetFilename" type="pcre2">(?i)[C-Z]:.*.\\README.BlackSuit.txt</field>
    <description>The file $(win.eventdata.targetFilename) has been created in multiple directories. BlackSuit ransomware detected.</description>
    <mitre>
      <id>T1059</id>
    </mitre>
  </rule>
    
</group>

Следующие идентификаторы правил срабатывают, когда на конечной точке обнаружены действия, связанные с программой-вымогателем BlackSuit:

  • Правило с ID 100011 срабатывает, когда на конечной точке выполняется программа-вымогатель BlackSuit с аргументом, за которым следует 32-символьное значение.
  • Правило с ID 100012 срабатывает, когда программа-вымогатель BlackSuit удаляет все теневые копии файлов и папок на конечном компьютере.
  • Правило с ID 100013 срабатывает, когда программа-вымогатель BlackSuit скидывает свое требование с файлом README.BlackSuit.txt в несколько папок.

3. Перезапустить сервер Wazuh, чтобы применить изменения:

# systemctl restart wazuh-manager

Визуализация уведомлений

На скриншоте ниже показаны уведомления, генерируемые на информационной панели Wazuh, когда на конечной точке выполняется программа-вымогатель BlackSuit.

С информационной панели Wazuh

  1. Перейти к Threat Intelligence > Threat Hunting.
  2. Нажать + Add filter. Затем отфильтровать по rule.id.
  3. В поле Operator выбрать is one of.
  4. Найти и выбрать правила с ID 100011, 100012 и 100013 в поле Values.
  5. Нажать кнопку Save.
blacksuit-ransomware-dashboard

Обнаружение и удаление вредоносных файлов с помощью интеграции с YARA

Wazuh интегрируется с YARA, инструментом, предназначенным для обнаружения и классификации артефактов вредоносного программного обеспечения. Эта интеграция сканирует файлы, добавленные или измененные на конечной точке Windows, чтобы определить, содержат ли они вредоносное программное обеспечение.

Настроен модуль мониторинга целостности файлов Wazuh (Wazuh File Integrity Monitoring) для отслеживания изменений в определенной папке. Каждый раз, когда файлы добавляются или изменяются в контролируемой папке, модуль Wazuh Active Response автоматически инициирует сканирование YARA. Он обнаруживает потенциально вредоносные файлы на основе предварительно определенных правил.

Конечная точка Windows

Для этой интеграции требуется, чтобы на конечной точке были установлены и настроены перечисленные ниже предпосылки.

  • Python v 3.12.2 или более новой версии (с предварительно установленным pip).

После успешной установки вышеупомянутых условий следует перейти к следующим шагам, чтобы загрузить исполняемый файл YARA.

Примечание: Запуск PowerShell от имени администратора

1. Запустить команду для загрузки YARA:

> Invoke-WebRequest -Uri https://github.com/VirusTotal/yara/releases/download/v4.3.2/yara-4.3.2-2150-win64.zip -OutFile v4.3.2-2150-win64.zip

2. Распаковать загруженный файл YARA:

> Expand-Archive v4.3.2-2150-win64.zip

Создать папку C:\Program Files (x86)\ossec-agent\active-response\bin\yara\ и скопировать в нее файл YARA binary:

> mkdir 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\'
> cp .\v4.3.2-2150-win64\yara64.exe 'C:\Program Files (x86)\ossec-agent\active-response\bin\yara\'

После того, как вышеописанные шаги будут выполнены, необходимо перейти к загрузке правил YARA.

4. В том же терминале PowerShell, который был открыт ранее, с помощью утилиты pip нужно установить valhallaAPI. Этот API используется для получения набора правил YARA на основе открытых подписей:

> pip install valhallaAPI

5. Создать файл 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)

6. Загрузить правила 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\'

7. Отредактировать загруженное правило YARA C:\Program Files (x86)\ossec-agent\active-response\bin\yara\rules\yara_rules.yar и добавить следующее правило для программы-вымогателя BlackSuit:

rule BlackSuit_ransomware {
   meta:
      description = "BlackSuit ransomware executable detection"
      author = "Aishat Motunrayo Awujola"
      reference = "https://github.com/Neo23x0/yarGen"
      date = "2024-10-03"

hash1= "90ae0c693f6ffd6dc5bb2d5a5ef078629c3d77f874b2d2ebd9e109d8ca049f2c"

   strings:
      $x1 = "C:\\Users\\pipi-\\source\\repos\\encryptor\\Release\\encryptor.pdb" fullword ascii
      $s2 = "api-ms-win-core-synch-l1-2-0.dll" fullword wide /* reversed goodware string 'lld.0-2-1l-hcnys-eroc-niw-sm-ipa' */
      $s3 = "C:\\Users\\Adm\\vcpkg\\packages\\openssl_x86-windows-static\\bin" fullword ascii
      $s4 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\providers\\implementations\\ciphers\\cipher_aes_hw_aesni.inc" ascii
      $s5 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\providers\\implementations\\ciphers\\cipher_aes_cts.inc" fullword ascii
      $s6 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\providers\\implementations\\macs\\blake2_mac_impl.c" fullword ascii
      $s7 = "get_payload_private_key" fullword ascii
      $s8 = "C:\\Users\\Adm\\vcpkg\\packages\\openssl_x86-windows-static\\lib\\engines-3" fullword ascii
      $s9 = "C:\\Users\\Adm\\vcpkg\\packages\\openssl_x86-windows-static" fullword ascii
      $s10 = "get_payload_public_key" fullword ascii
      $s11 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\crypto\\err\\err_local.h" fullword ascii
      $s12 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\providers\\implementations\\ciphers\\cipher_camellia_cts.inc" ascii
      $s13 = "C:\\Windows\\Sysnative\\bcdedit.exe" fullword wide
      $s14 = "C:\\Windows\\Sysnative\\vssadmin.exe" fullword wide
      $s15 = "error processing message" fullword ascii
      $s16 = "C:\\Users\\Adm\\vcpkg\\buildtrees\\openssl\\x86-windows-static-rel\\engines\\e_capi_err.c" fullword ascii
      $s17 = "AppPolicyGetProcessTerminationMethod" fullword ascii
      $s18 = "get_dh_dsa_payload_p" fullword ascii
      $s19 = "loader incomplete" fullword ascii
      $s20 = "get_payload_group_name" fullword ascii
   condition:
      uint16(0) == 0x5a4d and filesize < 7000KB and
      1 of ($x*) and 4 of them
}

8. Отредактировать файл C:\Program Files (x86)\ossec-agent\ossec.conf и добавить приведенную ниже конфигурацию в блоке <syscheck> для мониторинга папок Downloads всех пользователей в режиме реального времени с помощью модуля Wazuh FIM:

<directories realtime="yes">C:\Users\*\Downloads</directories>

Примечание: В этой записи отслеживаются папки Downloads всех пользователей. Однако вы можете настроить другие папки, которые вы хотите отслеживать, в зависимости от ваших конкретных потребностей.

9. Создать командный файл yara.bat в папке C:\Program Files (x86)\ossec-agent\active-response\bin.

10. Скопировать приведенный ниже скрипт в файл yara.bat. Модуль Wazuh Active Response автоматически запускает этот файл для выполнения сканирования YARA для обнаружения и удаления вредоносного программного обеспечения:

:: This script deletes BlackSuit ransomware as well as 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%" >nul 2>&1
if exist "%syscheck_file_path%" (
    echo wazuh-yara: INFO - Error removing threat: %%a >> %log_file_path%
) else (
    echo wazuh-yara: INFO - Successfully deleted: %%a >> %log_file_path%
)
 )
exit /b

11. Перезапустить агент Wazuh, чтобы изменения вступили в силу:

> Restart-Service -Name wazuh

Сервер Wazuh

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

1. Создать собственные правила в файле /var/ossec/etc/rules/local_rules.xml. Эти правила будут вызывать уведомления для любых файлов, добавленных или измененных в папке Downloads на контролируемой конечной точке.

<group name= "syscheck,">
  <rule id="100024" 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>

  <rule id="100025" 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>

Где:

  • Правило с ID 100024 срабатывает, когда файл изменяется в папке Downloads.
  • Правило с ID 100025 срабатывает, когда файл добавляется в папку Downloads.

2. Добавить следующую конфигурацию в файл /var/ossec/etc/ossec.conf в блоке :

<command>
  <name>yara</name>
  <executable>yara.bat</executable>
  <timeout_allowed>no</timeout_allowed>
</command>
<active-response>
  <command>yara</command>
  <location>local</location>
  <rules_id>100024,100025</rules_id>
</active-response>

Модуль Wazuh Active Response выполняет скрипт yara.bat, когда файл добавляется или изменяется в папке Downloads.

Где:

  • <name> указывает название команды, которая вызывается в разделе активного ответа.
  • <executable> указывает исполняемый файл для запуска.
  • <command> указывает команду, которая будет использована в активном ответе.
  • Блок <active response> вызывает блок <command>, когда срабатывает правило с ID 100024 или 100025.
  • <location> указывает, где выполняется сценарий активного ответа.

Добавить следующие декодеры в файл /var/ossec/etc/decoders/local_decoder.xml для декодирования журналов, сгенерированных сценарием активного ответа:

<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>

<decoder name="yara_decoder1">
    <parent>yara_decoder</parent>
    <regex>wazuh-yara: (\S+) - Error removing threat: (\S+) (\S+)</regex>
    <order>log_type, yara_rule, yara_scanned_file</order>
</decoder>

4. Создать собственные правила в файле /var/ossec/etc/rules/local_rules.xml, чтобы генерировать уведомления об активных действиях YARA:

<!--  Rule for the decoder (yara_decoder) -->
<group name="yara,">
  <rule id="100026" level="0">
    <decoded_as>yara_decoder</decoded_as>
    <description>Yara grouping rule</description>
  </rule>

<!--  YARA scan detects a positive match -->
  <rule id="100027" level="12">
    <if_sid>100026</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>

<!--  Wazuh successfully deletes malware with a positive match -->
  <rule id="100028" level="12">
    <if_sid>100026</if_sid>
    <match type="pcre2">wazuh-yara: INFO - Successfully deleted: </match>
    <description>Successfully removed "$(yara_scanned_file)" by active response due to YARA rule $(yara_rule) positive match</description>
  </rule>

<!--  Wazuh encounters an error when deleting malware with a positive match -->
  <rule id="100029" level="12">
    <if_sid>100026</if_sid>
    <match type="pcre2">wazuh-yara: INFO - Error removing threat: </match>
    <description>Error removing "$(yara_scanned_file)". YARA rule: $(yara_rule)</description>
  </rule>
</group>

Где:

  • Правило с ID 100026 является базовым правилом для обнаружения событий, связанных с YARA.
  • Правило с ID 100027 срабатывает, когда YARA сканирует и обнаруживает вредоносный файл.
  • Правило с ID 100028 срабатывает, когда обнаруженный файл был успешно удален модулем активного реагирования Wazuh.
  • Правило с ID 100029 срабатывает, если обнаруженный файл не был успешно удален модулем активного реагирования Wazuh.

5. Перезапустить менеджер Wazuh, чтобы изменения вступили в силу:

$ sudo systemctl restart wazuh-manager

Результаты обнаружения

Уведомления генерируются на информационной панели, когда исполняемый файл программы-вымогателя BlackSuit добавляется в контролируемую папку, в данном случае в папку Downloads на компьютере пользователя. Чтобы просмотреть эти уведомления на информационной панели Wazuh необходимо выполнить следующие действия:

  1. Перейти к Threat intelligence > Threat Hunting.
  2. Нажать + Add filter. Затем отфильтровать по rule.id.
  3. В поле Operator выбрать is one of.
  4. Найти и выбрать правила с ID 100025, 100027 и 100028 в поле Values.
  5. Нажать кнопку Save.
blacksuit-detection-rules

Вывод

BlackSuit демонстрирует постоянную эволюцию программ-вымогателей, где злоумышленники продолжают совершенствовать свои методы, чтобы максимизировать вред и прибыль. Организации должны сохранять бдительность, используя эффективные планы реагирования на инциденты и внедряя передовые меры безопасности, чтобы обнаруживать и защищаться от атак злоумышленников. Раннее обнаружение и проактивные меры безопасности являются ключом к смягчению воздействия таких сложных угроз.

В этом блоге было продемонстрировано, как организации могут использовать Wazuh для обнаружения и удаления программы-вымогателя BlackSuit на конечных точках с ОС Windows. Был использован Sysmon для расширения журналов с компьютера пользователя и созданы правила обнаружения для идентификации вредоносного поведения, связанного с программой-вымогателем BlackSuit. Кроме того, с помощью YARA с модулем Wazuh Active Response удалось обнаружить и автоматически удалить программу-вымогателя после ее загрузки на контролируемую конечную точку.

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