
Модуль PowerShell для облачной криминалистики, предназначенный для запуска сценариев охоты на угрозы по данным из Azure и O365

Модуль PowerShell для запуска сценариев (playbooks) охоты за угрозами на данных из Azure и O365 в целях облачной криминалистики.
В Exchange Online требуются следующие роли для получения доступа только для чтения к UnifiedAuditLog: View-Only Audit Logs или Audit Logs.
Эти роли назначаются по умолчанию группе ролей Compliance Management в Центре администрирования Exchange.
ПРИМЕЧАНИЕ: если вы аналитик безопасности, специалист по реагированию на инциденты или охотник за угрозами, и ваша организация НЕ предоставляет вам доступ только для чтения к этим журналам аудита, вам следует серьёзно задуматься о стратегии обнаружения и реагирования!
Дополнительная информация:
ПРИМЕЧАНИЕ: ваш администратор может проверить эти требования, выполнив
Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"в облачной оболочке вашего арендатора Azure или в локальном экземпляре PowerShell, подключённом к Azure.
Пожалуйста, убедитесь, что у вас установлен ExchangeOnlineManagement (EXOv2). Инструкции можно найти в интернете или обратиться к моей небольшой базе знаний по ссылке the soc analyst scrolls
Import-Module .\source\AzureHunter.psd1Всё, что вам нужно сделать:
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter
Единый журнал аудита содержит действия пользователей, групп, приложений, доменов и каталогов, выполняемые в Центре администрирования Microsoft 365 или на портале управления Azure. Полный список событий Azure AD см. в списке RecordTypes.
UnifiedAuditLog — отличный источник облачной криминалистической информации, поскольку он содержит огромное количество данных о различных типах облачных операций, таких как ExchangeItems, SharePoint, Azure AD, OneDrive, управление данными, предотвращение потери данных, оповещения Защитника Windows и события карантина, события аналитики угроз в Microsoft Defender для Office 365, и этот список можно продолжать!
AzureHunter реализует полезную логику для обеспечения максимальной плотности журналов при извлечении и экспорте из журналов аудита Azure и O365. Для этого в каждом цикле (пакете) выполняются две различные операции:

Рекомендуется выполнить Connect-ExchangeOnline перед запуском любых команд AzureHunter. Программа проверяет наличие активного удалённого сеанса и пытается подключиться, но некоторые версии PowerShell этого не позволяют, и вам в любом случае нужно сделать это самостоятельно.
AzureHunter имеет две основные команды: Search-AzureCloudUnifiedLog и Invoke-AzHunterPlaybook.
Цель Search-AzureCloudUnifiedLog — реализовать сложную логику для обеспечения максимального процента извлечения записей UnifiedAuditLog из Azure. По умолчанию он экспортирует извлечённые и дедуплицированные записи в CSV-файл.
Цель Invoke-AzHunterPlaybook — предоставить гибкий интерфейс для сценариев (playbooks) охоты, хранящихся в папке playbooks. Эти сценарии разработаны так, чтобы каждый мог внести свой вклад со своими аналитическими методами и идеями. На данный момент разработаны только два очень простых сценария: AzHunter.Playbook.Exporter и AzHunter.Playbook.LogonAnalyser. Exporter отвечает за экспорт записей после применения операций дедупликации и сортировки данных. LogonAnalyser находится в бета-режиме и извлекает события, в которых свойство Operations равно UserLoggedIn. Это пример того, что можно сделать с помощью сценариев и как легко их создать.
При запуске Search-AzureCloudUnifiedLog вы можете передать список сценариев для выполнения для каждого пакета журналов. Search-AzureCloudUnifiedLog передаёт пакет сценариям через Invoke-AzHunterPlaybook.
Наконец, Invoke-AzHunterPlaybook можно использовать отдельно. Если у вас есть экспорт записей UnifiedAuditLog, вы можете загрузить их в массив PowerShell и передать этой команде, указав соответствующие сценарии.
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose
Эта команда:
AggregatedResultsFlushSize определяет пакеты записей, которые будут обрабатываться нижестоящими сценариями. Мы указываем AzureHunter обрабатывать пакет записей, когда общее количество достигает 5000. Таким образом, вы можете получать результаты на лету, не дожидаясь часами, пока огромный диапазон записей будет экспортирован в CSV-файлы.