剧本配置使用指南

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

剧本是指预先定义好的逻辑流程或脚本,用于对安全事件进行识别、分类、判断和响应。剧本包括一系列步骤,用于执行特定的操作,以确定是否存在安全威胁,如何响应和缓解威胁。剧本可以根据不同的安全事件类型和级别进行定制和配置,以适应不同的安全需求。通过使用剧本,响应编排可以帮助您提高安全响应的效率和一致性。

前提条件

已购买威胁分析与响应日志接入流量。具体操作,请参见购买并开通威胁分析与响应

剧本类型说明

云安全中心提供两种类型的剧本:

  • 预定义剧本:云安全中心结合常见的安全威胁场景及解决方案,内置了一批剧本,无需配置您可直接使用。同时可复制预定义剧本另存为您的自定义剧本,并在此基础上根据实际情况进行调整修改,降低自定义剧本的配置难度。

  • 自定义剧本:在面临复杂、个性化程度较高的安全威胁场景时,云安全中心提供了灵活性的自定义剧本。您可借助流程编辑器对各类组件进行自由配置,轻松实现自动化的安全处理方案。

自定义剧本配置流程图

image

流程编辑器简介

剧本流程通过可视化流程编辑器完成创建、修改、调试及发布,以下为流程编辑器的主要信息:

剧本编辑

序号

说明

1-菜单栏

  • 保存:在画布中编辑剧本后,单击保存安全,将当前的剧本保存为草稿版

    重要
    • 若不保存,直接退出会丢失已编辑的流程信息。

    • 草稿版为短期状态,使用正式版回滚后,可能会覆盖已保存的草稿版。如果需要将剧本持久化保存,请单击保存并发布

  • 保存并发布:保存剧本,并将剧本发布为正式版。您可以在剧本的详情页面查看剧本的版本信息。

    说明

    发布后的剧本才可在自动响应规则中使用。

  • 调试:在页面下方的调试区域输入参数,可调试当前剧本能否正常运行,帮助您及时调整流程配置。

    断点调试:在画布编辑组件时,您可以选中组件后单击断点调试图标,为该组件添加断点,此时运行调试时,系统仅执行至该节点的上游节点。

  • 检测:检查剧本流程是否异常,仅当检测无异常时才可发布剧本。

  • 查看线上:查看当前剧本最新发布的正式版。

  • 更多:可进行保存为JSON、导入JSON、保存为图片、撤销、删除等操作。

2-基础节点

与外部无关,每个流程都需要的基础组件。每个流程必须有一个开始节点作为起始点,可以有多个结束节点。

说明

您可以将鼠标移动到节点图标上,查看组件节点的使用介绍。

3-组件配置

  • 基础编排组件:包含IT类通用组件,例如写入数据库、向SLS写入数据、调用Python 3.0进行脚本处理等。

    说明

    Python 3.0代码运行在归属于当前阿里云账号的内置的Python3.9 版本的容器环境中,容器0.25vCPU、内存256MB,脚本最大执行时长为600s。

  • 安全处置组件:包含阿里云安全产品的组件,例如安骑士结束进程、阿里云防火墙封禁组件等。

  • 自定义剧本:包含当前账号创建的所有自定义剧本。

  • 预定义剧本:包含所有系统预置的预定义剧本。

4-画布区域

画布区域,您可以将需要添加的组件拖动至画布区域,在画布中根据组件之间的逻辑关系进行连接。

  • 在画布区域双击开始节点(开始节点图标),可设置开始节点的基本信息以及流程的输入方式和触发方式。

  • 在画布区域双击基础编排组件或安全处置组件节点,可设置组件的基本信息、执行条件、执行动作等信息。

  • 在画布区域双击结束节点(结束节点图标),可设置结束节点的基本信息。

5-调试区域

单击调试或者右下角的展开图标,展开调试区域,可调试剧本能否正常运行。

  • 输入参数(调试):在该页签下,输入调试参数,然后单击调试

    调试参数仅支持标准JSON格式。您可以单击输入参数向导,查看输入的参数示例。

  • 执行日志:运行剧本后,可单击执行日志,查看剧本的运行结果、详情等信息。

  • 历史调试记录:查看历史调试记录。

自定义剧本配置步骤

步骤一:创建剧本基本信息

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择威胁分析与响应 > 响应编排

  3. 自定义剧本页签,单击新增剧本

  4. 新增剧本面板,填写剧本名称剧本描述,单击确定

说明

也可在预定义剧本页签,选择合适的剧本单击操作列复制,将预定义剧本复制为一个新的自定义剧本。

步骤二:配置剧本流程

  1. 按步骤一创建剧本基本信息完毕后,会自动跳转至剧本流程配置页面。也可从自定义剧本列表页,单击操作列编辑按钮,进入配置页面。

  2. 配置开始节点

    1. 剧本编辑页面,单击开始节点,在配置面板,单击配置输入输出

      说明

      每个流程必须要有开始和结束节点,每个流程只能有一个开始节点,但可有多个结束节点。

      image

    2. 配置输入输出面板,配置剧本输入和输出参数,具体信息请参见系统组件

      • 输入参数:即配置触发剧本的条件。选择不同的条件,在调试时输入参数向导会随之变化。

      • 输出参数:定义剧本执行结束后,输出的字段。可供后续节点使用,也可通过setOutput动作提供给被其他剧本引用。

  3. 2-基础节点3-组件配置区域选择合适的组件剧本,并配置相关参数。本文以DataFormat组件为例,其他组件参数配置说明请参见流程组件说明

    重要
    • 开始节点使用event作为节点名称,所以在剧本编排的过程中,不要把组件的名称设置为event。

    • 您可根据业务需求选择多个流程组件,并设定各组件上下文联系。

    1. 在左侧基础编排组件中选择DataFormat组件,选择合适的动作例如:joindata、convertToJSON等后,将其拖拽至画布中。

    2. 在画布区域单击选择的DataFormat组件或在基础信息配置页动作配置模块单击image进入参数配置页面,配置相关参数,参数配置请参见DataFormat组件

      • 支持填写常量、变量参数、系统参数、表达式等,更多信息请参见组件参数及节点执行流程

      • 也可手动填写参数配置,也可在输入框节点下拉列表中,选择节点参数生成对应的语法。如下图所示:

        image

  4. 完成组件配置后,请及时单击左上角菜单栏保存按钮。

    警告

    若不保存,直接退出会丢失已编辑的流程信息。

步骤三:流程调试

剧本设置完成后,需要进行调试以验证流程的正确性,确保流程节点的顺利运行。推荐进行断点调试即在关键节点设置断点,运行测试时仅执行到断点节点即停止。

说明
  • 若流程中有多个分支,只会调试有断点的分支。

  • 暂不支持多断点调试,若分支上有多个断点,只会执行到最后一个断点。

  1. 设置断点(可选)。单击流程节点的image按钮即可将当前节点设置为断点。

    image

  2. 单击左上角image调试按钮,并在输入参数(调试)区域填写输入参数。

    说明

    可单击输入参数向导获取参数示例,根据开始节点配置剧本触发条件不同,调试参数配置也不相同,具体信息请参见开始组件说明

  3. 单击输入参数(调试)区域的调试按钮。

    image

  4. 查看调试结果。

    可通过单击节点的image按钮或调试区域的执行日志,查看节点详细输入输出数据和执行状态。输出参数页签部分参数说明如下:

    参数名称

    说明

    datalist

    结果预览数据。

    重要

    最多只显示3条预览数据,全量数据请从完整输出结果页签查看。

    total_data_successful

    执行过程中处理成功的数据量。

    total_data

    执行过程中处理总数据量。

    total_exe_successful

    当前动作运行成功的次数。

    total_exe

    当前动作运行总次数。

    total_data_with_dup

    执行过程中处理成功后去重后的数据量

    image

步骤四:保存并发布

调试通过后,单击左上角菜单栏保存并发布按钮,将剧本转为正式版。发布后的剧本才能被自动响应规则、手动安全事件处理使用。

其他操作

剧本回滚

若已发布的剧本恢复至历史版本,可选择回滚操作。操作步骤如下:

  1. 自定义剧本页签,找到需要回滚的剧本。单击操作列详情按钮,在详情页基本信息页签发布历史区域,查看剧本发布的历史版本。

  2. 运行测试(可选):选择需要回滚的版本,单击操作列查看按钮,跳转至剧本页签。在输入参数(运行)区域完成回滚版本的运行测试。

  3. 选择需要回滚的版本,单击操作列回滚到编辑回滚并发布

    • 回滚并发布:将当前版本覆盖到编辑页面的草稿版,并发布上线。

    • 回滚到编辑:将当前版本覆盖到编辑页面的草稿版。

重要

使用正式版回滚后,可能会覆盖已保存的草稿版,请回滚前请先详细查看和评估回滚前后的剧本流程。

剧本导入

说明

仅支持导入JSON文件。

  1. 在流程编辑器菜单栏,单击更多,并单击下拉列表导入JSON。

  2. 在导入页面,上传导入JSON文件后单击确定。

image

查看剧本执行记录

在剧本列表,单击剧本ID或操作列详情,进入剧本详情页面。在历史执行记录可查看基本执行记录。

说明

当采用剧本方式处理事件或安全告警时,系统将自动生成一条对应的剧本执行记录。

修改剧本名称

在剧本列表,单击剧本ID或操作列详情,进入剧本详情页面。在基础信息单击剧本名称旁边的编辑按钮。

说明
  • 预定义剧本不可修改剧本名称。

  • 请保持剧本名称唯一。

剧本执行/调试常见错误码

错误码分为剧本编排过程中的错误码和组件执行过程中的错误码。

剧本编排相关的错误码

错误信息

说明

排查及解决思路

The filter condition for node [%s] is invalid. It must include data from the datalist of node [%s].

filter节点的条件判断配置不正确,必须包含要过滤的节点数据。

对某个节点的数据过滤时,保证过滤条件中包含节点的数据变量及对应的条件。

Start node has no downstream configuration.

开始节点未定义下游节点。

定义开始节点的下游节点。

The node [nodeName] has no downstream nodes defined.

普通节点未定义下游节点。

定义普通节点的下游节点。

节点[node]中的资产不存在!

配置了资源实例,但是资源实例不存在。

重新选择存在的资源实例。

节点[node]中的资产是必需的,但没有配置

未配置资源实例。

选择资源实例配置。

多个节点具有相同的名字 [nodeName]

节点名称重复。

查找重复的节点名,修改后保证各个节点名称唯一

节点 [node1] 中定义的路径 [path] 不合法, 因为子流程仅支持格式 ${<subTask>.curLoop} and ${<subTask>.curIndex}!

子流程中,使用子流程的名称获取的变量格式不正确。目前子流程中只支持${<subTask>.curLoop}和${<subTask>.curIndex}。

查看子流程中参数的变量定义,修改不正确的变量定义。

节点 [node1] 中定义的路径 [node2.path] 不合法, 因为节点 [node2] 不存在!

某个节点的参数中,变量所引用的节点不存在。

引用节点不存在或被删除,需要重新进行变量配置或者新增不存在的节点。

节点 [node1] 中定义的路径 [node2.path] 不合法, 因为节点 [node2] 不是当前节点的上游节点!

某个节点的参数中,变量所引用的节点存在,但是不是自己的前置节点。

引用前置节点的变量。

组件执行过程相关的错误码

错误码errCode

报错信息errMsg

排查思路

sophon.Internal.Error

系统内部错误。

请校验参数或者资产配置,详情请查看报错或联系技术支持人员。

component.Internal.ParamError

组件参数错误。

请校验组件配置的参数是否正确。

component.Abnormal.InvokeError

组件执行错误。

组件内部执行报错,详情请查看报错或联系技术支持人员。

filter.Abnormal.Fail

数据没有满足过滤条件,请校验过滤条件设置是否正确。

数据没有满足过滤条件,请校验过滤条件设置是否正确。

securityGroup.Internal.HostIsOutside

Hosts outside the cloud cannot use security groups to block ip (云外主机不能使用安全组来封禁IP)。

请校验封禁的主机是否非云外主机。

securityGroup.Internal.NumberExceedLimit

The number of security groups or security group rules exceeds the limit(安全组数量或者安全组规则数量超限制)。

请检验主机关联的安全组数量或者安全组规则数量是否超额。

sts_openapi.Internal.ParamError

ParamError : The parameters of your request are invalid(有无效的参数)。

请校验组件的实际输入参数是否正确。

sts_openapi.Internal.WafRuleError

VerifyRuleCountExceed : The number of rules exceeds the limit(规则数量超限额)。

WAF的自定义规则数量超出限制。

sts_openapi.Internal.DefenseTemplateNotExist

Defense.Control.DefenseTemplateNotExist : Protective template does not exist(规则的模板不存在)

WAF的模板不存在,请确认是否有误删除WAF模板的情况。

sts_openapi.Internal.DefenseTemplateBindUnbindResourceInvalid

Defense.Control.DefenseTemplateBindUnbindResourceInvalid(模板要绑定的资源不可用)。

WAF模板绑定资源失败,请确认相关资源是否可用。

sts_openapi.Internal.DefenseResourceRelationExist

Defense.Control.DefenseResourceRelationExist(模板要绑定的资源已被其他模板绑定)。

WAF模板要绑定资源失败,请确认相关资源是否已绑定其他的模板。

sts_openapi.Info.DefenseSceneNotSupported

Defense.Control.DefenseSceneNotSupported : This protection scenario is not supported(不支持保护该场景)。

WAF版本比较低,不支持自定义规则的功能。

sts_openapi.Internal.ErrorAddressGroupExist

ErrorAddressGroupExist : The address group already exists(要新建的地址薄已存在)。

云防火墙的地址薄名字冲突。

sts_openapi.Internal.PermissionError

NoPermission : caller has no permission(用户没有权限)。

用户没有权限修改相关资源。

sts_openapi.Internal.CFWRuleError

acl or expand acl count exceed(规则数量超限额)。

云防火墙的规则数量超出限额。

sts_openapi.Internal.InvalidSecurityGroupId

InvalidSecurityGroupId.NotFound : The specified SecurityGroupId does not exist(安全组不存在)。

安全组不存在,请确认是否有被误删除的安全组。

sts_openapi.Internal.ErrorParametersGroupAddress

ErrorParametersGroupAddress : The IP address of the address group is invalid(IP地址薄不可用)。

当前的IP地址薄不可用。

sts_openapi.Internal.notBuyUser

not buy user(用户没有购买该产品)。

用户没有购买云防火墙产品。

sts_openapi.Internal.Throttling

throttlingThrottling关键字(接口限流)。

云产品的OpenAPI接口被限流。

python.Info.aegis2

进程不存在。

进程不存在。

python.Internal.aegis3

进程PidPath不匹配。

进程PidPath不匹配。

python.Internal.aegis4

进程权限拒绝。

没有权限处置该进程。

python.Info.aegis5

文件不存在。

要处置的文件不存在。

python.Internal.aegis6

文件MD5不一致。

要处置的文件的入参MD5与实际MD5不一致。

python.Internal.aegis7

文件权限拒绝。

没有权限处置该文件。

python.Internal.aegis8

目标文件存在且MD5不一致。

目标文件存在且MD5不一致。

python.Internal.aegis9

备份文件不存在。

要处置文件的备份文件不存在。

python.Internal.aegis10

没有查到隔离记录。

未找到相关的文件隔离纪录。

python.Internal.aegis11

不允许结束/隔离AliYunDun进程。

不允许结束/隔离AliYunDun进程。

python.Internal.aegis91

主机信息不存在。

主机信息不存在。

python.External.Fail

python脚本报错。

python脚本执行报错,详情请查看报错或联系技术支持人员。

python.External.Data

python组件输入格式报错。

python组件输入格式报错,详情请查看报错或联系技术支持人员。

相关文档

若您想了解关于组件参数流传及支持的参数格式,请参见组件参数及节点执行流程

若您想了解关于系统组件参数配置详情,请参见系统组件