SIEM中心日志节点WEF搭建说明 – 作者:mr.anderson

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

背景介绍

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

此架构的优点:

查询快速;

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

Windows WEF 环境配置

Windows Event Forwarding 在windows 2008时就已经启用,主要用于日志中心化收集和转储,好处很多。

运行必要条件

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

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

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

Client 端的日志读取账户权限需要开启network services 权限;

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

架构介绍

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

收集器已启动;

源计算机已启动。

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

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

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;;0x1;;;NS) 表示network service 权限没有加到security 日志项中。需要单独添加,添加前记得先将结果保存后,然后追加 network service权限。

Client 的 security 日志的 network 权限添加

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

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

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

Client 的发送目标配置

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

选择已启用,并输入:

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

Server 端配置

打开日志收集项

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

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

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

打开事件查看器,并选择左侧订阅:

选择右侧的创建订阅,并选择你感兴趣的item项。

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

转发错误的日志查看

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

事件管理器 -> 应用程序和服务日志 -> Microsoft -> windows -> Eventlog-forwardingPlugin

其他命令

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

wecutil cs DomainComputers.xml

wecutil cs DomainControllers.xml

Windows 下的 nxlog 转发配置

nxlog [https://nxlog.co/ ] 是用于将windows 日志json 化以后转发到 ES 或者 Logstash 的开源工具。

其中的关键配置分为输入端和输出端,输入端当然是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>

可以看到日志传输是使用自签发证书加密的,保证了日志传输安全性。

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 的加密证书配置命令

ca 私钥生成

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年(不安全,但是方便)

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 原创奖励计划,未经许可禁止转载。

来源:freebuf.com 2019-03-19 14:00:25 by: mr.anderson

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论