我的第一个OctoMation 事件接入 - flagify-com/OctoMation GitHub Wiki

本页将向您介绍完成OctoMation接收外部事件信息并开展自动化剧本响应的配置过程,展开右侧导航栏观看效果更好 ->_->

主要逻辑:SIEM产品通过Kafka发了一条告警-->OctoMation接收这个外部事件->根据接入规则识别出特定事件类型->自动触发对应的事件处置剧本。

如果需要通过系统API接入事件参考这里image

1. 创建一个新的事件类型

登录OctoMation后台,访问到【事件管理】|【事件类型】,点击【新建】即可创建新的事件类型。

image

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

image

接下来,需要用户给出一个日志样例。OctoMation支持多种事件日志解析方式,包括:GrokCEFJSON分隔符键值对(Key/Value)。此处,我们选择Grok正则表达式方式识别。在输入框填写一段日志样本:192.168.2.250 is under attack of brute force to user root from 173.249.50.120 port 38142 ssh2

image

未来所有与该样本日志格式相同的事件,都将按照同一个映射逻辑和规则进行处置。

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

image

如果您对Grok不熟悉,可以点击帮助按钮,获取更多信息。

编写完成后,点击【解析】按钮,对解析后的字段进行映射:绑定到CEF通用字段,或者用自定义的字段

🔔建议尽可能使用业界最佳实践,减少自定义字段的使用。

image

  • 原始事件:rawEvent
  • 源地址:src
  • 源端口:spt
  • 目的地址:dst
  • 目的用户:duser
  • 类型:type

在映射输入框中点选对应的CEF字段,输入框支持搜索。

image

完成映射后,点击【下一步】按钮。

2.4 关联事件类型

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

image

使用【简单模式】创建规则:“事件类型 等于 brute force && 源地址 不为空”,如果满足条件,将该事件类型设置为SIEM告警的暴力破解攻击事件

image

当然,您还可以根据需要,增加更多的匹配规则,关联不同的事件类型。点击【保存】按钮,完成事件接入配置。

3. 收到事件后触发剧本(可选)

首先,你需要有一个现成的剧本,请参考我的第一个OctoMation Playbook;其次,回到本文档第一节,你需要在定义一个事件类型时,勾选【自动执行】来绑定一个剧本,如:设置“暴力破解”事件类型,与剧本“暴力破解处置剧本”进行绑定。

image

4. 模拟一个事件看效果

通过向Kafka消息队列发送一条模拟告警事件,触发事件接收。然后,登录OctoMation后台查看事件创建和剧本(如果有绑定)执行的情况。让我们重新梳理一下整个接入过程:

  1. 我们编排了一个处置暴力破解事件安全剧本【暴力破解处置剧本】
  2. 我们创建了一个【暴力破解】事件类型,并设置默认执行【暴力破解处置剧本】
  3. 我们做了事件接入规则【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网站上传操作视频,请稍后。