构建基于Snort+Splunk的IDS系统

时间:2024-01-26 12:09:42

Splunk是一款数据分析系统(分为社区版和商业版两种),它在快速collect、search、分析、实时获取数据方面的能力较为突出,效率高,能够处理PB级数据,并且它支持对数据源进行实时监控。支持自定义过滤规则。Splunk除了功能强大,在本地化方面也做得非常不错,通过用户图形界面进行各种统计分析操作,能够对数据进行可视化展示,形象直观。本实验中利用Splunk来分析本地上传Snort的警报日志文件(社区版最大上传文件500MB)alert.id(有的系统是fast.log文件)。Splunk 9不但能分析alert.ids日志文件,而且能分析snort.log.xxxxxxxx这类Unified2格式的二进制文件(v9以前的版本不具备此项功能)。在进行下面实验之前,我们首先在splunk.com注册账户,以便能下载插件。

构建基于Snort+Splunk的IDS系统_snort

一、安装Splunk 9

      我们在Windows 10 系统中安装Splunk 9,无论将Splunk安装到哪个分区,要构建一个基本的实验环境,首先确保磁盘可用空间不小于50GB,然后就要设置Web访问用户名和密码,如图1所示。

构建基于Snort+Splunk的IDS系统_Splunk_02

图1 设置Splunk访问密码

其他安装界面我们根据系统提示逐步操作即可。

二、安装日志解析插件

        Splunk 9可以解析Snort产生的文本格式报警和Unified2格式的报警,下面我们分别添加两种插件,并分别上传文本格式和Unified2格式的报警数据,分为以下四步完成。


步骤1:添加Alert 插件

打开浏览器,在地址栏输入网址:http://127.0.0.1:8000,显示界面,如图2所示。

构建基于Snort+Splunk的IDS系统_Splunk_03

图2 Splunk登录界面

登录系统之后,开始添加数据源,如图3所示。

构建基于Snort+Splunk的IDS系统_snort_04

图3 设置数据源

我们先通过“查找更多应用”选项找到Snort插件,如图4所示。然后再进行安装。

构建基于Snort+Splunk的IDS系统_Splunk_05

图4 查找Snort插件

点击安装按钮,接着系统提示输入Splunk网站注册的用户名和密码。安装成功截图如图5所示。

构建基于Snort+Splunk的IDS系统_Splunk_06

图5 插件安装成功

步骤2:添加 Unified2格式解析插件

      Splunk 9.0增加了Unified2读取插件功能,它可以方便得解析 Unified2“警报”日志。如果您使用 Snort 编写 Unified2 警报日志或 Barnyard2 并通过 syslog 发送它们,此应用程序将提取与该事件关联的所有字段。

注意:将支持数据包日志记录和真正的统一日志记录。在应用选项中输入Unified2关键词,我们可以找到安装入口,如图6所示,安装过程同上一步。

构建基于Snort+Splunk的IDS系统_snort_07

图6  安装Unified2插件

这两个插件安装完成之后,我们开始导入本地数据源。

步骤3:上传alert.ids报警文件

我们打开Splunk首页,选择数据来源,先进入Snort的日志目录,打开alert.ids,如图7所示。

构建基于Snort+Splunk的IDS系统_snort_08

图7 选择alert.ids为数据源

注意,社区版Splunk只能导入500M日志文件。接着选择下一步。如图8所示。

构建基于Snort+Splunk的IDS系统_Splunk_09

图8  选择 alert.ids

接着,我们在选择来源类型下列菜单中依次选择:网络和安全→Snort alert,并选择数据类型如图9所示。

构建基于Snort+Splunk的IDS系统_snort_10

图9  选择数据类型为snort

接着,选择下一步按钮,并保存来源类型,如图10所示。

构建基于Snort+Splunk的IDS系统_snort_11

图10 选择数据保存类型

接下来,点击“检查”按钮。如图11所示。

构建基于Snort+Splunk的IDS系统_Splunk_12

图11 检查设置

系统显示摘要信息,如图12所示。

构建基于Snort+Splunk的IDS系统_snort_13

图12 显示导入数据源摘要

至此安装已完成,下面点击提交按钮,如图13所示.

构建基于Snort+Splunk的IDS系统_Splunk_14

图13 成功上传日志文件

日志文件上传成功之后,开始系统检测,首先点击“开始搜索”按钮,如图14所示。

构建基于Snort+Splunk的IDS系统_snort_15

图14 搜索日志

        这里,我们可以在搜索框中输入IP地址或端口信息查询信息。下面我们打开刚安装的插件程序,返回首页选择Snort Alert for Splunk按钮,如图15所示。

构建基于Snort+Splunk的IDS系统_snort_16

图15 打开Alert for Splunk界面

点击Snort Alert for Splunk按钮,显示数据如图16所示。

构建基于Snort+Splunk的IDS系统_Splunk_17

图16 Snort Alert可视化报警界面

步骤4:上传Unified2格式报警文件

      为了演示Splunk解析 Unified2文件的效果,这里我们先上传一个Linux系统下产生的报警文件。选择数据源上传Unified2报警文件,如图17所示。

构建基于Snort+Splunk的IDS系统_snort_18

图17 上传 Unified2格式报警文件

在默认类型里输入Unified2,将数据源设置为unified2,点击下一步,如图18所示。

构建基于Snort+Splunk的IDS系统_Splunk_19

图18 设置unified2数据类型

下面,接着点击下一步按钮开始检查,如图19所示。

构建基于Snort+Splunk的IDS系统_Splunk_20

图19 完成检查

三、生成日志报表

当步骤3成功设置之后,我们点击报表下拉菜单中“Top 10 source IPS“即可生成报表,如图20所示。

构建基于Snort+Splunk的IDS系统_snort_21

     图 20  生成报表

四、总结 

     我们在构建SIEM系统中,选择Splunk来收集所有系统、网络及安全设备的日志,这就包括了防火墙、IDS/IPS的所有事件。通过Splunk来集中管理多源事件,本案例中重点讲解了如何加入Snort产生的两类日志: 1.alert.ids (文本格式) 2.Unified2 (二进制格式)对于这两类日志我们可以直接在Splunk里导入数据源也可以用数据转发方式发送到远端系统, 对于系统实验环境搭建大家可参考《Windows 10环境快速安装Snort可视化系统》课程。 https://edu.51cto.com/course/34405.html

      通过以上介绍,可以发现Splunk绘图功能比BASE更强大,而且处理的数据量也远大于BASE,本文介绍的经验适合于Windows系统环境下部署Snort IDS

2023年度 51CTO杰出讲师评选开始啦,期待大家投上宝贵一票! http://edu.51cto.com/lecturer/350944.html

构建基于Snort+Splunk的IDS系统_Splunk_22