SIEM中心日志节点WEF搭建说明

        2019-03-19 64298人围观 ,发现 3 个不明物体 企业安全

        *本文作者:mr.anderson,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

        背景介绍

        在 SIEM (安全应急事件管理) 搭建中,日志是及其重要的一环。对于黑客掌上的明珠——域控, 它的日志监控是非常重要的,本文将介绍如何通过 WEF(Windows Event Forwarding) 将windows 主机日志汇总到一台中心节点,并输入到ElasticSearch ,最后通过Kibana 的展示。

        ?#24605;?#26500;的优点:

        查询快速;

        通过调用ES可以实现安全事件实时监控。

        Windows WEF 环境配置

        Windows Event Forwarding 在windows 2008?#26412;?#24050;经启用,主要用于日志中心化收集和转储,好处很多。

        运行必要条件

        一台在域控中的日志收集节点 (server 端);

        任意一台需要发送到日志中心节点的域内主机 (client 端);

        一个域控管理员权限用户;

        Client ?#35828;?#26085;志读取账户权限需要开启network services 权限;

        防火墙对域内的5985/5986端口白名单,用于日志传输。

        架构介绍

        windows 的日志转发有两种方式:

        收集器已启动;

        源计算机已启动。

        考虑到安全性,可以选择源计算机已启动,好处是只需要开启域控到收集?#35828;?#35775;问,无需在域控中添加账户。一旦收集端出现安全风险,在防火墙配置正确的前提下,也不会影响任何域控,

        此文将按照源计算机已启动为方法做介绍,其中角色:

        client 日志发送方;

        server 日志收集方。

        Client 端配置

        Client 的 security log 权限查询和添加

        使用管理员权限打开 powershell ,运行如下命令:

        wevtutil gl security

        该命令是用于检查security 日志读取权限是否允许network service 读取。

        返回应该是如下内容则配置成功:

        PS C:\Windows\system32>  wevtutil gl security
        ...
        channelAccess: O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;NS

        如果缺少 (A;;0×1;;;NS) 表示network service 权限没有加到security 日志项中。需要单独添加,添加前记得先将结果保存后,然后追加 network service权限。

        Client 的 security 日志的 network 权限添加

        组策略-> 计算机配置 -> 管理模板 -> windows 组件 -> 事件日志服务器 -> 安全-> 配置日志访问

        然后双击后,选择已启用,将 wevtutil gl security 中的值和(A;;0×1;;;NS)加入到配置项中 ,如

        O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;NS)

        Client 的发送目标配置

        组策略-> 计算机配置 -> 管理模板 -> windows 组件 -> 事件转发 -> 配置目标订阅管理器(即就是我们的server?#35828;?#22336;)

        选择已启用,并输入:

        Server=http://logcentra.domain.com:5985/wsman/SubscriptionManager/WEC

        Server 端配置

        打开日志收集项

        使用管理员权限打开powershell 或cmd ,运行winrm qcWinRM 服务,并激活日志收集项:

        运行成功后你会看到5985 5986端口打开。

        配置日志接收项和接收的计算机

        打开事件查看器,并选择左侧订?#27169;?/p>

        选择?#20063;?#30340;创建订?#27169;?#24182;选择你?#34892;?#36259;的item项。

        选择添加刚刚配置的域计算机,并输入计算机名即完成日志接收端配置。

        转发错误的日志查看

        上述已经将整个日志转发流程配置完成了,但是肯定有疏漏的地方,如果想要排错,建议在 client ?#35828;?#26085;志发起方查看日志,查看位置在:

        事件管理器 -> 应用程序?#22836;?#21153;日志 -> Microsoft -> windows -> Eventlog-forwardingPlugin

        其他命令

        命令行导入自定义订阅日志规则:

        wecutil cs DomainComputers.xml

        wecutil cs DomainControllers.xml

        Windows 下的 nxlog 转发配置

        nxlog [https://nxlog.co/ ] 是用于将windows 日志json 化?#38498;?#36716;发到 ES 或者 Logstash 的开源工具。

        其中的关键配置分为输入端和输出端,输入?#35828;?#28982;是windows 的事件日志,由于我们是转发日志,所以需要在 Select Path 输入 ForwardedEvents。

        输入端:

        <Input in>
          Module      im_msvistalog
        	Exec 	to_json();
        	Query	<QueryList>\
                            	<Query Id="0">\
        					Select Path="ForwardedEvents">*</Select>\
                        	</Query>\
        		</QueryList>
        </Input>

        输出端用于将日志输出到制定服务,该实例是将日志输出到 logstash。

        输出端配置:

        <Output out>
          Module om_ssl
          Host IP_Address
          Port Port_Number
          CaFile %ROOT%\cert\ca.pem
          OutputType LineBased
        </Output>
        
        <Output out_debug>
            Module	om_file
            File	"C:\\nxlog_debug.log"
        </Output>

        可以看到日志传输是使用自签发证书?#29992;?#30340;,保证了日志传输安全性。

        logstash 日志配置

        input {
          tcp {
                port => Port
                type => "nxlogs"
                ssl_cert => "/etc/logstash/conf.d/ssl/logstash.crt"
                ssl_key => "/etc/logstash/conf.d/ssl/logstash.key"
                ssl_extra_chain_certs => ["/etc/logstash/conf.d/ssl/ca.pem"]
                ssl_verify => false
                ssl_enable => true
                codec => 'json'
            }
        }
        filter
        {
                if [type] == "nxlogs" {
                  date {
                      match => ["[EventTime]", "YYYY-MM-dd HH:mm:ss"]
                  }
                }
        
        }
        
        output
        {
                #stdout{}
         elasticsearch
         {
                hosts => ["IP:PORT"]
                index => "ad-monitor-%{+YYYY.MM.dd}"
                user => "name"
                password => "password"
         }
        }

        Nxlog 和 Logstash 的?#29992;?#35777;书配置命令

        ca 私?#21487;?#25104;

        openssl genrsa -out ca.key 2048

        签发个人 CA

        openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem

        创建 logstash 的私钥

        openssl genrsa -out logstash.key 2048

        创建 logstash 的证书申请

        openssl req -new -key logstash.key -out logstash.csr

        使用 ca 证书去前方刚刚创建的logstash 证书申请并生成证书,过期时间为10年(不安全,但是?#22870;悖?/p>

        openssl x509 -req -in logstash.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out logstash.crt -days 3650 -sha256

        Kibana 展示结果

        参考

        基础搭建指南和规则文件的命令行导入:

        https://blogs.technet.microsoft.com/jepayne/2015/11/23/monitoring-what-matters-windows-event-forwarding-for-everyone-even-if-you-already-have-a-siem/

        介绍在日志收集端常见的规则导入脚本:

        https://hackernoon.com/the-windows-event-forwarding-survival-guide-2010db7a68c4

        日志转发收集内容基线

        https://github.com/nsacyber/Event-Forwarding-Guidance

        *本文作者:mr.anderson,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

        发表评论

        已有 3 条评论

        取消
        Loading...

        这?#19968;?#22826;懒,还未填写个人描述!

        1 文章数 3 评论数

        特别推荐

        推荐关注

        填写个人信息

        姓名
        电话
        邮箱
        公司
        行业
        职位
        css.php 永利彩票是骗局吗

                    贵州11选5任选7 一尾中特肖 棋牌游戏牛牛注册现金 大乐透090期开奖号码 体彩e球彩今天第20期 澳洲幸运10历史数据 手机玩牌九开挂作弊器 3d开机号和试机号100期 喜乐彩开奖号码信息 131期看图找生肖中特 6场半全场比赛时间 体彩p5走势图带连线图 街机游戏棒球小子 nba彩票投注 贵州11选5基本走势图百度