Технические специалисты, которые, расследуя ИБ-инциденты или устраняя неполадки при траблшутинге, хоть раз пытались найти в логах операционных систем семейства Microsoft Windows реально важную для них информацию, знают, что в журналы аудита событий попадает далеко не все, что нужно. Можно ли исправить эту ситуацию без дополнительных финансовых вложений с использованием инструментов, гарантированно совместимых с Windows-средой? Разумеется, можно!
Примечание: мы продолжаем серию публикаций полных версий статей из журнала Хакер. Орфография и пунктуация автора сохранены.
Сразу оговоримся, что за рамками настоящей статьи останутся вопросы осознанной чистки логов или «кривой» настройки политик аудита в домене (Audit Policy). Здесь мы поговорим только о том, как повысить информативность и расширить возможности функции аудита событий, используя утилиту System Monitor (Sysmon) в Windows-среде (от Windows 7 для клиентских узлов и от Windows Server 2008 R2 для серверов).
Sysmon
Утилиту можно загрузить с веб-сайта Microsoft Docs, из раздела Windows Sysinternals download. В составе Windows Sysinternals от Марка Руссиновича и Со есть еще много полезных утилит, так что найди время и «пощупай» их. Плюс загляни в подборку материалов на GitHub materials.
Но для данной статьи мы возьмем специальную готовую сборку с GitHub download, включающую файл конфигурации Sysmon Threat Intelligence Configuration от ION-STORM. Она ориентирована именно на выявление инцидентов ИБ и может выступить качественной основой для создания твоих собственных файлов конфигурации.
Утилиту можно установить точечно на каждое рабочее место либо с использованием групповых политик (Group Policy) в домене.
В данном файле конфигурации указываются в большинстве своем полные стандартные пути для ряда программного обеспечения:
<Image condition="is">C:\Program Files\OpenVPN\bin\openvpn-gui.exe</Image>
<ImageLoaded condition="contains">C:\Program Files (x86)\Notepad++</ImageLoaded>
Таким образом, в конкретной ИТ-инфраструктуре это может потребовать определенного тюнинга, так как, например, согласно корпоративной политике программы могут устанавливаться на диск D:\, а не на C:.
Инструментарий настолько гибкий, что можно задавать любые конструкции, нацеленные на то, чтобы отслеживать определенные действия или исключать их из твоего поля зрения.
После установки получишь новый журнал (Channel) Microsoft-Windows-Sysmon/Operational, в котором Sysmon выделяет 18 категорий задач (Task Category), среди них: Process Create, Network Connect, Driver Load, ProcessAccess, File Create.
Аудит сетевого взаимодействия
Перейдем к практическому применению Sysmon.
Представь сетевое взаимодействие между двумя узлами сети: узел А обращается к узлу Б, и это обращение не является легальным, то есть возникает подозрение на ИБ-инцидент. Искать следы данного сетевого взаимодействия в операционной системе будут в самый последний момент, а начнут именно с активного сетевого оборудования.
Что нам скажет межсетевой экран или маршрутизатор, если он контролирует это сетевое взаимодействие?
<190>%ASA-6-302014: Teardown TCP connection 2047052539 for outside:IP_1/60307 (DOMAIN\USER_NAME) to dmz-0:IP_2/22 duration 0:00:16 bytes 5675 TCP FINs (USER_NAME)
Видим только, кто IP_1 и куда IP_2.
По большому счету тут потребуются дополнительные усилия: придется в полуавтоматическом или ручном режиме анализировать узел А (IP_1), чтобы найти реальный источник сетевой активности.
Необходимо помнить, что если сетевая активность не выходит за пределы сегмента сети, контролируемого межсетевым экраном, или на данном межсетевом экране на регистрируются соответствующие события, что зачастую и бывает, то ничего найти в логах не получится.
Предположим, тебе удалось применить в этот момент еще и сниффер или заблаговременно ответвить трафик через SPAN-порт и сформировать PCAP-файл. Что это даст?
Мы видим, кто, куда и, если очень повезет, то с помощью чего, то есть в данном случае PuTTY.
Но здесь нет ни места установки приложения, ни имени исполняемого файла, ни когда он был создан. В случае PuTTY это может показаться надуманными атрибутами, но если ты ищешь следы несанкционированных действий и/или вредоноса, то это уже важные вещи. Плюс вредонос может «представиться» легальным приложением и подтолкнуть тебя закрыть данный ИБ-инцидент как ложное срабатывание (false positive), приняв решение только на основании полученного из дампа сетевого трафика имени приложения.
Теперь посмотрим в канал Microsoft-Windows-Sysmon/Operational. В нем есть следующее событие:
Network connection detected:
UtcTime: 2018-02-08 11:33:49.672
ProcessGuid: {4e1a728b-358a-5a7c-0000-00108901d000}
ProcessId: 4636
Image: C:\Users\USER_NAME\Desktop\putty.exe
User: DOMAIN\USER_NAME
Protocol: tcp
Initiated: true
SourceIsIpv6: false
SourceIp: IP_1
SourceHostname: COMP_NAME.DOMAIN
SourcePort: 60307
SourcePortName:
DestinationIsIpv6: false
DestinationIp: IP_2
DestinationHostname:
DestinationPort: 22
DestinationPortName: ssh
Видим, кто, куда, с помощью чего, а также дополнительные параметры сетевого взаимодействия (протокол, порт). Теперь в этом же канале по значению поля ProcessGuid найдем событие категории Process Create, чтобы получить больше информации непосредственно об источнике данной сетевой активности:
Process Create:
UtcTime: 2018-02-08 11:33:30.583
ProcessGuid: {4e1a728b-358a-5a7c-0000-00108901d000}
ProcessId: 4636
Image: C:\Users\USER_NAME\Desktop\putty.exe
CommandLine: "C:\Users\USER_NAME\Desktop\putty.exe"
CurrentDirectory: C:\Users\USER_NAME\Desktop User: DOMAIN\USER_NAME
LogonGuid: {4e1a728b-268c-5a7c-0000-0020d3a20600}
LogonId: 0x6A2D3
TerminalSessionId: 1
IntegrityLevel: Medium
Hashes: SHA256=7AFB56DD48565C3C9804F683C80EF47E5333F847F2D3211EC11ED13AD36061E1,IMPHASH=EFE162FD3D51DED9DD66FA4AC219BF53
ParentProcessGuid: {4e1a728b-268d-5a7c-0000-001023de0600}
ParentProcessId: 3632
ParentImage: C:\Windows\explorer.exe
ParentCommandLine: C:\Windows\Explorer.EXE
Видим, что создан процесс, в том числе определено хеш-значение файла — прародителя данного процесса.
Теперь ты можешь по хешу проверить этот файл:
- по корпоративным «белым спискам» разрешенного программного обеспечения;
- на соответствие эталону на веб-сайте производителя данного программного обеспечения;
- в рейтингах сервиса Threat Intelligence;
- на ресурсах типа VirusTotal.
Стоит отметить, что на тех узлах сети, где есть ограничения на установку средств антивирусной защиты (терминалы диспетчеров, технологические АРМ и тому подобное), анализ хешей — в том числе автоматизированный, путем сопоставления данных от сервисов Threat Intelligence, например в системе класса Security Information and Event Management (SIEM), — может выступать вполне действенной компенсирующей мерой для борьбы с вредоносным программным обеспечением.
Развивая тематику отслеживания действий, связанных с файлами, нужно отметить, что по умолчанию указанный файл конфигурации позволяет отслеживать создание в операционной системе файлов, которые могут быть потенциальным источником ИБ-инцидентов, например цифровых сертификатов, исполняемых файлов, файлов библиотек, PowerShell-файлов, RDP-файлов, файлов MS Office с поддержкой макросов, а также файлов, создаваемых в определенных каталогах файловой системы:
File created:
UtcTime: 2018-02-08 11:50:39.893
ProcessGuid: {4e1a728b-283b-5a7c-0000-00107b384a00}
ProcessId: 2780
Image: C:\Program Files\Microsoft Office\Office15\WINWORD.EXE
TargetFilename: C:\Users\USER_NAME\Desktop\Doc1.docm
CreationUtcTime: 2018-02-08 11:50:39.893
Файлы или действия, которые ведут к изменению параметров реестра, также подлежат протоколированию. Например, ассоциация типа файла DOCM, который был впервые использован в операционной системе при создании файла Doc1.docm (см. пример выше), с приложением MS Word:
Registry value set:
EventType: SetValue
UtcTime: 2018-02-08 11:50:40.550
ProcessGuid: {4e1a728b-268d-5a7c-0000-001023de0600}
ProcessId: 3632
Image: C:\Windows\Explorer.EXE
TargetObject: \REGISTRY\USER\S-1-5-21-1626002472-1445367128-3583509536-1113\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docm\OpenWithList\a
Details: WINWORD.EXE
Для безопасника это может представлять интерес, когда вредоносный файл производит переассоциацию легально закрепленных корпоративных приложений для определенных типов файлов и тем самым «навязывает» использование уязвимого приложения. Еще пример: изменение ключей реестра операционной системы, влияющих на параметры загрузки операционной системы, чтобы снизить уровень ее защищенности после очередной перезагрузки (отключение средств антивирусной защиты или других средств защиты информации).
Централизация сбора и хранения событий
Чтобы обеспечить централизованный сбор и хранение событий из логов всех узлов сети, в том числе сократить злоумышленнику возможности очищать логи на атакуемом узле, практикуется консолидация данных на выделенном узле. На этом узле должна быть запущена служба Windows Event Collector. В итоге события будут отображаться в журнале Forwarded Events.
Нужно сделать следующие шаги на каждом рабочем месте либо с использованием групповых политик в домене:
- Добавить пользователя, от имени которого будут собираться события «COLLECTOR», в локальную группу «Event log reader».
- Выполнить от имени администратора (Run as) команду
winrm quickconfig -quiet - Выполнить от имени администратора (Run as) команду
wevtutil get-log Microsoft-Windows-Sysmon/Operational,
Получить строку «channelAccess» DATA
- Выполнить от имени администратора (Run as) команду
wmic useraccount where name='COLLECTOR' get sid
Получить UID_COLLECTOR - Выполнить от имени администратора (Run as) команду
wevtutil set-log Microsoft-Windows-Sysmon/Operational /ca: DATA(A;;0x1;;;UID_COLLECTOR)
Получить расширенные права доступа к каналу Microsoft-Windows-Sysmon/Operational для учетной записи COLLECTOR.
- Добавить данный узел в специально созданную подписку (Subscription) для централизованного сбора и хранения событий на выделенном узле с запущенной службой Windows Event Collector.
Заключение
Наша практика показала, что для полноценного анализа подозрительных событий в сети зачастую штатных средств ведения логов не хватает, особенно если мы говорим о целевых атаках на организации. В данном случае Sysmon может выступать высоко перспективным решением, возможности применения которого, на наш взгляд, будут ограничиваться только фантазией конечного специалиста по защите информации.
Напоминаем, что это полная версия статьи из журнала Хакер. Ее авторы — Александр Кузнецов и Алексей Федоров.
Комментарии (3)
vesper-bot
10.04.2018 11:03Хорошая штука, в принципе. Потом это всё собирать мониторингом куда-нибудь вне досягаемости этого сервера, и если что, можно будет восстановить, кто, куда и зачем. Ну или rsyslog'ом, у виндов есть решение для централизованного аудита. Если оно нормально работает, конечно.
opanas
10.04.2018 12:18Можно в SIEM собирать и анализировать уже там. У этих ребят есть уже готовое решение для ArcSight & Splunk. По идее, скоро и для QRadar будет.
alekbr, можешь более детально рассказать.
ildarz
Всё бы ничего, если б на этот механизм можно было всерьез полагаться. На практике имеем, что Log Forwarding постоянно отваливается, причем не генерируя никаких событий — просто перестают поступать данные с хоста, и всё. После отключения/включения подписки все восстанавливается, но толку-то…