我的第一个OctoMation 事件接入 - flagify-com/OctoMation GitHub Wiki
本页将向您介绍完成OctoMation接收外部事件信息并开展自动化剧本响应的配置过程,展开右侧导航栏观看效果更好 ->_->
主要逻辑:SIEM产品通过Kafka发了一条告警-->OctoMation接收这个外部事件->根据接入规则识别出特定事件类型->自动触发对应的事件处置剧本。
如果需要通过系统API接入事件参考这里。
1. 创建一个新的事件类型
登录OctoMation后台,访问到【事件管理】|【事件类型】,点击【新建】即可创建新的事件类型。
2. 通过Kafka接收外部事件
2.1 告警事件日志准备
首先,我们假设有一条来自上游SIEM产品的安全告警事件,文本内容如下:
192.168.2.250 is under attack of brute force to user root from 173.249.50.120 port 38142 ssh2
现在该事件被SIEM产品通过Kafka发送到了OctoMation,OctoMation即将消费该事件消息并进行处置。
假定,Kafka消息队列的连接信息如下:
- Bootstrap地址:192.168.2.251:9092
- 消息队列名称:SIEM_ALERT_TOPIC
2.2 事件源配置
登录OctoMation后台,进入【事件管理】|【事件接入】菜单,新建接入规则。填写基础信息,包括:
- 配置名:PRE_SIEM_ALERT
- 描述:SIEM告警事件接入
- 消息队列:SIEM_ALERT_TOPIC
- 服务器:192.168.2.251:9092
接下来,需要用户给出一个日志样例。OctoMation支持多种事件日志解析方式,包括:Grok
,CEF
,JSON
,分隔符
,键值对(Key/Value)
。此处,我们选择Grok正则表达式方式识别。在输入框填写一段日志样本:192.168.2.250 is under attack of brute force to user root from 173.249.50.120 port 38142 ssh2
。
未来所有与该样本日志格式相同的事件,都将按照同一个映射逻辑和规则进行处置。
2.3 事件字段提取与映射
点击【下一步】进入Grok正则匹配和字段映射,为了快速看到效果,此处选择【手动编辑】。根据本条告警事件类型所需要关注的信息字段,使用下述Grok正则表达式:
%{IP:dst_ip} is under attack of %{DATA:attack_type} to user %{USERNAME:dst_user} from %{IP:src_ip} port %{NUMBER:src_port} ssh2
如果您对Grok不熟悉,可以点击帮助按钮,获取更多信息。
编写完成后,点击【解析】按钮,对解析后的字段进行映射:绑定到CEF通用字段,或者用自定义的字段
。
🔔建议尽可能使用业界最佳实践,减少自定义字段的使用。
- 原始事件:rawEvent
- 源地址:src
- 源端口:spt
- 目的地址:dst
- 目的用户:duser
- 类型:type
在映射输入框中点选对应的CEF字段,输入框支持搜索。
完成映射后,点击【下一步】按钮。
2.4 关联事件类型
进入规则设置页面,此处针对已经格式化后的事件信息字段进行规则判断,以确定事件对应的事件类型。点击【新建关联规则】,
使用【简单模式】创建规则:“事件类型 等于 brute force && 源地址 不为空”,如果满足条件,将该事件类型设置为SIEM告警的暴力破解攻击事件
。
当然,您还可以根据需要,增加更多的匹配规则,关联不同的事件类型。点击【保存】按钮,完成事件接入配置。
3. 收到事件后触发剧本(可选)
首先,你需要有一个现成的剧本,请参考我的第一个OctoMation Playbook;其次,回到本文档第一节,你需要在定义一个事件类型时,勾选【自动执行】来绑定一个剧本,如:设置“暴力破解”事件类型,与剧本“暴力破解处置剧本”进行绑定。
4. 模拟一个事件看效果
通过向Kafka消息队列发送一条模拟告警事件,触发事件接收。然后,登录OctoMation后台查看事件创建和剧本(如果有绑定)执行的情况。让我们重新梳理一下整个接入过程:
- 我们编排了一个处置暴力破解事件安全剧本【暴力破解处置剧本】
- 我们创建了一个【暴力破解】事件类型,并设置默认执行【暴力破解处置剧本】
- 我们做了事件接入规则【SIEM告警事件接入规则】,并定义如果事件格式满足指定条件,就将其事件类型设置为【暴力破解】
这样,当接入配置中的Kafka消息队列中收到一条来自SIEM产品的暴力破解的告警事件,那么系统将自动创建一个类型为【暴力破解】的事件,同时自动触发安全剧本【暴力破解处置剧本】进行自动化应急响应。
测试发送一条数据
这里,通过Kafka Client做一个测试,以SIEM身份向消息队列里发送一条测试的事件。
192.168.2.250 is under attack of brute force to user root from 173.249.50.120 port 38142 ssh2
OctoMation收到消息并创建了安全事件
事件发送后将被OctoMation消费,根据我们定义的事件接入规则【SIEM告警事件接入】,系统自动创建了【暴力破解】类型的安全事件,并自动执行了其绑定的安全剧本。
4. 视频演示
我们将在Bilibili网站上传操作视频,请稍后。