Windows Sysmon日志通过NXLog发送到ELK
Sysmon对于安全监控来说非常好用,但Windows的事件查看器是条目形式出现,需要数据分析或者威胁分析的场景中通常需要将日志上报,这里记录下如何将Windows Sysmon日志通过NXLog发送到ELK当中。
Sysmon
Sysmon是一种Windows系统服务和设备驱动程序,以监视系统活动并将其记录到Windows事件日志中。它提供有关进程创建、网络连接和文件创建时间更改的详细信息。通过这些详细信息,可以进行数据分析或威胁分析。
1、下载Sysmon软件并解压
1 | https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon |
2、下载Sysmon模板并移动到第一步解压后的路径
1 | https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml |
3、以管理员权限打开cmd,进入到第一步解压后的路径,安装Sysmon
1 | Sysmon64.exe -accepteula -i sysmonconfig-export.xml |
4、打开Windows事件查看器,查看Sysmon日志,依照如下路径可找到:
1 | 事件查看器->应用程序和服务日志->Microsoft->Windows->Sysmon->Operational |
可以看到其中的常规与详细信息。其中Windows Sysmon日志名称为Microsoft-Windows-Sysmon/Operational
。这一点在后面会在NXLog中配置。
NXLog
NXLog是一个多平台日志管理解决方案,允许从各种来源收集日志、过滤日志事件、转换日志数据并将其路由到不同的目的地。其支持企业版和社区版,这里采用社区版本即可。关于企业版和社区版的对比可以查看如下文档:
1 | https://nxlog.co/community-edition-vs-enterprise-edition |
1、下载NXLog并安装
1 | https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition |
2、在安装目录(比如:D:\Program Files\nxlog\conf)打开nxlog.conf
文件:
1)添加Extension json扩展
1 | <Extension _charconv> |
2)在底部添加Sysmon日志发送的配置,其中包括Input、Output、Route三项:
1 | <Input sysmon> |
3、仍然以管理员权限打开cmd,启用NXLog服务
1 | net start nxlog |
这里可以使用其他syslog工具先进行测试后再配置Logstash的地址。另外这里我采用了json输出,处理起来会更为方便。
ELK配置
为了便于数据分析或者威胁分析,我们将日志写入到ELK中,先当成一个简单的SIEM使用。这里是通过Logstash接收NXLog发送的日志,经过处理后写入到ElasticSearch。
1、编写如下配置文件,放入Logstash的pipeline配置目录中:
1 | [root@localhost docker-elk]# cat Logstash/pipeline/windows_nxlog.conf |
在这有一点值得注意的是,如果和我一样使用了docker版本的Logstash:
1 | logstash: |
需要注意以下容易被忽略的两点:
1)注意ports映射端口时增加tcp、udp协议
2)调整docker-compose.yml前,先执行docker-compose stop logstash
,等编辑完成后重新执行
1 | docker-compose up -d logstash |
2、重新启动Logstash后,即可进行端口监听和将数据写入ElasticSearch当中。
到这里就可以直接通过Kibana去查询或者创建Dashboard进行不同维度的分析工作了。
参考
1、https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon
2、https://github.com/SwiftOnSecurity/sysmon-config
3、https://docs.nxlog.co/integrate/windows-eventlog.html
4、https://docs.nxlog.co/integrate/syslog.html
5、https://nxlog.co/community-forum/t/535-how-to-parse-json-logs-to-syslog-format
6、https://docs.nxlog.co/refman/current/xm/json.html