Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

行动

操作是工作流的构建基块。每个操作都有特定的用途,例如调用 HTTP 端点或将事件发布到 JSA 管道。

中止

“中止”操作将中止工作流。

工作流会立即中止,出错。如果终止标志为 false,则工作流将在下次重复时恢复,否则它将停止,直到重新启动事件收集服务或编辑日志源。

下表显示了中止操作的参数。

表 1:中止操作参数

名字

数据类型

必填

笔记

原因

字符串

是的

工作流中止的原因。此字符串在日志源状态中显示为错误消息。

终止

布尔

指示是否终止事件检索循环。默认值为 False。

仅在极端情况下使用此参数。该参数将日志源置于错误状态并完全停止它。仅当事件收集服务重新启动或编辑日志源时,日志源才会重新启动。

您可以使用 terminate 参数在身份验证失败时停止工作流,以防止帐户锁定。

XML 示例:

此操作将停止工作流的当前执行,但在下次重复执行时再次运行。在清除或更新日志源状态之前,它包含以下错误消息:

The password for <user value> has expired.

添加

“添加”操作向“状态”中的数组添加一个值。

下表显示了“添加”操作的参数。

表 2:添加操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

数组的位置。路径必须引用数组值。

价值

字符串/数字

是的

 

XML 示例:

此操作将字符串“V2hhdCBhIHdvbmRlcmZ1bCB3b3JsZC4uLg==”添加到位置 /tokens 的状态。

调用端点

CallEndpoint 操作调用 HTTP 终结点。

下表显示了“调用终结点”操作的参数。

表 3:调用端点操作参数

名字

数据类型

关系

必填

笔记

方法

枚举

属性

是的

可能的值:

  • 获取

  • 发布

  • 删除

  • 补丁

Url

字符串

属性

是的

终结点的基 URL(不包括查询参数)。

保存路径

字符串

属性

响应存储为 JSON 对象,格式如下:

                         /response { status_code: 200, status_message: "OK", headers: { "Date": "Tue, 16 Jun 2020 17:31:29 GMT", "Content-Type": "application/json", }, body: ... }

如果未提供 savePath 值,则终结点响应不会保存在默认位置。如果要存储响应,则必须提供 savePath 值。

SSL 配置

SSLConfiguration

子元素

有关更多信息,请参阅 SSLConfiguration

认证

认证

子元素

身份验证对象必须是以下类型之一:

查询参数

查询参数

子元素

可以有多个查询参数。更多信息,请参见 查询参数

requestHeaders

请求标头

子元素

可以有多个请求标头。有关详细信息,请参阅 请求标头

身体

请求正文

URL 编码表单请求正文

XmlRequestBody

子元素

正文必须是以下类型之一:

下表显示了 SSLConfiguration 的参数。

表 4:SSL 配置结构

名字

数据类型

必填

笔记

协议

字符串

要使用的 SSL 协议。默认值为 TLSv1.2。

允许不受信任的服务器证书

布尔

指示是否允许不受信任的服务器证书。默认值为 False。

XML 示例:

此示例允许不受信任的服务器证书。

基本身份验证的参数如下表所示。

表 5:基本身份验证结构

名字

数据类型

必填

用户

字符串

是的

密码

字符串

XML 示例:

此示例设置身份验证用户名和密码。

下表显示了持有者身份验证的参数。

表 6:持有者身份验证结构

名字

数据类型

必填

笔记

令 牌

字符串

是的

访问令牌。

XML 示例:

此示例设置用于身份验证的访问令牌。

下表显示了摘要式身份验证的参数。

表 7:摘要式身份验证结构

名字

数据类型

必填

用户

字符串

是的

密码

字符串

是的

领域

字符串

Nonce

字符串

算法

字符串

Qop

字符串

中国康塞

字符串

随机计数

字符串

XML 示例:

此示例设置用于身份验证的用户名和密码。

下表显示了 Akamai EdgeGrid 身份验证的参数。

表 8:Akamai EdgeGrid 身份验证结构

名字

数据类型

必填

访问令牌

字符串

是的

客户端令牌

字符串

是的

客户端密钥

字符串

是的

下表显示了 Hawk 身份验证的参数。

表 9:Hawk 身份验证结构

名字

数据类型

必填

密钥标识

字符串

是的

关键

字符串

是的

算法

字符串

是的

散 列

字符串

内线

字符串

应用程序

字符串

DLG

字符串

下表显示了查询参数的参数。

表 10:查询参数结构

名字

数据类型

必填

笔记

名字

字符串

是的

 

价值

字符串

是的

 

省略如果空

布尔

如果值为空,则省略该参数。

XML 示例:

此示例设置查询的名称和值,如果值为空,则省略该参数。

下表显示了请求标头的参数。

表 11:请求头结构

名字

数据类型

必填

笔记

名字

字符串

是的

 

价值

字符串

 

省略如果空

布尔

如果值为空,则省略标头。

XML 示例:

此示例设置请求标头的名称和值。

下表显示了请求正文的参数。

表 12:请求正文结构

名字

数据类型

必填

笔记

类型

字符串

是的

必须是有效的 HTTP 请求内容类型。例如,application/json。

编码

字符串

是的

必须是有效的 HTTP 正文编码类型。例如,UTF-8。

内容

字符串

是的

<RequestBody> 元素的开始和结束标记之间包括正文内容。

XML 示例:

此示例设置请求正文的内容类型、正文编码和内容。

下表显示了 UrlEncodedFormRequestBody 的参数。

表 13:UrlEncodedFormRequestBody 结构

名字

数据类型

必填

笔记

参数

映射<字符串、字符串>

是的

名称/值对的集合。

XML 示例:

此示例设置 URL 编码表单请求正文的名称/值对。

下表显示了 XmlRequestBody 的参数。

表 14:XmlRequestBody 结构

名字

数据类型

必填

笔记

类型

字符串

必须是有效的 HTTP 请求内容类型。例如,application/json。

编码

字符串

必须是有效的 HTTP 正文编码类型。例如,UTF-8。

内容

Xml

是的

正文的实际 XML 内容必须作为子元素嵌套在 <XmlRequestBody> 元素中。

XML 示例:

此示例设置 XML 请求正文的内容。

XML 示例:

此操作调用使用请求标头和请求正文向 https://${/host}/auth/oauth2/token 发出 POST 请求,并将响应保存在 /get_access_token 的状态中。

清除状态

ClearStatus 操作可清除协议实例的运行时状态。这将清除日志源的状态。

XML 示例

此操作将清除为日志源显示的任何信息、警告或错误消息。

复制

“复制”操作将状态的一部分复制到另一部分。

下表显示了“复制”操作的参数。

表 15:复制操作参数

名字

数据类型

必填

笔记

源路径

JPath

是的

要复制的路径。此路径可以是静态路径,也可以是查询。

目标路径

JPath

是的

路径复制到的位置。此路径将覆盖此位置存储的任何内容。

XML 示例

此操作将对象从 /events 处的数组( type_id 为 4)复制到位置 /interestEvents 的数组中,并擦除以前存储在那里的任何内容。

创建 JWTA 令牌

JWTAccessToken 操作会创建一个 JSON Web 令牌 (JWT)。

有关详细信息,请参阅 JWT 文档。

下表显示了“创建 JWTAccessToken”操作的参数。

表 16:创建 JWTA 令牌操作参数

名字

数据类型

关系

必填

笔记

键值对

子元素

是的

构成 JWT 标头的名称/值对集。更多信息,请参见 表17

负载

键值对

子元素

是的

构成 JWT 有效负载的名称/值对集。更多信息,请参见表18

秘密

字符串

子元素

是的

在 V1 中,密钥必须是 Base64 PKCS8 PEM 文件。在 V2 或更高版本中,它可以是 PVKS1 或 PVKS8 PEM 文件,并且可以作为纯文本或 Base64 编码输入。更多信息,请参见 表19

保存路径

JPath

属性

是的

存储此值的状态中的位置。

表 17:标头结构

名字

数据类型

描述

必填

笔记

名字

字符串

标头的名称。

是的

 

价值

字符串

标头的值。

 
表 18:有效负载结构

名字

数据类型

描述

必填

笔记

名字

字符串

有效负载的名称。

是的

 

价值

字符串

有效负载的值。

 
表 19:机密结构

名字

数据类型

描述

必填

笔记

价值

字符串

机密的值。

 

XML 示例

此操作使用提供的标头、有效负载和机密值创建 JWT,并将其保存在位置 /access_token 的状态中。

删除

“删除”操作从状态中删除元素。

下表显示了“删除”操作的参数。

表 20:删除操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

要删除的元素的位置。

XML 示例

此操作将删除位置 /token 的状态中存在的值

做而做

DoWhile 操作在条件为真时循环一系列操作。

在循环结束时评估条件。即使条件从不为 true,内容也会执行一次。此操作不同于 While 操作,后者在循环开始时评估条件。

下表显示了 DoWhile 操作的参数。

表 21:执行操作参数

名字

数据类型

必填

笔记

条件

JPath

是的

确定是否继续循环的条件。

行动

JPath 条件

是的

必须是解析为值 或 falsetrue JPath 表达式。对状态的引用不应在JPath条件的表示范围内${}。见JPath

XML 示例

此操作将执行嵌套的“调用终结点”操作和“后事件”操作。如果位置 /next_page 的 State 中存在值,则条件为 true,将执行嵌套操作,并执行条件检查,直到条件为 false。

Foreach

ForEach 操作为数组或对象中的每个值执行一系列操作。在 V1 中,该操作仅适用于数组中的每个值。

下表显示了 ForEach 操作的参数。

表 22:ForEach 操作参数

名字

数据类型

描述

必填

笔记

项目

JPath

存储迭代的当前项的路径。

是的

存储迭代的当前项的路径。

项目

JPath

状态中要迭代的数组。

是的

状态中要迭代的数组。

行动

行动[]

要为每个迭代执行的操作序列。

是的

要为每个迭代执行的操作序列。不能为空。

XML 示例

/events 的状态中存在一个对象数组。此操作循环访问数组,并为数组中的每个对象执行嵌套的 PostEvent 操作。

格式日期

“格式化日期”操作将 UNIX 时间戳的格式设置为日期。

下表显示了“格式化日期”操作的参数。

表 23:格式化日期操作参数

名字

数据类型

必填

笔记

模式

字符串

是的

有关可能的值,请参阅 JavaDateTimeFormatter

时区

字符串

有关可能的值,请参阅 JavaDateTimeFormatter

时间

数量

格式化的时间,以自纪元以来的毫秒为单位。默认值为当前时间。

保存路径

JPath

是的

存储结果的位置。

XML 示例

此操作提取当前存储在 /bookmark 状态中的 UNIX 时间戳,并将其转换为 UTC 时区中采用以下格式的有意义的时间戳。

重新格式化的值保存在 /formatted_bookmark 的“状态”中。

生成HMAC

“生成HMAC”操作将 HMAC 哈希应用于给定输入。

下表显示了“生成HMAC”操作的参数。

表 24:生成HMAC 操作参数

名字

数据类型

必填

笔记

算法

枚举

是的

可能的值:

  • MD5

  • SHA1

  • SHA256

  • SHA512

秘密密钥

字符串

是的

要使用的机密。

消息

字符串

是的

要处理的输入消息。

保存格式

字符串

是的

可能的值:

  • 基数64

  • 十六进制

保存路径

JPath

是的

存储结果的位置。

XML 示例

此操作将生成存储在状态 /value 中的值的 HMAC 哈希。哈希是使用 SHA1 算法和提供的 密钥以十六进制格式生成的,并保存在位置 /signature 的状态中。

If/ElseIf/Else

如果满足条件,则 If/ElseIf/Else 操作将执行操作。

If/ElseIf/Else 操作基于一个或多个互斥条件执行嵌套操作:

  • 始终检查“如果”条件。

  • 仅当不满足所有先前的“If”和“ElseIf”条件时,才会检查“ElseIf”条件。

  • “否则”操作没有条件;如果未满足上述“If”或“ElseIf”条件,则会自动执行“Else”操作。

下表显示了 If 操作的参数。

表 25:If 操作参数

名字

数据类型

必填

笔记

条件

JPath

是的

要评估的条件。不能为空。

行动

行动[]

是的

条件为 true 时要执行的操作序列。不能为空。

下表显示了 ElseIf 操作的参数。

表 26:ElseIf 操作参数

名字

数据类型

必填

笔记

条件

JPath

是的

要评估的条件。不能为空。

行动

行动[]

是的

条件为 true 时要执行的操作序列。不能为空。

下表显示了 Else 操作的参数。

表 27:Else 操作参数

名字

数据类型

必填

笔记

行动

行动[]

是的

在上述“If”或“ElseIf”条件均不成立时要执行的操作序列。不能为空。

XML 示例

在此示例中,将执行以下操作:

  • 如果位置 /status 处的 State 值为 200,则仅执行将状态设置为 INFO“成功”消息的 SetStatus 操作。

  • 如果 /status 值为 401,则仅执行将状态设置为错误“身份验证失败”消息的 SetStatus 操作。

  • 如果 /status 值为 404,则仅执行将状态设置为错误“不存在路由”消息的 SetStatus 操作。

  • 如果 /status 值为其他任何值,则仅执行最终的 SetStatus 操作。

初始 化

“初始化”操作初始化状态中的值。

如果该位置中存在某个值,则新值不会覆盖现有值。

表 28:初始化操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

要初始化的位置。

价值

字符串/数字

是的

要设置的值。

XML 示例

此操作会将值“1”添加到位置 /书签的“状态”(如果该位置不存在任何值)。如果该位置确实存在某个值,则该操作不执行任何操作。

日志

“日志”操作会记录故障排除消息。

故障排除消息通常存储在 /var/log/qradar.errorvar/log/qradar.log/var/log/qradar.java.debugJSA 日志文件中

下表显示了日志操作的参数。

表 29:日志操作参数

名字

数据类型

必填

笔记

类型

枚举

是的

日志类型。

可能的值:

  • 信息

  • 警告

  • 错误

  • 调试

消息

字符串

是的

要记录的消息。

XML 示例

此操作将 DEBUG 级别日志写入包含指定消息的 JSA 日志。

合并

“合并”操作将数组合并到数组中,或将对象合并到对象中。

下表显示了“合并”操作的参数。

表 30:合并操作参数

名字

数据类型

必填

笔记

源路径

JPath

是的

要从中复制的对象或数组。

目标路径

JPath

是的

要合并到的对象或数组。

XML 示例:

此操作将数组中位于状态中位置 /events 的type_id值为 4 的所有对象复制到位于 /累积事件处的数组。 /累积事件 中已有的任何对象都将被保留。

解析日期

ParseDate 操作将日期解析为 UNIX 时间戳。

Java DateFormatter支持ParseDate操作。一些 ParseDate 操作参数直接传递给 Java。

下表显示了“分析日期”操作的参数。

表 31:解析日期操作参数

名字

数据类型

必填

笔记

模式

字符串

是的

要使用的格式设置模式。

有关可能的值,请参阅 JavaDateTimeFormatter

时区

字符串

要使用的时区。

有关可能的值,请参阅 JavaDateTimeFormatter

日期

字符串

是的

要分析的格式化日期。

保存路径

JPath

是的

存储结果的位置。

XML 示例:

此操作将存储在位置 /formatted_time 的状态中的时间戳转换为 UNIX 时间戳,并将其存储在位置 /时间戳的状态中。当前时间戳必须采用 yyyy-MM-dd'T'HH:mm:ss'Z' 格式,并表示协调世界时 (UTC) 区域中的时间。

活动后

PostEvent 操作将事件发布到 JSA 事件管道,从而允许分析、关联和存储事件。

下表显示了“事件后”操作的参数。

表 32:事后操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

要发布的元素的路径。

编码

字符串

事件的编码。

可能的值:

  • UTF-8

  • 基数64

  • 十六进制

默认值为 UTF-8。

字符串

是的

事件的源(主机)。

源值用于将事件管道中的事件路由到正确的日志源。该事件与现有日志源的日志源标识符匹配。

如果不存在具有匹配日志源标识符的日志源,则存储事件而不进行分析,并将事件的副本发送到日志源自动检测引擎。

如果从事件中自动检测到日志源,则会在创建日志源时将其日志源标识符设置为源值。

XML 示例:

此操作将存储在 State at /event 中的字符串作为事件发布到 JSA 事件管道中。如果日志源的日志源标识符与 /host 中存储的值匹配,则事件将路由到该日志源。

活动后

PostEvents 操作将事件数组发布到 JSA 事件管道,从而允许分析、关联和存储事件。

下表显示了“发布事件”操作的参数。

表 33:事后操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

要发布的数组元素的路径。

编码

字符串

事件的编码。

可能的值:

  • UTF-8

  • 基数64

  • 十六进制

默认值为 UTF-8。

字符串

是的

事件的源(主机)。

源值用于将事件管道中的事件路由到正确的日志源。该事件与现有日志源的日志源标识符匹配。

如果不存在具有匹配日志源标识符的日志源,则存储事件而不进行分析,并将事件的副本发送到日志源自动检测引擎。

如果从事件中自动检测到日志源,则会在创建日志源时将其日志源标识符设置为源值。

XML 示例:

此操作将存储在 State at /events 中的字符串数组作为一系列事件发布到 JSA 事件管道中。如果日志源的日志源标识符与 /host 中存储的值匹配,则事件将路由到该日志源。

正则表达式捕获

RegexCapture 操作使用正则表达式 (regex) 捕获字符串的一部分。

下表显示了正则表达式捕获操作的参数。

表 34:正则表达式捕获操作参数

名字

数据类型

必填

笔记

模式

Regex

是的

正则表达式模式。

该模式只能包含一个捕获组。

正则表达式模式必须是 Java 类型的正则表达式。有关更多信息,请参见 类模式

价值

字符串

是的

要从中捕获的值。

保存路径

JPath

是的

存储结果的位置。

XML 示例:

此操作将模式中定义的正则表达式运行到在 State 中存储为 /data 的字符串。捕获组值存储在位置 /id 的“状态”中。提供的正则表达式捕获后面的一个或多个数字 "id="

设置

“设置”操作在“状态”中设置一个值。

如果该位置存在某个值,则新值将覆盖现有值。

下表显示了“设置”操作的参数。

表 35:设置操作参数

名字

数据类型

必填

笔记

路径

JPath

是的

存储值的位置。

价值

字符串/数字

是的

要设置的值。

XML 示例:

此操作将 time() 函数返回的值添加到位置 /current_time 的状态。如果该位置存在某个值,则会覆盖该值。

设置状态

操作设置协议实例的运行时状态。此信息显示在日志源的状态中。

下表显示了“设置状态”操作的参数。

表 36:设置状态操作参数

名字

数据类型

必填

笔记

类型

枚举

是的

状态类型。

可能的值包括:

  • 信息

  • 警告

  • 错误

消息

字符串

是的

状态消息。

XML 示例:

此操作将协议实例的运行时状态设置为 ERROR,并显示一条消息,指出: The password has expired此信息在 QRadar 日志源管理 应用程序和 API 中显示为日志源状态。

睡眠

“睡眠”操作将工作流挂起指定的时间量。

下表显示了“睡眠”操作的参数。

表 37:睡眠操作参数

名字

数据类型

必填

笔记

时间

数量

是的

等待的时间量(以毫秒为单位)。

XML 示例:

此操作会导致工作流暂停执行 5 秒钟。

分裂

“拆分”操作拆分字符串。

例如,如果 API 以长字符串形式返回一组事件,其中每个事件都由逗号或其他分隔符分隔,则可以拆分字符串以使用 PostEvent 或 PostEvents 操作。

下表显示了拆分操作的参数。

表 38:拆分操作参数

名字

数据类型

必填

笔记

价值

字符串

是的

要拆分的值。

分隔符

字符串

分隔符是一个正则表达式。

默认为“换行符”。如果分隔符提供了正则表达式元素,则它必须是 Java 类型的正则表达式。

保存路径

JPath

是的

存储结果的位置。

XML 示例:

此操作将字符串 "value 1,value 2,value 3" 拆分为由三个字符串 "value1""value2""value3"组成的数组。字符串存储在位置 /values 的状态中。

While 操作在条件为真时循环一系列嵌套操作。

条件在循环开始时进行评估,因此,如果条件从不为 true,则永远不会执行其嵌套操作。此操作与 DoWhile 操作不同,在 DoWhile 操作中,条件在循环结束时进行评估。

下表显示了 While 操作的参数。

表 39:虽然操作参数

名字

数据类型

必填

笔记

条件

JPath

是的

确定是否继续循环的条件。循环是所有嵌套操作的执行。

行动

JPath 条件

是的

要执行的操作的顺序。

必须是解析为值 或 falsetrue JPath 表达式。对状态的引用不应在JPath条件的表示范围内${}。见JPath

XML 示例:

如果位置 /next_page 的“状态”中存在值,则此操作将执行嵌套的 CallEndpoint 操作。While 操作执行嵌套的 CallEndpoint 操作,直到 /next_page 值为 null。如果 /next_page 始终为 null,则不执行嵌套操作。

XPathQuery

XPathQuery 操作对 XML 文档值执行 XPath 查询。

如果 API 返回 XML 格式的响应,则可以从响应中提取特定值或一组值。可以使用 XPath 提取值。

下表显示了 XPathQuery 操作的参数。

表 40:XPathQuery 操作参数

名字

数据类型

必填

笔记

xml路径

JPath

是的

XML 文档在“状态”中的位置。

xPathQuery

Xpath

是的

 

单身 人士

布尔

将结果解释为单个值而不是数组。

默认值为 False。

保存路径

JPath

是的

存储结果的位置。

XML 示例:

此操作对存储在 /xml_events 状态中的 XML 文档执行 XPath 查询"//event/id/text()",并将其作为单个值存储在位置 /event/id 的状态中。