前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SIEM中心日志节点WEF搭建说明

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

作者头像
知识与交流
发布2021-04-02 14:28:26
9130
发布2021-04-02 14:28:26
举报
文章被收录于专栏:黑客技术家园黑客技术家园

在 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 ,运行如下命令:

代码语言:javascript
复制
wevtutil gl security

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

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

代码语言:javascript
复制
PS C:Windowssystem32>  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)加入到配置项中 ,如

代码语言:javascript
复制
O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;NS)

Client 的发送目标配置

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

选择已启用,并输入:

代码语言:javascript
复制
Server=http://logcentra.domain.com:5985/wsman/SubscriptionManager/WEC

Server 端配置

打开日志收集项

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

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

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

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

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

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

转发错误的日志查看

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

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

其他命令

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

代码语言:javascript
复制
wecutil cs DomainComputers.xmlwecutil cs DomainControllers.xml

Windows 下的 nxlog 转发配置

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

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

输入端:

代码语言:javascript
复制
<Input in>
  Module      im_msvistalog
    Exec     to_json();
    Query    <QueryList>
                        <Query Id="0">
                    Select Path="ForwardedEvents">*</Select>
                    </Query>
        </QueryList>
</Input>

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

输出端配置:

代码语言:javascript
复制
<Output out>
  Module om_ssl
  Host IP_Address
  Port Port_Number
  CaFile %ROOT%certca.pem
  OutputType LineBased
</Output>

<Output out_debug>
    Module    om_file
    File    "C:
xlog_debug.log"
</Output>

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

logstash 日志配置

代码语言:javascript
复制
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 私钥生成

代码语言:javascript
复制
openssl genrsa -out ca.key 2048

签发个人 CA

代码语言:javascript
复制
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem

创建 logstash 的私钥

代码语言:javascript
复制
openssl genrsa -out logstash.key 2048

创建 logstash 的证书申请

代码语言:javascript
复制
openssl req -new -key logstash.key -out logstash.csr

使用 ca 证书去前方刚刚创建的logstash 证书申请并生成证书,过期时间为10年(不安全,但是方便)

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客技术家园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Windows WEF 环境配置
    • 运行必要条件
      • 架构介绍
        • Client 端配置
          • Server 端配置
          • Windows 下的 nxlog 转发配置
          • logstash 日志配置
          • Nxlog 和 Logstash 的加密证书配置命令
            • ca 私钥生成
              • 签发个人 CA
                • 创建 logstash 的私钥
                  • 创建 logstash 的证书申请
                  • Kibana 展示结果
                  • 参考
                  相关产品与服务
                  日志服务
                  日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档