ESET PROTECT – 目录

规则语法

快速链接: <definition> , <operations>, <description>, <actions>

规则是使用基于 XML 的语言定义的一组表达式。ESET PROTECT Web 控制台已包含一组预定义的规则,但您可以添加和编辑您自己的规则。

规则的一般主体结构为:

Definition 标记

ancestor - 可以采用附加属性:

•distance - 指定与匹配的祖先的当前进程的实际距离,例如,1 是父进程,2 是祖父进程,依此类推。如果未指定,则该属性将对照所有进程祖先进行比较

•unique - 启用 ancestor 标记以删除祖先树中的重复进程。例如,恶意软件会为同一进程创建多个实例以逃避检测(资源管理器 -> cmd -> cmd -> cmd -> 恶意软件),而此属性将消除这些重复项(资源管理器 -> cmd -> 恶意软件)

Process 和 parentprocess

process 部分使安全工程师可以将事件范围限制在特定进程;因此,您可以编写诸如“Outlook 创建 EXE 文件”之类的规则。如果进程元素为空,则会针对所有进程评估 parentprocess 和 operations。

parentprocess 部分与进程类似,但允许安全工程师测试父进程属性。这将启用诸如“由 Word 启动的 PowerShell 连接到 Internet”之类的规则。

process、parentprocess、ancestor 和 operation 使用表达式元素来描述逻辑表达式,该逻辑表达式通过计算看看是否应触发检测。表达式由条件和逻辑运算符组成。条件检查某些属性的值,逻辑运算符将这些条件组合成逻辑表达式。

表达式示例:

Operations

operations 部分定义进程执行的哪些操作会引发指标。如果为空,则在进程生成事件时触发该指标。

操作是使用具有 type 属性的操作元素和表达式元素定义的。

<operation type="WriteFile">Expression</operation>

有关受支持操作的完整列表,请参阅操作主题。

Operator

支持的逻辑运算符包括:AND、OR 和 NOT。逻辑运算符可以嵌套。因此,一个逻辑运算符可以是另一个逻辑运算符的参数。除了逻辑运算符之外,条件元素也可以用作逻辑运算符的参数。可以使用 operator 标记,如以下示例所示:

条件元素由三部分组成:

•操作的参数或进程的属性

•规则创建者指定的值

•值和属性之间的关系

属性按层次结构分组为“组件”。

严重性分为三个级别:1–39 > Info,40–69 > Warning,70–100 > Threat。

属性类型及其关系(条件属性)包括:

 

is(not)set

is(not)

is(not)empty

(not)starts

(not)contains

(not)ends

less, lessOrEqual, greater, greaterOrEqual

String

✔

✔

✔

✔

✔

✔

 

Int

✔

✔

 

 

✔

 

✔

Value

✔

✔

✔

 

 

 

 

Bool

✔

✔

 

 

 

 

 

Date

✔

✔

 

 

 

 

✔

字符串集

✔

 

✔

 

✔

 

 

IPv4 地址

✔

✔

✔

 

 

 

 

IPv6 地址

✔

✔

✔

 

 

 

 

IPv4 地址集

✔

 

✔

 

✔

 

 

IPv6 地址集

✔

 

✔

 

✔

 

 

Description 标记

description 是必需的,并且必须包含名称和类别,但其余部分是可选的。它有助于定义下面列出的字段,因为它们出现在详细信息中:

name – 规则的名称。它显示在规则列表中。

category - 允许您对规则进行分类。您可以指定您自己的类别。

explanation - 解释触发规则的原因。

os - 包含要应用规则的操作系统。可能的值为:Windows, Linux, OSX, ANY.

mitreattackid - 包含 MITRE ATT&CK® 的 ID

maliciousCauses - 描述触发规则的事件或变动的恶意诱因

benignCauses - 描述触发规则的事件或变动的善意诱因

recommendedActions - 描述安全工程师要采取的建议操作。

guid - 用于内部规则。外部规则已自动生成 guid。它用于在导出/导入过程中唯一标识规则。

maliciousTarget 标记

您可以使用 maliciousTarget 标记指定默认情况下将受自定义响应操作影响的目标。例如,当您选择块可执行文件时,更改将取决于 maliciousTarget。它不会更改 Actions 标记的行为。可能的值为 current、module、none 和 parent。

maliciousProcess 标记已替换为 maliciousTarget 标记。虽然它仍获得旧有支持,但我们建议使用 maliciousTarget 标记。

Actions 标记

Actions 标记允许您指定在触发规则时执行的一组操作。

您可以将操作置于单个操作元素中:

<action name="BlockProcessExecutable"/>

或者将多个操作元素堆叠到一个操作元素中(如以下示例所示):

可以通过单个规则触发多个操作。