Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создание и совместное использование запросов Advanced Hunting в Microsoft Defender не только повышает эффективность ваших собственных операций безопасности, но и способствует более широкому сообществу пользователей Defender. В этом руководстве описан процесс создания или изменения существующих запросов и их публикации в разделе Запросы сообщества на портале Microsoft Defender.
Выполнение действий, описанных в этой статье, гарантирует, что ваши запросы будут доступны всем клиентам, что помогает другим пользователям более эффективно обнаруживать угрозы при содействии совместной работы и совместного обучения в экосистеме безопасности.
Предварительные условия
Учетная запись GitHub.
Процедуры, описанные в этой статье, используют Visual Studio Code (VS Code) для вилки, клонирования, создания и синхронизации запросов к репозиторию GitHub Sentinel Azure и из нее. Для всех этих задач доступны различные средства с разными инструкциями.
Подписка На Microsoft 365, которая включает расширенную охоту. Например:
- Microsoft Defender XDR
- Microsoft Sentinel
- Microsoft Defender для Office 365 (план 2)
Шаг 1. Вилка репозитория Azure Sentinel GitHub для учетной записи GitHub
Так как у вас нет разрешений администратора на репозиторий Azure Sentinel GitHub, необходимо создать вилку репозитория, и единственным доступным назначением является учетная запись GitHub.
Откройте репозиторий Azure Sentinel GitHub по адресу https://github.com/Azure/Azure-Sentinel/.
Выберите Fork (Fork), чтобы создать собственную копию репозитория. На открывающейся странице Создание вилки просмотрите следующие параметры по умолчанию:
- Владелец: убедитесь, что отображается имя учетной записи GitHub.
- Имя репозитория: проверьте значение Azure-Sentinel.
- Описание: проверьте текст описания.
- Скопируйте только ветвь main. Убедитесь, что выбран этот параметр.
Завершив работу на странице Создание вилки, выберите Создать новую вилку.
После успешного создания вилки вы перейдете к URL-адресу Azure-Sentinel вилки репозитория в учетной записи GitHub:
https://github.com/<YourGitHubAccountName>/Azure-Sentinel
. На этой странице выберите Код. На вкладке Локальный в открывающемся раскрывающемся списке выберитеКопировать URL-адрес в буфер обмена на вкладке HTTPS раздела Клонирование . Скопированный URL-адрес:
https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git
.
Шаг 2. Клонирование репозитория GitHub на локальный компьютер
После того как вы создадите вилку репозитория Azure Sentinel GitHub к учетной записи GitHub, необходимо создать локальный клон репозитория на компьютере, чтобы он работал.
Откройте VS Code. Если вы еще не находитесь в чистом сеансе без открытия других файлов, выберите Файл>Создать окно или нажмите клавиши CTRL+SHIFT+N.
Выберите Элемент управления версиями или нажмите клавиши CTRL+SHIFT+G.
Во всплывающем окне Система управления версиями выберите Клонировать репозиторий.
В открывшемся диалоговом окне вставьте
https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git
URL-адрес, скопированный на шаге 1.3, в поле, а затем выберите Клонировать из URL-адреса , который появится под полем.В открывшемся диалоговом окне Выберите папку для клонирования
https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git
найдите или создайте локальную родительскую папку (например,C:\GitHub
) для клонированного вилки репозитория, а затем выберите Выбрать как назначение репозитория. Локальный клон вилки репозитория содержится в папке<ParentFolder>\<RepositoryName>
(например,C:\GitHub\Azure-Sentinel
).Подождите несколько минут, пока завершится клонирование репозитория Azure-Sentinel.
После завершения клонирования откроется диалоговое окно Открыть репозиторий клонирования? Выберите Открыть , чтобы открыть клонированные репозитории в VS Code (например, папку
C:\GitHub\Azure-Sentinel
и ее содержимое).Если вы недавно создали структуру папок на локальном диске, вы можете получить значение Доверяете авторам файлов в этой папке?, которое ссылается на папку
Azure-Sentinel
(вы доверяете им).Чтобы доверять любым будущим репозиториям, клонированные в родительской папке (например,
C:\GitHub
), выберите Доверять авторам всех файлов в родительской папке<ParentFolderName>
.Чтобы продолжить, выберите Да, я доверяю авторам.
Шаг 3. Создание рабочей ветви в клонированного репозитория на локальном компьютере
После нажатия кнопки Да, я доверяю авторам, VS Code откроется в Обозреватель представлении с выбранной Azure-Sentinel
папкой. Все файлы и папки из родительского репозитория можно просмотреть на сайте GitHub.
По умолчанию ветвь master (main) активна при открытии клонированного вилки репозитория. Не делайте обновления в ветви master. Вместо этого создайте рабочую ветвь в локально клонируемой вилке копии репозитория, из нее будет работать.
В VS Code выберите имя активной ветви в левом нижнем углу (что, скорее всего, master).
В открывшемся диалоговом окне выберите
Создать новую ветвь из..., а затем выберите master (другие доступные ветви также отображаются в списке).
В открывшемся диалоговом окне Укажите имя новой ветви введите подходящее имя для ветви (например,
new-mdo-queries
), а затем нажмите клавишу ВВОД, чтобы подтвердить.
Активная ветвь изменяется с master на новую созданную ветвь.
Чтобы разделить работу с разными запросами, можно создать несколько рабочих ветвей с разными именами, повторив предыдущие шаги в этом разделе.
Перейдите к следующему разделу, чтобы начать создавать или изменять запросы.
Шаг 4. Создание запросов Advanced Hunting в рабочей ветви в клонированного репозитория на локальном компьютере
При открытии VS Code для создания или обновления запросов всегда убедитесь, что требуемая рабочая ветвь является активной (не master):
Если это не так, выберите имя активной ветви в левом нижнем углу, а затем выберите рабочую ветвь в разделе ветвей .
Теперь вы можете создавать запросы охоты в рабочей ветви. Например, следующий запрос язык запросов Kusto (KQL) представляет собой базовый отчет о получателях, получающих больше всего фишинговых сообщений.
EmailEvents | where ThreatTypes has "Phish" and EmailDirection == "Inbound" | summarize count() by RecipientEmailAddress | sort by count_ | top 15 by count_
Протестируйте запрос на странице Расширенная охота на портале Defender по , https://security.microsoft.com/v2/advanced-hunting чтобы убедиться, что запрос не содержит ошибок и возвращает данные должным образом.
В представлении Обозреватель VS Code перейдите к одной из следующих родительских папок в зависимости от использования и доступности запроса на портале Defender:
-
\Azure-Sentinel\Hunting Queries\Microsoft 365 Defender\Email Queries
: доступно в разделе "Запросы сообщества " на вкладке Запросы страницы"Расширенный поиск " на портале Defender по адресу https://security.microsoft.com/v2/advanced-hunting. -
\Azure-Sentinel\Solutions\Microsoft Defender XDR\Hunting Queries\Email Queries
: доступно в виде запросов Sentinel (решение Microsoft Defender XDR).
В большинстве случаев в конечном итоге следует создать файл запроса в обоих расположениях, чтобы можно было использовать запрос в обоих сценариях.
-
В VS Code создайте YAML-файл в соответствующей подпапке этих расположений. Есть много вложенных папок на выбор. В нашем примере логическое имя и расположение нового файла запроса находится
Top users receiving phish.yaml
во вложенной папкеPhish
.Дополнительные сведения о требованиях и структуре YAML-файла см. в руководстве по стилю запросов на вики-сайте репозитория Azure-Sentinel.
Используйте командлет New-Guid в Windows PowerShell, чтобы создать уникальный идентификатор GUID для свойства id файла запроса (например, 36f68d74-3e45-44d8-9915-0d35b7567bcf).
Готовый
Top users receiving phish.yaml
файл выглядит примерно так:id: 36f68d74-3e45-44d8-9915-0d35b7567bcf name: Friendly name describing the query description: | A short description of what the query does. description-detailed: | A much longer description of the intention of the query within Defender for Office 365. requiredDataConnectors: - connectorId: MicrosoftThreatProtection dataTypes: - EmailEvents tactics: - InitialAccess relevantTechniques: - T1566 query: | EmailEvents | where ThreatTypes has "Phish" and EmailDirection == "Inbound" | summarize count() by RecipientEmailAddress | sort by count_ | top 15 by count_ version: l.0.0
После завершения и сохранения файла запроса в одном расположении скопируйте файл в другое расположение, чтобы можно было использовать запрос как в расширенной охоте, так и в Microsoft Sentinel.
Шаг 5. Синхронизация изменений с локального компьютера с вилкой в учетной записи GitHub
После добавления файлов запросов .yaml в клонированную репозиторий на локальном компьютере необходимо синхронизировать эти обновления обратно с вилкой копии репозитория Sentinel Azure в учетной записи GitHub.
В VS Code выберите представление Системы управления версиями .
В открывшемся диалоговом окне в разделе Изменения перечислены все файлы, измененные в текущей ветви:
Если щелкнуть имя файла, откроется измененный файл с выделенным измененным текстом. Вы можете просмотреть изменения на наличие проблем или ошибок, прежде чем продолжить.
В поле Сообщение введите краткое описание изменений. Используйте краткий язык. Например, добавлен запрос к списку основных получателей фишинга. По завершении нажмите кнопку Зафиксировать.
Если вы впервые синхронизируете рабочую ветвь и ее обновления с вилкой в учетной записи GitHub, вы получите команду Опубликовать ветвь , которую следует выбрать.
В будущем при синхронизации локальных изменений в рабочей ветви с вилкой в учетной записи GitHub вы получите синхронизировать изменения .
Шаг 6. Создание запроса на вытягивание из вилки в учетной записи GitHub в общедоступный репозиторий azure Sentinel
После синхронизации обновлений с вилкой копии репозитория в учетной записи GitHub создайте запрос на вытягивание, чтобы объединить эти изменения обратно в общедоступный репозиторий Azure Sentinel GitHub.
Совет
Пока запрос на вытягивание не был объединен, можно повторить шаги 4 и 5 , чтобы обновить исходные файлы в разветвленной копии репозитория, что изменяет активный запрос на вытягивание.
Перейдите по ссылке из
https://github.com/<YourGitHubAccountName>/Azure-Sentinel
шага 1.При необходимости обновите страницу, чтобы увидеть уведомление о том, что рабочая ветвь, синхронизированная на предыдущем шаге, недавно изменилась. Выберите Сравнить & запрос на вытягивание. ветвь внесены последние изменения.
Следуйте указаниям, приведенным в описании, и ответьте соответствующим образом.
Если необходимо внести дополнительные изменения, можно выбрать Создать черновик запроса на вытягивание , чтобы указать, что запрос на вытягивание не готов к проверке и утверждению. Однако обычно можно выбрать Создать запрос на вытягивание , чтобы продолжить.
Кто-то с разрешениями на слияние запроса на вытягивание будет проверять ваши изменения. Рецензент может запросить дополнительные изменения в соответствии со стандартами репозитория. С помощью шагов 4 и 5 можно внести запрошенные изменения на локальном компьютере и синхронизировать их обратно в вилку, чтобы они были включены в запрос на вытягивание.
См. также
- Azure Sentinel Community — начало работы руководство.
- Структура шаблона запроса — руководство.