共用方式為


使用 Windows 事件轉送協助偵測入侵

深入了解收集您組織中裝置上活動的方法。 本文章內容包括正常運作及發現可疑入侵活動的事件。

Windows 事件轉送 (WEF) 讀取組織中裝置上記錄的任何操作或系統管理事件,並將您選擇的事件轉送到 Windows 事件收集器 (WEC) 伺服器。

若要完成這項功能,有兩個不同的訂用帳戶發佈至用戶端裝置 - 基準訂用帳戶和可疑的訂用帳戶。 基準訂用帳戶會註冊您組織中的所有裝置,而可疑的訂用帳戶只包含您已新增的裝置。 Suspect 訂用帳戶會收集更多事件來協助建置系統活動的內容,並可視需要快速更新以容納新的事件和/或案例,而不會影響基準作業。

此實作有助於區分最終儲存事件的位置。 基準事件可以傳送至具有在線分析功能的裝置,例如安全性事件管理員 (SEM) ,也可以將事件傳送至 MapReduce 系統,例如 HDInsight 或 Hadoop,以進行長期儲存和更深入的分析。 來自可疑訂用帳戶的事件會直接傳送至 MapReduce 系統,因為磁碟區和較低的訊號/雜訊比例,它們主要用於主機鑑識分析。

SEM 的強度在於能夠檢查、相互關聯事件,並產生已知模式的警示,並以機器速度警示安全性人員。

MapReduce 系統具有較長的保留時間 (年份與 SEM) 的月份、較大的輸入能力 (每天) 數百 TB,以及能夠對數據執行更複雜的作業,例如統計和趨勢分析、模式叢集分析,或套用 Machine Learning 演算法。

以下是 WEF 事件的近似調整指南:

事件/第二個範圍 數據存放區
0 - 5,000 SQL 或 SEM
5,000 - 50,000 SEM
50,000+ Hadoop/HDInsight/Data Lake

裝置上的事件產生必須個別啟用,或作為基準 WEF 實作 GPO 的一部分,包括啟用停用的事件記錄檔和設定通道許可權。 如需詳細資訊,請參閱 附錄 C - 事件通道設定 (啟用和通道存取) 方法。 此條件是因為 WEF 是關於事件記錄檔的被動系統。 它無法變更事件記錄檔的大小、啟用停用的事件通道、變更通道許可權,或調整安全性審核策略。 WEF 只會查詢現有事件的事件通道。 此外,在裝置上已經發生事件產生,可讓更完整的事件集合建立系統活動的完整歷程記錄。 否則,您將受限於 GPO 和 WEF 訂用帳戶重新整理週期的速度,以變更裝置上產生的專案。 在現代化裝置上,啟用更多事件通道並擴充事件記錄檔的大小並不會導致明顯的效能差異。

如需建議的最低審核策略和登錄系統 ACL 設定,請參閱 附錄 A - 最低建議的最低審核策略附錄 B - 建議的最低登錄系統 ACL 原則

注意

這些只是符合 WEF 訂用帳戶所選取專案所需的最小值。

從 WEF 訂用帳戶管理的觀點來看,所提供的事件查詢應該用於兩個不同的訂用帳戶,以方便維護;只有符合特定準則的機器才能存取目標訂用帳戶。 此存取權取決於演算法或分析師的方向。 所有裝置都應該能夠存取基準訂用帳戶。

此雙重訂用帳戶系統表示您會建立兩個基本訂用帳戶:

  • 基準 WEF 訂用帳戶。 從所有主機收集的事件;這些事件包括一些角色特定的事件,這些事件只會由這些機器發出。
  • 目標 WEF 訂用帳戶。 從一組有限的主機收集的事件,是因為這些系統的異常活動和/或提高認知。

每個都會使用下列個別的事件查詢。 針對目標訂用帳戶,啟用 [讀取現有事件] 選項應設定為 true,以允許從系統收集現有的事件。 根據預設,WEF 訂用帳戶只會轉寄用戶端收到 WEF 訂用帳戶之後所產生的事件。

附錄 E - 註釋基準訂閱事件查詢附錄 F - 批註可疑訂閱事件查詢中,建立 WEF 訂用帳戶時會包含事件查詢 XML。 這些訂用帳戶會標註以供查詢用途和清楚明瞭。 您可以移除或編輯個別 <Query> 專案,而不會影響查詢的其餘部分。

常見的 WEF 問題

本節說明 IT 專業人員和客戶的常見問題。

如果使用者的計算機已啟用 WEF,或 WEF 發生錯誤,使用者會注意到嗎?

簡短答案是:否。

較長的答案是: Eventlog-forwardingPlugin/Operational 事件通道會記錄與裝置上出現的 WEF 訂用帳戶相關的成功、警告和錯誤事件。 除非用戶開啟事件查看器並流覽至該通道,否則不會透過資源耗用量或圖形使用者介面彈出視窗注意到 WEF。 即使 WEF 訂用帳戶發生問題,也沒有用戶互動或效能降低。 所有成功、警告和失敗事件都會記錄到此作業事件通道。

WEF 推送或提取?

WEF 訂用帳戶可以設定為推送或提取,但不能同時進行兩者。 使用推送或來源起始的訂用帳戶,即可達成最簡單、最具彈性且具有最大延展性的IT部署。 WEF 用戶端是使用 GPO 來設定,並啟用內建轉送用戶端。 針對提取、收集器起始,WEC 伺服器上的訂用帳戶會預先設定為要從中選取事件的 WEF 用戶端裝置名稱。 這些用戶端會事先設定為允許訂用帳戶中使用的認證,藉由將認證新增至事件 記錄讀 取器內建的本機安全組,讓訂用帳戶中使用的認證能夠正常地從遠端 (存取其事件記錄檔。) 一個有用的案例:密切監視一組特定的機器。

WEF 是否會透過 VPN 或 RAS 運作?

WEF 會妥善處理 VPN、RAS 和 DirectAccess 案例,並且會在重新建立與 WEF 收集器的連線時,重新連線並傳送任何累積的事件積存。

如何追蹤客戶端進度?

WEC 伺服器會在其登錄中維護每個 WEF 訂用帳戶之每個事件來源的書籤資訊和上次活動訊號時間。 當事件來源重新連線到 WEC 伺服器時,最後一個書簽位置會傳送至裝置,以作為繼續轉送事件的起點。 如果 WEF 用戶端沒有要傳送的事件,WEF 用戶端會定期連線,以將活動訊號傳送至 WEC 伺服器,以指出活動狀態。 您可以針對每個訂用帳戶個別設定此活動訊號值。

WEF 可在 IPv4、IPv6 或混合 IPv4/IPv6 環境中運作嗎?

是。 WEF 與傳輸無關,可透過 IPv4 或 IPv6 運作。

WEF 事件是否已加密? 我看到 HTTP/HTTPS 選項!

在網域設定中,用來傳輸 WEF 事件的連線預設會使用 Kerberos 加密, (以 NTLM 作為後援選項,您可以使用 GPO) 來停用此選項。 只有 WEF 收集器可以解密連線。 此外,不論 Kerberos 或 NTLM.) 驗證類型為何 (,WEF 用戶端與 WEC 伺服器之間的連線都會相互驗證。) 有 GPO 選項可強制驗證僅使用 Kerberos。

不論是否選取 HTTP 或 HTTPS,都會執行此驗證和加密。

如果使用憑證式驗證,如果 Kerberos 型相互驗證不是選項,則可使用 HTTPS 選項。 SSL 憑證和布建的客戶端憑證可用來提供相互驗證。

WEF 用戶端是否有個別的事件緩衝區?

當 WEC 伺服器的連線中斷時,WEF 用戶端電腦本機事件記錄檔是 WEF 的緩衝區。 若要增加「緩衝區大小」,請增加選取事件之特定事件記錄檔的檔案大小上限。 如需詳細資訊,請參閱 附錄 C - 事件通道設定 (啟用和通道存取) 方法

當事件記錄檔覆寫現有的事件時 (如果裝置未連線到事件收集器) ,則不會傳送任何通知給 WEF 收集器,指出用戶端會遺失事件。 事件數據流中沒有出現間距的指示器。

轉送的事件使用何種格式?

WEF 有兩種轉送事件模式。 默認值為「轉譯的文字」,其中包含事件的文字描述,如您在事件查看器中所見。 此描述的包含表示事件大小實際上會加倍或加倍,視轉譯的描述大小而定。 替代模式是「事件」 (有時也稱為「二進位」格式) - 這隻是以二進位 XML 格式傳送的事件 XML 本身, (如同寫入 evtx 檔案一樣。) 此格式很精簡,而且可以是單一 WEC 伺服器可容納的事件磁碟區兩倍以上。

訂用帳戶 「testSubscription」 可設定為透過 WECUTIL 公用程式使用事件格式:

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "testSubscription" /cf:Events

WEF 事件的傳遞頻率為何?

事件傳遞選項是 WEF 訂用帳戶組態參數的一部分 - 有三個內建的訂用帳戶傳遞選項:[一般]、[最小化帶寬] 和 [最小延遲]。 第四個稱為「自定義」的 catch-all 可供使用,但無法使用事件查看器透過 WEF UI 選取或設定。 您必須使用 WECUTIL.EXE 命令列應用程式來選取並設定 [自定義傳遞] 選項。 所有訂用帳戶選項都會定義事件計數上限和事件存留期上限,如果超過任一限制,則會將累積的事件傳送至事件收集器。

下表概述內建傳遞選項:

事件傳遞優化選項 描述
一般 此選項可確保事件的可靠傳遞,而且不會嘗試節省頻寬。 除非您需要更緊密地控制頻寬使用量,或需要儘快傳遞轉送的事件,否則這是適當的選擇。 它會使用提取傳遞模式,一次批處理 5 個專案,並將批次逾時設定為 15 分鐘。
將頻寬最小化 此選項可確保嚴格控制事件傳遞的網路頻寬使用。 如果您想要限制網路連線傳遞事件的頻率,這是適當的選擇。 它會使用推送傳遞模式,並將批次逾時設定為 6 小時。 此外,它會使用 6 小時的活動訊號間隔。
將延遲降至最低 此選項可確保以最少的延遲傳遞事件。 如果您要收集警示或重大事件,這是適當的選擇。 它會使用推送傳遞模式,並將批次逾時設定為30秒。

如需傳遞選項的詳細資訊, 請參閱設定進階訂閱設定

主要差異在於從用戶端傳送事件的延遲。 如果沒有任何內建選項符合您的需求,您可以從提升許可權的命令提示字元設定指定訂用帳戶的自定義事件傳遞選項:

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "SubscriptionNameGoesHere" /cm:Custom
@rem set DeliveryMaxItems to 1 event
Wecutil ss "SubscriptionNameGoesHere" /dmi:1
@rem set DeliveryMaxLatencyTime to 10 ms
Wecutil ss "SubscriptionNameGoesHere" /dmlt:10

如何控制哪些裝置可以存取 WEF 訂用帳戶?

針對來源起始的訂用帳戶:WEC 伺服器上的每個 WEF 訂用帳戶都有自己的機器帳戶或安全組 ACL,其中包含電腦帳戶 (不是明確允許參與該訂用帳戶或明確拒絕存取的用戶帳戶) 。 此 ACL 僅適用於單一 WEF 訂用帳戶 (,因為指定的 WEC 伺服器) 上可以有多個 WEF 訂用帳戶,其他 WEF 訂用帳戶則有自己的個別 ACL。

針對收集器起始的訂用帳戶:訂用帳戶包含 WEC 伺服器用來收集事件的計算機清單。 這份清單是在 WEC 伺服器上管理,而且用於訂用帳戶的認證必須具有從 WEF 用戶端讀取事件記錄檔的存取權 - 認證可以是電腦帳戶或網域帳戶。

用戶端是否可以與多個 WEF 事件收集器通訊?

是。 如果您想要 High-Availability 環境,請使用相同的訂用帳戶設定來設定多部 WEC 伺服器,並將這兩個 WEC 伺服器 URI 發佈至 WEF 用戶端。 如果 WEF 用戶端具有適當的存取權,則會將事件同時轉送至 WEC 伺服器上已設定的訂用帳戶。

WEC 伺服器有哪些限制?

有三個因素會限制 WEC 伺服器的延展性。 商用硬體上穩定 WEC 伺服器的一般規則是針對所有已設定的訂用帳戶,規劃每秒平均 3,000 個事件。

  • 磁碟 I/O。 WEC 伺服器不會處理或驗證接收的事件,而是緩衝處理接收的事件,然後將它記錄到本機事件記錄檔, (EVTX 檔案) 。 EVTX 檔案的記錄速度受限於磁碟寫入速度。 將 EVTX 檔案隔離到自己的數位或使用高速磁碟,可能會增加單一 WEC 伺服器每秒可接收的事件數目。

  • 網路連線。 雖然 WEF 來源不會維護與 WEC 伺服器的永久持續連線,但不會在傳送其事件之後立即中斷連線。 此寬度表示可同時連線到 WEC 伺服器的 WEF 來源數目僅限於 WEC 伺服器上可用的開放式 TCP 連接埠。

  • 登錄大小。 對於連線到 WEF 訂用帳戶的每個唯一裝置,都有一個登錄機碼 (對應至 WEF 用戶端) 的 FQDN,以儲存書籤和來源活動訊號資訊。 如果未剪除此資訊來移除非作用中的用戶端,這組登錄機碼可能會隨著時間成長為無法管理的大小。

    • 當訂用帳戶有 >1000 個 WEF 來源在其作業存留期內連線到它,也稱為存留期 WEF 來源時,在左側導覽中選取 [ 用帳戶] 節點時,事件查看器可能會有幾分鐘沒有回應,但之後會正常運作。
    • 在 >50,000 個存留期 WEF 來源中,事件查看器不再是選項,且 Windows) 隨附的 wecutil.exe (必須用來設定和管理訂用帳戶。
    • 在 >100,000 個存留期 WEF 來源時,登錄將無法讀取,而且可能必須重建 WEC 伺服器。

訂閱資訊

以下列出每個訂用帳戶收集的所有專案,實際的訂用帳戶 XML 可在附錄中取得。 這些專案會分成 [基準] 和 [目標]。 其目的是要將所有主機訂閱至基準,然後註冊 (,並視需要將) 主機移除至目標訂用帳戶。

基準訂用帳戶

雖然此訂用帳戶似乎是最大的訂用帳戶,但它實際上是每個裝置的最低磁碟區。 (異常裝置應該允許例外狀況 - 執行複雜開發人員相關工作的裝置應該會建立異常大量的程式建立和 AppLocker 事件。) 此訂用帳戶不需要在用戶端裝置上進行特殊設定,即可啟用事件通道或修改通道許可權。

訂用帳戶基本上是套用至事件記錄檔的查詢語句集合。 此訂用帳戶表示其本質上是模組化的,而且可以移除或變更指定的查詢語句,而不會影響訂用帳戶中的其他查詢語句。 此外,隱藏會篩選掉特定事件的語句,只套用在該查詢語句內,而不會套用至整個訂用帳戶。

基準訂用帳戶需求

若要從基準訂用帳戶獲得最大價值,建議您在裝置上設定下列需求,以確保用戶端已產生要從系統轉送的必要事件。

  • 套用安全性審核策略,這是建議的最低稽核原則的超集合。 如需詳細資訊,請 參閱附錄 A - 最低建議的最低審核策略。 此原則可確保安全性事件記錄檔產生必要的事件。

  • 至少將 Audit-Only AppLocker 原則套用至裝置。

    • 如果您已經使用AppLocker來允許或限制事件,則符合此需求。
    • AppLocker 事件包含實用的資訊,例如可執行檔和腳本的檔案哈希和數位簽名資訊。
  • 啟用停用的事件通道,並設定新式事件檔案的最小大小。

  • 目前沒有 GPO 範本可啟用或設定新式事件檔案的大小上限。 此臨界值必須使用 GPO 來定義。 如需詳細資訊,請參閱 附錄 C - 事件通道設定 (啟用和通道存取) 方法

在下列專案中可以找到已標註的事件查詢。 如需詳細資訊,請參閱 附錄 F - 附註的可疑訂閱事件查詢

  • 來自 Windows 安全性的反惡意代碼事件。 如果這些事件會寫入 Windows 事件記錄檔,則可以輕鬆地針對任何指定的反惡意代碼產品進行設定。

  • 安全性事件記錄檔進程建立事件。

  • AppLocker 進程 建立事件 (EXE、腳本、已封裝的應用程式安裝和執行) 。

  • 登錄修改事件。 如需詳細資訊,請參閱 附錄 B - 建議的最低登錄系統 ACL 原則

  • 操作系統啟動和關機

    • 啟動事件包括操作系統版本、Service Pack 層級、QFE 版本和開機模式。
  • 服務安裝

    • 包含服務的名稱、映射路徑,以及安裝服務的人員。
  • 證書頒發機構單位稽核事件

    • 這些事件僅適用於已安裝證書頒發機構單位角色的系統。
    • 記錄憑證要求和回應。
  • 使用者配置檔事件

    • 使用暫時配置檔或無法建立使用者配置檔,可能表示入侵者正以互動方式登入裝置,但不想留下持續性配置檔。
  • 服務啟動失敗

    • 失敗碼已當地語系化,因此您必須檢查訊息 DLL 中的值。
  • 網路共用存取事件

    • 篩選掉預期和雜訊的 IPC$ 和 /NetLogon 檔案共用。
  • 系統關機起始要求

    • 瞭解起始裝置重新啟動的原因。
  • 使用者起始的互動式註銷事件

  • 遠端桌面服務會話連線、重新連線或中斷連線。

  • 如果已安裝EMET,則為EMET事件。

  • 事件轉送外掛程式事件

    • 用於監視 WEF 訂用帳戶作業,例如部分成功事件。 此事件適用於診斷部署問題。
  • 網路共用建立和刪除

    • 可偵測未經授權的共用建立。

      注意

      所有共享都會在裝置啟動時重新建立。

  • 登入工作階段

    • 本機和遠端互動式/遠端桌面) 互動式 (登入成功
    • 非內建帳戶的服務登入成功,例如 LocalSystem、LocalNetwork 等等。
    • 批次會話的登入成功
    • 登入工作階段關閉,這是非網路工作階段的註銷事件。
  • Windows 錯誤報告僅 (應用程式當機事件)

    • 此會話可協助偵測入侵者不熟悉使用目標惡意代碼的企業環境的早期徵兆。
  • 事件記錄服務事件

    • Windows 事件記錄服務的錯誤、啟動事件和停止事件。
  • 事件記錄檔已清除 (包括安全性事件記錄檔)

    • 此事件可能表示正在遮蔽其曲目的入侵者。
  • 指派給新登入的特殊許可權

    • 此指派表示在登入時,使用者可能是系統管理員,或具有足夠的存取權可讓自己成為系統管理員。
  • 輸出遠端桌面服務會話嘗試

    • 可看見入侵者的潛在海面
  • 系統時間已變更

  • SMB 用戶端 (對應磁碟驅動器連線)

  • 帳戶認證驗證

    • 域控制器上的本機帳戶或網域帳戶
  • 已從本機 Administrators 安全組新增或移除使用者。

  • 存取的密碼編譯 API 私鑰

    • 與使用本機儲存私鑰的簽署對象相關聯。
  • 工作排程器工作建立和刪除

    • 工作排程器可讓入侵者以 LocalSystem 的指定時間執行程序代碼。
  • 使用明確認證登入

    • 偵測入侵者所進行的認證使用變更,以存取更多資源。
  • 智慧卡卡片持有者驗證事件

    • 此事件會偵測使用智慧卡的時機。

可疑的訂用帳戶

此訂用帳戶會新增一些可能的入侵者相關活動,以協助分析師進一步調整其對裝置狀態的判斷。

  • 建立網路工作階段的登入工作階段

    • 啟用網路圖表的時間序列分析。
  • RADIUS 和 VPN 事件

    • 如果您使用 Microsoft IAS RADIUS/VPN 實作,這會很有用。 它會顯示連線到企業之遠端IP位址的使用者> IP位址指派。
  • Crypto API X509 對象和建置鏈結事件

    • 偵測已知的不正確憑證、CA 或子CA
    • 偵測 CAPI 的異常程式使用
  • 指派給本機登入的群組

    • 為啟用全帳戶存取權的群組提供可見度
    • 允許更佳的補救工作規劃
    • 排除已知的內建系統帳戶。
  • 登入會話結束

    • 網路登入會話的特定功能。
  • 用戶端 DNS 查閱事件

    • 傳回執行 DNS 查詢的進程,以及從 DNS 伺服器傳回的結果。
  • 進程結束

    • 啟用非預期終止的進程檢查。
  • 本機認證驗證或使用明確認證登入

    • 當本機 SAM 對要驗證的帳戶認證具有授權時產生。
    • 域控制器上的雜訊
    • 在用戶端裝置上,它只會在本機帳戶登入時產生。
  • 登錄修改稽核事件

    • 只有在建立、修改或刪除登錄值時。
  • 無線 802.1x 驗證

    • 使用對等 MAC 位址偵測無線連線
  • Windows PowerShell 記錄

    • 涵蓋 Windows PowerShell 2.0 和更新版本,並包含使用 Windows PowerShell 進行記憶體內部攻擊的 Windows PowerShell 5.0 記錄改善。
    • 包含 Windows PowerShell 遠程記錄
  • 使用者模式驅動程式架構「驅動程式載入」事件

    • 可能會偵測到載入多個設備驅動器的 USB 裝置。 例如,載入鍵盤或網路驅動程式的USB_STOR裝置。

如果您的組織審核策略可讓更多稽核符合其需求,這沒關係。 下列原則是啟用基準和目標訂用帳戶所收集事件所需的最低審核策略設定。

類別 子類別 稽核設定
帳戶登入 認證驗證 成功和失敗
帳戶管理 安全組管理 成功
帳戶管理 使用者帳戶管理 成功和失敗
帳戶管理 計算機帳戶管理 成功和失敗
帳戶管理 其他帳戶管理事件 成功和失敗
詳細追蹤 程式建立 成功
詳細追蹤 進程終止 成功
登入/註銷 使用者/裝置宣告 未設定
登入/註銷 IPsec 擴充模式 未設定
登入/註銷 IPsec 快速模式 未設定
登入/註銷 登入 成功和失敗
登入/註銷 登出 成功
登入/註銷 其他登入/註銷事件 成功和失敗
登入/註銷 特殊登入 成功和失敗
登入/註銷 帳戶鎖定 成功
物件存取 產生的應用程式 未設定
物件存取 檔案共用 成功
物件存取 檔案系統 未設定
物件存取 其他物件存取事件 未設定
物件存取 登錄 未設定
物件存取 卸除式存放裝置 成功
原則變更 審核策略變更 成功和失敗
原則變更 MPSSVC Rule-Level 原則變更 成功和失敗
原則變更 其他原則變更事件 成功和失敗
原則變更 驗證原則變更 成功和失敗
原則變更 授權原則變更 成功和失敗
許可權使用 敏感性許可權使用 未設定
系統 安全性狀態變更 成功和失敗
系統 安全性系統延伸模組 成功和失敗
系統 系統完整性 成功和失敗

Run 和 RunOnce 金鑰適用於入侵者和惡意代碼持續性。 它可讓程式代碼 (執行,或只執行一次,然後移除,分別) 使用者登入系統時。

此含意可以輕鬆地延伸至登錄中的其他自動執行起始點索引鍵。

使用下列圖表來瞭解如何設定這些登錄機碼。

執行金鑰的預設 acl。

runonce 金鑰的預設 acl。

附錄 C - 事件通道設定 (啟用和通道存取) 方法

某些通道預設為停用,而且必須啟用。 其他專案,例如 Microsoft-Windows-CAPI2/Operational 必須修改通道存取權,以允許事件記錄讀取器內建安全組從中讀取。

執行此自定義的建議且最有效方式是設定基準 GPO 以執行排程工作,以設定事件通道 (啟用、設定大小上限,以及調整通道存取) 。 此設定會在下一個 GPO 重新整理週期生效,對用戶端裝置的影響最小。

下列 GPO 代碼段會執行下列工作:

  • 啟用 Microsoft-Windows-Capi2/Operational 事件通道。
  • Microsoft-Windows-Capi2/Operational 的檔案大小上限設定為 100 MB。
  • Microsoft-Windows-AppLocker/EXE 和 DLL 的檔案大小上限設定為 100 MB。
  • 設定 Microsoft-Windows-Capi2/Operational 的最大通道存取權,以包含內建的事件記錄讀取器安全組。
  • 啟用 Microsoft-Windows-DriverFrameworks-UserMode/Operational 事件通道。
  • Microsoft-Windows-DriverFrameworks-UserMode/Operational 的檔案大小上限設定為 50 MB。

設定事件通道。

下表也包含要在 GPO 中設定的六個動作:

程式/腳稿 Arguments
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:true
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ms:102432768
%SystemRoot%\System32\wevtutil.exe sl “Microsoft-Windows-AppLocker/EXE and DLL” /ms:102432768
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ca:“O:BAG:SYD: (A;;0x7;;;BA) (A;;0x2;;;AU) (A;;0x1;;;S-1-5-32-573) ”
%SystemRoot%\System32\wevtutil.exe sl “Microsoft-Windows-DriverFrameworks-UserMode/Operational” /e:true
%SystemRoot%\System32\wevtutil.exe sl “Microsoft-Windows-DriverFrameworks-UserMode/Operational” /ms:52432896

附錄 D - WEF 用戶端設定的最小 GPO

以下是 WEF 運作的最小步驟:

  1. 設定收集器 URI () 。
  2. 啟動 WinRM 服務。
  3. 將網路服務帳戶新增至內建的事件記錄讀取器安全組。 這項新增功能可讓您從安全的事件通道進行讀取,例如安全性事件通道。

設定 wef 用戶端。

附錄 E - 批注式基準訂閱事件查詢

<QueryList>
  <Query Id="0" Path="System">
    <!-- Anti-malware *old* events, but only detect events (cuts down noise) -->
    <Select Path="System">*[System[Provider[@Name='Microsoft Antimalware'] and (EventID &gt;= 1116 and EventID &lt;= 1119)]]</Select>
  </Query>
  <!-- AppLocker EXE events or Script events -->
  <Query Id="1" Path="Microsoft-Windows-AppLocker/EXE and DLL">
    <Select Path="Microsoft-Windows-AppLocker/EXE and DLL">*[UserData[RuleAndFileData[PolicyName="EXE"]]]</Select>
    <Select Path="Microsoft-Windows-AppLocker/MSI and Script">*</Select>
  </Query>
  <Query Id="2" Path="Security">
    <!-- Wireless Lan 802.1x authentication events with Peer MAC address -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="3" Path="Microsoft-Windows-TaskScheduler/Operational">
    <!-- Task scheduler Task Registered (106),  Task Registration Deleted (141), Task Deleted (142) -->
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
  </Query>
  <Query Id="4" Path="System">
    <!-- System startup (12 - includes OS/SP/Version) and shutdown -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=12 or EventID=13)]]</Select>
  </Query>
  <Query Id="5" Path="System">
    <!-- Service Install (7000), service start failure (7045), new service (4697) -->
    <Select Path="System">*[System[Provider[@Name='Service Control Manager'] and (EventID = 7000 or EventID=7045)]]</Select>
<Select Path="Security">*[System[(EventID=4697)]]</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- TS Session reconnect (4778), TS Session disconnect (4779) -->
    <Select Path="Security">*[System[(EventID=4778 or EventID=4779)]]</Select>
  </Query>
  <Query Id="7" Path="Security">
    <!-- Network share object access without IPC$ and Netlogon shares -->
    <Select Path="Security">*[System[(EventID=5140)]] and (*[EventData[Data[@Name="ShareName"]!="\\*\IPC$"]]) and (*[EventData[Data[@Name="ShareName"]!="\\*\NetLogon"]])</Select>
  </Query>
  <Query Id="8" Path="Security">
    <!-- System Time Change (4616)  -->
    <Select Path="Security">*[System[(EventID=4616)]]</Select>
  </Query>
  <Query Id="9" Path="System">
    <!-- Shutdown initiate requests, with user, process and reason (if supplied) -->
    <Select Path="System">*[System[Provider[@Name='USER32'] and (EventID=1074)]]</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app execution -->
  <Query Id="10" Path="Microsoft-Windows-AppLocker/Packaged app-Execution">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Execution">*</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app installation -->
  <Query Id="11" Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">*</Select>
  </Query>
  <Query Id="12" Path="Application">
    <!-- EMET events -->
    <Select Path="Application">*[System[Provider[@Name='EMET']]]</Select>
  </Query>
  <Query Id="13" Path="System">
    <!-- Event log service events -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="14" Path="Security">
    <!-- Local logons without network or service events -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]!="3"]]) and (*[EventData[Data[@Name="LogonType"]!="5"]])</Select>
  </Query>
  <Query Id="15" Path="Application">
    <!-- WER events for application crashes only -->
    <Select Path="Application">*[System[Provider[@Name='Windows Error Reporting']]] and (*[EventData[Data[3] ="APPCRASH"]])</Select>
  </Query>
  <Query Id="16" Path="Security">
    <!-- Security Log cleared events (1102), EventLog Service shutdown (1100)-->
    <Select Path="Security">*[System[(EventID=1102 or EventID = 1100)]]</Select>
  </Query>
  <Query Id="17" Path="System">
    <!-- Other Log cleared events (104)-->
    <Select Path="System">*[System[(EventID=104)]]</Select>
  </Query>
  <Query Id="18" Path="Security">
    <!--  user initiated logoff -->
    <Select Path="Security">*[System[(EventID=4647)]]</Select>
  </Query>
  <Query Id="19" Path="Security">
    <!-- user logoff for all non-network logon sessions-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] != "3"]])</Select>
  </Query>
  <Query Id="20" Path="Security">
    <!-- Service logon events if the user account isn't LocalSystem, NetworkService, LocalService -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="5"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]])</Select>
  </Query>
  <Query Id="21" Path="Security">
    <!-- Network Share create (5142), Network Share Delete (5144)  -->
    <Select Path="Security">*[System[(EventID=5142 or EventID=5144)]]</Select>
  </Query>
  <Query Id="22" Path="Security">
    <!-- Process Create (4688) -->
    <Select Path="Security">*[System[EventID=4688]]</Select>
  </Query>
  <Query Id="23" Path="Security">
    <!-- Event log service events specific to Security channel -->
    <Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="26" Path="Security">
    <!-- Special Privileges (Admin-equivalent Access) assigned to new logon, excluding LocalSystem-->
    <Select Path="Security">*[System[(EventID=4672)]]</Select>
    <Suppress Path="Security">*[EventData[Data[1]="S-1-5-18"]]</Suppress>
  </Query>
  <Query Id="27" Path="Security">
    <!-- New user added to local security group-->
    <Select Path="Security">*[System[(EventID=4732)]]</Select>
  </Query>
  <Query Id="28" Path="Security">
    <!-- New user added to global security group-->
    <Select Path="Security">*[System[(EventID=4728)]]</Select>
  </Query>
  <Query Id="29" Path="Security">
    <!-- New user added to universal security group-->
    <Select Path="Security">*[System[(EventID=4756)]]</Select>
  </Query>
  <Query Id="30" Path="Security">
    <!-- User removed from local Administrators group-->
    <Select Path="Security">*[System[(EventID=4733)]] and (*[EventData[Data[@Name="TargetUserName"]="Administrators"]])</Select>
  </Query>
  <Query Id="31" Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">
    <!-- Log attempted TS connect to remote server -->
    <Select Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">*[System[(EventID=1024)]]</Select>
  </Query>
  <Query Id="32" Path="Security">
    <!-- Certificate Services received certificate request (4886), Approved and Certificate issued (4887), Denied request (4888) -->
    <Select Path="Security">*[System[(EventID=4886 or EventID=4887 or EventID=4888)]]</Select>
  </Query>
  <Query Id="34" Path="Security">
    <!-- New User Account Created(4720), User Account Enabled (4722), User Account Disabled (4725), User Account Deleted (4726) -->
    <Select Path="Security">*[System[(EventID=4720 or EventID=4722 or EventID=4725 or EventID=4726)]]</Select>
  </Query>
  <Query Id="35" Path="Microsoft-Windows-SmartCard-Audit/Authentication">
    <!-- Gets all Smart-card Card-Holder Verification (CHV) events (success and failure) performed on the host. -->
    <Select Path="Microsoft-Windows-SmartCard-Audit/Authentication">*</Select>
  </Query>
  <Query Id="36" Path="Microsoft-Windows-SMBClient/Operational">
    <!-- get all UNC/mapped drive successful connection -->
    <Select Path="Microsoft-Windows-SMBClient/Operational">*[System[(EventID=30622 or EventID=30624)]]</Select>
  </Query>
  <Query Id="37" Path="Application">
    <!-- User logging on with Temporary profile (1511), cannot create profile, using temporary profile (1518)-->
    <Select Path="Application">*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]]</Select>
  </Query>
  <Query Id="39" Path="Microsoft-Windows-Sysmon/Operational">
    <!-- Modern SysMon event provider-->
    <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
  </Query>
  <Query Id="40" Path="Application">
    <!-- Application crash/hang events, similar to WER/1001. These include full path to faulting EXE/Module.-->
    <Select Path="Application">*[System[Provider[@Name='Application Error'] and (EventID=1000)]]</Select>
    <Select Path="Application">*[System[Provider[@Name='Application Hang'] and (EventID=1002)]]</Select>
  </Query>
  <Query Id="41" Path="Microsoft-Windows-Windows Defender/Operational">
    <!-- Modern Windows Defender event provider Detection events (1006-1009) and (1116-1119) -->
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1006 and EventID &lt;= 1009) )]]</Select>
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1116 and EventID &lt;= 1119) )]]</Select>
  </Query>
  <Query Id="42" Path="Security">
    <!-- An account Failed to Log on events -->
    <Select Path="Security">*[System[(EventID=4625)]] and (*[EventData[Data[@Name="LogonType"]!="2"]]) </Select>
  </Query>

</QueryList>

附錄 F - 已標註的可疑訂閱事件查詢

<QueryList>
  <Query Id="0" Path="Security">
    <!-- Network logon events-->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="3"]])</Select>
  </Query>
  <Query Id="1" Path="System">
    <!-- RADIUS authentication events User Assigned IP address (20274), User successfully authenticated (20250), User Disconnected (20275)  -->
    <Select Path="System">*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 or EventID=20250 or EventID=20275)]]</Select>
  </Query>
  <Query Id="2" Path="Microsoft-Windows-CAPI2/Operational">
    <!-- CAPI events Build Chain (11), Private Key accessed (70), X509 object (90)-->
    <Select Path="Microsoft-Windows-CAPI2/Operational">*[System[(EventID=11 or EventID=70 or EventID=90)]]</Select>
  </Query>
  <Query Id="3" Path="Security">
    <!-- CA stop/Start events CA Service Stopped (4880), CA Service Started (4881), CA DB row(s) deleted (4896), CA Template loaded (4898) -->
    <Select Path="Security">*[System[(EventID=4880 or EventID = 4881 or EventID = 4896 or EventID = 4898)]]</Select>
  </Query>
  <Query Id="4" Path="Microsoft-Windows-LSA/Operational">
    <!-- Groups assigned to new login (except for well known, built-in accounts)-->
    <Select Path="Microsoft-Windows-LSA/Operational">*[System[(EventID=300)]] and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]])</Select>
  </Query>
  <Query Id="5" Path="Security">
    <!-- Logoff events - for Network Logon events-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] = "3"]])</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- RRAS events - only generated on Microsoft IAS server -->
    <Select Path="Security">*[System[( (EventID &gt;= 6272 and EventID &lt;= 6280) )]]</Select>
  </Query>
  <Query Id="7" Path="Microsoft-Windows-DNS-Client/Operational">
    <!-- DNS Client events Query Completed (3008) -->
    <Select Path="Microsoft-Windows-DNS-Client/Operational">*[System[(EventID=3008)]]</Select>
<!-- suppresses local machine name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryOptions"]="140737488355328"]]</Suppress>
<!-- suppresses empty name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryResults"]=""]]</Suppress>
  </Query>
  <Query Id="8" Path="Security">
    <!-- Process Terminate (4689) -->
    <Select Path="Security">*[System[(EventID = 4689)]]</Select>
  </Query>
  <Query Id="9" Path="Security">
    <!-- Local credential authentication events (4776), Logon with explicit credentials (4648) -->
    <Select Path="Security">*[System[(EventID=4776 or EventID=4648)]]</Select>
  </Query>
  <Query Id="10" Path="Security">
    <!-- Registry modified events for Operations: New Registry Value created (%%1904), Existing Registry Value modified (%%1905), Registry Value Deleted (%%1906) -->
    <Select Path="Security">*[System[(EventID=4657)]] and ((*[EventData[Data[@Name="OperationType"] = "%%1904"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1905"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1906"]]))</Select>
  </Query>
  <Query Id="11" Path="Security">
    <!-- Request made to authenticate to Wireless network (including Peer MAC (5632) -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="12" Path="Microsoft-Windows-PowerShell/Operational">
    <!-- PowerShell execute block activity (4103), Remote Command(4104), Start Command(4105), Stop Command(4106) -->
    <Select Path="Microsoft-Windows-PowerShell/Operational">*[System[(EventID=4103 or EventID=4104 or EventID=4105 or EventID=4106)]]</Select>
  </Query>
  <Query Id="13" Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">
    <!-- Detect User-Mode drivers loaded - for potential BadUSB detection. -->
    <Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*[System[(EventID=2004)]]</Select>
  </Query>
<Query Id="14" Path="Windows PowerShell">
    <!-- Legacy PowerShell pipeline execution details (800) -->
    <Select Path="Windows PowerShell">*[System[(EventID=800)]]</Select>
  </Query>
</QueryList>

附錄 G - 在線資源

您可以透過下列連結取得詳細資訊: