规则剖析

规则的最基本部分为事件选择、组密钥、全状态规则的时间窗口、规则响应、 激活时间间隔以及生命周期操作。规则还包括表达式和变量。表达式是包含定制逻辑的代码,可将该逻辑添加至规则。

事件选择

事件选择条件将确定由规则接受以进行处理的事件。 <eventSelector> 元素定义规则的事件选择条件。除由定时器模式定义的规则外,事件 选择适用于所有其他规则。由于定时器规则不处理事件,因此不包含事件选择条件。

组密钥

通常情况下,每个活动的规则都具有一个正在活动关联技术引擎中运行的规则 实例或副本。然而,同一规则有时为不同的事件组所需,而不同的事件组一般与不同的资源组相关联。组密钥是用于指定规则针对每组共享公共特性的事件创建不同规则实例(或其副本)的方法。

组密钥将作为事件 选择的附加形式。如果使用组密钥定义了某个规则,且该规则接收到带有组密钥定义的特性 的事件,则该事件将被发送至正在处理共享该特性的事件的规则实例。例如,您可定义用于收集类型为Audit Failure的所有安全性事件的规则,并将组密钥定义为某个事件的主机名属性。现在,该规则可多次使用,针对主机名属性的每个唯一值而运行该规则的不同副本。还可监视接收Audit Failure事件的所有系统,以便确定每个主机名在 2 分钟的 时间段内发生的此类事件是否超过 10 个。

<groupingKey> 元素定义规 则的组密钥,并对由收集、计算、重复、序列和阈值模式定义的规则有效。

全状态规则的时间窗口

由于全状态规则与特定时间段内发生的 多个事件相关联,因此全状态规则的基本部分为 <timeWindow> 元素定义的时间窗口。 时间窗口指定时间段,在该时间段内,全状态规则正在进行处理以与其模式发生匹配。

规则响应

规则响应操作定义在规则完成其处理后要采取的操作。 下列每个语言元素都定义不同类型的规则响应操作:
  • <onDetection> 中的 <action>
  • <onNextEvent> 中的 <action>
  • <onTimeOut> 中的 <action>
  • <onTimeWindowComplete> 中的 <action>
对规则可用的规则响应操作的类型取决于规则模式。

激活时间间隔

激活时间间隔定义规则何时处于活动状态、何时处于不活动状态。<activationInterval> 元素定义规则的激活时间间隔。

可在离 散时间点上激活或停用规则,或者由特定事件对其进行激活或停用。

如果将规则指定为在离散时间点上以及由特定事件进行激活或停用,则该规则将在该时间点或在接收到事件时(取决于哪个发生在先)被激活或停用。然而在该情况下,在该规则的生命周期内可能由多个事件对其进行激 活或停用。例如,规则可能由某个事件激活,然后被停用,接着在某个定义的时间点上被激 活,然后再次被停用,随后再由另一个事件激活。

<activationByGroupingKey> 元素是包含于 <activationInterval> 元素中的一个元素。<activationByGroupingKey> 元素包含用于指定事件的元素,这些事件可激活和停用 由 <groupingKey> 元素定义的规则实例。

生命周期操作

生命周期操作定义在规则生命周期的以下 4 个主要 阶段要采取的操作:装入、激活、停用和卸装。

<lifeCycleActions> 元素包含用于定义 下列操作的下列元素:
  • <onLoad> 中的 <action>
  • <onActivation> 中的 <action>
  • <onDeactivation> 中的 <action>
  • <onUnload> 中的 <action>