Вступление
Недавно коллеги из команды Detection Methods Analysis Group разработали модель машинного обучения, детектирующую атаки типа DLL Hijacking. Впоследствии мы внедрили ее в SIEM-систему Kaspersky Unified Monitoring and Analysis Platform (KUMA). О том, как создавалась эта модель и каких успехов удалось достичь в лабораторных условиях, коллеги рассказали в отдельной статье. Здесь же сосредоточимся на том, как она работает в KUMA и какие подготовительные шаги предшествовали релизу, а также расскажем о нескольких реальных инцидентах, которые уже удалось обнаружить с ее помощью.
Как модель работает в KUMA
Работа модели в общем случае сводится к поэтапной проверке всех DLL-библиотек, загружаемых процессами в системе, с последующей валидацией в облаке Kaspersky Security Network (KSN). Такой подход позволяет объединить локальные атрибуты (путь, имя процесса, хэши файлов) с глобальной базой знаний и поведенческими признаками, что существенно повышает качество детектирования и снижает вероятность ложных срабатываний.
Модель может работать в одном из двух режимов: на корреляторе или на коллекторе. Коррелятор — это компонент SIEM, выполняющий анализ и сопоставление событий на основании заранее заданных правил или алгоритмов. Если детектирование настроено на корреляторе, модель проверяет события, на которые уже сработало какое-либо правило. Это уменьшает объем запросов в KSN и увеличивает скорость отклика модели.
Выглядит это следующим образом:
Коллектор — это программный или аппаратный компонент SIEM-платформы, обеспечивающий сбор, нормализацию и доставку в ядро платформы событий из различных источников. Если детектирование настроено на коллекторе, модель обрабатывает все события загрузки библиотек различными процессами, если они соответствуют следующим условиям:
- Известен путь к файлу процесса
- Известен путь к библиотеке
- Есть хэши файла и библиотеки
Этот метод потребляет больше ресурсов, а ответ модели занимает больше времени, чем на корреляторе. Однако он может быть полезен при ретроспективном поиске угроз, поскольку позволяет проверять все события, залогированные KUMA. Схема работы модели на коллекторе выглядит следующим образом:
Важно отметить, что модель не ограничивается бинарной оценкой «вредоносно/не вредоносно», а ранжирует свои ответы по степени уверенности. Это позволяет использовать ее как гибкий инструмент в SOC-практике. Примеры возможных вердиктов:
- 0 — данные находятся в обработке;
- 1 — вредоносность не подтверждена. Это значит, что на данный момент модель не считает библиотеку вредоносной;
- 2 — библиотека вызывает подозрения;
- 3 — вредоносность подтверждена.
Правило детектирования DLL Hijacking на платформе KUMA будет выглядеть следующим образом:
|
1 |
N.KL_AI_DLLHijackingCheckResult > 1 |
Встраивание модели в коррелятор KUMA обеспечивает автоматизацию процесса поиска атак типа DLL Hijacking и делает возможным их масштабное выявление без необходимости вручную анализировать сотни или тысячи загружаемых библиотек. Более того, в сочетании с правилами корреляции и источниками телеметрии модель можно использовать не просто как отдельный модуль, а как часть комплексной защиты от атак на инфраструктуру.
Инциденты, выявленные в ходе пилотирования модели в сервисе MDR
Прежде чем выйти в релиз, модель в составе платформы KUMA тестировалась в сервисе MDR, где обучалась определять атаку на больших массивах данных, поставляемых в нашей телеметрии. Этот этап был необходим, чтобы убедиться, что детектирование работает не только в лабораторных условиях, но и в реальной инфраструктуре клиентов.
В рамках пилотирования мы проверяли устойчивость модели к ложным срабатываниям и ее способность корректно классифицировать поведение даже при нетипичных сценариях загрузки DLL. В результате были успешно выявлены несколько реальных инцидентов, в которых злоумышленники применяли один из видов DLL Hijacking — технику DLL Sideloading — для закрепления и выполнения своего кода в системе. Давайте подробнее рассмотрим три наиболее интересных из них.
Инцидент 1 — ToddyCat пытается запустить Cobalt Strike под видом системной библиотеки
В одном из инцидентов атакующие успешно проэксплуатировали сервис SharePoint, использующий IIS в качестве веб-сервера, с помощью уязвимости CVE-2021-27076:
|
1 |
c:\windows\system32\inetsrv\w3wp.exe -ap "SharePoint - 80" -v "v4.0" -l "webengine4.dll" -a \\.\pipe\iisipmd32ded38-e45b-423f-804d-34471928538b -h "C:\inetpub\temp\apppools\SharePoint - 80\SharePoint - 80.config" -w "" -m 0 |
После эксплуатации процесс IIS создал файлы, которые в дальнейшем использовались для запуска вредоносного кода с помощью техники DLL Sideloading (T1574.001 Hijack Execution Flow: DLL):
|
1 2 |
C:\ProgramData\SystemSettings.exe C:\ProgramData\SystemSettings.dll |
SystemSettings.dll — это имя библиотеки, связанной с приложением Windows Settings (SystemSettings.exe). Оригинальная библиотека содержит код и данные, которые приложение Settings использует для управления различными системными параметрами и их настройки. Однако библиотека, созданная атакующими, имеет вредоносную функциональность и лишь притворяется системной.
Позже для закрепления в системе и запуска атаки DLL Sideloading была создана задача в планировщике, маскирующаяся под обновление браузера Microsoft Edge. Она запускает файл SystemSettings.exe, расположенный рядом с вредоносной библиотекой:
|
1 |
Schtasks /create /ru "SYSTEM" /tn "\Microsoft\Windows\Edge\Edgeupdates" /sc DAILY /tr "C:\ProgramData\SystemSettings.exe" /F |
Задача должна выполняться ежедневно.
При запуске процесса SystemSettings.exe подгружает вредоносную DLL. В момент подгрузки данные о процессе и библиотеке были отправлены на нашу модель, чтобы она проанализировала их и выявила возможную атаку.
Полученный результат помог нашим аналитикам подсветить подозрительную DLL и детально ее проанализировать. Выяснилось, что эта библиотека является имплантом Cobalt Strike. Загрузив ее, процесс SystemSettings.exe пытался соединиться с командным центром атакующих:
|
1 2 3 4 |
DNS query: connect-microsoft[.]com DNS query type: AAAA DNS response: ::ffff:8.219.1[.]155; 8.219.1[.]155:8443 |
После установки соединения атакующие начали разведку хоста в целях получения всевозможных данных для развития своей атаки.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
C:\ProgramData\SystemSettings.exe whoami /priv hostname reg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid powershell -c $psversiontable dotnet --version systeminfo reg query "HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Drivers" cmdkey /list REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers netsh wlan show profiles netsh wlan show interfaces set net localgroup administrators net user net user administrator ipconfig /all net config workstation net view arp -a route print netstat -ano tasklist schtasks /query /fo LIST /v net start net share net use netsh firewall show config netsh firewall show state net view /domain net time /domain net group "domain admins" /domain net localgroup administrators /domain net group "domain controllers" /domain net accounts /domain nltest / domain_trusts reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run reg query HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run reg query HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce |
Опираясь на TTP атакующих, такие как загрузка Cobalt Strike в виде DLL, применение техники DLL Sideloading (1, 2) и эксплуатация SharePoint, мы можем с высокой степенью уверенности сказать, что за атакой стояла APT-группа ToddyCat. При этом, благодаря оперативной работе нашей модели, мы смогли вовремя отреагировать и заблокировать эту активность, не дав злоумышленникам нанести ущерб организации.
Инцидент 2 — инфостилер под видом менеджера политик
Другой пример модель обнаружила после подключения клиента к мониторингу MDR: легитимный системный файл, расположенный в папке приложения, попытался загрузить подозрительную библиотеку, лежащую рядом с ним:
|
1 2 |
C:\Program Files\Chiniks\SettingSyncHost.exe C:\Program Files\Chiniks\policymanager.dll E83F331BD1EC115524EBFF7043795BBE |
Файл SettingSyncHost.exe — это системный хост-процесс для синхронизации настроек между разными устройствами одного пользователя. Обычно его версии для 32- и 64-разрядных систем располагаются в папках C:\Windows\System32\ и C:\Windows\SysWOW64\ соответственно. В инциденте местоположение файла отличалось от обычного.
Анализ файла библиотеки, который загружал этот процесс, показал, что она является вредоносной программой, предназначенной для кражи информации из браузеров.
Файл обращается напрямую к файлам браузеров, которые содержат данные пользователей.
|
1 |
C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Local State |
Файл библиотеки входит в список файлов, используемых для реализации техники DLL Hijacking, опубликованных в проекте HijackLibs. Проект содержит перечень распространенных процессов и библиотек, использующихся в атаках типа DLL Hijacking, который можно применять для детектирования подобных атак.
Инцидент 3 — вредоносный загрузчик под видом защитного решения
Еще один инцидент, обнаруженный благодаря нашей модели, произошел при подключении пользователем съемного USB-накопителя:
В директории подключаемого диска находились скрытые папки и одноименные ярлыки с иконками, которые обычно используются для обозначения папок. Поскольку по умолчанию расширение файлов на диске не отображается, пользователь мог принять ярлык за папку и запустить его. В свою очередь, ярлык открывал соответствующую скрытую папку и запускал исполняемый файл с помощью следующей команды:
|
1 |
"%comspec%" /q /c "RECYCLER.BIN\1\CEFHelper.exe [$DIGITS] [$DIGITS]" |
Файл CEFHelper.exe — это легитимный исполняемый файл Avast Antivirus, который с помощью DLL Sideloading загружает библиотеку wsc.dll, представляющую собой вредоносный загрузчик:
Загрузчик открывает файл с именем AvastAuth.dat, в котором находится зашифрованный бэкдор. Библиотека читает данные из файла в память, расшифровывает их и выполняет. После этого бэкдор пытается соединиться с удаленным командным центром.
Файл библиотеки, содержащий вредоносный загрузчик, входит в список известных библиотек, которые используются для DLL Sideloading, представленный на сайте проекта HijackLibs.
Заключение
Благодаря внедрению модели в продукт стало возможным выявлять попытки DLL Hijacking, которые до этого могли оставаться незамеченными. Уже на этапе пилотирования модель доказала свою эффективность, обнаружив несколько инцидентов с применением этой техники. В дальнейшем ее точность будет только расти за счет накопления данных и обновления алгоритмов в KSN, что делает этот механизм надежным элементом проактивной защиты корпоративных систем.
IoC
Легитимные файлы, используемые для DLL Hijacking
E0E092D4EFC15F25FD9C0923C52C33D6 загружает SystemSettings.dll
09CD396C8F4B4989A83ED7A1F33F5503 загружает policymanager.dll
A72036F635CECF0DCB1E9C6F49A8FA5B загружает wsc.dll
Вредоносные файлы
EA2882B05F8C11A285426F90859F23C6 SystemSettings.dll
E83F331BD1EC115524EBFF7043795BBE policymanager.dll
831252E7FA9BD6FA174715647EBCE516 wsc.dll
Path
C:\ProgramData\SystemSettings.exe
C:\ProgramData\SystemSettings.dll
C:\Program Files\Chiniks\SettingSyncHost.exe
C:\Program Files\Chiniks\policymanager.dll
D:\RECYCLER.BIN\1\CEFHelper.exe
D:\RECYCLER.BIN\1\wsc.dll










Детектирование DLL Hijacking с помощью машинного обучения: реальные кейсы