OctoMation用户手册 - flagify-com/OctoMation GitHub Wiki
使用说明
OctoMation用户手册主要包含应用管理、作战室、事件管理、剧本编排、集合与函数使用、剧本编排高级技能、系统配置说明等内容,使用本手册过程中如有发现内容错误或内容描述不清晰的情况,请在评论区发送消息,我们会尽快对内容进行校正和修订,谢谢!
文档目录:
OctoMation系统通过应用(APP)插件方式与第三方系统进行集成,一个应用插件通常包含如下内容:
开发好的应用上传到OctoMation系统,新应用和应用更新都是通过上传应用实现,菜单路径:【应用管理】进入应用管理界面,点击上传应用按钮
菜单路径:【应用管理】进入应用管理界面,选择需要删除的应用,点击删除按钮
选择需要进行分类的应用,查看、添加应用分类标签,例如"防火墙"、"态势感知"、"基础工具"等等。
菜单路径:【应用管理】进入应用管理界面,选择需添加资源的应用,以飞塔防火墙(fortigate)配置为例:
-
1)新建防火墙资源,选择新建按钮
-
2)配置新的防火墙资源,基本信息配置:
-
资源名:gz_fortigate (资源名只能包含字母/数字/下划线,并以字母开头)
-
描述:广州飞塔
-
产品供应商:飞塔
-
产品名称:飞塔防火墙
-
资源参数配置:
如下图:
利用作战室执行应用动作的能力进行测试:打开作战室,选择需要测试的应用动作,例如飞塔防火墙动作:获取防火墙系统状态 ,如下图:
作战室主要用于人员沟通协作和人机交互,支持多人协同和1对1私聊,用户通过作战室可进行文字/图片/文件发送,执行APP动作,安全剧本,查看人员在线状态等,系统提供全局作战室和单事件作战室:
- 全局作战室:具备作战室权限的用户自动进入到全局作战室
- 单事件作战室:为单个事件处置相关的人员创建的独立作战室
作战室主界面分为四个主要区域:
事件关注区: 当前用户正在跟进或关注的安全事件
协同作战交互区: 当前工作人员在作战室与其他队友、机器人的交互过程
指令输入区: 安全人员发送指令、文字或图片的输入区
协同人员管理区: 参与当前安全事件处置的安全人员,最下方为:AI机器人(机器人名称可以自定义)
作战室常用能力如下:
1)安全事件处置过程中多人沟通协同
2)1对1私聊
3)作战室执行应用动作,查看执行结果
4)作战室执行剧本,查看剧本执行过程和执行结果
事件接入功能用于配置外部系统的事件数据接入规则,一般用于对接态势感知、SIEM、SOC等安全系统。当安全系统流入事件到OctoMation系统生成安全事件,OctoMation系统会对事件进行基本信息的格式化,并创建作战室,根据需要可以自动化执行指定的剧本。
目前OctoMation系统产品支持Kafka消息队列、API、syslog方式接收安全事件。如果要对接的安全系统不支持Kafka和syslog发送事件,推荐使用以下方式接入:
- 使用Logstash进行安全事件的收集,支持: jdbc、syslog、文件和tcp/udp、filebeat或logstash级联等方式
- 由Logstash进行安全事件的转发,发送到OctoMation系统自带的Kafka消协队列(推荐用户自备Kafka消息队列)
- 如需要对事件进行过滤,可使用Logstash的filter配置进行处理。
外部系统通知OctoMation发生了一个事件,OctoMation对事件进行基本信息的格式化,并生成事件(及作战室),根据需要可以自动化执行某些剧本。
典型事件接入流程如下:
- 定义一个OctoMation事件接入规则
- 设置OctoMation事件接收参数,包括:消息来源、消息格式和匹配方式等
- 将原始事件文本映射到通用事件格式(CEF)对应的字段
- 设置一条或多条判断规则:根据字段标识和上下文信息,设置当前事件的【事件类型】
- OctoMation系统将根据上述逻辑,创建一条新的事件及对应的作战室
- 如果该事件类型还绑定了对应的安全剧本,那么对应的剧本将被触发和执行,实现事件响应自动化
目前OctoMation产品支持以Syslog(默认端口31514)、Kafka消息队列(默认端口9092)的方式接收外部事件的输入。
ℹ️ 如果您的系统不支持Syslog或者Kafka消息队列外发事件,那么我们推荐:
- 使用Logstash完成事件的收集,支持:Syslog、JDBC、文件、TCP/UDP、Filebeat或Logstash级联等方式
- 由Logstash完成事件的转发,发送到OctoMation自带的Kafka消息队列(推荐用户自备Kafka消息队列)
安全编排(SecurityOrchestration)是一个用于信息安全的术语,主要用于描述如何更有效地调度和管理安全操作和事件的过程。它涵盖了各种用于将不同的安全服务和工具(如防火墙、入侵检测系统、网络监控工具等)组织和协调起来,以提高安全性能、提升效率、减少人工干预并自动化安全事件响应的方法和技术。安全编排可以实现集中管理,快速响应,而且消除了因为独立操作和管理多个系统而造成的风险。同时,众多安全工具的集成和制定统一的响应流程也使得整体的安全防护更为严密和有效。安全编排通过调度工具和系统以及控制它们的流程,可以在整个环境中实现自动化,可以简化工作流程。安全编排作为SOAR 核心能力之一,设计优质的自动化剧本需要对编排工具进行全面的了解。
OctoMation内置的编排工具支持多种节点类型,支持规则判断、循环、函数、智能推荐等高级编排能力,满足复杂逻辑编排的需求。
编排 编排(Orchestration)在计算机科学、信息技术等领域中,是一个用来描述如何自动管理和协调复杂的计算任务和服务的过程的术语。
剧本 在安全编排(SOAR)的场景下,剧本通常指一组自动化的步骤或动作,用于应对特定的安全事件或威胁。例如,一个剧本可能包括在检测到潜在的恶意活动时自动隔离受影响的系统,然后发送告警通知,收集和分析相关信息,并制定出下一步的应对策略。
子剧本 子剧本可以是一种应对特定类型安全事件的流程和步骤,他们被整合在主剧本中,使得应对策略更有效率和灵活。例如,一个主剧本可能描述了在发现潜在入侵时如何响应,其中可能包括几个子剧本,如隔离受影响的系统、通知相关人员、收集相关信息等子剧本,这样的设计能让主剧本的流程更清晰。
节点 在安全编排的剧本中,节点即剧本中的一步操作或过程。例如,一个剧本可能包含多中类型的节点:动作节点、规则节点、审批节点等。
动作 在编程中,"动作"通常用于描述一项特定的操作或任务。在安全编排的上下文中,动作可以代表在一个剧本或子剧本内的具体一步(动作节点),例如,发送警报,启动扫描,隔离系统等。
菜单路径:【安全剧本】,勾选需要编辑的剧本,操作栏选择基本编辑,编辑内容如下:
名称:编辑剧本名称
描述:编辑剧本描述内容,支持富文本,描述应包含剧本业务逻辑、或者剧本用途的关键信息
类型:可选“普通”和“系统”类型,默认选择“普通”类型,“系统”类型剧本为了实现OctoMation系统默写功能编写的剧本
参数:显示剧本中所有的入参
系统支持多种条件查询:
- “剧本名称”字段包含的关键字,例如“封禁”
- “状态”字段可选择"草稿"、"已发布"
- “类型”字段“普通”、“系统”
- “创建人”字段选择剧本创建人
剧本文件格式为*.conf文件格式,点击导入按钮,选择剧本文件导入。依据剧本文件包含的内容,导入一个或多个剧本。
选择需要导出的剧本(可以勾选多个剧本),点击导出按钮,导出文件名:playbook_时间戳.conf,例如playbook_20210608130945290.conf。
序号 | 动作 | 描述 |
---|---|---|
1 | 动作节点 | 剧本编排的基本元素,即应用中已经定义的动作 |
2 | 规则节点 | 根据编排的业务逻辑进行规则判断 |
3 | 剧本节点 | 剧本编排中嵌套已经定义的剧本,即子剧本 |
4 | 聚合节点 | 根据需要对剧本中所有节点的输入/输出参数进行汇聚,集中输出 |
5 | 审批节点 | 剧本执行过程中添加人工审核确认 |
6 | 虚拟节点 | 剧本执行过程中可以使用虚拟节点从线下(人工方式)获取数据(设备状态,离线执行结果等) |
7 | 轮询节点 | 剧本编排中当遇到执行耗时较大的节点时避免节点超时(节点等待时间300秒),导致剧本执行失败,使用轮询节点系统将自动探测执行状态,轮询等待 |
8 | 收集节点 | 剧本执行过程中交互式收集信息 |
如下图:
动作节点即在剧本编排中插入应用动作,例如发送消息通知、获取防火墙系统信息、添加白名单等。
- 新建一个动作节点
- 选择需要添加的应用动作
通过关键字搜索应用或者滑动条选择应用,如下图,选择钉钉应用>>选择动作:发送消息
- 配置节点标题、参数、执行资源
- 节点标题:*必填项,可用于快速识别该节点能力和作用。
- 节点颜色:颜色主要是在展示的时候使用,例如对一些高危动作,可以用醒目的颜色
- 输入参数:*必填项,选择动作的参数,动作的参数通常有四种来源,第一是静态变量,即固定值,第二种来自日志解析出来的通用字段(CEF),第三种来自其他节点的执行结果,第四种是来自环境变量。
- 执行资源:选择执行动作的资源,部分应用执行资源非必选可根据 "*" 标识符判断是否为必选参数。
注:此处有个隐藏功能,输入参数可以引用前置节点出参或使用通用字段占位符拼接的方式完成,如:通用字段=>源IP(${CEF.src}) 封禁IP=>状态码(${node_dec4...),即表示用执行结果的某一字段加上通用字段中的某一字段拼接而成,但是占位符中的值要是真实存在的。
剧本逻辑设计过程中的规则判断,包括:判断条件、判断规则、判断结果,例如IP地址归属地判断:
- 判断条件:IP地址归属地判断
- 判断逻辑:IP地址归属地为中国输出结果为0,IP地址归属地为国外输出结果为1
- 判断结果:0或者1
- 新建一个规则节点
- 配置规则
规则节点支持两种配置模式:
- 简单模式支持"通用字段"作为规则参数进行规则编辑,适用规则判断较为简单剧本编排。
- 专家模式支持"通用字段"、"风险等级"、"当前场景"、"剧本应用"、"当前时间、"自定义模型参数"等作为规则参数,执行结果可设置为"数值"、"原因"、"事件类型"多属性进行规则编辑研判,适用全场景剧本编排。
基本配置信息:
- 节点标题:*必填项,可用于快速识别该节点能力和作用
- 专家模式规则编辑:如果 "规则参数条件",那么 "设置执行结果属性"
- 简单模式规则编辑:如果 "规则参数条件",执行结果属性系统会自动配置
- 校验:对规则的完整性进行校验
注:执行结果的数值是必选字段,如果该规则没有命中,默认的执行结果的数值为0。
- 专家模式示例:
- 简单模式示例:
- 专家模式配置条件输出
1)条件:规则节点中规则的执行结果,以实现根据规则的执行结果确定执行流程
2)条件标题:*必填项,条件执行结果描述
3)条件参数:需和规则配置的保持一致
4)值类型:需和规则配置的保持一致
5)值:需和规则配置的保持一致
- 简单模式配置条件输出
该模式下默认是自动赋值:
1)数值=1:表示命中规则输出。
2)数值=0:表示没有命中规则输出。
注:简单模式条件标题可双击标题修改配置。
剧本编排中支持嵌套其他剧本(子剧本),实现剧本复用,剧本更加简洁,容易维护。
- 新建一个剧本节点
- 配置剧本
剧本入参:标签页可以配置嵌套剧本的入参,参数配置方法与动作节点参数的配置方法一致。
用于收集前置节点的输入输出参数,输出聚合后的结果。
- 新建一个聚合节点
- 配置聚合参数
- 条件标题:*必填项,聚合信息描述。
- 选择聚合参数:前置节点的入参和出参都可以作为聚合参数
剧本逻辑设计中,如果业务管理需求或执行高风险操作,可以添加人工审批节点,审批完成后再执行后续动作,例如执行封禁IP前需要进行安全人员审批确认。
- 新建一个审批节点
- 配置审批
1). 节点标题:*必填项,审批信息描述。 2). 审批人员:审批人员按需求可多选。 3). 过期时间:从审批节点开始执行计时,超过过期时间,审批失效,审批节点后面的节点将不再执行。 4). 是否通知:可通过发送消息的动作应用对审批人进行通知,如:微信,钉钉,邮件,飞书等。
- 外链审批
注配置外链审批前需要确保已经配置了“外链地址”,菜单路径:【系统配置】|【系统设置】,配置“外链地址”:设置为OctoMation服务器的IP地址和端口)
审批方式支持登录OctoMation系统进行审批,同时也支持系统发送外部链接给审批人员,审批人员可通过外部链接完成审批。
配置方式:通知动作内容取值>>执行外部链接>>保存完成配置。
以钉钉通知为例,执行效果如下:
剧本逻辑设计中,如果部分数据无法从线上获取,可以采用虚拟节点的人工提供数据,当执行到虚拟节点时,系统会通知相关执行人员处置,填写表单数据,执行人员可同意或者拒绝执行该类事件并备注原因。
-
新建一个虚拟节点
-
配置虚拟节点参数
- 节点标题:*必填项,审批信息描述。
- 执行人员:参考审批节点。
- 提示语:主要是用户在执行该节点时的操作内容,提示语可以是参数,参数的配置同动作节点参数的配置方式一致,也支持占位符替换。
- 过期时间:参考审批节点。
- 通知:参考审批节点。
- 自定义参数:这里可以按需求定义参数,参数可以供该节点后面的节点使用。
注:虚拟节点的外链配置和效果参考收集节点章节。
一般用于执行耗时的动作,轮询节点可自动轮询探测节点执行状态,获取执行结果。(例如在漏洞扫描剧本中,使用轮询节点获取漏洞扫描任务的扫描结果)。
1.新建轮询节点
2.选取执行动作
配置参数 节点标题、执行资源、执行间隔、超过时间为必填选项:
- 执行间隔:应用动作执行间隔
- 超过时间:应用动作执行时间范围,即规定时间内执行该动作
- 是否配置退出规则:勾选后,规定时间内动作失败会继续进行,若不勾选,成功后则动作不继续执行
规定时间收集某些信息,通过配置执行人员可对其发起系统通知,收集需要的信息(例如收集日报、周报等信息)。
1.新建收集节点
2.填写配置参数
节点标题、提示语、过期时间为必填选项,是否通知勾选栏可通过配置通知动作(例:飞书、钉钉)进行通知发送。
以一个常见的恶意IP地址自动封禁剧本为例,介绍安全剧本的编排过程。
- 需要实现的业务目标
对来自海外的恶意攻击IP地址进行自动封堵。
- 剧本涉及到的系统和动作
- ip2_region(获取IP归属地信息)
- IP地址归属地判断
- fortigate(将IP加入封禁名单)
- 钉钉(钉钉消息通知)
- 具体操作过程如下:
新建一个安全剧本剧本基本配置信息:
参数名 | 参数值 |
---|---|
剧本名 | 海外恶意IP地址自动封禁 |
类型 | 普通 |
- 添加第一个节点:获取IP归属地信息
- 添加动作节点
- 点击(单击)动作节点
- 选择应用:SaaS-IP归属地-GeoLite2
- 选择动作:获取IP归属地信息
- 配置动作:
- 节点描述:获取IP归属地信息
- 输入参数:CEF.src
- 执行资源:默认
- 保存
- 添加第二个节点:IP归属地判断
节点描述:IP归属地判断
新建规则:"获取IP归属地的出参:国家/地址" 不等于 "中国"
- 添加第三个节点:管理员审批
- 节点描述:管理员审批
- 审批人员:测试账号
- 过期时间:10分钟
- 是否通知:选择钉钉消息通知
- 添加第四个节点:防火墙封禁
- 选择应用:防火墙-Fortigate
- 选择动作:block_ip
- 配置动作:
- 节点描述:封禁IP
- 输入参数:CEF.src
- 执行资源:WZ_FW
- 保存
- 添加第五个节点:钉钉消息通知
- 选择应用:dingtalk
- 选择动作:sendMessage
- 配置动作:
- 节点描述:钉钉消息通知
- 消息内容:海外恶意IP地址自动封禁:恶意IP地址:${CEF.SRC}
- 封禁状态:成功
- 执行资源:elton_test
- 保存
- 剧本发布
- 作战室执行剧本
- 打开作战室,选择执行剧本:恶意IP地址封禁
- 参数集名:剧本测试(随意输入)
- src:2.2.2.2 (测试IP地址)
- 执行过程:等待审批
- 执行过程:审批
- 剧本执行结果:成功
计划任务用于设置定时执行某些APP动作或剧本,例如每天执行巡检剧本,每周自动执行漏洞扫描动作等。在【系统任务】|【计划任务】,点击“新建定时任务”,可进行定时任务的设置,如图:
定时表达式支持Cron表达式输入,也可点击 进行可视化的输入,执行类型支持APP应用动作或剧本。
编辑“事件类型”,选择“自动执行的剧本”,系统支持同时触发多个剧本自动执行。
菜单路径:【通用集合】|【+新建】,通用集合常用于定义业务参数,包含集合名、中文名、描述选项。例如黑白名单、特殊账号等等。
集合元素支持新建、删除,点击【元素管理】|【+新建】
使用剧本编排的规则节点时,配置规则选择【专家模式】|【新增规则】,条件判断中可以使用集合,集合可以使用“包含”、“不包含”、“不存在于”、“存在于”等条件判断方式。
例如添加规则:
剧本 (的获取IP地址归属信息 的入参:IP address) 不包含 (IP地址白名单) 中的任一项。
函数管理功能包含新建、编辑、删除、查询;
函数支持的语言:java、Python,系统支持编写和校验函数;
函数用途:剧本编排的动作节点入参支持使用函数方式对数据进行处理,比如数据类型转换、数据格式化等
菜单路径:【基础数据】|【函数】,新建/编辑函数:
剧本编排中的动作节点,入参可以选择“使用函数”,编写函数对非标准化的数据进行处理,如下图,通过函数对软件版本进行对比:
将通用或频繁使用业务场景编写剧本(子剧本),在其他剧本编排是可以直接嵌入子剧本,剧本逻辑更加清晰,更容易维护,例如:
1)多途径预警通知子剧本
2)多源情报查询子剧本
剧本编排中如果节点的入参为数组元素时,系统会遍历所有元素,循环执行节点,循环节点的场景的应用场景:
设备巡检剧本
1)获取需要巡检的设备IP地址列表(数组)
2)获取设备IP地址,分别针对每台设备执行巡检动作
3)输出每台设备巡检结果
- 账号:指一个用户在OctoMation系统中的身份标识,创建账号时必须绑定账号的角色,一个账号可以绑定多个角色
- 角色:系统管理员定义的一组特定的访问和操作权限的集合
账号管理包括账号创建、编辑、删除、密码修改、账号有效期、绑定登录IP地址等,菜单路径:【系统管理】|【账号管理】,新建/编辑账号:
角色管理包括角色的创建、编辑、查看、删除等功能,菜单路径:【系统管理】|【角色管理】,新建/编辑角色:
用户登录后的所有操作及结果均可以通过审计日志进行查询,审计日志支持针对用户、ip地址、操作类型、时间进行查询,菜单路径:【系统管理】|【审计日志】,如下图: