KQL

KQL – Guia Básico – Extent

Nível: Iniciante | Tempo de leitura: 5 minutos

Continuando nossa série sobre KQL com foco em Cyber Security, vamos falar hoje como usar o Extent. Outros capítulos podem ser vistos em nossa categoria de KQL do site.

Você pode usar o comando extent para criar novas colunas calculadas e anexa-las ao conjunto de resultados, com isso, ele adiciona uma nova coluna ao conjunto de resultados de entrada que irá aparecer como a última coluna do lado direito da pesquisa.

Exemplo de syntax:

T| extend [ColumnName | (ColumnName[, …])=Expression [, …]

É possível também usar o extend em múltiplas colunas ao mesmo tempo.

SecurityAlert
| where TimeGenerated > ago(7d)
| extend severityOrder = case (
AlertSeverity == "High", 3,
AlertSeverity == "Medium", 2,
AlertSeverity == "Low", 1,
AlertSeverity == "Informational", 0,
-1)

Vamos ver como isso se aplicaria à uma regra de detecção do Azure Sentinel. Aqui, usamos o extend para criar duas novas colunas HTTP_Status_Code e Domain:

let timeframe = 1d;

let DomainList = dynamic(["tor2web.org", "tor2web.com"]);

Syslog
| where TimeGenerated >= ago(timeframe)
| where ProcessName contains "squid"
| extend
HTTP_Status_Code = extract("(TCP_(([A-Z]+)…-9]{3}))",8,SyslogMessage),
Domain = extract("(([A-Z]+ [a-z]{4…Z]+ )([^ :\/]*))",3,SyslogMessage)
| where HTTP_Status_Code == "200"
| where Domain contains "."
| where Domain has_any (DomainList)

Referências:

Use the extend operator – Learn | Microsoft Docs

extend operator – Azure Data Explorer | Microsoft Docs

Tiago Souza

Tiago Souza

Security Technical Specialist
Cyber Security Technical Specialist at Microsoft | Cloud Security & Threat Protection | Blog content creator at CyberGeeks.Cloud - https://linktr.ee/tiagovf