本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
响应编排提供了一些系统基础组件,帮助用户定义剧本输入输出参数,构建基础剧本的流程。
开始/结束
每个流程必须有开始和结束节点,可以只有一个开始,但有多个结束。
开始节点默认使用event作为节点名称,所以在剧本编排的过程中,不要把组件的名称设置为event。
开始节点参数说明如下:
输入参数:即配置触发剧本的条件。选择不同的条件,在调试时输入参数向导会随之变化。
输出参数:定义剧本执行结束后,输出的字段。可供后续节点使用,也可通过setOutput动作提供给被其他剧本引用。
获取开始节点输出参数的语法格式:${event.参数路径}。
开始节点除去自定义的输出参数还提供默认的系统参数,请参见剧本中的系统参数(开始节点默认参数)。
输出网关
网关一般用来控制工作流的执行分支和流程的。执行流程如下图:
网关名称 | 执行逻辑 | 使用说明 |
默认输出网关 | 直接从一个节点输出多个下游分支,执行所有分支。 | 无需选择组件,使用节点连接线即可完成设置。 说明 不支持条件配置。 |
单路输出(排它网关) | 流程有多个分支时,执行满足条件的第一个分支,只有一条分支执行。 | 需选择单路输出组件并完成相关条件配置。 说明 提供默认ELSE条件,表示除了自定义条件外的其他条件。 |
多路输出 | 流程有多个分支时,执行满足条件的所有分支。 | 需选择多路输出组件并完成相关条件配置。 |
默认输出网关
配置操作说明
单击节点,使用连接线直接将当前组件节点与下游分支节点串联起来即可,不支持条件配置。
单路输出(排它网关)
配置操作说明
在基础节点区域,将单路输出组件拖至流程编辑器画布中。
单击单路输出组件,在右侧基础信息页签,点击配置按钮进入条件配置页。配置完成后,单击确定,保存条件以供条件分支选择。
根据业务场景设置单击ADD IF或AND ELSE IF,增加一组条件。每一组条件对应一条流程分支,条件配置说明请参见组件条件配置说明。可修改条件名称,方便理解和区别条件内容。
配置网关连接线。
将鼠标放置在单路网关图标上,单击连接点将连接线连接至分支节点上。
单击连接线,在右侧配置页下拉列表中选择步骤2配置的条件。
重要默认提供ELSE条件,表示除了自定义条件外的其他条件。
不同的连接线请选择不同的条件。
多路输出
配置操作说明
在基础节点区域,将多路输出组件拖至流程编辑器画布中。
单击多路输出组件,在右侧基础信息页签,点击配置按钮进入条件配置页。配置完成后,单击确定,保存条件以供条件分支选择。
根据业务场景设置单击ADD IF,增加一组条件。每一组条件可对应多条流程分支,条件配置说明请参见组件条件配置说明。可修改条件名称,方便理解和区别条件内容。
配置网关连接线。
将鼠标放置在多路网关图标上,单击连接点将连接线连接至分支节点上。
单击连接线,在右侧配置页下拉列表中选择步骤2配置的条件。
说明不同连接线刻可选择相同的条件。
输入网关
当前支持以下两种输入网关类型。在分支正常执行的情况下,两种网关功能相同,区别在于分支异常执行的处理。
网关名称 | 执行逻辑 | 使用说明 |
默认输入网关 | 等上游所有分支执行结束后,继续执行。即使某个分支报错,后续也会继续执行。 | 无需选择组件,使用节点连接线即可完成设置。 |
汇聚网关 | 等待所有的上游节点都执行完成后,判断是否所有“必须”的上游分支都被执行到,如果结果为“是”,触发后续节点,否则节点执行失败。 |
|
默认输入网关
配置操作说明
单击节点,使用连接线直接将当前组件节点与下游分支节点串联起来即可。
汇聚网关
配置操作说明
在基础节点区域,将多路汇聚组件拖至流程编辑器画布中。
配置网关连接线。
单击节点,使用连接线直接将当前组件节点与多路汇聚组件串联起来即可。
单击连接线,在右侧配置页下拉列表中选择“必须”和“非必须”。
说明若选择“必须”则表示当前链路节点必须执行,否则后续节点将不会被触发。
子流程
子流程同普通流程一样,也需要开始和结束节点。子流程可将复杂流程分组展示,使流程更加清晰易懂同时支持在子流程上执行循环。
子流程和父流程是在同一个变量空间中,父流程的数据(包括输入,上游节点的返回,变量),都可以在该子流程中使用,子流程中对于变量的修改也会反应到父流程的结果中。
在子流程的外部的后续节点中,可以得到子流程内部节点最后一次执行的返回结果。
子流程循环配置说明
单击开启循环按钮。
循环模式: Do-while: 先执行循环体,执行结束后在判断条件;while-DO:先判断条件,符合后在执行。
最大循环次数:设置最大循环次数,防止死循环。
设置循环退出条件:子流程每次执行的所有内部节点的参数都可以作为判断条件,参数配置参见组件条件配置说明。
循环结束判断逻辑
每次循环都是以子流程中该次调用所有的执行节点都结束作为该次循环结束。
例如:在如下的场景中,“通知2”节点执行完毕,到达了结束节点,但是“延迟”节点还在执行中,该次循环会等到所有的可执行节点都结束为止,才开始下一轮的循环调用。
循环默认参数
子流程提供默认参数可获取当前循环的次数,以供子流程中的流程组件使用。
循环次数:从1开始计数,格式为${子流程的名称.curLoop}。
循环下标:从0开始计数,格式为${子流程的名称.curIndex}。
示例:
在子流程中NotifyMessage组件编写邮件内容时利用循环下标,获取开始节点数组参数值。
组件条件配置说明
在单路输出网关、多路输出网关、子流程的循环退出、filter组件等场景下,都需要通过配置条件进行判断,从而完成对应的功能。SOAR提供了一套通用页面来完成如下配置,规则如下:
序号 | 说明 |
1-逻辑运算符 | AND:所有的条件都要满足。 OR:满足条件之一即可。 重要 逻辑运算符只能决定同一组内部的不同规则的逻辑关系。 |
2-取反开关 | 对当前组的条件判断取反。 |
3-增加组内规则 | 增加组内一条规则,组内多条规则的逻辑关系由左上角1-逻辑运算符决定。 |
4-增加条件组 | 单击增加一组筛选条件。 重要 不同组之间的条件固定为AND的关系,不受1-逻辑运算符影响。 |
5-条件字段 | 支持输入表达式、常量,通常为前置节点的输出字段。 |
6-条件判断规则 | 支持字符串(String)、数字(Number)、观察列表(Dataset)的IN、=等操作。具体说明参考下文filter组件。 |
7-条件值 | 支持输入表达式、常量。 |
条件配置示例
以上图为例,当node节点中name
为john或alice且age
在 12 到 20 之间(含边界值)将判定为符合条件。
条件判断规则说明
规则名称 | 规则说明 | 备注 |
NOT IN IP Dataset | 不在IP观察列表中。 | 观察列表需要在“云安全中心-威胁分析与响应-接入中心-观察列表”中配置后才可以选择。 |
IN IP Dataset | 在IP观察列表中。 | |
NOT IN Dataset | 不在观察列表中。 | |
IN Dataset | 在观察列表中。 | |
String| 等于 | 等于。 | 无 |
String| 不等于 | 不等于。 | 无 |
String| 包含 | 包含。 | 示例:abc 包含 bc。 |
String| 不包含 | 不包含。 | 示例:abc 不包含 d。 |
String| 以此开头 | 以此开头。 | 示例:abc 以 ab 开头。 |
String| 以此结尾 | 以此结尾。 | 示例:abc 以 bc结尾。 |
String| 不以此结尾 | 不以此结尾。 | 示例:abc 不以 ab结尾。 |
String| 正则匹配 | 正则匹配。 | 示例:abcabc 匹配 (abc)+。 |
String| 非正则匹配 | 非正则匹配。 | 示例:abab 不匹配 (abc)+。 |
String| 为空 | 是空字符串。 | 空字符串、null、NULL都认为是空字符串。 |
String| 不为空 | 不是空字符串。 | 无 |
Number| 等于 | 等于。 | 无 |
Number| 不等于 | 不等于。 | 无 |
Number| 大于 | 大于。 | 无 |
Number| 大于等于 | 大于等于。 | 无 |
Number| 小于 | 小于。 | 无 |
Number| 小于等于 | 小于等于。 | 无 |
Number| 范围 | 数字条件值是否字在配置范围内。格式为“数值,数值”。 | 示例:1处于 -1,5的范围。 |