You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用KQL在MS Sentinel中查询未关联事件的SecurityAlert完整记录

解决方法

原代码问题分析

  • toscalar() 仅返回单个标量值,无法提取所有警报ID的集合,这是你只得到一个ID的核心原因
  • 表名拼写错误:误用了不存在的 SecurityAlerts,正确表名为 SecurityAlert
  • 针对数组类型的 AlertIDs,直接使用 contains 无法正确匹配,需先展开数组提取所有关联的警报ID

正确KQL查询语句

// 提取所有已关联到事件的警报ID集合
let AssociatedAlertIDs = 
    SecurityIncident
    | mv-expand AlertIDs to typeof(string)  // 展开数组,将每个AlertID转为单独行
    | project AlertID = tostring(AlertIDs)  // 确保ID为字符串类型,匹配SecurityAlert的SystemAlertId
    | distinct AlertID;  // 去重,得到唯一的已关联ID集合

// 筛选SecurityAlert中未关联到事件的完整记录
SecurityAlert
| where SystemAlertId !in (AssociatedAlertIDs)
// 若需要调整输出字段,可添加project语句,例如:| project SystemAlertId, AlertName, Severity

关键逻辑说明

  • mv-expand:将SecurityIncident中数组类型的AlertIDs拆分成多行,每行对应一个独立的警报ID,解决数组无法直接匹配的问题
  • distinct AlertID:去除重复的关联警报ID,避免重复判断
  • !in:判断SystemAlertId是否不在已关联的ID集合中,精准筛选出未关联的警报记录

内容的提问来源于stack exchange,提问作者Max V Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:20:29