IT运维:SIEM在鸿鹄中的应用

引言

SIEM ( Security, Information, and Event Management)安全信息和事件管理,它是一种安全解决方案,可提供对事件的实时监控和分析,以及出于合规性或审计目的跟踪和记录安全数据。

SIEM 大多数提供核心的功能,包含日志管理,事件关联和分析,事件监控和安全报警。

  • 日志管理:从企业中捕获事件数据,包括网络设备、应用程序、资产、云环境等

  • 事件管理和分析:事件关联利用高级分析来识别和理解复杂的数据模式

  • 事件监控和安全警报:监控企业中的安全事件,通过关联规则生成图表来实现安全事件监控,并且可以触发警报,从而及时采取措施来避免更加严重的安全问题

基于鸿鹄的SIEM

在实际场景中的,我们着重需要考虑SIEM的安全性、易用性、可扩展性,主要考虑如下方面:

需要是国产的,具有完全的自主知识产权,安全可控

能否提供多种数据导入的方式

能够支持多样的日志格式

具备即时分析的能力,避免在ETL上花费大量时间

具备高效的结构化/半结构化数据存储,可对时间戳自动识别和分析,根据时间对数据分片;对数据进行分词,构建倒排索引

具备强大的搜索功能,搜索快速高效,支持跨库、异构数据关联、即时探索分析的交互式查询

具备灵活多样的图表和交互式的仪表板体验

根据我们的需求,经过综合的比较后,我们选择鸿鹄数据平台。鸿鹄数据平台提供了包括数据导入、数据存储分析和数据可视化等模块。

它的读时建模引擎可以快速导入和存储异构数据,进行灵活的异构数据建模以及关联分析,支持动态调整数据模型和分析参数,无需固化模型和分析流程,当数据源格式或业务模式发生变化后,只需调整SQL查询分析语言,无需重新导入和清洗数据,从而快速响应需求变化。

部署实施

本文是基于鸿鹄数据平台进行SIEM的初步部署,并非完全环境。在已经实现部分设备日志收集的基础上,进行初步的安全分析、关联分析、图表展示。仅供大家参考。

前提

目前我们已经将如下的数据通过syslog的方式发送到鸿鹄数据平台,由鸿鹄平台进行统一的数据存储。主要设备包含:

网络设备:H3C交换机、深信服防火墙、深信服上网行为管理

服务器设备:Dell服务器

存储设备:PowerStore存储

鸿鹄vector配置

Vector作为数据采集器,可以接收设备的syslog日志,并转发鸿鹄平台。Vector配置方法参考下文:

安装Vector

查看安装后vector版本,确认安装成功

vector安装好后,直接执行vector 时,系统首先会去/usr/bin下寻找命令,如果不在这个目录中,就会找不到了。这个时候我们就需要为这些找不到的命令建立一个链接文件,链接到/usr/bin下

登录鸿鹄平台,数据管理>新建数据集

编辑数据源名称,选择数据集范围为上面创建的"switch",此时会启用

创建syslog.toml脚本,需要调整字段

address = "0.0.0.0:514":0.0.0.0表示接收所有主机发送过来的syslog,514表示接收的端口(syslog默认为514)

._target_table = "switch" : 表示上文你创建的数据集名称

mode = "udp":表示接收syslog的协议syslog默认为udp)

address = "172.20.6.111:9092":鸿鹄的IP和相应的端口

运行修改的syslog脚本,注意保持运行状态。此时完成vector配置。

Syslog配置

网络设备配置syslog

H3C交换机syslog配置

需要开启日志,并将日志发送到鸿鹄平台。默认情况下syslog是通过udp514端口发送日志

将 IP 地址为 172.20.6.111的主机用作日志主机,使用 loghost 通道发送信息(可选,系统缺省为

loghost 通道),使用 local5 作为日志主机记录工具。

注意:这里可以指定发送日志的源地址,可以不指定,一般情况下为了方便辨识,建议指定

注意:如果是要通过管理口发送日志,管理口由于配置了VPN-Instance,需要指定VPN-Instance

配置输出规则:允许所有模块、级别高于等于 informational 的日志信息输出到日志主机。

我这里的实际配置命令

Cisco交换机syslog配置

在Cisco网络设备上的配置命令一般为:

在全局模式下<config>

我这里的实际配置命令

配置防火墙syslog

syslog配置>填写鸿鹄IP和端口号>应用

配置服务器syslog

配置系统日志服务器,填写日志系统的IP,端口号默认

开启警报

设置发送到日志平台的警报类型

配置PowerStore syslog

登录到PowerStore存储,Setting>Remote Logging>ADD

Host/IP Address 填写鸿鹄的地址

协议:默认是udp(与上文syslog.toml里一致)

端口号:默认514(与上文syslog.toml里一致)

Audit Type:全选

SEND TEST MASSEGE,发送测试一个日志信息测试下鸿鹄是否收到

在鸿鹄上查询下日志,发现已经收到存储发送的测试日志,至此配置syslog完成

字段抽取

目前我们已经接入了交换机、防火墙、服务器、存储设备,我们需要先对日志字段进行抽取,以便于我们后续进行搜索与图表展示。

防火墙字段抽取

sangfor_syslog,这里是需要新建的视图名称

switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换

where contains( switch._message, '日志类型') '日志类型'指的是你要搜索到这个写日志特定的字段,通过'日志类型'可以限定日志里所有包含'日志类型'的日志

sangfor_nat_syslog,这里是需要新建的视图名称

switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换

where contains( switch._message, 'NAT') '日志类型'指的是你要搜索到这个写日志特定的字段,通过NAT可以限定日志里所有包含NAT的日志

防火墙日志每个组件的日志格式各不相同,那么我们可能需要根据自己的情况进行多次字段抽取,上文已详述过字段抽取方法,这里只提供抽取字段脚本供参考

交换机字段抽取

switch_syslog,这里是需要新建的视图名称

switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换

服务器字段抽取

idrac_syslog,这里是需要新建的视图名称

switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换

where contains( switch._message, 'iDRAC') 'iDRAC'指的是你要搜索到这个写日志特定的字段,通过IDRAC可以限定日志里所有包含IDRAC的日志

PowerStore字段抽取

ps_syslog,这里是需要新建的视图名称

switch._time 脚本中由第六行开始switch均指的需要抽取数据的原数据集,这里需要根据你的数据集名称替换

where contains( switch._message, 'powerstore') 'powerstore'指的是你要搜索到这个写日志特定的字段,通过powerstore可以限定日志里所有包含powerstore的日志

图表展示

在现有设备日志的情况下,我们需要实现的监控效果如下:

所管理设备的概况,比如管理了哪些设备,这些设备的日志情况

设备的运行情况,比如设备是否有告警

安全事件,包含设备是否被密码暴力破解,密码嗅探;设备的配置变更是否合规

在实际场景中,如果我们查看图表时,想要所有的图表可以根据选择灵活的显示该怎么做,比如我想看1天的,想看7天的,那么这时候我们可以做一个"时间项",方法如下:

时间选择

创建时间选择

编辑

添加输入

输入类型:选择时间

标记名称:time_range(这个用于给图表调用)

显示标签:这个时间项显示的名字

默认标记值:这里根据自己的情况选择,我一般选择相对时间,设置成30天

确定后会生成一个时间选择的项

调用时间选择

选择想要调用的图表,选择编辑查询

将查询时间范围改为时间标记值,标记名称time_range(上文创建的时间选择时填写的标记名称)

保存后就可以在"时间选择"里选择想要查看的时间,点击应用,图表就会根据时间变化了

搜索语句

搜索语句是建立在已经字段抽取的前提下的,如果未抽取字段,那么很多调用了抽取字段的图表将不会显示。

小提示:在生成图表时,记得将图表的"查询时间范围"内标记名称改为time_range,以便调用时间选择

最终效果图

本文受限于对SQL语句只是初学阶段,所以很多分析只是基本的分析,供大家参考。鸿鹄本身SQL搜索功能强大,图表展示功能多样,大家可以自行发挥。

相关推荐
Aloudata1 小时前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
水豚AI课代表1 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
€☞扫地僧☜€1 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩1 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
紅色彼岸花1 小时前
第六章:DNS域名解析服务器
运维·服务器
✿ ༺ ོIT技术༻2 小时前
Linux:认识文件系统
linux·运维·服务器
会掉头发2 小时前
Linux进程通信之共享内存
linux·运维·共享内存·进程通信