WHIDS Windows Sysmon

監控事件偵測潛在威脅 外掛開源EDR彌補系統先天不足

WHIDS/Sysmon合璧 即時稽核Windows日誌

2025-02-12
Windows本身系統稽核功能不足,而WHIDS可以即時監控Windows系統上的事件日誌,並利用自定義的規則進行規則比對來發掘系統內潛在的資安威脅。在本文中將以Windows 11為例來示範如何運用與安裝WHIDS。

 

工具程式WHIDS是開源碼社群中少數支援Windows系統「端點偵測與回應」(Endpoint Detection and Response,EDR)的解決方案,透過即時監控Windows系統上的事件日誌(Event Log),並利用自定義的規則(Gene Rule)進行規則比對,來發掘系統上潛在的資安威脅。為了補足Windows系統本身系統稽核功能的不足,WHIDS會利用Sysmon優異的系統稽核功能來取得更深入的事件日誌,進而對Windows系統進行全面性監控。在本文中,將以Windows 11為例來說明如何運用與安裝WHIDS。

‧WHIDS官方網址:https://github.com/0xrawsec/whids

‧Gene官方網址:https://github.com/0xrawsec/gene

‧Sysmon官方網址:https://learn.microsoft.com/zh-tw/sysinternals/downloads/sysmon

安裝WHIDS

在安裝WHIDS之前,必須先啟用Windows系統上的PowerShell Module記錄功能(Logging)。以系統管理員身分執行「命令提示字元」進入文字介面環境後,再執行gpedit.msc來啟動群組原則編輯器,而後依序點選「電腦設定→系統管理範本→Windows元件→Windows PowerShell→開啟模組記錄」,如圖1所示。

圖1  啟用PowerShell Module記錄功能。

接著,點選「已啟用」及模組名稱,並輸入「MicroSoftPowerShell.*」,表示要監控MicroSoftPowerShell,過程如圖2所示。

圖2  設定監控MicroSoftPowerShell。

在開啟記錄PowerShell Module功能後,接下來開啟作業系統上的稽核服務(Audit Service Creation),同樣執行gpedit.msc。然後,依序點選「電腦設定→Windows設定→安全性設定→進階稽核原則設定→系統→啟用稽核安全性系統延伸」,如圖3所示。

圖3  開啟作業系統上的稽核服務。

在完作業系統所需要的相關設定後,就可以開始安裝WHIDS。

下載最新版本的WHIDS(在此為V1.7)後,以系統管理員身分執行manager.bat。便會出現如圖4所示的安裝畫面,直接選擇「Install WHIDS from scratch」。

圖4  安裝時選擇「Install WHIDS from scratch」。

之後,就會將Sysmon(在此版本為V13)和WHIDS相關組態檔及執行檔安裝至作業系統上,並以系統服務(Service)的型式運作。

接下來,說明WHIDS所使用之組態檔(檔名為config.toml)常用的選項:

channels = ["all"]

表示要監控的來源Windows Event Log的類型,WHIDS將提供稽核記錄的來源視為個別的Channel,例如Sysmon的Channel名稱為Microsoft-Windows-Sysmon/Operational。

更詳盡的Channel說明,可參考WHIDS官方網站上關於Channels的說明。一般來說,此選項通常會設定為all,表示要監控所有的來源。

logfile = "whids記錄檔檔名"

設定儲存WHIDS運作(例如啟動或結束)相關資訊的檔案位置。

log-all = true|false

設定是否要記錄所有的資訊,一般來說會設定為false。

dir = "alert資訊儲存的位置"

設定當觸發相關規則時,要儲存ALERT資訊的目錄位置。

rules-db = "RULE檔案位置"

指定所使用的規則檔案位置。

安裝完成後,如果沒有特殊的需求,使用預設的設定即可運作。

接著,說明其所使用的規則檔格式(json格式)。以設定記錄執行Taskkill.exe指令為例,範例規則如圖5所示。

圖5  規則格式範例。

有關於規則格式,簡單說明如下:

Name:設定為該規則的名稱。

Tags:設定該規則的屬性名稱。

meta:設定該規則詳細的資訊。包括EventIDs用來設定要監控的事件編號,對應至Sysmon的事件編號;Channels則是設定要監控的資訊來源,以Sysmon為例即為Microsoft-Windows-Sysmon/Operational。

Matches:設定符合條件的相關資訊。

Condition:假如符合此區段的條件設定即觸發此規則,如本例為表示當使用者執行TaskKill.exe就會觸發此規則。

當WHIDS補捉到符合條件的使用者操作後,就會將相關資訊(包含執行指令、時間等資訊)以json格式記錄於alert.log,圖6所示為執行TaskKill.exe指令的Log資訊。

圖6  執行TaskKill.exe指令的Log資訊。

在簡單說明WHIDS後,接下來介紹Sysmon。

什麼是Sysmon

Sysmon是由Sysinternals公司(現已被微軟所收購)所開發的系統稽核軟體,主要功能在於監控微軟作業系統,並增強系統稽核能力,提供更全面的系統稽核功能。以下為Sysmon執行時常用的參數:

-h:指定要使用的雜湊(Hash)演算法,例如SHA1、MD5。

-n:設定是否要監控系統上網路的連線資訊,如果要記錄網路連線資訊(事件編號為3),在啟動時就必須設定此參數。

-s:顯示目前組態檔的設定。

-u:解除Sysmon的相關安裝。

-accepteula:設定Sysmon可自動載入相關所需要的驅動程式,若沒有設定此選項,就必須在載入驅動程式的過程中,以一問一答的方式來確認是否要載入相關的模組。

-c:指定組態檔的名稱,可將執行所需的相關組態資訊設定於此檔案中,在執行時就會依照此檔案內的設定來執行。

接著,繼續說明Sysmon所使用的組態檔,設定樣式如圖7所示。

圖7  Sysmon所使用的組態檔設定樣式。

Sysmon常用組態當中的EventFiltering,是主要的設定區間,使用者可在此區間內設定欲記錄的事件(以唯一的事件編號來表示)。而常用的事件編號說明,則如表1所示。

系統測試

在使用者安裝WHIDS後,就會將Sysmon和WHIDS同步安裝並啟動。可先行使用「服務管理員」來查看是否在運作中,如圖8所示。

圖8  使用「服務管理員」查看Sysmon和WHIDS是否正在運作中。

在確認Sysmon和WHIDS以服務型式運作後,因預設組態會記錄所有程式的執行,因此可利用執行記事本(notepad.exe)程式進行測試。在執行Notepad後,查看系統上的「事件檢視器」來確認Sysmon是否有正常的運作。如圖9所示,確認已記錄相關執行Notepad的資訊。

圖9  已記錄相關執行Notepad的資訊。

在初步確認Sysmon已正常運作後,就可以自行定義所需的功能來執行Sysmon,如下為僅記錄所有程式執行及檔案刪除的組態檔,檔名為config.xml:

接著,重新啟動Sysmon服務,並指定使用config.xml,相關設定如圖10所示(在啟動參數中設定相關參數)。

圖10  重新啟動Sysmon服務,並指定使用config.xml。

接著,可利用執行systeminfo.exe(查看系統資訊指令)的方式,由於WHIDS預設規則有設定監控systeminfo.exe的規則,因此會在alert.log記錄相關的資訊,如圖11所示。至此,就表示WHIDS已正常地運作了。

圖11  監控systeminfo.exe。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!