Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете создать глубокую ссылку, открывающую страницу графа Microsoft Sentinel с определенным запросом, уже имеющимся в редакторе, и при необходимости выполняет запрос автоматически при загрузке страницы. Встраивайте эти ссылки в рунбуки, отчеты об инцидентах или другую документацию, чтобы специалист по реагированию мог выбрать ссылку и сразу перейти к предварительно настроенному запросу для расследования в нужном графе.
Запросы глубокой ссылки внедрены в URL-адрес в виде текста Base64 (base64url), чтобы они могли надежно передаваться в качестве одного параметра URL-адреса. Запрос не шифруется, не подписывается или сжимается.
Prerequisites
Чтобы создать глубокую ссылку, вам потребуется следующее:
- Экземпляр графа, который существует в клиенте. Вы передаете его имя через параметр
graphInstance. Сведения о поиске допустимых имен см. в разделе "Поиск допустимых значений graphInstance". - Текст запроса, который нужно открыть в редакторе.
Чтобы открыть связанный запрос, необходимо разрешение на просмотр графа и выполнение запросов. Глубокие ссылки не обходят средства контроля доступа, поэтому пользователь без необходимых разрешений не может получить доступ к запросу, на который ведёт ссылка. Дополнительные сведения см. в разделе "Начало работы с пользовательскими графами" в Microsoft Sentinel.
Создание URL-адреса глубокой ссылки
URL-адрес глубокой ссылки состоит из нескольких компонентов. Ниже описаны основные структуры и каждая часть:
https://security.microsoft.com/graphs?tid=<tenant-id>&graphInstance=<graph-name>&query=<encoded-query>&autoRun=<true|false>&addQuery=<true|false>
Компоненты URL-адреса
| Компонент | Required | Description |
|---|---|---|
https://security.microsoft.com/graphs |
— | Базовый URL-адрес для графов Microsoft Sentinel. |
tid=<tenant-id> |
No | Идентификатор клиента Azure (GUID). Если значение не указано, используется текущий арендатор. |
graphInstance=<graph-name> |
Yes | Имя открытого экземпляра графа, например IdentityAttackScenarioGraph. Если значение отсутствует или неизвестно, ничего не заполнено. |
query=<encoded-query> |
No | Ваш запрос Graph Query Language (GQL), закодированный в формате base64url. Предварительно заполняет редактор декодированным запросом. |
language=<language> |
No | Язык запросов. Единственным поддерживаемым значением является gql. Без учета регистра; любое неизвестное значение возвращается в gql. |
autoRun=<true\|false> |
No | Выполняется ли запрос автоматически при открытии вкладки. По умолчанию — true. Только литеральная строка false (без учёта регистра) отключает автоматическое выполнение; любое другое значение запускает запрос. |
addQuery=<true\|false> |
No | Следует ли предварительно заполнить редактор запросом. По умолчанию — true. Установите значение false, чтобы редактор оставался пустым, даже если присутствует query. |
Пример разбора
Следующая глубокая ссылка открывает страницу графа Microsoft Sentinel с определенным запросом, предварительно заполненным в редакторе, но не выполняет его автоматически:
https://security.microsoft.com/graphs
?tid=12345678-1234-1234-1234-123456789012
&graphInstance=IdentityAttackScenarioGraph
&query=Ly8gVmlzdWFsaXplIGFueSBncmFwaApNQVRDSCAoeCktW3ldLT4oeikKUkVUVVJOICoKTElNSVQgMTAw
&autoRun=false
Параметр query декодирует следующий запрос GQL:
// Visualize any graph
MATCH (x)-[y]->(z)
RETURN *
LIMIT 100
Разбивка:
-
Базовая база:
https://security.microsoft.com/graphs -
Арендатор:
tid=12345678-1234-1234-1234-123456789012 -
Граф:
graphInstance=IdentityAttackScenarioGraph -
Запрос:
query=Ly8gVmlzdWFsaXplIGFueSBncmFwaApNQVRDSCAoeCktW3ldLT4oeikKUkVUVVJOICoKTElNSVQgMTAw(кодирует GQL, показанный выше) -
Автоматическое выполнение:
autoRun=false(запрос не будет выполняться автоматически)
Кодирование запроса с помощью base64url
query Кодируйте значение следующими шагами. Эти шаги соответствуют функции encodeQueryBase64 в QueryUtils.ts.
- UTF-8 кодирует необработанный текст запроса в байты.
- Base64 кодирует эти байты.
- Замените
+на-, а/— на_, чтобы сделать значение безопасным для URL. - Удалите все завершающие символы-заполнители
=. - Поместите результат в URL как параметр
query. Стандартная кодировка URL-адресов безопасна для применения сверху.
Note
Максимальная длина созданной ссылки составляет 7 168 символов. Очень большие запросы могут не создавать рабочую глубокую ссылку.
Создание ссылки
Следующий код JavaScript в точности соответствует кодировщику приложения и формирует полную глубокую ссылку:
function encodeQueryBase64(query) {
const bytes = new TextEncoder().encode(query);
const binary = String.fromCharCode(...bytes);
return btoa(binary)
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/g, '');
}
const base = 'https://security.microsoft.com/graphs';
const params = new URLSearchParams({
graphInstance: 'IdentityAttackScenarioGraph',
query: encodeQueryBase64('MATCH (x)-[y]->(z)\nRETURN *\nLIMIT 100'),
autoRun: 'true',
});
const deeplink = `${base}?${params.toString()}`;
Условия автоматического запуска
Для автоматического выполнения запроса все следующие условия должны иметь значение true:
-
autoRunне задано для литеральной строкиfalse. - Декодированные запросы не пусты.
-
graphInstanceсуществует для арендатора.
Найдите допустимые значения graphInstance
Вы можете использовать любой имеющийся в вашем арендаторе экземпляр графа по имени экземпляра. Чтобы найти доступные названия, либо просмотрите интерфейс графов Microsoft Sentinel, либо вызовите API службы графов Microsoft Sentinel GET /graph-instances. Этот API возвращает экземпляры графа, доступные вашему клиенту. При необходимости можно отфильтровать результаты с помощью ?graphTypes=. Используйте имя любого возвращённого экземпляра.
GET https://api.securityplatform.microsoft.com/graphs/graph-instances?graphTypes=Custom
Распространенные варианты использования
-
Откройте график и предварительно заполните запрос, не выполняя его: Установите
autoRun=false, как показано в примере. Пользователи могут просматривать и изменять запрос перед выполнением, что позволяет избежать ненужных затрат на запрос. -
Откройте граф без запроса: опустите
queryпараметр или задайте.addQuery=falseИспользуйте этот параметр для перенаправления пользователей в граф для ручного изучения без применения предопределенного запроса. -
Выбрать определенного арендатора: Включите
tid=<tenant-id>. Затем глубокая ссылка открывается в правильном арендаторе без необходимости вручную переключаться между арендаторами.