Kusto查询创建检测规则报错:需包含用户/设备标识列的解决方案咨询
解决Kusto高级狩猎检测规则报错问题
修改后的查询代码
AlertEvidence | where Title == "Impossible travel activity" | summarize Adresy = make_list_if(RemoteIP, isnotempty(RemoteIP)), Konto = make_set(AccountName) by AlertId, Timestamp | where not((array_length(Adresy)<=2) and Adresy has_any ("*.*.*.*")) // 解包用户账号数组,生成单个账号行 | mv-expand Konto to typeof(string) // 重命名回AccountName,方便系统识别 | rename Konto to AccountName // 投影需要的列,满足检测规则的标识要求 | project AlertId, Timestamp, AccountName, Adresy
问题解决说明
原查询找不到AccountName的原因
你用make_set(AccountName)聚合后,原AccountName列已经被合并成名为Konto的数组列,系统自然无法识别原AccountName列。满足检测规则标识要求的方法
用mv-expand Konto to typeof(string)把Konto数组拆分成多行,每行对应一个账号值,再通过rename把列名改回AccountName,这样系统就能识别到明确的用户标识列,解决报错。检测规则转换说明
修改后的查询已经包含AccountName这个用户标识列,同时保留了AlertId、时间戳等关键信息,直接将该查询导入检测规则即可满足平台要求。
内容的提问来源于stack exchange,提问作者user164948
相关产品推荐
相关产品推荐

