5 базовых рекомендаций по расследованию инцидентов на Windows

Семейство операционных систем Windows на сегодняшний день является наиболее распространённой средой как для работы, так и для личного использования. Поэтому встретить вектор атак на него нередкое явление. Для корректного распознавания аномальных поведений на базовом уровне предлагаем пройтись по пунктам, которые будут полезны всем пользователям Windows:

1) Собрать все данные об успешных и неуспешных попытках входа пользователей в систему можно с помощью команды $successfulLogons = Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4624} и $failedLogons = Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4625}. Политика аудита Windows предоставляет нам два вида событий: 4624 для успешных авторизаций и 4625 для неверных попыток. Результат возвращается командой $successfulLogons или $failedLogons: 

2) Далее проверяем привилегированный вход учетных записей с помощью Get-WinEvent -LogName Security | Where-Object {$_.ID -eq4672}, в примере зададим такие фильтры как время, ID, учетная запись и домен.

Отслеживать действия, происходящие под административной учетной записью можно с помощью Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4719}. Также, важно не забыть проверить изменения настроек Windows Firewall с событиями 2004 (добавлено новое правило) и 2005 (удалено правило): Get-WinEvent -LogName "Windows Firewall With Advanced Security" | Where-Object {$_.ID -eq2004 -or $_.ID -eq 2005}

Для более детальной картины нужно задать фильтры – время, ID, наименование провайдера, какое правило было добавлено. Результат ниже:

3) Создание, удаление и модификация локальной учетной записи в системе можно проверить через команду Get-WinEvent -LogName Security | Where-Object {$_.ID -eq “ID события”}, где ID события 4720, 4726, и 4738 соответственно.

4) Доступ к ограниченным (скрытым) данным, то есть добавление, удаление и модификация файлов: Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4663}. Команда покажет нам, что была предпринята попытка получить доступ к скрытым файлам или папкам.

Также злоумышленники нередко стирают за собой следы, удаляя лог-файлы, поэтому зафиксировать эти действия можно с командой Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 1102}, где ID 1102 отвечает, что журнал аудита был очищен.

5) И, наконец, к завершению нашего базового подхода к расследованию аномального события, нужно проверить создание/завершение процессов Windows, так как они и способствуют к основной причине появления инцидента или вредоносной активности: общая команда будет Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4688}, которая отвечает за создание процессов. Команда Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4688} | Select-Object TimeCreated, ID, ProviderName, Message, MachineName, UserId, ProcessId, LevelDisplayName выдаст уже более подробную информацию: когда, кем и где был создан процесс на Windows. 

Общий вид просмотра политики создание/завершение процессов Windows:

Подробный вид просмотра политики создание/завершение процессов Windows:

Надеемся, что данный материал был полезен для вас.