W5 SOAR操作手册
本文是自己使用时写的笔记,并不是很严谨,很多功能还在摸索中,分享出来希望对大家有所帮助,以后有时间会继续更新。
一. 平台介绍
W5 SOAR是一个面向企业安全与运维设计的低代码自动化平台,可以让团队降低 人工成本,提升工作效率。可以把代码图形化、可视化、可编排。让不同的系统,不同的组件通过APP进行封装形成平台能力,通过剧本画出你想要的逻辑过程,利用多种Trigger去实现自动化执行。W5适应用于多个方向,例:Devops、安全运营、自动化渗透、工作流程等。
二. 平台优点
- 无代码 : 无需编写代码,即可让企业内部人员快速实现事件响应。
- 扩展强 : 提供插件模块,可以扩展让所有的应用平台集成 W5 自身插件
- 自动化 : 提供 Webhook、Mail、用户输入、API 等入口,无需人工即可实现全部流程
三. 官网地址
Github: https://github.com/w5teams/w5
四. 部署方式
W5 SOAR可通过多种方式部署,如Linux、Windows、Docker等,
具体部署方式参考官方说明:https://w5soar.com/help/
五. 功能介绍
SOAR平台按照菜单分为以下功能:
5.1 变量
5.1.1 变量类别
变量共有三种种类,分别为「全局变量」、「局部变量」、「APP变量」。
变量名称 | 变量格式 | 创建方式 |
全局变量 | @{key} | 在全局变量功能中手动创建。 |
局部变量 | @[key] | 在剧本中点击下方「剧本变量」创建。 |
APP变量 | @(uuid.参数名) | 无需创建自动生成。 |
5.1.2 变量分类
在创建变量之前我们可以先创建下变量分类,便于以后对变量的区分。
依次点击「系统管理」–「变量分类」后的加号,创建新的变量类别。
5.1.3 创建变量
全局变量创建方法:
依次点击「全局变量」– 右上角的「添加」功能,例如我们添加一个名为result的全局变量,也可以是Text。
局部变量创建方法:
在创建剧本时点击下方的「剧本变量」选项。
在弹出的框中点击右上角的蓝色加号。
此时可填写局部变量的详细信息。
APP 变量无需创建自动生成。
5.1.4变量使用
举例,点击剧本中的「用户输入」右上角的「复制」选项,复制该应用的「UUID」。
将「UUID」填写到下一步要执行的应用命令中,按照前面讲到的APP变量格式“@(uuid.参数名)”
构造好后为:
@(fb398200-6464-11ec-bd0d-cfe0882c6f81.result)
@(fb398200-6464-11ec-bd0d-cfe0882c6f81.result)
红色部分为上一步用户输入应用的UUID信息,结尾的“.result”是系统变量信息(UUID.执行结果),可以理解为APP的执行结果。
5.2 应用
5.2.1 应用说明
应用也可以称为节点,可以理解为一个功能,截止到2022年1月,SOAR平台共含有33个应用,按照功能可以分为九大类,如下图所示:
5.2.2 创建应用
点击左侧列表中需要创建的应用或直接将应用拖拽至右侧。
右击应用可进入该应用的「节点编辑」功能。
点击「动作」后的问号标志,可查看该应用的具体说明说明信息。
使用说明中会注明具体的参数使用方法,需严格按照要求填写。
5.3 剧本
5.3.1 剧本概念
一个剧本就是一个自动化的任务,由多个应用、连接线等组成。
5.3.2 剧本的组成
剧本需以「开始」应用为首,「结束」应用为结尾。
剧本中间可以设置为指定功能应用,如判断条件应用、信息查询应用、消息通知应用、安全扫描应用、命令执行应用等。在应用中心功能处可以查看到所有已安装应用。
应用与应用之间需要使用连接线进行关联。
连接线不只局限于直线,也可以是弯曲的。
点击应用下的「查看文档」功能可查看到具体使用说明。
任务调度:
用于管理设置了定时器的剧本,可在此统一进行管理。
六. 案例演示
6.1 Linux远程命令执行自动化任务
依次将「开始」、「用户输入」、「Linux远程命令」、「结束」剧本拖拽至面板。
复制「用户输入」应用的UUID,记录好下一步需要用到。
右键点击「Linux远程命令」应用,自定义一个节点名称,动作选择执行命令,
host填写我们需要连接的Linux主机IP地址,端口号和用户名密码按要求填写。
最后的shell框中将上面复制好的UUID替换进来,
例如:@(91a2cf40-6ecd-11ec-8f12-890a03cf9441.result)
配置好后点击底部的「开始」,在弹出的输入框中输入要执行的Linux命令,
例如ifconfig
执行成功后的效果如下图:
我们还可以在此剧本的基础上增加消息通知应用,在「结束」应用前增加「钉钉通知」应用。
右键点击「钉钉通知」应用,配置好token信息和msg提示信息。
执行成功后可正常收到钉钉提示消息:
6.2 Windows远程命令执行自动化任务
依次将「开始」、「用户输入」、「Windows远程命令」、「结束」剧本拖拽至面板。
由于Windows执行远程命令调用的是Powershell,并非直接通过3389远程连接,所以需要提前配置好Windows和Linux系统中的powershell环境,我在测试的CentOS中通过rpm离线包安装了powershell(powershell-lts-7.2.1-1.rh.x86_64.rpm),Windows10系统自带Powershell无需单独安装。
首先我们在远程 Windows服务器上启用 powershell 远程会话:
1 |
Enable-PSRemoting -Force |
然后配置 TrustedHosts(替换以下命令中的IP地址,我这里拿局域网IP演示)
1 |
winrm set winrm/config/client '@{TrustedHosts="192.168.XX.XX"}' |
配置好之后需要重启一下服务:
1 |
Restart-Service WinRM |
防火墙开放 5985 端口
winrm 有两个端口号,你可以用 winrm get winrm/config/client 命令来查看 winrm client 相关配置信息,
1 |
winrm get winrm/config/client |
CentOS通过Powershell远程连接Windows (替换以下命令中的IP地址)
1 |
Enter-PSSession -ComputerName "192.168.XX.XX" -Authentication Negotiate -Credential administrator |
如果报MI_RESULT_ACCESS_DENIED这个错误参考这里
https://mangolassi.it/topic/21244/remote-powershell-from-fedora-to-windows/2
以上powershell环境都解决后可以参考前一个自动化任务填写配置信息,运行成功后的效果如下图:
七、其他常见问题
7.1 Docker版如何进入容器目录?
执行以下命令:
1 |
docker exec -it W5_SOAR /bin/bash |
7.2 Docker版W5 SOAR时间有误如何解决?
Docker版部署后,需留意下Docker内时间是否正确。进入容器目录后,使用date命令查看时间。
若时间有误可通过以下方式解决:
1 2 3 4 |
docker exec -it <容器ID或者容器NAME> /bin/bash cd /etc mv localtime localtime_bak cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
再次执行date命令观察时间是否更新正确。
如果Web页面内的剧本日志时间还是没有更新,可尝试重启docker容器。
重启容器前先查看容器ID
1 |
docker ps |
1 |
docker restart 容器ID |
具体可参考:https://blog.csdn.net/ju_362204801/article/details/114383191
7.3 如何查看Docker版W5 SOAR日志?
先用上面的方式进入Docker容器目录,然后执行:
1 |
cd /root/logs |
7.4如何将Docker内的日志文件导出?
1 |
docker cp W5_SOAR:/root/logs/w5.log /root/w5/ |