美文网首页
Windows sysmon+winlogbeat+ELK实现W

Windows sysmon+winlogbeat+ELK实现W

作者: Hudi233 | 来源:发表于2019-05-10 13:23 被阅读0次

一、sysmon告警介绍

sysmon提供21种事件告警:

Event ID 1:进程创建

Event ID 2:进程更改文件创建时间

Event ID 3:网络连接

Event ID 4:sysmon服务状态变更

Event ID 5:进程终止

Event ID 6:驱动程序加载

Event ID 7:映像加载

Event ID 8:远程连接线程创建

Event ID 9:内存读取

Event ID 10:进程允许访问

Event ID 12:注册表事件(键值配置)

Event ID 13: 注册表事件(项目创建和删除)

Event ID 14:注册表事件(键值键名修改)

Event ID 15:创建文件留事件

Event ID 17:管道事件(管道创建)

Event ID 18:管道事件(管道连接)

Event ID 19:WMI事件(WMI事件过滤动作执行)

Event ID 20:WMI事件(WMI事件注册动作执行)

Event ID 21:WMI事件(WMI事件绑定过滤器动作执行)

Event ID 255:错误

二、监控设计

功能实现

①:Windows机器固定周期从内网搭建网站获取配置脚本,并每周进行一次Sysmon64.exe -c 的更新,以实现自动同步配置的需求(bat脚本+Windows周期任务实现)

②:winlogbeat收集sysmon日志并将日志输出到logstash中

③: logstash进行筛选,remove掉不需要的项(根据需要调整,笔者只监控告警id 3网络连接、id 4 sysmon服务状态变更、id 8 远程连接线程创建和id 255 错误)

④:ES提供数据查询功能,logstash的email插件提供告警功能

⑤:通过Python脚本邮件合并、筛选发现的威胁项

环境要求:sysmon部署环境需要是win7及以上,win2008 R2及以上。

三、sysmon+winlogbeat一键部署

https://github.com/Hudi233/sysmonwinlogbeat

四、logstash配置

input  {

        beats {

                port => 5044

        }

}

filter {

        if [event_data][DestinationIp] !~ "^100\.|^10\." and [event_data][DestinationIp] =~ "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" {

                geoip {

                        source => "[event_data][DestinationIp]"

                        fields => ["city_name", "country_name"]

                        database => "./ELK/logstash-6.4.0/GeoLite2-City.mmdb"

                }

        }

        if [event_data][DestinationIp] =~ "^100\.|^10\.|^127\.0\.0\.1" {

                drop { }

        }

}

output {

        elasticsearch {

                hosts => "127.0.0.1:9200"

                index => "sysmon"

        }

        if [event_data][DestinationIp] !~ "^100\.|^10\.|^127\.0\.0\.1" {

                email {

                        to => 'xxx@xxx.com'

                        from => 'xxx@xxx.com'

                        subject => 'Alert - %{event_id}'

                        body => "Content:\n%{message}\n%{geoip}"

                        address => 'xxx.com'

                        authentication => "plain"

                        password => '***'

                        username => 'xxx@xxx.com'

                }

        }

}

相关文章

网友评论

      本文标题:Windows sysmon+winlogbeat+ELK实现W

      本文链接:https://www.haomeiwen.com/subject/tpxaoqtx.html