ESET Inspect – 目录

规则语法

规则是使用基于 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 的“检测”详细信息中

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"/>

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

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