Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode criar um link direto que abre a página de grafo do Microsoft Sentinel com uma consulta específica já inserida no editor e, opcionalmente, executar a consulta automaticamente quando a página for carregada. Insira esses links em runbooks, relatórios de incidentes ou outra documentação para que um respondente possa selecionar um link e ir direto para uma consulta de investigação pré-configurada no grafo correto.
Consultas de link profundo são inseridas na URL como texto Base64 (base64url) para que possam ser passadas de forma confiável como um único parâmetro de URL. A consulta não é criptografada, assinada ou compactada.
Prerequisites
Para criar um link profundo, você precisa dos seguintes pré-requisitos:
- Uma instância de grafo existente no seu locatário. Você passa o nome dele no
graphInstanceparâmetro. Para localizar nomes válidos, consulte Localizar valores de graphInstance válidos. - O texto de consulta que você deseja abrir no editor.
Para abrir uma consulta vinculada, você precisa de permissão para exibir o grafo e executar consultas. Links profundos não ignoram controles de acesso, portanto, um usuário sem essas permissões não pode acessar a consulta vinculada. Para obter mais informações, veja Introdução aos gráficos personalizados no Microsoft Sentinel.
Criar a URL do link profundo
Uma URL de link profundo consiste em vários componentes. A seguir, detalhamos a estrutura básica e cada parte:
https://security.microsoft.com/graphs?tid=<tenant-id>&graphInstance=<graph-name>&query=<encoded-query>&autoRun=<true|false>&addQuery=<true|false>
Componentes de URL
| Componente | Obrigatório | Description |
|---|---|---|
https://security.microsoft.com/graphs |
— | URL base para grafos de Microsoft Sentinel. |
tid=<tenant-id> |
No | Sua ID de locatário Azure (GUID). Se ela for omitida, o banco de dados atual será usado. |
graphInstance=<graph-name> |
Yes | Nome da instância do grafo a ser aberta, por exemplo IdentityAttackScenarioGraph. Se o valor estiver ausente ou desconhecido, nada será preenchido previamente. |
query=<encoded-query> |
No | Sua consulta GQL (Linguagem de Consulta de Grafo) codificada em base64url. Preenche o editor com a consulta decodificada. |
language=<language> |
No | Linguagem de consulta. O único valor com suporte é gql. Não diferencia entre maiúsculas e minúsculas; qualquer valor desconhecido recorre a gql. |
autoRun=<true\|false> |
No | Se a consulta será executada automaticamente quando a guia for aberta. Usa true como padrão. Somente a cadeia de caracteres false literal (que não diferencia maiúsculas de minúsculas) desabilita autorun; qualquer outro valor executa a consulta. |
addQuery=<true\|false> |
No | Se o editor deve ser preenchido previamente com a consulta. Usa true como padrão. Defina como false para deixar o editor vazio mesmo quando query estiver presente. |
Exemplo de detalhamento
O deep link a seguir abre a página de grafo do Microsoft Sentinel com uma consulta específica pré-preenchida no editor, mas não a executa automaticamente:
https://security.microsoft.com/graphs
?tid=12345678-1234-1234-1234-123456789012
&graphInstance=IdentityAttackScenarioGraph
&query=Ly8gVmlzdWFsaXplIGFueSBncmFwaApNQVRDSCAoeCktW3ldLT4oeikKUkVUVVJOICoKTElNSVQgMTAw
&autoRun=false
O query parâmetro decodifica para a seguinte consulta GQL:
// Visualize any graph
MATCH (x)-[y]->(z)
RETURN *
LIMIT 100
Colapso:
-
Base:
https://security.microsoft.com/graphs -
Locatário:
tid=12345678-1234-1234-1234-123456789012 -
Grafo:
graphInstance=IdentityAttackScenarioGraph -
Consulta:
query=Ly8gVmlzdWFsaXplIGFueSBncmFwaApNQVRDSCAoeCktW3ldLT4oeikKUkVUVVJOICoKTElNSVQgMTAw(codifica o GQL mostrado acima) -
Execução automática:
autoRun=false(a consulta não será executada automaticamente)
Codificar a consulta com base64url
Codifique o valor query seguindo as etapas abaixo. Essas etapas correspondem à função encodeQueryBase64 em QueryUtils.ts.
- O UTF-8 codifica o texto de consulta bruto em bytes.
- Codifique esses bytes em Base64.
- Substitua
+por-e/por_para tornar o valor seguro de URL. - Remova todos os caracteres
=de preenchimento finais. - Coloque o resultado na URL como parâmetro
query. A codificação de URL padrão é segura para aplicar na parte superior.
Note
O comprimento máximo do link gerado é de 7.168 caracteres. Consultas muito grandes podem não gerar um link direto funcional.
Gerar o link
O JavaScript a seguir corresponde exatamente ao codificador de aplicativos e monta um link profundo completo:
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()}`;
Condições para autorun
Para que a consulta seja executada automaticamente, todas as seguintes condições devem ser verdadeiras:
-
autoRunnão está definido como a cadeia de caracteresfalseliteral. - A consulta decodificada não está vazia.
- O
graphInstanceexiste para o locatário.
Localizar valores de graphInstance válidos
Você pode usar qualquer instância do grafo existente no seu locatário usando o nome da instância. Para encontrar os nomes disponíveis, navegue pela interface de usuário de grafos do Microsoft Sentinel ou faça uma chamada à API do Microsoft Sentinel Graph Service GET /graph-instances. Essa API retorna as instâncias de grafo disponíveis para seu locatário. Opcionalmente, você pode filtrar os resultados com ?graphTypes=. Use o nome de qualquer instância retornada.
GET https://api.securityplatform.microsoft.com/graphs/graph-instances?graphTypes=Custom
Casos de uso comuns
-
Abra o grafo e preenchi a consulta sem executá-la: Definir
autoRun=false, conforme mostrado no exemplo. Os usuários podem examinar e editar a consulta antes de ela ser executada, o que evita custos desnecessários de consulta. -
Abra o grafo sem consulta: omita o
queryparâmetro ou definaaddQuery=false. Use essa opção para direcionar os usuários a um grafo para exploração manual sem impor uma consulta predefinida. -
Direcione para um locatário específico: Inclua
tid=<tenant-id>. O link profundo é aberto em seguida no locatário correto, sem que o usuário precise mudar de locatário manualmente.