1.前置环境
开源项目地址:该项目是将sysmon事件通过splunk app映射到ATT&CK上,可以快速的进行分析。 搭建过程中开始一直不出数据,这里记录搭建的过程。
https://github.com/olafhartong/ThreatHunting
https://github.com/olafhartong/sysmon-modular
环境:
Windows主机一台,已经安装splunk转发器
Linux 服务器一台,已经安装splunk
2.Windows 客户端配置
2.1安装sysmon
Sysmon下载:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
规则文件下载(这个规则是这个项目配套的):
https://github.com/olafhartong/sysmon-modular/blob/master/sysmonconfig.xml
安装sysmon:sysmon.exe -accepteula -i sysmonconfig.xml
后续更新规则: sysmon.exe -c sysmonconfig.xml
验证:在事件查看器 应用程序和服务日志>Microsoft>Windows>Sysmon>Operational中可以看到事件日志。
2.2配置splunk采集
在以下路径配置文件中,配置采集内容(老外的视频是把sysmon,splunk服务端安装在一起,所以直接在splunk中选择即可,一般情况下都是要配置转发器)
C:\Program Files\SplunkUniversalForwarder\etc\apps\SplunkUniversalForwarder\default路径下的inputs.conf配置文件,配置如下内容:
[WinEventLog://Microsoft-Windows-Sysmon/Operational]
disabled = false
renderXml = false
index = windows
source = WinEventLog:Microsoft-Windows-Sysmon/Operational
如下图所示:(目的是为了采集Sysmon日志,并采集到splunk的windows索引中,指定source类型,不解析Xml。 这几行配置都很重要,跟后面的内容是一一对应的)
配置完成后,重启splunk, 到bin路径下执行splunk.exe restart
验证:在完成了3.3索引建立以后, 可以通过index=”windows”搜索数据,source一定要配对,不然关联不上数据
3.Linux服务端配置
3.1安装threathunting APP
在查找更多应用中搜索
安装完成后会看到app出现在列表中
3.2安装依赖APP,lookup文件
进入threathunting APP,点击关于>About this app,会看到一堆依赖的app和csv文件
需要安装的app:
Force Directed Visualisation App for Splunk
Link Analysis App for Splunk
Punchcard
Sankey Diagram
Timeline
到splunk的app管理中依次安装,其中Microsoft Sysmon Add-on可以不安装,老外的视频说根据经验装了会出问题。
上传白名单的csv文件:
文件下载路径:
https://github.com/olafhartong/ThreatHunting/raw/master/files/ThreatHunting.tar.gz
上传到安装splunk的服务器,解压到splunk/etc/apps/ThreatHunting/lookups路径下(根据你安装splunk的路径做调整)。
验证:刷新页面,显示只有Microsoft Sysmon Add-on没安装
3.3建立索引
建立windows和threathunting索引, windows索引用来接收agent上来的原始数据,threathunting接收的是windows索引加工统计后的数据,这里比较不好理解。
注意:索引名称一定要对,数据完整性检查要选择Enable, 应要选择ThreatHunting(如果是从ThreatHunting跳过去默认会选这个,但是如果从其他应用过来会建到其他应用去)
验证:
4.效果
5.遇到的一些坑
5.1仪表盘上没有数据
- 应用首页的数据需要从windows索引进行统计分析输入到threathunting索引,这个比较慢,会等比较久
- Windows和threathunting索引建到别的应用下面去了,参考3.3
- Source类型不对
5.2原文中修改配置
原文中有这么一部分, 旧的版本sysmon配置只有source="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational", 后面变成了source="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational",所以新版本是不需要修改的。
5.3一些查询没有结果
有些语句app写的有问题, 参考最后的视频,找到原始语句进行查询,对报错语句进行修改并保存。通过这个方法遇到其他没结果的也可以使用类似的调试方式。
5.4错误could not load lookup=lookup-eventcode
参考解决方案:
5.5source的作用
App的宏配置中有定义sysmon,而很多查询语句使用`sysmon`进行查询,所以配置source时需要source是准确的,尽量保证
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"。
`sysmon`是个宏,会被替换成
index=windows (source="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" OR source="WinEventLog:Microsoft-Windows-Sysmon/Operational")
6.参考原文
https://www.linkedin.com/pulse/attckized-splunk-kirtar-oza-cissp-cisa-ms-/
https://www.youtube.com/watch?v=GVM8RRyQx7s&feature=youtu.be
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。