Win 运维 | Windows Server 系统事件日志浅析与日志审计实践

2087bdfa6daeb1ac27007093b9a4f0bb.jpeg

78fed64d5180fcd7ee027ac8d16a360e.gif

[ 重剑无锋,大巧不工。]

大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者  

作者微信:WeiyiGeeker  
公众号/知识星球:全栈工程师修炼指南  
主页博客: 【 https://weiyigeek.top 】- 为者常成,行者常至。


文章目录

2f2b8316ba2aa690698f6f7cf38df0a3.png

0x00 前言简述

首先,由于企业网络安全等级保护要求以及安全运维工作的需求,企业安全运维人员需要了解企业内各业务系统的安全事件,以便及时发现并处理安全事件。当下在企业中仍有占有一定量的业务运行在 Windows Server 操作系统中,因此了解 Windows 事件日志对于企业安全运维人员来说是十分必要的。

Windows 事件日志是 Windows 系统安全事件以及错误信息记录的地方,可以帮助你识别和解决各种问题,例如,安全认证审核、应用程序崩溃、系统错误等,此外由于等保审计需求,需要配置 Windows 事件的审计功能,并在事件日志存储在本地服务器上的同时,还需上传到企业的中心日志服务器中(Rsyslog、Loki(PLG 技术栈)、Elasticsearch(ELK技术栈)),更有甚者将其载入到 Grafana 可视化,以备后续发生安全事件时,网络安全工程师可以及时的检索日志以溯源跟踪。

所以本文能够帮助你更好地理解和使用 Windows 事件日志,以及让你企业中 Windows 服务器满足等保日志审计要求,让运维更加便利,系统更加的安全,希望大家能多多支持此《#运维从业必学》专栏!

本章日志审计实践效果如下图所示:

d542f2130f6930e619ec29d51123e10c.png

weiyigeek.top-自定义用户登录日志记录批处理文件图

67c35be2213967f29a3c90593ca9c027.png

weiyigeek.top-windows中使用Promtail采集审计关键日志图

6faa4fe22952145440200a786f491848.png

weiyigeek.top-使用Grafana检索采集的Windows系统事件日志图

温馨提示:作者最近开通的知识星球,全栈系列从门到实践教程将会逐步同步到星球内(实时更新),加入星球将获得作者在安全、运维、开发(Sec、Ops、Dev)中的所有学习实践笔记,和问题答疑以及远程技术支持,希望大家多多支持!

377c4e856c056ea5153f529aeabbcf1d.jpeg


0x01 日志知识

什么是 Windows 事件日志?

描述:Windows 操作系统在其运行的生命周期中会记录其大量的日志信息,包括:Windows 事件日志(Event Log),IIS 应用日志,FTP 应用日志,Exchange Server 邮件服务日志 以及 MSSQL Server 数据库日志等,并且涵盖了应用程序错误、系统错误等,此外,遇到应用程序频繁崩溃或蓝屏死机(BSOD),Windows 会记录应用程序异常信息,以及在系统崩溃时创建一个日志来记录崩溃原因,便可以追溯问题发生的原因,了解计算机的健康状况,以及排除故障。

此处,Windows 系统内置的三个核心(System,Security 和 Application)事件日志文件,其默认大小均为 20480KB(20MB),记录事件数据超过 20MB 时,默认系统将优先覆盖过期的日志记录,其它应用程序及服务日志默认最大为 1024KB,超过最大限制也优先覆盖过期的日志记录,当然我们可以根据实际需求进行更改,具体修改可继续参考后续章节。

dcc33f9643d223944f2002249afc2ec9.png
weiyigeek.top-通过windows事件查看器安全日志属性配置图

温馨提示:有时错误信息很直观,可以一目了然地帮助我们解决问题(完结撒花 🎉),但是有时却只有一个错误代码,例如 0xC000021A(一脸懵 X😳),此时就需要通过查询 Microsoft 知识库、上网进一步搜索,或咨询专业系统运维工程师来找到详细的解决方法。

  • Microsoft 知识库:提供了有关事件日志的详细信息和解决方案, 直达 [https://learn.microsoft.com/en-us/troubleshoot/]。

  • Microsoft 支持社区:可以就特定事件 ID 和错误代码寻求帮助, 直达 [https://answers.microsoft.com/zh-hans]。


Windows 事件日志分类

描述:Windows 事件日志可分为 Windows 日志应用程序和服务日志两大类,了解这些类别有助于在出现问题时迅速定位相关日志,缩小排查范围。

Windows 日志

  • System:即系统日志,包含 Windows 系统组件记录的事件。例如,在启动过程中加载驱动程序或其他系统组件失败将记录在系统日志中。

  • Security:即安全日志,包含系统安全相关的事件。例如,记录用户登录、注销、系统启动和关闭、用户帐户管理、密码策略更改等安全相关的事件。

  • Application:即应用程序日志,包含由应用程序或程序记录的事件。例如,数据库程序可在应用程序日志中记录文件错误,程序开发人员决定记录哪些事件。

  • Setup:即安装程序日志,包含 Windows 组件及补丁更新安装相关的事件。例如,Windows 安装程序在安装过程中记录事件。

  • Forwarded:即转发日志,包含从其他设备转发过来的事件日志。例如,远程服务器登录失败、网络连接中断等事件。


应用程序和服务日志

  • Microsoft:包含了 200 多个微软内置的事件日志分类,只有部分类型默认启用记录功能,如远程桌面客户端连接、无线网络、有线网路、设备安装等相关日志。

  • Internet Explorer:包含 IE 浏览器应用程序的日志信息,默认未启用,需要通过组策略进行配置。

  • Windows PowerShell:包含 PowerShell 应用的日志信息。

  • Key Management Service: 包含密钥管理服务的日志信息。

  • HardwareEvents:包含硬件事件日志信息。

温馨提示:上述类别的日志都是存放在磁盘的 %SystemRoot%\System32\Winevt\Logs\ 目录中,如下图示:

ea770d340ab05e349a3e36ff599756ff.png
weiyigeek.top-Windwos日志存放路径与名称图

Windows 事件日志级别

描述:在 Windows 事件日志中根据事件的重要性,事件日志可以分为以下 5 种类型(英文语系下是数字标号表示):

  1. Information(信息): 记录正常运行的事件, 例如:启动服务、关闭服务等。

  2. Warning(警告): 提示潜在问题的事件, 例如: 磁盘空间不足、网络连接中断等。

  3. Error(错误): 表示出现严重问题的事件, 例如: 硬件故障、系统崩溃等。

  4. Success audit(审核成功): 记录安全审核成功的事件, 例如: 用户登录、用户注销等。

  5. Failure audit(审核失败): 记录安全审核失败过的事件,例如: 用户登录失败、用户注销失败等。

通常情况,运维人员会特别关注警告错误级别的事件日志,它们通常和系统故障紧密相关。


Windows 事件日志属性

描述:Windows 事件日志文件实际上是以特定的数据结构的方式存储内容,其中包括有关于系统,安全,应用程序的事件记录,每个记录事件的数据结构中包含如下 10 个常规日志属性(可以理解成数据库中的字段),当发生安全事件时应急响应工程师可以根据日志取证,了解计算机上上发生的具体行为。

常规日志属性:

  • 日志名称:事件所属的类型。

  • 来源:产生事件的应用或组件。

  • 事件 ID:用于识别具体事件的编号。

  • 级别:事件的严重程度,比如信息警告错误等。

  • 用户:事件发生时的用户账户。

  • 操作代码:别称 OpCode,记录触发事件时所执行的操作。

  • 记录时间:事件发生的具体时间。

  • 任务类别:用于表示事件发行者的子组件或活动,用于提供事件更多细节的分类。

  • 关键字:用于分类事件赛选的关键词,常见的有经典审核成功审核失败响应时间

  • 计算机:记录事件的计算机名称。

740623bbb41301b0b3572c442709ae96.png
weiyigeek.top-图

知识扩展:Windows 事件日志元数据 xml 内容示例说明

<!-- 根元素 <Event>: 指定XML文档遵循的架构或规范。-->
<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'>
<!--  <System> 元素: 提供了事件的元数据。-->
<System>
  <!-- 事件的提供者 -->
  <Provider Name='Microsoft-Windows-Security-Auditing' Guid='{54849625-5478-4994-a5ba-3e3b0328c30d}'/>
  <!-- 事件的唯一标识符,例如此处是注销 -->
  <EventID>4634</EventID>
  <Version>0</Version>
  <!-- 重要性或严重性级别 -->
  <Level>0</Level>
  <!-- 事件相关的任务或操作的标识符 -->
  <Task>12545</Task>
  <!-- 操作代码,表示事件的特定类型或子类型 -->
  <Opcode>0</Opcode>
  <!-- 与事件相关的关键字,用于过滤或搜索事件 -->
  <Keywords>0x8020000000000000</Keywords>
  <!-- 事件创建的时间 -->
  <TimeCreated SystemTime='2020-08-24T18:45:50.181682600Z'/>
  <!-- 事件的记录ID,确保事件在日志中的唯一性 -->
  <EventRecordID>138280</EventRecordID>
  <Correlation/>
  <Execution ProcessID='668' ThreadID='11916'/>
  <!-- 事件所属的主机 -->
  <Computer>WEIYIGEEK.TOP</Computer>
  <!-- 事件所属的通道 -->
  <Channel>Security</Channel>
  <!-- 通常是一个空元素,也表示事件所属的通道。 -->
  <Security/>
</System>

<!-- <EventData> 元素:包含事件的具体数据 -->
<EventData>
<!-- 如目标用户的SID、用户名、域名、登录ID和登录类型 -->
  <Data Name='TargetUserSid'>S-1-5-21-3059585724-171103038-3195841082-500</Data>
  <Data Name='TargetUserName'>weiyigeek</Data>
  <Data Name='TargetDomainName'>WEIYIGEEK.TOP</Data>
  <Data Name='TargetLogonId'>0xec6d372</Data>
  <Data Name='LogonType'>7</Data>
</EventData>

<!-- <RenderingInfo> 元素: 显示为人类可读的形式提供了事件的描述 -->
<RenderingInfo Culture='zh-CN'>
  <Message>已注销帐户.....登录 ID 是唯一的。</Message>
  <Level>信息(Info)</Level>
  <!-- 表示关机任务 -->
  <Task>Logoff</Task>
  <Opcode>信息</Opcode>
  <Channel>Security</Channel>
  <Provider>Microsoft Windows security auditing.</Provider>
  <Keywords>
    <Keyword>审核成功</Keyword>
  </Keywords>
</RenderingInfo>
</Event>

Windows 事件ID标识

描述:Windows 事件 ID 是 Windows 事件日志中记录的事件的唯一标识符,每个事件 ID 都对应一个事件,作为安全运维人员应该熟知常见的一些事件ID,用于在发生网络安全应急事件中快速定位相关问题及事件。

安全(Security)类别常见事件 EventID:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/547606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Mamba】医学图像分割的Mamba评估指标参考(更新中...)

医学图像分割的Mamba评估指标参考 VM-UNet&VM-UNetV2LightM-UNetUltraLight-VM-UNetH-vmunetU-MambaLMa-UNetMamba-UNetVM-UNet&VM-UNetV2 DatasetModelmIoU(%)↑DSC(%)↑Acc(%)↑Spe(%)↑Sen(%)↑ISIC17UNet76.9886.9995.6597.4386.82ISIC17UTNetV277.3587.2395.8498.…

Java开发从入门到精通(十):Java常用的API编程接口:String

Java大数据开发和安全开发 (一)Java常用的API1.1 什么是API1.2 什么叫做包1.2.1 如何调用其他包的程序 1.3 JAVA的API&#xff1a;String1.3.1 创建String对象1.3.2 String提供的操作字符串数据的常用方法1.3.3 String练习案例 (一)Java常用的API 1.1 什么是API API(全称 App…

Ubuntu安装VMVare Workstation pro 17.5.1

由于需要装Kali&#xff0c;我电脑是Ubuntu单系统&#xff0c;所以只能使用linux版本的虚拟机&#xff0c;通过这种方式来安装虚拟机和Kali镜像。 参考CSDN博客资料&#xff1a;https://blog.csdn.net/xiaochong0302/article/details/127420124 github代码资料&#xff1a;vm…

2024 CKA 基础操作教程(十二)

题目内容 考点相关内容分析 Pods Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod 是 Kubernetes 中的原子单元&#xff0c;用于封装应用程序的一个或多个容器、存储资源、唯一的网络 IP&#xff0c;以及有关如何运行容器的选项。Pod 提供了一个共享的…

如何实现超大场景三维模型数据立体裁剪

如何实现超大场景三维模型数据立体裁剪 实现超大场景三维模型数据的立体裁剪可以采用如下方法&#xff1a; 数据预处理&#xff1a;将超大场景三维模型数据进行划分和分割&#xff0c;将其拆分成多个小块或网格。这样可以方便进行后续的裁剪操作。 裁剪算法选择&#xff1a;根据…

场景文本检测识别学习 day04(目标检测的基础概念)

经典的目标检测方法 one-stage 单阶段法&#xff1a;YOLO系列、SSD系列 one-stage方法&#xff1a;仅预测一次&#xff0c;直接在特征图上预测每个物体的类别和边界框输入图像之后&#xff0c;使用CNN网络提取特征图&#xff0c;不加入任何补充&#xff08;锚点、锚框&#x…

OpenHarmony轻量系统开发【2】源码下载和开发环境

2.1源码下载 关于源码下载的&#xff0c;读者可以直接查看官网&#xff1a; https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes 本文这里做下总结&#xff1a; &#xff08;1&#xff09;注册码云gitee账号。 &#xff08;2&#xff09;注册码云SSH公钥…

如何采集opc服务器数据上传云端

为了进一步提高生产效率&#xff0c;生产制造的不断朝着智能化发展和升级&#xff0c;传统的自动化生产系统已经不能满足需求。传统的SCADA系统一般是用于现场的数据采集与控制&#xff0c;但是本地控制已经无法满足整个工厂系统智能化数字化的需求&#xff0c;智能化数字化是需…

【Altium Designer 20 笔记】PCB线宽与过孔尺寸

电源线&#xff1a;40mil1A&#xff08;一般翻倍给&#xff09;,地线比电源线粗一点即可&#xff1b;信号线&#xff1a;10-15mil 一、线宽 市电的火线和零线&#xff1a;80-100mil12V /24V 20mil~60mil 5V 20-30mil 3V 20-30mil GND 越宽越好20-30mil普通信号线 10mil-15mil…

Qt 3 QVariant类的使用和实例

QVariant, 类本质为 C联合(Union)数据类型&#xff0c;它可以保存很多Qt 类型的值&#xff0c;包括 QBrush、QColor、QString 等等。也能够存放Qt的容器类型的值。QVariant::StringList 是 Qt定义的一个 QVariant::type 枚举类型的变量&#xff0c;其他常用的枚举类型变量如下表…

LabVIEW变速箱自动测试系统

LabVIEW变速箱自动测试系统 在农业生产中&#xff0c;采棉机作为重要的农用机械&#xff0c;其高效稳定的运行对提高采棉效率具有重要意义。然而&#xff0c;传统的采棉机变速箱测试方法存在测试效率低、成本高、对设备可能产生损害等问题。为了解决这些问题&#xff0c;开发了…

网站添加PWA支持,仅需三步,无视框架的类型

总结起来&#xff0c;网站配置PWA简单步骤为&#xff1a; 编写 manifest.json&#xff1b;编写 serviceWorker.js&#xff1b;在 index.html 引入上述两个文件&#xff1b;把上述三个文件放在网站根目录(或者同一目录下)&#xff1b;网站需要部署在https环境才能触发&#xff…

偏微分方程算法之二维初边值问题(交替方向隐(ADI)格式)

一、研究对象 以二维抛物型方程初边值问题为研究对象&#xff1a; 为了确保连续性&#xff0c;公式&#xff08;1&#xff09;中的相关函数满足&#xff1a; 二、理论推导 2.1 向前欧拉格式 首先进行网格剖分。将三维长方体空间&#xff08;二维位置平面一维时间轴&#xff09…

微服务之CircuitBreaker断路器

一、概述 1.1背景 在一个分布式系统中&#xff0c;每个服务都可能会调用其它的服务器&#xff0c;服务之间是相互调用相互依赖。假如微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其他的微服务。这就是构成所谓“扇出”。 如果扇出的链路上某个微服务的调…

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系&#xff08;从已有节点创建关系&#xff09;4.4…

数据结构和算法(哈希表和图(A*算法精讲))

一 、哈希表 1.1 哈希表原理精讲 哈希表-散列表&#xff0c;它是基于快速存取的角度设计的&#xff0c;也是一种典型的“空间换时间”的做法 键(key)&#xff1a; 组员的编号如&#xff0c;1、5、19。。。 值(value)&#xff1a; 组员的其它信息&#xff08;包含性别、年龄和…

并查集练习

前言&#xff1a; 关于并查集的一些训练题。 正文&#xff1a; 1.亲戚&#xff1a; #include<bits/stdc.h> using namespace std; const int N5005; int fa[N]; int find(int x){if(xfa[x])return x;return fa[x]find(fa[x]); } void merge(int x,int y){fa[find(x)]fi…

MajorDoMo thumb.php 未授权RCE漏洞复现(CNVD-2024-02175)

0x01 产品简介 MajorDoMo是MajorDoMo社区的一个开源DIY智能家居自动化平台。 0x02 漏洞概述 MajorDoMo /modules/thumb/thumb.php接口处存在远程命令执行漏洞&#xff0c;未经身份验证的攻击者可利用此漏洞执行任意指令&#xff0c;获取服务器权限。 0x03 影响范围 MajorD…

消息队列和分布式消息队列

文章目录 分析系统现状不足中间件消息队列什么是消息队列&#xff1f;应用场景消息队列的模型为什么不直接传输&#xff0c;而要用消息队列&#xff1f;为什么要用消息队列&#xff1f;消息队列的缺点&#xff1f; 分布式消息队列分布式消息队列的优势&#xff1f;消息队列应用…

数字晶体管数字三极管

数字晶体管 指内部集成了电阻的三极管&#xff0c;有PNP和NPN型&#xff0c;也有双管&#xff0c;双管有3种形式&#xff0c;其中一种是PNPNPN。下面以双NPN示例&#xff0c;好处是外面没有电阻&#xff0c;批量应用时&#xff0c;焊点费用就可省下不少。双NPN的用在串口自动下…