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

news2024/9/19 19:02:32

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:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【vue】购物车案例

change"fun"&#xff1a;元素值发生改变时&#xff0c;会触发事件fun <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale…

怎么把相机储存卡里的照片导出来?介绍两种方法

随着摄影技术的不断发展和普及&#xff0c;相机已成为我们记录生活、捕捉美好瞬间的设备。然而&#xff0c;对于许多摄影爱好者来说&#xff0c;如何将相机储存卡里的照片安全、高效地导出到电脑或其他设备中&#xff0c;却成为了一个令人头疼的问题。本文将为您详细介绍从相机…

求1000以内正整数的平方根(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int number 0;int result 0;//提示用户&#xff1b;printf("请输入1000以内求平方根的…

ubuntu 23.10.1 mysql 安装

注&#xff1a;请进入root用户模式下操作&#xff0c;若没有&#xff0c;输入命令前加上sudo 1、更新软件包列表 apt update2、安装最新版的Mysql服务器 apt install mysql-server -y如果不加-y 会在安装过程中&#xff0c;系统将提示你设置MySQL的root密码。确保密码足够强…

数据结构基础题复习-第02套

数据结构-第02套 B C C C C C D A A C B B D A 5*6/2318 01234567891011121314151617181920 D C A B C D 3 15&#xff0c;33&#xff0c;55&#xff0c;65&#xff0c;70&#xff0c;100, B A D A C D A 01234567891011121314461516171819206…

SpringBoot 启动分析

一、序言 本文简单分析一下 SpringBoot 的启动流程。 二、SpringBoot 启动源码分析 public ConfigurableApplicationContext run(String... args) {// 记录当前时间的纳秒数&#xff0c;用于计算应用程序启动所花费的时间long startTime System.nanoTime();// 创建一个默认…

SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

消息中间件 消息消息队列JMS AMQPMQTTKafka Spring整合消息队列模拟消息队列的工作流程Spring整合ActiveMQSpring整合RabbitMQ直连交换机模式主题交换机模式 Spring整合RocketMQSpring整合kafka 消息 消息的发送方&#xff1a;生产者 消息的接收方&#xff1a;消费者 同步消息…

【机器学习300问】70、向量化技术来计算神经网络时维度如何确保正确?

一、向量化技术在进行神经网络计算时的优势 向量化是一种优化技术&#xff0c;通过使用数组操作代替for循环&#xff0c;可以大大提高代码的性能和效率。在深度学习中尤其明显&#xff0c;可以提高计算效率、简化代码、优化内存使用。 二、如何确保计算时维度是正确的&#xf…

【讲解下常见的Web前端框架】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

1260. 二维网格迁移

1260. 二维网格迁移 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 1260. 二维网格迁移 https://leetcode.cn/problems/shift-2d-grid/description/ 完成情况&#xff1a; 解题思路&#xff1a; 这…

【Bugku】sqli-0x1

1.打开靶场&#xff0c;进入实验场景 2.按F12查看源代码&#xff0c;发现有一个/?pls_help路径&#xff0c;在url后加上查看。 3.得到的php源码 首先&#xff0c;代码通过 error_reporting(0) 和 error_log(0) 关闭了错误报告&#xff0c;这可以防止攻击者从错误信息中获取敏…

Rust面试宝典第2题:逆序输出整数

题目 写一个方法&#xff0c;将一个整数逆序打印输出到控制台。注意&#xff1a;当输入的数字含有结尾的0时&#xff0c;输出不应带有前导的0。比如&#xff1a;123的逆序输出为321&#xff0c;8600的逆序输出为68&#xff0c;-609的逆序输出为-906。 解析 这道题本身并没有什么…

【python】python天气气候数据抓取分析可视化(源码+数据+可视化+报告)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

记录flume运行时报NullPointerException异常

【背景说明】 我要起一个将kafka上的topic_log主题中的数据上传到hdfs上的flume进程。 这是我的flume配置文件脚本&#xff1a; #定义组件 a1.sourcesr1 a1.channelsc1 a1.sinksk1#配置source1 a1.sources.r1.type org.apache.flume.source.kafka.KafkaSource a1.sources.r…

频率域滤波基础(离散傅里叶变换使用填充的缺陷)

本来是个很简单的问题&#xff0c;作者硬是写的这么复杂&#xff0c;翻译还搞错了。重点是我发现作者真正有用的东西没讲到&#xff0c;比如相位和谱如何影响图像。连个转换公式都没有&#xff0c;我只能说作者是在混字数。 首先看关于中心对称是什么意思&#xff1f;我木太明白…

从51到ARM裸机开发实验(009)LPC2138 中断实验

一、场景设计 中断的概念在《从51到ARM裸机开发实验(007) AT89C51 中断实验》中已经介绍过&#xff0c;LPC2138的Keil工程创建在《从51到ARM裸机开发实验(005)LPC2138 GPIO实验》中已经介绍过。本次使用LPC2138来实现一个这样的场景&#xff1a;四个LED依次亮灭&#xff0c;时间…

c++总结笔记(一)

计算机可以将程序转化为二进制指令&#xff08;即机器码&#xff09;&#xff0c;并由CPU执行&#xff0c;CPU会按照指令的顺序依次执行每个指令。 C语言特点&#xff1a; 简洁高效可移植模块化标准化 C语言的标准 C89(C90)标准C99标准C11标准 导入 使用include导入包含…

postgresql 备份恢复相关知识点整理归纳 —— 筑梦之路

概述 PG一般有两种备份方式&#xff1a;逻辑备份和物理备份 逻辑备份对于数据量大的场景下耗时较长&#xff0c;恢复也会耗时较长 物理备份拷贝文件的方式相对来说耗时较短&#xff0c;跟磁盘读写性能和网络传输性能有关 逻辑备份 pg_dump pg_dump 将表结构及数据以SQL语句…

Angular学习第四天--问题记录及父子组件问题

问题一、 拉取完项目&#xff0c;使用npm install命令的时候遇到的。 解决办法&#xff1a; 在查找网上五花八门的解决方案之后&#xff0c;发现都不能解决。 我的解决办法是&#xff1a; 1. 把package-lock.json给删掉&#xff1b; 2. 把package.json中公司自己库的包给删除掉…

【论文阅读】TransGNN

一、摘要 本文主要是在推荐系统中对GNN的改进。在协同过滤中&#xff0c;主要是对用户-项目交互图进行建模。但是基于GNN的方法遇到了有限的接受域和嘈杂的“兴趣无关”连接的挑战。相比之下&#xff0c;基于Transformer的方法擅长于自适应地和全局地聚合信息但是在大规模交互…