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: