1. 什麼是 Windows 事件日誌?
想像你家門口裝了一台監視攝影機,每當有人進出,系統都會自動錄影並存檔。Windows 事件日誌(Windows Event Log)的功能就類似於此——它是作業系統的「黑盒子」,記錄著電腦上發生的每一件大小事。
每一筆記錄稱為一個「事件(Event)」,每個事件都有:
| 欄位 | 說明 |
|---|---|
| 事件 ID(Event ID) | 事件的編號,例如 4624 代表登入成功 |
| 來源(Source/Provider) | 產生這個事件的程式或服務 |
| 時間戳記(Timestamp) | 事件發生的確切時間 |
| 等級(Level) | 資訊、警告、錯誤等分類 |
| 描述(Description) | 詳細說明發生了什麼事 |
日誌存放在哪裡?
Windows 的日誌主要分成幾個大類別,可以透過「事件檢視器(Event Viewer)」來查看(在開始功能表搜尋 eventvwr.msc):
Windows 日誌
├── 應用程式(Application) -> 軟體程式的日誌
├── 安全性(Security) -> 登入、權限、稽核的日誌(最重要)
├── 系統(System) -> 作業系統核心日誌
└── 安裝(Setup) -> 安裝與更新日誌
應用程式及服務日誌(Applications and Services Logs)
└── Microsoft
└── Windows
├── PowerShell
├── Sysmon
├── Windows Defender
└── ... 其他數百個子類別
2. 為什麼資安人員需要看日誌?
許多資安新手會問:「日誌這麼多,我要從哪裡看起?」這是很好的問題。
攻擊者留下的「腳印」
任何攻擊行為都會在系統留下痕跡。 以常見的攻擊場景為例:
攻擊者入侵流程(簡化版)
--------------------------------------------------
1. 嘗試猜測密碼 -> 產生 Event ID 4625(登入失敗)x 多次
2. 密碼猜對後登入 -> 產生 Event ID 4624(登入成功)
3. 安裝惡意程式 -> 產生 Event ID 7045(服務安裝)
4. 建立後門排程工作 -> 產生 Event ID 4698(排程工作建立)
5. 竊取資料後離開 -> 產生 Event ID 5140(共用資料夾存取)
--------------------------------------------------
如果你懂得看日誌,就能在攻擊造成嚴重損害前偵測並阻止它。
日誌的三大用途
- 即時偵測(Detection):搭配 SIEM 系統,發現異常行為立即告警
- 事後鑑識(Forensics):事件發生後,透過日誌重建攻擊時間軸
- 法規遵循(Compliance):法規(如個資法、ISO 27001)要求保留特定日誌
3. 日誌的基本概念與架構
稽核政策(Audit Policy)是什麼?
Windows 預設不會記錄所有事件,需要先開啟對應的「稽核政策」才能產生日誌。
類比說明:就像你家的監視器,如果沒有插電、沒有設定錄影,就算有人闖入也不會有影像記錄。稽核政策就是「設定要錄哪些畫面」。
稽核政策可以透過以下方式設定:
– 本機安全性原則:secpol.msc -> 進階稽核政策設定
– 群組原則(GPO):在企業環境中集中管理
常見的稽核政策縮寫:
– (S) = Success(成功時記錄)
– (F) = Failure(失敗時記錄)
– (S/F) = 成功與失敗都記錄
什麼是 Provider?
Provider(提供者)是產生事件的程式模組。例如:
– Microsoft-Windows-Security-Auditing -> 產生安全性日誌
– Service Control Manager -> 產生服務相關日誌
– MsiInstaller -> 產生軟體安裝日誌
什麼是 Sysmon?
Sysmon(System Monitor) 是微軟 Sysinternals 出品的免費工具,可以補充 Windows 原生日誌的不足,提供更詳細的資訊,例如:
– 程序建立(Process Creation)與父程序資訊
– 網路連線紀錄(含目標 IP 與連接埠)
– DNS 查詢記錄
– 登錄機碼(Registry)異動
新手建議:在你的測試環境安裝 Sysmon,搭配 SwiftOnSecurity 的設定檔開始學習,你會看到比原生日誌豐富得多的資訊。
4. 認識六大監控領域
4.1 系統活動(System Activity)
這個類別記錄作業系統本身的行為,是建立「正常基準線」的基礎。
系統開關機
| 事件 ID | 說明 | 重要性 |
|---|---|---|
12(Kernel-General) |
作業系統啟動 | 中 |
13(Kernel-General) |
作業系統關閉 | 中 |
41(Kernel-Power) |
系統未正常關機就重新開機(異常重啟) | 高 |
1074(User32) |
使用者或程序主動重新啟動系統,含原因說明 | 高 |
6008(EventLog) |
上次關機不正常(例如斷電或系統當機) | 高 |
資安意義:Event ID
41若頻繁出現,可能代表勒索軟體加密過程中強制重啟,或系統遭到干擾。
事件日誌本身的異動
這是非常重要的監控項目。攻擊者入侵後,常常第一件事就是清除日誌,以隱藏自己的足跡。
| 事件 ID | 日誌類別 | 說明 |
|---|---|---|
1102 |
Security | 稽核日誌被清除 |
104 |
System | 事件日誌被清除 |
1100 |
Security | 事件記錄服務已關閉 |
6005 |
System | 事件日誌服務啟動 |
6006 |
System | 事件日誌服務停止 |
資安意義:只要看到
1102或104,就應該立即調查——正常情況下,日誌幾乎不應該被手動清除。
系統時間變更
| 事件 ID | 說明 |
|---|---|
4616(Security) |
系統時間被修改 |
1(Kernel-General) |
系統時間被修改 |
資安意義:攻擊者可能篡改系統時間來混淆日誌的時間軸,讓鑑識工作更困難。
群組原則(GPO)異動
群組原則是企業環境中控制電腦設定的核心機制。相關日誌記錄在:
– Microsoft-Windows-GroupPolicy/Operational
– Microsoft-Windows-Security-Audit-Configuration-Client/Operational
4.2 遠端管理(Remote Management)
遠端管理功能是駭客最愛利用的橫向移動(Lateral Movement)手段。
RDP 遠端桌面
RDP(Remote Desktop Protocol)讓使用者可以遠端操控 Windows 電腦,也是最常被攻擊的服務之一。
伺服器端(被連入的電腦):
| 事件 ID | Provider | 說明 |
|---|---|---|
131 |
RdpCoreTS | 接受來自 [IP]:PORT 的新連線(重要) |
21 |
LocalSessionManager | Session 登入成功 |
25 |
LocalSessionManager | Session 重新連線成功 |
1149 |
RemoteConnectionManager | 使用者驗證成功 |
用戶端(發起連線的電腦):
| 事件 ID | Provider | 說明 |
|---|---|---|
1024 |
RDPClient | 嘗試連線至 [SERVER] |
1029 |
RDPClient | 記錄使用者名稱的雜湊值 |
4648 |
Security | 使用明確認證嘗試登入(含 /TERMSRV) |
實戰技巧:調查 RDP 入侵時,先看
131(找來源 IP)->21(確認登入成功)->4624(查帳號細節),三個事件串在一起看。
WinRM / PowerShell Remoting
WinRM 是 Windows 遠端管理的通訊協定,PowerShell Remoting 就是建立在它之上。
| 事件 ID | 說明 |
|---|---|
6 |
建立 WSMan 連線,顯示目標主機 |
91 |
WinRM Session 建立 |
169 |
顯示驗證成功及使用的驗證方式 |
OpenSSH
Windows 10 之後內建 OpenSSH,相關日誌記錄在 OpenSSH/Operational:
– Event ID 4:sshd: [訊息內容]
4.3 網路活動(Network Activity)
SMB 檔案共用
SMB(Server Message Block)是 Windows 網路共用的核心協定,也是 WannaCry 等惡意程式的主要傳播途徑。
重要的 SMB 伺服器端事件:
| 事件 ID | 日誌 | 說明 |
|---|---|---|
5140 |
Security | 網路共用資料夾被存取 |
5142 |
Security | 新增網路共用 |
5143 |
Security | 網路共用被修改 |
5144 |
Security | 網路共用被刪除 |
5145 |
Security | 網路共用物件被檢查(詳細版,建議啟用) |
1001 |
SMBServer/Operational | 用戶端嘗試使用 SMBv1(高危!) |
資安意義:SMBv1 已是過時且不安全的通訊協定(WannaCry 就是透過 SMBv1 傳播),如果看到有設備還在使用 SMBv1,務必立即處理。
防火牆
基本規則變更(Security 日誌):
| 事件 ID | 說明 |
|---|---|
4946 |
新增防火牆規則 |
4947 |
修改防火牆規則 |
4948 |
刪除防火牆規則 |
進階防火牆(建議使用此日誌取代上面的基本版):
| 事件 ID | 說明 |
|---|---|
2004 |
新增規則 |
2005 |
修改規則 |
2006 |
刪除規則 |
2002 / 2003 |
防火牆設定變更 |
流量監控(高噪音,選擇性啟用):
| 事件 ID | 說明 |
|---|---|
5156 |
允許連線(成功) |
5157 |
封鎖連線(失敗) |
5031 |
應用程式被封鎖 |
5148 |
偵測到 DoS 攻擊 |
DNS 查詢
DNS 查詢記錄對於偵測惡意軟體的 C2(Command & Control)通訊非常有用。
| 來源 | 說明 |
|---|---|
DNS-Client/Operational ID 3008 |
DNS 查詢完成(資訊有限) |
| Sysmon ID 22 | DNS 查詢(推薦使用,資訊更豐富) |
BITS 背景傳輸服務
BITS(Background Intelligent Transfer Service)是 Windows 的背景下載功能,駭客常常濫用它來下載惡意程式(稱為 LOLBins 攻擊手法)。
| 事件 ID | 說明 |
|---|---|
3 |
BITS 建立了一個傳輸任務 |
4 |
BITS 傳輸完成 |
59 |
BITS 傳輸開始,含 URL |
60 |
BITS 傳輸停止,含 URL |
資安意義:如果 BITS 傳輸的 URL 指向可疑網站(例如 IP 位址、未知網域),應立即調查。
4.4 軟體與更新(Software & Updates)
軟體安裝
| 事件 ID | Provider | 說明 |
|---|---|---|
11707 |
MsiInstaller | MSI 安裝完成 |
903/904 |
Program-Inventory | 程式安裝在系統上 |
907/908 |
Program-Inventory | 程式從系統移除 |
Windows Update
| 事件 ID | Provider | 說明 |
|---|---|---|
41 |
WindowsUpdateClient | 更新已下載 |
19 |
WindowsUpdateClient | 安裝成功 |
2 |
Servicing | 套件已成功安裝 |
4 |
Servicing | 需要重新啟動才能完成安裝 |
應用程式當機
| 事件 ID | Provider | 說明 |
|---|---|---|
1000 |
Application Error | 應用程式當機/錯誤 |
1002 |
Application Hang | 應用程式無回應 |
1001 |
WER | Windows 錯誤回報 |
資安角度:大量的應用程式當機有時代表模糊測試(Fuzzing)攻擊,或系統記憶體被惡意程式破壞。
排程工作(Task Scheduler)
排程工作是攻擊者建立持久性後門(Persistence)最常用的方式之一。
| 事件 ID | 說明 | 重要性 |
|---|---|---|
4698 |
排程工作被建立 | 極高 |
4699 |
排程工作被刪除 | 高 |
4700 |
排程工作被停用 | 中 |
4701 |
排程工作被啟用 | 中 |
4702 |
排程工作被修改 | 高 |
實戰案例:攻擊者入侵後,常常建立一個排程工作,每隔幾分鐘連回 C2 伺服器。
4698是必監控的事件。
服務(Services)
Windows 服務(Service)也是常見的持久性機制。
| 事件 ID | 來源 | 說明 |
|---|---|---|
7045 |
System/SCM | 服務被安裝(基本版) |
4697 |
Security | 服務被安裝(含使用者資訊,推薦) |
7036 |
System/SCM | 服務狀態變更(啟動/停止) |
7031 |
System/SCM | 服務異常當機 |
4.5 身份驗證(Authentication)
身份驗證相關的日誌是資安監控的重中之重。
帳號登入
這四個是最基礎、最重要的事件 ID:
| 事件 ID | 說明 | 監控建議 |
|---|---|---|
4624 |
帳號成功登入 | 必看,注意 LogonType |
4625 |
帳號登入失敗 | 必看,暴力破解警報 |
4634 |
帳號登出 | 中等 |
4648 |
使用明確認證嘗試登入 | 高,可能代表橫向移動 |
登入類型(Logon Type)對照表:
| Logon Type | 說明 | 資安意義 |
|---|---|---|
2 |
互動式(坐在電腦前) | 正常 |
3 |
網路(SMB 等) | 注意來源 |
4 |
批次(排程工作) | 注意帳號 |
5 |
服務 | 注意帳號 |
7 |
解鎖螢幕保護 | 正常 |
10 |
遠端互動式(RDP) | 重點監控 |
11 |
快取認證 | 注意離線登入 |
實戰技巧:短時間內大量的
4625(登入失敗),接著出現一個4624(登入成功),這是暴力破解攻擊成功的典型特徵。
NTLM 驗證
NTLM 是 Windows 的舊式驗證通訊協定,存在已知安全漏洞(如 Pass-the-Hash)。
| 事件 ID | 說明 |
|---|---|
4776 |
電腦嘗試驗證帳號憑證 |
4822 |
NTLM 驗證失敗(Protected Users 群組成員) |
8001 |
NTLM 用戶端封鎖稽核 |
8004 |
網域控制器封鎖 NTLM 驗證 |
特殊權限登入
| 事件 ID | 說明 |
|---|---|
4672 |
特殊權限指派給新的登入 Session |
資安意義:
4672代表高權限帳號登入(如管理員)。搭配4624一起看,可以快速找到何時有管理員帳號登入、從哪裡登入。
4.6 系統安全(System Security)
Windows Defender
| 事件 ID | 說明 | 重要性 |
|---|---|---|
1116 |
偵測到威脅(尚未採取行動) | 極高 |
1117 |
偵測到威脅,已成功處理 | 高 |
1118 |
偵測到威脅,處理失敗 | 極高 |
1119 |
偵測到威脅,嚴重處理失敗 | 極高 |
1121 |
ASR 規則封鎖操作 | 高 |
5001 |
即時防護已停用 | 極高 |
5007 |
設定變更(包含排除清單) | 極高 |
資安意義:
5001(即時防護停用)和5007(設定被修改)是高優先警報,攻擊者常常在入侵後先停用防毒軟體,再安裝惡意程式。
程式碼完整性(Code Integrity)
| 事件 ID | 說明 |
|---|---|
3001 |
未簽署的驅動程式被載入 |
3033/3063 |
程序嘗試載入不符合簽署要求的檔案(LSA 保護,封鎖模式) |
3065/3066 |
程序嘗試載入不符合簽署要求的檔案(LSA 保護,稽核模式) |
5038 |
檔案的映像雜湊值無效 |
6410 |
檔案不符合載入至程序的要求 |
說明:
3033/3063和 LSA 保護相關,可以偵測像 Mimikatz 這類試圖存取 LSASS 程序的工具。
本機安全性授權(LSA)
| 事件 ID | 說明 |
|---|---|
4610 |
驗證套件被 LSA 載入 |
4611 |
信任的登入程序已向 LSA 登錄 |
4622 |
安全套件被 LSA 載入 |
AppLocker 應用程式白名單
AppLocker 可以限制哪些程式可以執行,是企業環境中重要的防線。
| 事件 ID | 說明 |
|---|---|
8002 |
[程式路徑] 被允許執行 |
8003 |
[程式路徑] 被阻擋執行(稽核模式) |
8004 |
[程式路徑] 不被允許執行(強制模式) |
憑證管理員(Credential Manager)
| 事件 ID | 說明 | 資安意義 |
|---|---|---|
5376 |
憑證管理員憑證被備份 | 可能竊取憑證 |
5377 |
憑證管理員憑證從備份還原 | — |
5379 |
憑證管理員憑證被讀取 | 高 |
5382 |
Vault 憑證被讀取 | 高 |
5. PowerShell 日誌監控
PowerShell 是現代資安監控中最重要的監控對象之一,因為它功能強大,也被攻擊者大量濫用(稱為「Living off the Land」攻擊)。
PowerShell 日誌的演進
PowerShell 日誌類型(從舊到新)
----------------------------------------------------------
Classic(舊版)
Windows PowerShell 日誌
ID 600:包含 Provider 名稱
ID 800:管線執行細節
Modern(現代,強烈建議啟用)
Module Logging -> ID 4103:模組呼叫記錄
Script Block Logging -> ID 4104:指令碼內容(最重要)
Core(PowerShell 6+)
ID 4103:模組記錄
ID 4104:指令碼區塊記錄
----------------------------------------------------------
各種日誌來源比較
| 來源 | 預設狀態 | 資訊豐富度 | 說明 |
|---|---|---|---|
| Console History(PSReadline) | 預設啟用(PS v5+) | 低 | 純文字檔,位於 %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ |
| Transcript | 需手動開啟 | 中 | 記錄完整的 PowerShell 工作階段 |
| Module Logging(ID 4103) | 需啟用 | 高 | 記錄所有模組的呼叫 |
| Script Block Logging(ID 4104) | 需啟用 | 最高 | 記錄所有執行的程式碼內容,包含混淆後的程式碼 |
新手建議:Script Block Logging(事件 ID
4104)是最有價值的 PowerShell 日誌,即使攻擊者使用了混淆技術(Obfuscation),Windows 也會先解密再記錄,因此能看到實際執行的指令。
如何啟用 PowerShell Script Block Logging?
透過群組原則(GPO):
電腦設定 -> 系統管理範本 -> Windows 元件 -> Windows PowerShell
-> 開啟 PowerShell 指令碼區塊記錄
透過登錄機碼(Registry):
# 以管理員執行
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Name "EnableScriptBlockLogging" -Value 1
6. 外部裝置與印表機
USB 裝置連接
| 來源 | 說明 |
|---|---|
C:\Windows\INF\SetupAPI.dev.log |
設備安裝詳細記錄(文字檔) |
DriverFrameworks-UserMode ID 1003 |
USB 裝置連接 |
DriverFrameworks-UserMode ID 1008 |
USB 裝置中斷連接 |
Security ID 6416 |
新外部裝置被系統識別(需啟用 PNP 稽核) |
新手說明:在受管制的企業環境中,
6416可以偵測未授權的 USB 隨身碟插入,是 DLP(資料外洩防護)的重要來源。
ISO / VHD 虛擬磁碟掛載
攻擊者常常利用 ISO 或 VHD 檔案來繞過 Mark-of-the-Web(MOTW) 安全機制,讓惡意程式得以執行。
| 事件 ID | 說明 |
|---|---|
1(VHDMP) |
VHD/ISO 上線為磁碟 |
2(VHDMP) |
VHD/ISO 離線移除 |
12(VHDMP) |
虛擬磁碟建立控制代碼 |
印表機
印表機(尤其是 PrintNightmare 漏洞之後)也需要監控:
| 事件 ID | 說明 |
|---|---|
354 |
印表機初始化失敗(含 DLL 路徑) |
808 |
印表機多工緩衝器載入模組失敗(含 DLL 路徑) |
307 |
列印工作(需 GPO 設定才能顯示工作名稱) |
7. 哪些事件 ID 最重要?(快速參考表)
以下是資安新手最應該優先監控的事件 ID:
最高優先 — 立即告警
| 事件 ID | 說明 | 為什麼重要 |
|---|---|---|
1102 |
稽核日誌被清除 | 攻擊者滅跡 |
4698 |
排程工作建立 | 建立持久性後門 |
4697 |
服務安裝 | 安裝惡意服務 |
5001(Defender) |
即時防護停用 | 攻擊前置動作 |
5007(Defender) |
Defender 設定變更 | 加入惡意排除路徑 |
4625 大量出現 |
大量登入失敗 | 暴力破解攻擊 |
高優先 — 每日審查
| 事件 ID | 說明 |
|---|---|
4624(LogonType 10) |
RDP 遠端登入成功 |
4648 |
使用明確憑證登入 |
4672 |
特殊權限登入 |
7045 / 4697 |
服務安裝 |
4104(PowerShell) |
PowerShell 指令碼執行 |
6416 |
新外部裝置 |
中優先 — 定期審查
| 事件 ID | 說明 |
|---|---|
4624 |
所有成功登入 |
4702 |
排程工作修改 |
5140 / 5145 |
共用資料夾存取 |
4946–4948 |
防火牆規則變更 |
1116(Defender) |
偵測到威脅 |
8. 新手常見問題 QA
Q:日誌這麼多,我要怎麼管理?
A:個人或小型環境可以先用 Windows 內建的「事件檢視器」手動查看。企業環境建議使用 SIEM(安全資訊與事件管理) 系統,如 Splunk、Elastic Stack(ELK)或 Microsoft Sentinel,可以集中收集、搜尋和設定自動告警。
Q:要啟用所有稽核政策嗎?
A:不行!啟用過多稽核政策會產生大量日誌,佔用磁碟空間,也讓真正重要的事件被淹沒(這叫「事件疲勞」)。建議參考微軟官方文件或 ANSSI 的建議,針對性地啟用關鍵稽核項目。
Q:什麼是「噪音」事件(Noisy Events)?
A:某些事件頻率非常高,正常操作也會大量產生,例如 WMI 的 5857/5858、TaskScheduler 的執行日誌等。這些事件若全部收集,會佔用大量儲存空間,通常會選擇性地過濾或抽樣。
Q:Sysmon 和原生日誌有什麼差別?
A:Windows 原生日誌在某些場景下資訊不夠完整(例如 DNS 查詢只有基本資訊)。Sysmon 可以補充這些不足,提供更豐富的細節,例如程序建立的命令列、父程序、雜湊值等,大幅提升威脅獵捕(Threat Hunting)的能力。
Q:如何判斷一個登入是否可疑?
A:可以從以下幾個面向判斷:
1. 時間:凌晨三點的管理員登入?
2. 來源 IP:從未見過的 IP 位址?來自國外?
3. 頻率:短時間內多次失敗後成功?
4. 帳號:用了服務帳號(通常不應互動式登入)?
5. 登入類型:期望是 Type 3 但出現了 Type 10(RDP)?
9. 下一步:進階學習資源
恭喜你看完這篇入門文章!以下是進一步學習的資源:
官方文件
- 微軟稽核政策建議:
docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations - 附錄 L:要監控的事件:
learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor
工具與設定
- Sysmon:
docs.microsoft.com/en-us/sysinternals/downloads/sysmon - SwiftOnSecurity Sysmon Config:業界常用的 Sysmon 設定範本
- Yamato-Security / EnableWindowsLogSettings:自動化啟用 Windows 日誌設定的工具
社群資源
- Awesome Event IDs:
github.com/stuhli/awesome-event-ids - NSA 威脅偵測指引:透過 Windows 事件日誌偵測攻擊者的 NSA 官方白皮書
- MITRE ATT&CK:了解攻擊者的戰術、技術和程序(TTP),對應到相關的日誌監控
實戰練習建議
- 在虛擬機(VM)上安裝 Windows,啟用重要的稽核政策與 Sysmon
- 對自己的虛擬機執行常見的「攻擊」行為(例如用 Mimikatz 測試)
- 觀察產生了哪些事件 ID,學習辨識攻擊的模式
- 使用 Elastic Stack 或 Splunk Free 建立一個簡易的日誌分析環境
