首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >开源SOAR的初探

开源SOAR的初探

原创
作者头像
Geek小黑板
修改2025-08-11 21:03:40
修改2025-08-11 21:03:40
4170
举报

本文章首发于个人博客,如果错误欢迎指正,谢谢

1.前言

最近工作涉及安全运营方面,工作中了解到SOAR,恰巧又看到了OctoMation SOAR,于是想着在网上搭建一套自己捣鼓下。

2. 相关硬件软件

  1. OctoMation
  2. 雷池 WAF 社区版 | 下一代 Web 应用防火墙 | 免费使用
  3. 反制溯源欺骗防御主动防御-HFish免费蜜罐平台
  4. 服务器

3. SOAR 搭建

参考OctoMation安装部署手册进行搭建

3.1 操作系统及软件要求

  • 操作系统:Redhat/Centos 7.8+/8+(9以下) OpencloudOS7/8
  • Docker版本:不低于20.10.12
  • Docker-compose版本:1.29.2(最优)
  • swap分区空间不少于8GB
  • 系统防火墙firewalld需要处于运行状态
  • 系统umask必须为022

3.2 安装方式

这里使用的大文件,离线安装(这也是官方推荐的安装方法)

下载安装文件后,然后以root身份执行离线安装脚本

代码语言:bash
复制
# 以root身份执行离线安装脚本
chmod +x octomation_community_docker_install_offline_<VERSION>.sh
./octomation_community_docker_install_offline_<VERSION>.sh

这里安装时间比较长,可以使用screen,安装完毕如下

3.3 登录web管理界面

安装完成后,使用web浏览器访问https://<OCTOMATION_SERVER_IP> 进行登录,登录页面如下:

3.4 剧本Playbook

官方项目上有相关的OctoMation剧本包 ➡️OctoMation剧本包

以及 APP包

导入社区剧本和APP

3.5 剧本尝试

导入了社区中的剧本,发现可以在“IP信息增强”剧本上进行调整更改

这里在原有的基础上添加了协同办公-钉钉,并且做了简单测试

作战室执行结果

钉钉收到告警

4. 蜜罐搭建

这里为了方便,使用docker安装

代码语言:bash
复制
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest

以root权限运行以下命令,确保配置防火墙开启TCP/4433、TCP/4434

⚠️ 踩的坑,没有在防火墙开启端口,所以一直无法访问到web界面

代码语言:bash
复制
firewall-cmd --add-port=4433/tcp --permanent   #(用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent   #(用于节点与管理端通信)
firewall-cmd --reload

5. 蜜罐+SOAR联动

思路:

蜜罐获取到攻击IP通过syslog发送到SOAR,通过SOAR进行剧本编排发送到飞书

5.1 流程图

5.2 开启四个web蜜罐

  1. Coremail仿真登陆蜜罐
  2. 通达OA系统仿真登陆蜜罐
  3. 齐治堡垒机仿真登陆蜜罐
  4. Weblogic蜜罐

5.3 新建一个事件类型

登录OctoMation后台,访问到【事件管理】|【事件类型】,点击【新建】即可创建新的事件类型。勾选【是否自动执行剧本】,选择【IP信息增强】

5.4 通过Kafka接收外部事件

5.4.1 事件接入添加

登录OctoMation后台,进入【事件管理】|【事件接入】菜单,新建接入规则。填写勾选基础信息,包括:

  • 配置名:HONEYPOT_SIEM_ALERT
  • 描述:SIEM蜜罐事件接入
  • 接入方式:SYSLOG
  • 协议:31514(这里的端口和蜜罐syslog服务器配置的端口一致)
  • 勾选转发到KAFKA
  • 消息队列:SIEM_HONEYPOT_ALERT
  • 服务器:172.19.129.151:9092

5.4.2 示例事件

选择Grok正则表达式方式识别。在输入框填写一段日志样本,样本可以选择来自于蜜罐【系统配置】| 【通知配置】中【syslog告警示例】:

代码语言:bash
复制
<12>2024-04-16T14:50:44Z mochazz HFish[12]:title: HFish Threat Alert | client: linux64测试机 | client_ip: 192.168.110.110 | class: 基础服务 | type: SSH | name: SSH蜜罐 | src_ip: 141.98.81.141 | src_port: 35635 | dst_ip: 192.168.110.110 | dst_port: 22 | geo: 美国/加州/堪萨斯 | labels: Scanner,Botnet | time: 2021-10-16 13:37:15 | info: root&&123456

当然也可以选择kafka收到的告警日志。

5.4.3 事件字段提取与映射

点击【下一步】进入Grok正则匹配和字段映射,为了快速看到效果,此处选择【手动编辑】。根据本条告警事件类型所需要关注的信息字段。这里可以自己自定义提取。我这里是手动用鼠标选取一个或多个值新建字段。具体操作可以查看官方的wiki。

5.4.4 关联事件类型

进入规则设置页面,此处针对已经格式化后的事件信息字段进行规则判断,以确定事件对应的事件类型。点击【新建关联规则】

  1. 设置条件
  2. 执行结果的事件类型名称设置为SIEM告警的蜜罐攻击事件,剧本所需字段需要选择日志字段中的Attacklp

5.4.5 蜜罐告警的测试

在蜜罐发送一个端口测试:

查看【事件列表】发现测试的事件已经生效。说明syslog和kafka接受日志都正常。

如果发现事件列表无数据,可能需要排查下kafka是否有接收到日志

5.4.6 模拟一个蜜罐攻击看效果

访问web蜜罐,如weblogic管理界面

接着查看事件列表

查看飞书机器人告警

6. 踩坑点的总结

  1. OctoMation已经自带了kafka和syslog了,不用自己再安装了。笔者看wiki的时候没注意,花了一段时间捣鼓kafka和syslog。不过还算是熟悉了下kafka和syslog的基本使用了
  2. 蜜罐在配置通知处的syslog服务器配置修改端口后,一定记得在告警策略一定记得勾选Syslog服务器,一定记得!! 因为更换端口后,告警策略处的☑️syslog服务器的位置会默认取消掉!为此我花了1个小时排查,最开始以为是syslog和kafka出问题了,后来发现更改端口后,会自动取消勾选!!很多时候不经意的改动,最后排查起来会话费成倍的时间!
  3. 遇到问题,弄不明白的时候一定记得记得看官方的文档wiki....而且要仔细看和推敲。不仅能提高效率还能走避免走好多弯路。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2. 相关硬件软件
  • 3. SOAR 搭建
    • 3.1 操作系统及软件要求
    • 3.2 安装方式
    • 3.3 登录web管理界面
    • 3.4 剧本Playbook
    • 3.5 剧本尝试
  • 4. 蜜罐搭建
  • 5. 蜜罐+SOAR联动
    • 5.1 流程图
    • 5.2 开启四个web蜜罐
    • 5.3 新建一个事件类型
    • 5.4 通过Kafka接收外部事件
      • 5.4.1 事件接入添加
      • 5.4.2 示例事件
      • 5.4.3 事件字段提取与映射
      • 5.4.4 关联事件类型
      • 5.4.5 蜜罐告警的测试
      • 5.4.6 模拟一个蜜罐攻击看效果
  • 6. 踩坑点的总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档