freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

学习SOAR从W5开始
r0bepr 2025-03-06 22:10:50 69838
所属地 上海

引言

降本增效始终是安全发展的核心目标,而自动化处置则是实现这一目标的关键。本文作为W5系列基础文章,将对SOAR工具的功能进行简要介绍和学习。

1.安装

鉴于学习需求,我们将采用Docker来构建所需的开发环境!

测试环境:

CentOS-8.5.2111-x86_64-boot.iso

1.1.网络配置

1.配置dns

vim /etc/resolv.conf

namespace 8.8.8.8

1.2.安装redis

1.安装redis

yum install -y redis

2.启动redis

systemctl start redis

3.验证

redis-cli

1.3.安装mysql

1.安装mysql

yum install -y @mysql

2.启动mysql

systemctl start mysqld

3.初始化mysql

mysql_secure_installation

官网原图

4.查询是否安装成功

mysql -uroot -p12345678

5.开启数据库远程管理

use mysql;

update user set host='%' where user='root';

flush privileges;

6.开放防火墙

firewall-cmd --add-port=3306/tcp --permanent

firewall-cmd --reload

7.命令行导入库表结构

# 建立数据库

mysql>create database w5_db;

# 使用数据库

mysql>use w5_db;

# 设置数据库编码

mysql>set names utf8mb4;

# 导入数据,SQL 语句在下面(注意sql文件的路径)

mysql>source /tmp/w5.sql;

sql文件:https://github.com/w5teams/w5/blob/main/docker/sql/w5.sql

1.4.配置linux相关组件

1.安装必要组件

yum install -y gcc gcc-c++ automake autoconf libtool openssl-devel bzip2-devel libffi-devel make

2.下载 Python 3.8.2 && 解压压缩包

wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz&& tar -zxvf Python-3.8.2.tgz && cd Python-3.8.2/

3.检测编译环境

./configure prefix=/usr/local/python3 --enable-optimizations

4.编译安装

make && make install

# 有时候一起执行会卡主,分开执行即可解决

make

make install

5.设置软连接

# 删除已经存在的软链接

rm -rf /usr/bin/python3 && rm -rf /usr/bin/pip3 && rm -rf /usr/bin/gunicorn3 && rm -rf /usr/bin/supervisord3 && rm -rf /usr/bin/supervisorctl3 && rm -rf /usr/bin/echo_supervisord_conf3

# 创建新的软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3 && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 && ln -s /usr/local/python3/bin/gunicorn /usr/bin/gunicorn3 && ln -s /usr/local/python3/bin/supervisord /usr/bin/supervisord3 && ln -s /usr/local/python3/bin/supervisorctl /usr/bin/supervisorctl3 && ln -s /usr/local/python3/bin/echo_supervisord_conf /usr/bin/echo_supervisord_conf3

6.验证安装是否成功

python3 -V && pip3 -V

1.5.部署w5

1.拉取项目

git clone https://github.com/w5teams/w5.git

2.安装依赖

# 默认国外源,国外服务器使用

pip3 install -r requirements.txt

# 使用国内源,国内服务器使用

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 如果遇到以下错误,请升级 pip

# ERROR: Could not build wheels for cryptography, bcrypt which use PEP 517 and cannot be installed directly

pip3 install -U pip

3.修改配置文件

[setting]
lose_time = 259200
max_instances = 5

[mysql]
host = 127.0.0.1
port = 3306
database = w5_db
user = root
password = 12345678

[redis]
host = 127.0.0.1
port = 6379
database = 0
password =

4.启动服务

nohup python3 run.py > w5.log

5.部署完成按照如下地址访问web平台

  • 访问地址:ip:8888,(访问不了请检查服务器防火墙)

  • 账号密码:账号:admin,密码:12345678(登录后请及时修改密码)

1.6.其它

部署w5 soar的过程中,发现docker部署mysql容器一直restart,一直成功不了,建议按照常规方法先部署测试。

2.基础功能介绍

2.1.剧本创建

1.首先创建一个新剧本

2.在进入剧本编写功能界面后,用户会发现左侧列出了大量的应用程序(即功能函数)。每一个应用程序均对应一个或多个特定的功能。

3.这里使用在此处采用IP查询作为示例,一个结构完整的脚本应当包含明确的起始与终止部分,并在其中嵌入应用程序的相关逻辑。

依据图示所示,该测试脚本的流程为:启动--》执行IP查询--》完成

4.然后右键IP查询APP就会弹出配置信息,这里需要配置动作和参数,并且配置完成后进行保存。

动作:功能函数

ip:args

5.点击执行剧本即可完成查询。

2.2.APP功能查询

1.点击应用中心,可以看到当前已经有的应用。

2.点击查看文档,即可看到APP的使用方法和功能。

IP查询 v0.1:

whois v0.1

2.3.执行日志

1.执行日志则是包含了剧本执行的日志。

2.4.用户管理

1.通过用户管理功能,可以实现用户权限的配置与用户账户的创建。

管理角色:

**添加用户:**创建一个editor账号

2.创建后的用户只能看到被分配的功能

3.剧本基础用法

3.1.变量传递

为了实现数据的传输,W5 提供了以下三种应用场景:

变量格式:

  • 全局变量:@{key}

  • 局部变量:@[key]

  • APP 变量:@(uuid.参数名)

3.1.1.全局变量

1.按照顺序全局变量--》添加

2.调用全局变量**@{accesskey}**

3.1.2.局部变量

1.按照如下步骤创建剧本变量:剧本列表--》创建剧本--》剧本变量--》局部变量--》加号添加即可。

2.局部变量调用**@[tmpkey]**调用变量

3.1.3.APP变量

1.在开始介绍APP变量使用前,首先需要了解APP应用的参数。APP应用的代码在W5目录的

格式:/w5-main/apps/app应用名字/main/run.py

eg:/w5-main/apps/base64/main/run/py

2.通过审阅run.py脚本,可以发现该文件实际上是一个用于处理输入数据并生成相应输出的应用程序脚本。分析参数可得:

输入变量:text

输出变量:status 、result

3.为了更好地理解APP变量,我们可以借助一个简单的剧本来进行说明。这个剧本的核心在于加密部分,而这一过程主要包括两个步骤:

  • 首先,接收用户的输入参数。

  • 然后,通过函数处理这些参数,并最终输出结果。

剧本图:

用户传参:用户点击复制获取该应用的uuid1

base64加密:使用**@(uuid1.text)**获取用户输入参数

base64解密:使用**@(uuid2.result)**获取加密后的结果

结果:通过**@(uuid.变量)**的格式即可完成APP变量的传递。

3.2.IF控制器

W5设备配备有内置的IF控制器。当该控制器接收到的输入数据满足预设条件时,系统将自动执行后续步骤;若条件未被满足,则数据传输过程将被终止。

1.在讲解IF控制器前,先使用一个demo进行演示。

当用户输入为1时,输出hello world 111

当用户输入为2时,输出hello world 222

当用户输入不在IF控制器中,直接结束

剧本:

输入1

输入2

输入3

  1. 从例子中可以看出,用IF控制器可以决定剧本怎么发展或者什么时候结束。下面这张图展示了IF控制器的用法,它默认会和上一个 @(UUID.result) 的结果进行比较。

  • 满足条件:继续

  • 不满足条件:停止

参考

https://w5.io/help/use/use1.html官方网站

# 安全运营
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 r0bepr 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
利器
r0bepr LV.1
这家伙太懒了,还未填写个人描述!
  • 7 文章数
  • 6 关注者
学习SOAR | w5进阶学习
2025-03-06
FreeBuf快速同步语雀文章
2025-03-06
跟着白帽学习fake captcha
2025-03-06
文章目录