在 Windows 資訊安全領域中
透過識別和監控關鍵 Windows 事件來主動預防非常重要
本文將探討 Windows 事件日誌的監控
幫助大家了解如何利用日誌進行監控機制
事件日誌記錄了設備上的所有行為
包含許多安全漏洞和應用程式效能問題的線索
事件日誌是記錄系統上所有「發生事件」的本機檔案,包括:
與系統或資料安全相關的事件稱為安全事件,其日誌檔案稱為安全性日誌
事件在事件檢視器中列出,包含以下資訊:
例如:
日期: 2024/10/13
時間: 14:30:45
使用者: Administrator
電腦: DESKTOP-ABC123
事件 ID: 4624
來源: Microsoft-Windows-Security-Auditing
類型: 成功稽核
大多數駭客入侵和竊取是由非法驗證嘗試造成的
稽核非法或失敗的登入嘗試可以防止(或減少)資料竊取
例如:
關鍵安全事件需要稽核
稽核計劃範例
例如:
以下是建議監控的安全事件日誌清單:
學習如何使用 PowerShell 來檢查和分析 Windows 事件日誌,特別是安全性日誌
Get-EventLog -List | Where-Object {$_.Log -eq 'Security'}
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
20,480 0 OverwriteAsNeeded 32,315 Security
wevtutil gl Security
name: Security
enabled: true
type: Admin
owningPublisher:
isolation: Custom
channelAccess: O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)
logging:
logFileName: %SystemRoot%\System32\Winevt\Logs\Security.evtx
retention: false
autoBackup: false
maxSize: 20971520
publishing:
fileMax: 1
$acl = Get-Acl HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security
$acl.Access | Format-Table IdentityReference,FileSystemRights,AccessControlType
IdentityReference FileSystemRights AccessControlType
----------------- ---------------- -----------------
NT AUTHORITY\SYSTEM Allow
NT AUTHORITY\SYSTEM Allow
BUILTIN\Administrators Allow
BUILTIN\Administrators Allow
NT SERVICE\EventLog Allow
NT SERVICE\EventLog Allow
Get-WinEvent -LogName System -FilterXPath '*[System[(EventID=6005)]]' | Select-Object TimeCreated, Message -First 5
TimeCreated Message
----------- -------
2024/10/13 上午 01:20:24 事件記錄檔服務已啟動
2024/10/11 下午 05:28:33 事件記錄檔服務已啟動
2024/10/6 下午 10:12:06 事件記錄檔服務已啟動
2024/9/30 上午 02:34:56 事件記錄檔服務已啟動
執行以下指令:
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 5 | Format-Table TimeCreated, Id, Message -Wrap
Get-WinEvent : 找不到符合指定選取準則的事件
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4624} -MaxEvents 5 | Format-Table TimeCreated, Id, Message -Wrap
顯示了 5 個成功的登入事件,所有事件都是 SYSTEM 帳號的登入,登入類型為 5(服務登入)
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4720,4722,4723,4724,4725,4726,4738} -MaxEvents 10 | Format-Table TimeCreated, Id, Message -Wrap
Get-WinEvent : 找不到符合指定選取準則的事件
擴大搜尋範圍,例如增加 MaxEvents 的數量或指定更長的時間範圍:
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4720,4722,4723,4724,4725,4726,4738; StartTime=(Get-Date).AddDays(-30)} | Format-Table TimeCreated, Id, Message -Wrap
檢查審核策略設定,確保系統被設定為記錄這些帳號管理事件:
auditpol /get /category:"Account Management"
如果長時間內都沒有這些事件,可能需要手動測試建立或修改一個測試帳號,然後再次執行指令來驗證事件是否被正確記錄
檢查事件日誌的大小和保留策略,確保舊事件沒有被過早地覆蓋
透過實作,可以了解
本文全面介紹了 Windows 事件日誌監控的重要性、方法和實作步驟。主要內容包括:
文章強調了定期監控和分析事件日誌對維護系統安全的重要性,並提供了實用的 PowerShell 指令來執行各種檢查。
哪一種日誌類型主要記錄與系統安全相關的事件?
A) 應用程式日誌
B) 系統日誌
C) 安全性日誌
D) DNS 伺服器日誌
答案: C
解析: 安全性日誌專門用於記錄與系統安全相關的事件,如登入嘗試和檔案存取權限變更。
事件 ID 4625 代表什麼類型的事件?
A) 成功登入
B) 失敗的登入嘗試
C) 系統重啟
D) 帳號建立
答案: B
解析: 事件 ID 4625 代表失敗的登入嘗試,這是一個重要的安全指標,可能顯示有人試圖未經授權訪問系統。
在 PowerShell 中,哪個指令用於檢查事件日誌的基本資訊?
A) Get-EventLog
B) Get-WinEvent
C) wevtutil
D) auditpol
答案: A
解析: Get-EventLog 指令用於檢查事件日誌的基本資訊,如日誌大小和事件數量。
當安全性日誌達到最大大小時,預設的行為是什麼?
A) 停止記錄新事件
B) 自動刪除所有舊事件
C) 覆寫最舊的事件
D) 擴展日誌檔案大小
答案: C
解析: 根據實作 Lab 中的觀察,當日誌達到最大大小時,預設行為是覆寫最舊的事件(OverwriteAsNeeded)。
哪個 PowerShell 指令用於檢查系統啟動事件?
A) Get-EventLog -LogName System
B) Get-WinEvent -LogName System
C) wevtutil gl System
D) auditpol /get /category:"System"
答案: B
解析: 在實作 Lab 中,使用 Get-WinEvent -LogName System 指令來檢查系統啟動事件(事件 ID 6005)。