选择选项卡
ESET Inspect On-Prem – 目录

规则语法

规则是使用基于 XML 的语言定义的一组表达式。

ESET Inspect Web 控制台已包含一组预定义的规则,但您可以添加和编辑您自己的规则。

规则的一般主体结构为:

Definition 标记

ancestor - 可以采用附加属性:

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

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

Process 和 parentprocess

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

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

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

表达式示例:

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

字符串

 

整型

 

 

 

 

 

 

 

布尔值

 

 

 

 

 

日期

 

 

 

 

字符串集

 

 

 

 

IPv4 地址

 

 

 

 

IPv6 地址

 

 

 

 

IPv4 地址集

 

 

 

 

IPv6 地址集

 

 

 

 

Description 标记

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

name - 规则的唯一名称。它显示在规则列表中。

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

explanation - 解释触发规则的原因

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

mitreattackid - 包含 MITRE ATT&CK® 的 ID

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

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

recommendedActions - 描述安全工程师要采取的建议操作。用户可以使用以下 Markdown:

[navigation:computer_details] - 向用户显示的默认名称将为 Computer Details

[navigation:executable_details] - 向用户显示的默认名称将为 Executable Details

[navigation:process_details] - 向用户显示的默认名称将为 Process Details

[remediation:shutdown] - 向用户显示的默认名称将为 Shutdown Computer

[remediation:reboot] - 向用户显示的默认名称将为 Reboot Computer

[remediation:kill] - 向用户显示的默认名称将为 Kill Process

[remediation:block] - 向用户显示的默认名称将为 Block Hash

[misc:download] - 向用户显示的默认名称将为 Download file

此外,每个命令都可以显示替代文本而不是默认文本。若要指定要显示的替代文本,请在命令后面加上竖线符号和文本。例如,[navigation:computer_details|GoToComDet] 将显示 GoToComDet 而不是默认的计算机详细信息。有关其他使用示例,请在审核主窗口的检测规则选项卡中搜索规则 c0601。

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

maliciousTarget 标记

您可以使用 maliciousTarget 标记指定将受用户操作影响的目标。例如,当您选择块可执行文件时,更改将取决于 maliciousTarget。如果将 maliciousTarget 指定为 currentparent,则块可执行文件用户操作将分别更改为 blockProcessExecutable 或 blockParentProcessExecutable。它不会更改 Actions 标记的行为。可能的值为 currentmodulenoneparent

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

Actions 标记

Actions 标记允许您指定在触发规则时执行的一组操作。 有关受支持操作的完整列表,请参阅操作主题。

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

<action name="BlockProcessExecutable"/>

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

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