Chronicle规则中事件字段前$selection变量的作用与疑问
Chronicle规则中变量前缀的作用及常见疑问解答
一、为什么事件段的条件要给UDM字段加变量前缀?
给UDM字段(比如metadata.product_event_type)加上$selection这类变量前缀,核心是为了标记和筛选目标事件组:
- Chronicle规则的
events块本质是事件筛选逻辑,变量前缀相当于给符合条件的事件打上统一标签,后续规则的聚合、关联等逻辑可以直接通过这个变量引用这批事件,不用重复写字段判断,让规则更简洁。 - 规则引擎需要通过变量来识别你要处理的事件集合,如果直接写字段不加变量,引擎无法区分哪些是你筛选出的目标事件,后续的统计(比如
count($selection))、跨事件关联等操作就无法执行。
举个例子,$selection.metadata.product_event_type = "PROCESS_LAUNCH",这里的$selection不是修饰字段,而是把所有满足该字段条件的事件归到这个变量集合里。
二、whoami_execution规则中$selection的作用
以常见的whoami执行检测规则为例,写法通常是:
events: $selection.metadata.product_event_type = "PROCESS_LAUNCH" $selection.target.process.command_line = "*whoami*"
这里的$selection不是对应单个字段,而是代表同时满足两个条件的同一批事件:
- 同一个变量名的多个条件是逻辑与(AND)关系,只有当某条事件同时符合
PROCESS_LAUNCH事件类型,且命令行包含whoami时,才会被纳入$selection集合。 - 变量承载的是符合条件的事件列表,不是单个字段值,它是对一批满足所有关联条件的事件的统一指代。
内容的提问来源于stack exchange,提问作者Nosail
相关产品推荐
相关产品推荐

