第六章 - 稽核與侵入偵測

本頁索引

稽核
監視侵入與安全性事件
摘要

  應該在任何安全的環境中積極地監視是否有發生侵入與攻擊事件。將安全系統放置就位之後就認為不會受到攻擊,是一件很愚蠢的事。 有一些理由足以證明稽核與監視侵入事件是非常重要的工作。這些理由包括:

  • 任何運作中的電腦環境都有可能受到攻擊。不論您的安全性有多高,永遠有可能受到攻擊的風險。
  • 成功的攻擊通常是經過不斷失敗的攻擊之後發生。如果您不監視攻擊事件,就無法在攻擊成功之前逮到攻擊行為。
  • 如果攻擊真的成功,您越早發現就越容易遏制損害的發生。
  • 如果您要修復攻擊帶來的損害,就必須知道已經造成的損害是什麼。
  • 稽核與侵入偵測可幫您判斷誰該為攻擊負責。
  • 稽核與侵入偵測的結合運用可幫您將資訊關聯起來以辨識攻擊模式。
  • 定期檢查安全性記錄檔可幫您找出未知的安全性設定問題,例如權限設定不正確或帳戶鎖定設定不嚴謹。
  • 偵測到攻擊之後,稽核可以協助判斷哪些網路資源是漏洞所在。

本章將告訴您,如何稽核環境以掌握發現攻擊的最佳契機,以及如何監視侵入行為 — 包括如何使用侵入偵測系統 — 這種軟體是專門設計來找出有攻擊跡象的事件。

稽核

  您應該要決定適合您的環境的稽核等級,這是整體安全性策略的一部分。只要攻擊會對您的網路造成威脅或是不利於您認為珍貴的資源,則不論攻擊是否成功,稽核都應該要能辨識攻擊,這是您風險評估的一部分。

  在決定稽核的範圍時,您應該謹記:稽核的項目的越多,產生的事件就越多,要找出重要事件也就越困難。如果稽核的範圍很廣,您應該要認真考慮使用其他工具,例如 Microsoft Operations Manager,來幫您篩選比較重要的事件。

  稽核的事件可分為兩大類:成功的事件與失敗的事件。成功的事件是指使用者已經成功存取資源,而失敗的事件則是指使用者曾經試圖存取但是失敗了。失敗的事件對於追蹤試圖攻擊環境的行為很有幫助,然而要詮釋成功的事件就顯得困難多了。雖然絕大部分成功的稽核事件都只是一般活動的指標,但處心積慮的攻擊者在成功存取系統時也會產生成功的事件。通常,事件的模式和事件本身一樣重要。例如,在連續不斷失敗之後獲得成功,就表示可能有人試圖攻擊最後終於得逞。

  無論可能是什麼情況,您都應該將稽核事件與其他有關使用者的資訊結合起來運用。例如,如果使用者外出度假,您可以在這段期間停用他們的帳戶,然後稽核是否有重新啟用帳戶的情形。

如何啟用稽核

  請使用「群組原則」,在站台、網域、OU 或本機電腦等級上啟用稽核。您可以在下面位置找到稽核原則的設定:

電腦設定\Windows 設定\安全性設定\本機原則\稽核原則

  一般而言,您應該在 Active Directory 階層中的高層來實作稽核,因為這樣可以幫您保持稽核設定的一致性。在本手冊中,我們是以「成員伺服器」與「網域控制站」的 OU 等級來執行稽核 (如需詳細資訊,請參閱第 4 章〈依據角色來保護伺服器的安全〉)。

  您可能已選擇了某些要和網域分開的伺服器。您可以編輯本機電腦的群組原則,或是使用 Windows 2000 Server Resource Kit 中的 Auditpol.exe 公用程式來設定這些電腦上的稽核。 請注意:如果要存取本機電腦的群組原則,請啟動 MMC 然後新增 [群組原則] 嵌入式管理單元,並將 [本機電腦] 設為此嵌入式管理單元的焦點。 定義事件日誌設定

  稽核所產生的每一個事件都會顯示在 [事件檢視器] 中。您應該要決定事件日誌要如何儲存產生的事件。您可以直接在 [事件檢視器] 中定義每一個設定,或是在 [群組原則] 中進行定義。在本手冊中,我們是在 [群組原則] 中定義「事件檢視器」的設定值。如需我們建議使用的設定值的詳細資訊,請參閱第 4 章〈依據角色來保護伺服器的安全〉。

  您可能會想要修改在 [群組原則] 中所定義的設定,或是想要以另外的等級來套用設定。例如,您可能會發現 IIS 伺服器上的安全性記錄檔爆滿,造成系統關閉。如果要防止發生這種情形,請在 IIS Server OU 上修改群組原則以增加安全性記錄檔的大小,或是變更原則讓安全性記錄檔爆滿時系統不會關閉。如果要在 [群組原則] 中定義安全性記錄檔的設定,請使用下列程序:

在 OU 上使用群組原則來修改事件日誌的設定

  1. 按一下 [開始],選取 [系統管理工具],選取 [Active Directory 使用者及電腦]
  2. 在主控台樹狀目錄中,以右鍵按一下您想要在那裡定義稽核原則的 OU,然後按 [內容]
  3. 選取 [群組原則] 索引標籤,選取您想要編輯的 [群組原則物件],然後按一下 [編輯]
  4. [群組原則編輯器] 中,瀏覽至 電腦設定\Windows 設定\安全性設定\事件日誌\事件日誌檔設定值。
  5. 請依據您的需求來修改設定。

  如果您從 [群組原則] 中移除了事件檢視器的設定,您可以反過來直接在 [事件檢視器] 中定義這些設定。不過,我們建議您在 [群組原則] 中定義事件檢視器的設定,以確保類似的電腦有一致的設定。

需要稽核的事件

  Windows 2000 提供數個安全性事件的稽核類別。在設計企業的稽核策略時,您必須決定是否要包含下列的安全性稽核事件類別:

  • 登入事件
  • 帳戶登入事件
  • 物件存取
  • 目錄服務存取
  • 特殊權限使用
  • 程序追蹤
  • 系統事件
  • 原則變更

下面章節將詳細說明當您啟用特定類別的稽核時,會傳回來的一些比較常見的事件識別碼。 請注意:本章稍後的〈被動偵測方法〉一節中將討論可用來搜尋與收集事件日誌資訊的工具。 登入事件

  如果您稽核登入事件,每次有使用者登入或登出電腦時,使用者試圖登入的電腦上的安全性記錄檔中就會產生一個事件。此外,當使用者連線至遠端伺服器時,遠端伺服器上的安全性記錄檔中也會產生一個登入事件。當登入工作階段與權杖被建立或損毀時,都會分別建立登入事件。

  如果要追蹤試圖在伺服器進行互動式登入的行為或是要調查發自某特定電腦的攻擊行為,登入事件會很有幫助。當登入行動成功時,成功稽核會產生一個稽核項目。當登入行動失敗時,失敗稽核也會產生一個稽核項目。 請注意:登入事件包括電腦與使用者的登入事件。如果 Windows NT 或 Windows 2000 的電腦試圖進行網路連線,您會看見電腦帳戶與使用者帳戶各自有自己的安全性事件日誌項目。Windows 9x 的電腦在目錄中沒有存在電腦帳戶,所以發生網路登入事件時不會產生電腦登入事件項目。   系統會稽核成功與失敗的登入事件,這是「成員伺服器與網域控制站基準原則」的一部分。所以,您應該可以預期會看見下列的事件識別碼,這些都是互動式登入以及連線至執行「終端機服務」的電腦的終端機服務登入所會產生的事件識別碼。

資料表 6.1:顯示在事件日誌中的登入事件

事件識別碼  說明
528 使用者成功登入電腦。
529 有人使用未知的使用者名稱或密碼錯誤的已知使用者名稱來試圖登入。
530 試圖登入的使用者帳戶是在非法時間進行登入。
531 有人使用已停用的帳戶試圖登入。
532 有人使用過期的帳戶試圖登入。
533 系統不允許這個使用者登入這部電腦。
534 使用者試圖以不被允許的登入類型來進行登入,例如透過網路、互動式、批次、服務或遠端互動式。
535 指定的帳戶密碼已經過期。
536 沒有啟用 Net Logon 服務。
537 登入意圖因其他原因而失敗。
538 有使用者登出。
539 此帳戶在試圖登入時被鎖定。此事件可能暗示有人發動密碼攻擊,但沒有成功因而造成此帳戶被鎖定。
540 網路登入成功。此事件指出遠端使用者成功地透過網路連線至伺服器上的本機資源,系統產生權杖供網路使用者使用。
682 使用者重新連線至已經中斷的終端機服務工作階段。此事件指出有人連線至先前的終端機服務工作階段。
683 使用者沒有登出就中斷終端機服務工作階段。當使用者透過網路連線至終端機服務工作階段時就會產生此事件。此事件是顯示在終端機伺服器上。

您可以使用登入事件項目來診斷下列安全性事件:

  • **試圖登入本機失敗。**下列任何一個事件識別碼都代表試圖登入失敗:529、530、531、532、533、534 與 537。如果攻擊者試圖猜測某個本機帳戶的使用者名稱與密碼組合但失敗,您就會看見事件 529 與 534。然而,如果使用者忘記密碼或是開始透過 [網路上的芳鄰] 來瀏覽網路,也可能會發生這些事件。要在大規模的環境中有效的詮釋這些事件可能有些困難。通常,如果這些模式重複發生或是與其他不尋常的因素同時發生,您就應該要調查這些模式。例如,午夜時分在編號 529 的事件之後跟著發生 528 事件,可能代表密碼攻擊成功 (雖然也可能只是過度勞累的系統管理員所造成的)。  
  • **誤用帳戶。**事件 530、531、532 與 533 全都可以代表誤用使用者帳戶的情況。這些事件指出使用者所輸入的帳戶/密碼組合是正確的,但是有其他限制阻止使用者登入。無論可能是什麼情況,您都應該調查這些事件以判斷是否發生誤用的情形,或目前的限制是否需要修改。例如,您可能需要延長某些帳戶的登入時數。  
  • **帳戶鎖定。**事件 539 指出帳戶發生鎖定的情形。這可能是代表密碼攻擊失敗。您應該依據同一個使用者帳戶來尋找先前是否有發生 529 事件,以試著分辨試圖登入的模式。  
  • **終端機服務攻擊。**終端機服務工作階段可以保留在連線狀態下,好讓處理程序在工作階段結束後仍能繼續執行。事件識別碼 683 指出使用者沒有登出終端機服務工作階段,而事件識別碼 682 則是指出有人連線至先前中斷的工作階段。

帳戶登入事件

  當某個使用者登入網域時,登入程序會在網域控制站上進行處理。如果您在網域控制站上稽核「帳戶登入」事件,就會在確認此帳戶的網域控制站上看見此項登入意圖的記錄。驗證封裝在確認使用者的認證時,就會建立帳戶登入事件。如果使用者是使用網域認證,那麼帳戶登入事件就只會顯示在網域控制站的事件日誌中。如果使用者出示的是本機 SAM 資料庫認證,那麼帳戶登入事件就會顯示在伺服器的安全性事件日誌中。 因為網域中任何有效的網域控制站都有可能會記錄帳戶登入事件,所以您必須確認合併了所有網域控制站的安全性記錄檔,以分析網域中的所有帳戶登入事件。 請注意:和登入事件一樣,帳戶登入事件也包括電腦與使用者的登入事件。 系統會稽核成功與失敗的帳戶登入事件,這是成員伺服器與網域控制站基準原則的一部分。所以,您應該可以預期會看見下列的網路登入以及終端機服務驗證的事件識別碼。 資料表 6.2:顯示在事件日誌中的帳戶登入事件

事件識別碼 說明
672 已經成功發出並確認了驗證服務 (AS) 的票證。
673 已經授與了票證授與服務 (TGS) 的票證。
674 安全性原則更新了 AS 票證或 TGS 票證。
675 預先驗證失敗。
676 驗證票證要求失敗
677 沒有授與 TGS 票證。
678 帳戶成功地對應至網域帳戶。
680 辨識登入嘗試成功所用的帳戶。此事件也會指出用來驗證帳戶的驗證封裝。
681 有人試圖使用網域帳戶登入。
682 使用者重新連線至中斷的終端機服務工作階段。
683 使用者沒有登出就中斷終端機服務工作階段。

針對每一個這種事件,事件日誌都會顯示關於每個特定登入的詳細資訊。您可以使用帳戶登入事件項目來診斷下列的安全性事件:

  • **試圖登入網域失敗。**事件識別碼 675 與 677 指出有人試圖登入網域但失敗。  
  • **時間同步處理問題。**如果用戶端電腦的時間和驗證的網域控制站的時間相差多於五分鐘 (根據預設值),事件識別碼 675 就會顯示在安全性記錄檔中。  
  • **終端機服務攻擊。**終端機服務工作階段可以保留在連線狀態下,好讓處理程序在終端機伺服器工作階段結束後仍能繼續執行。事件識別碼 683 指出使用者沒有登出終端機服務工作階段,而事件識別碼 682 則是指出有人連線至先前中斷的工作階段。如果要防止連線中斷,或是要終止這些中斷的工作階段,請在 [終端機服務設定] 主控台中的 RDP-Tcp 通訊協定的內容中定義 [結束中斷的工作階段的時間間隔]。

帳戶管理

  「帳戶管理」稽核是用來判斷使用者或群組是在何時被建立、變更或刪除。此項稽核可用來判斷某安全性原則是在何時建立的,以及是誰執行此項工作。

  系統會稽核成功與失敗的帳戶管理事件,這是成員伺服器與網域控制站基準原則的一部分。所以,您應該可以預期會在安全性記錄檔中看見下列的事件識別碼。

資料表 6.3:顯示在事件日誌中的帳戶管理事件

事件識別碼 說明
624 已建立使用者帳戶
625 已變更使用者帳戶類型
626 已啟用使用者帳戶
627 有人試圖變更密碼
628 已設定使用者帳戶密碼
629 已停用使用者帳戶
630 已刪除使用者帳戶
631 已建立安全性啟用的通用群組
632 已新增安全性啟用的通用群組成員
633 已移除安全性啟用的通用群組成員
634 已刪除安全性啟用的通用群組
635 已建立安全性停用的本機群組
636 已新增安全性啟用的本機群組成員
637 已移除安全性啟用的本機群組成員
638 已刪除安全性啟用的本機群組
639 已變更安全性啟用的本機群組
641 已變更安全性啟用的通用群組
642 已變更使用者帳戶
643 已變更網域原則
644 已鎖定使用者帳戶

您可以使用安全性記錄檔中的項目來診斷下列的帳戶管理事件:

  • **使用者帳戶的建立。**事件識別碼 624 與 626 代表使用者帳戶的建立與啟用。如果公司中只有特定人員可以建立帳戶,您可以使用這些事件來判斷是否有未經授權的人員建立了使用者帳戶。  
  • **使用者帳戶密碼已變更。**如果不是使用者本人在修改密碼,就表示可能有另一個使用者已接管帳戶。如果找到事件識別碼 627 與 628,就表示有人試圖變更密碼並且變更成功。請檢視詳細資料以判斷是否是另一個帳戶在進行此項變更,以及此帳戶是否是可以重設使用者帳戶密碼的服務台人員或其他服務小組的成員。  
  • **使用者帳戶狀態已變更。**攻擊者可能會經由停用或刪除他們在攻擊時所用的帳戶,來試圖掩飾他們的行蹤。您應該調查所有發生的事件識別碼 629 與 630,以確認這些都是合法的異動。同時請找找看發生事件識別碼 626 之後是否很快又發生事件識別碼 629。這可能是代表有人啟用了已經停用的帳戶,使用此帳戶之後又再次停用此帳戶。  
  • **安全性群組的修改。**您應該要檢查 Domain Admins、Administrators 或任何操作者員群組的成員資格變更情形,或是檢查被委派系統管理功能的自訂通用、萬用或網域本機群組成員資格的變更情形。如果是通用群組成員資格的修改,請尋找事件識別碼 632 與 633。如果是網域本機群組成員資格的修改,請尋找事件識別碼 636 與 637。  
  • **帳戶鎖定。**如果有某個帳戶被鎖定,則 PDC 模擬器操作主機中會記錄兩個事件。事件 644 會指出此帳戶名稱已被鎖定,接著會記錄事件 642,指出此使用者帳戶已變更來暗示此帳戶現在處於鎖定狀態。此事件只會記錄在 PDC 模擬器上。

物件存取

您可以在 Windows 2000 的網路中使用系統存取控制清單 (SACL) 來稽核所有物件。SACL 包含使用者與群組的清單,這些使用者與群組對物件所執行的動作都會被稽核。在 Windows 2000 中幾乎使用者可以操作的任何物件都有一份 SACL。這包括 NTFS 磁碟機上的檔案與資料夾、印表機以及登錄機碼。 SACL 是由存取控制資料項目 (ACE) 所組成,每一個 ACE 都包含三項資訊:

  • 要稽核的安全性原則
  • 要稽核的特定存取類型,稱為存取遮罩
  • 一個旗標,用來指出是要稽核失敗的存取、要稽核成功的存取,或是兩者都稽核

  如果您希望事件顯示在安全性記錄檔中,就必須先啟用 [稽核物件存取] 然後定義您想要稽核的每一個物件的 SACL。

  當物件的控制碼開啟時,就會產生 Windows 2000 中的稽核。Windows 2000 使用核心模式的安全性子系統,只允許程式經由核心來存取物件。這樣可防止程式試圖繞過安全性系統。因為核心記憶體空間和使用者模式程式是隔離的,所以程式是經由稱為控制碼的資料結構來參照物件。下面是試圖存取的典型範例:

  1. 使用者指示程式去存取物件 (例如,[檔案]/[開啟舊檔])。
  2. 程式向系統要求控制碼,此時必須指定存取類型 (讀取、寫入等等)。
  3. 安全性子系統會將所要求的物件的 DACL 和使用者的權杖做比較,在 DACL 中尋找符合的項目 (要符合此使用者或是此使用者所屬的群組並且又具有程式所要求的存取權)。
  4. 系統會將所要求的物件的 SACL 和使用者的權杖做比較,在 SACL 中尋找符合的項目 (要符合傳回程式的有效權利或是程式所要求的權利)。如果有相符的失敗稽核 ACE 符合所要求的存取權,但該存取權卻沒有被授與,就會產生失敗的稽核事件。如果有相符的成功稽核 ACE 符合已授與的存取權,就會產生成功的稽核事件。
  5. 如果有授與任何存取權,系統會將控制碼傳回程式,程式就可以使用此控制碼來存取物件。

  很重要的一點是,當稽核發生而事件產生時,物件尚未發生任何事。這點對於詮釋稽核事件很重要。寫入稽核是在檔案被寫入之前就已經產生,而讀取稽核也是在檔案被讀取之前就已經產生。

  對所有稽核而言,採取目標方法來稽核物件的存取是很重要的事。在您的稽核計畫中,請決定必須稽核的物件類型,然後決定您想為所稽核的每一種物件類型,監視何種存取嘗試的類型 (成功、失敗或兩者)。過度廣泛的稽核方法會對系統效能造成很大的影響,並且所收集的大部分資料都會是不必要或沒有用的。

  通常您會想要稽核對所選物件的所有存取動作,包括來自不信任帳戶的存取動作。如果要達成這項目的,請將 Everyone 群組新增至您想要稽核的物件的 SACL。您應該要小心稽核物件的成功存取事件,因為這種稽核會在安全性記錄檔中建立相當大量的稽核項目;然而,如果您是在調查某個重要檔案的刪除事件,就需要檢查成功的稽核事件以判斷是哪個使用者帳戶刪除了這個檔案。

  成員伺服器與網域控制站基準原則是設定為讓系統同時去稽核成功與失敗的物件存取事件。然而,物件本身的 SACL 並未設定,您必須依據環境的需求來設定 SACL。您可以直接在物件上定義 SACL,或是使用群組原則來定義。如果需要稽核的物件位於多部電腦上,您應該在 [群組原則] 中定義 SACL。

稽核物件存取會在安全性記錄檔中產生下列事件。 資料表 6.4:顯示在事件日誌中的物件存取事件

事件識別碼 說明
560 已授與對已存在物件的存取權。
562 物件的控制碼已關閉。
563 有人試圖開啟物件來將其刪除 (如果有指定 FILE_DELETE_ON_CLOSE 旗標,系統檔案就會使用此識別碼)。
564 有人刪除了受保護的物件。
565 已授與對已存在的物件類型的存取權。

如果您是在尋找特定物件的存取事件,您首先要研究事件識別碼為 560 的事件。事件的詳細資料中會包含有用的資訊,您必須搜尋事件的詳細資料以找出您要找的特定事件。資料表 6.5 列出一些您可能需要執行的動作以及執行的方法。

資料表 6.5:如何針對物件存取事件 560 來執行主要的稽核動作

稽核動作 如何達成
尋找特定檔案、資料夾或物件 在事件 560 的詳細資料中,搜尋檔案或資料夾 (您想要檢視發生在它身上的動作的那個檔案或資料夾) 的完整路徑。
判斷是哪個使用者所採取的動作 定義篩選器,以辨識 560 事件中的特定使用者。
判斷使用者是在哪部電腦上執行這些動作 定義篩選器,以辨識在 560 事件中執行此項工作的特定電腦帳戶。

目錄服務存取

  Active Directory 物件具有和本身有關的 SACL,所以可以被稽核。如先前所述,您可經由稽核帳戶管理來稽核 Active Directory 使用者與群組帳戶;然而,如果您想稽核其他命名內容 (例如,「設定」與「配置」命名內容) 中物件的修改,就必須稽核物件存取,然後定義您想稽核的特定容器的 SACL。當列在某個 Active Directory 物件的 SACL 上的使用者試圖存取此物件時,稽核項目就會產生。

  您可以使用 ADSIEDIT MMC 嵌入式管理單元來修改設定命名內容 (以及其他命名內容) 中的容器與物件的 SACL。這是經由在 ADSIEDIT 主控台中顯示所需的內容,然後在 [進階安全性設定] 對話方塊中修改物件的 SACL 而達成。

  要針對目錄服務存取找出特定事件是很困難的事,因為所發生的事件相當大量 (通常都是無害的事件)。因此,成員伺服器與網域控制站基準原則只稽核目錄服務存取的失敗事件。這樣可幫您辨識何時有攻擊者試圖非法存取 Active Directory。 試圖存取目錄的動作會在安全性記錄檔中產生識別碼為 565 的目錄服務事件。只要查看安全性事件的詳細資料,您就可以判斷此事件是對應到哪一個物件。

特殊權限使用

  當使用者在 IT 環境中工作時,他們會運用定義的使用者權利。如果您稽核成功與失敗的「特殊權限使用」,則每次有使用者試圖運用使用者權利時,就會產生一個事件。

  即使您確實是稽核了特殊權限的使用,也並不是所有的使用者權利都會被稽核。根據預設值,下列的使用者權利會排除在外:

  • 略過周遊檢查
  • 偵錯程式
  • 建立權杖物件
  • 取代處理程序等級的權杖
  • 產生安全性稽核
  • 備份檔案與目錄
  • 還原檔案與目錄

  您可以啟用 [群組原則] 中的 [稽核備份和復原權限的使用] 安全性選項來覆寫不稽核「備份」與「還原」使用者權利的預設行為。

  稽核特殊權限使用的成功事件會在安全性記錄檔中產生非常大量的資料項目。因此,成員伺服器與網域控制站基準原則只稽核特殊權限使用的失敗事件。

如果有稽核「特殊權限」的使用,就會產生下列事件。 資料表 6.6:顯示在事件日誌中的特殊權限使用事件

事件識別碼 說明
576 指定的特殊權限已新增至使用者的存取權杖 (當使用者登入時就會產生此事件)。
577 使用者試圖執行特許的系統服務操作。
578 特殊權限被用在受保護物件的已開啟控制碼上。

下列是一些事件日誌項目的範例,如果有人運用特定的使用者權利,就可能會產生這些項目:

  • **充當作業系統的一部份。**請尋找指出 SeTcbPrivilege 特殊權限的事件識別碼 577 或 578。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。此事件指出可能有使用者經由充當作業系統的一部份來試圖提高安全性特殊權限。例如,GetAdmin 攻擊,在此事件中,使用者試圖使用此特殊權限將自己的帳戶加入 Administrators 群組。應該只有 System 帳戶以及任何被指派此使用者權利的服務帳戶才會產生此事件項目。
  • **變更系統時間。**請尋找指出 SeSystemtimePrivilege 特殊權限的事件識別碼 577 或 578。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。此事件指出可能有使用者試圖變更系統時間以隱藏事件發生的真實時間。
  • **從遠端系統強制關機。**請尋找指出 SeRemoteShutdownPrivilege 使用者權利的事件識別碼 577 與 578。您可以在事件的詳細資料中找到獲得此使用者權利的特定安全性識別元 (SID),以及找到指派此權利的安全性原則的使用者名稱。
  • **載入與卸載裝置驅動程式。**請尋找指出 SeLoadDriverPrivilege 特殊權限的事件識別碼 577 或 578。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。此事件指出可能有使用者試圖載入非法或含有病毒的裝置驅動程式。
  • **管理稽核與安全性記錄檔。**請尋找指出 SeSecurityPrivilege 特殊權限的事件識別碼 577 或 578。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。當有人清除事件日誌,以及當特殊權限使用事件被寫入安全性記錄檔中時,就會發生此事件。
  • **關閉系統。**請尋找指出 SeShutdownPrivilege 特殊權限的事件識別碼 577。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。當有人試圖關閉電腦時就會發生此事件。
  • **取得檔案或其他物件的擁有權。**請尋找指出 SeTakeOwnershipPrivilege 特殊權限的事件識別碼 577 或 578。您可以在事件的詳細資料中找出運用此使用者權利的使用者帳戶。此事件指出可能有攻擊者試圖取得物件的擁有權來略過目前的安全性設定。

程序追蹤

  如果您稽核在 Windows 2000 電腦上執行的處理程序的詳細追蹤資訊,事件日誌會顯示試圖建立處理程序以及試圖結束處理程序的事件。如果某個處理程序試圖產生物件控制碼或是試圖取得物件的間接存取權,事件日誌也會記錄下來。

  因為會產生相當大量的稽核項目,所以成員伺服器與網域控制站基準原則並沒有稽核程序追蹤;然而,如果您選擇要稽核成功與失敗的事件,則事件日誌中會記錄下列的事件識別碼。

資料表 6.7:顯示在事件日誌中的程序追蹤事件

事件識別碼 說明
592 已建立新的處理程序。
593 處理程序已結束。
594 物件的控制碼被複製。
595 已取得物件的間接存取權。

系統事件

  如果有使用者或處理程序修改了電腦環境,就會產生系統事件。您可以稽核試圖變更系統的動作,例如試圖關閉電腦或修改系統時間。

  如果您稽核系統事件,也同時會稽核安全性記錄檔的清除事件。這點很重要,因為攻擊者通常會在變更環境之後試圖清除他們的蹤跡。 成員伺服器與網域控制站基準原則會稽核成功與失敗的系統事件,這樣會在事件日誌中產生下列事件識別碼。

資料表 6.8:顯示在事件日誌中的系統事件

事件識別碼 說明
512 Windows 正在啟動。
513 Windows 正在關機。
514 [本機安全性授權] 已經載入驗證封裝。
515 已經在 [本機安全性授權] 登錄信任的登入處理。
516 配置給安全性事件訊息佇列的內部資源已經用完,造成一些安全性事件訊息遺失。
517 已經清除安全性記錄檔。
518 [安全性帳戶管理員] 已載入通知封裝軟體。

您可以利用這些事件識別碼來注意到一些安全性問題:

  • **電腦關機/重新啟動。**事件識別碼 513 顯示 Windows 正在關機。知道伺服器曾經在何時關閉或重新啟動是很重要的事。有一些是正當的理由,例如安裝了驅動程式或應用程式而需要重新開機,或者因為要進行維護而關閉或重新啟動伺服器;然而,攻擊者也可能為了在啟動期間取得系統的存取權而迫使伺服器重新開機。您應該要注意所有電腦關閉的情況,並和事件日誌做個比對。 許多攻擊都需要重新啟動電腦。經由調查事件日誌,您可以判斷伺服器曾經在何時重新啟動,以及此項重新啟動是計畫中的重新啟動,或是未列入計畫的重新啟動。事件識別碼 513 顯示 Windows 正在啟動,系統記錄檔中還會自動產生一系列的其他事件。這些事件包括事件識別碼 6005,此事件是指出事件日誌服務已經啟動。 除了此項目之外,請在系統記錄檔中尋找兩個不同的事件日誌項目中的其中一個項目。如果先前的關機是乾淨的,例如系統管理員要重新啟動電腦,那麼系統記錄檔中就會記錄事件識別碼 6006,亦即事件日誌服務已經停止。經由檢查此項目的詳細資料,您可以判斷出是哪一個使用者起始此項關機作業。 如果此項重新啟動是肇因於無法預期的重新啟動,就會產生事件識別碼 6008,指出系統上次在 <date> 的 <time> 發生意外的關機。這可能是暗示曾經發生拒絕服務攻擊的事件,而造成電腦關機。但請記得,這也可能是電源中斷所造成,或是裝置驅動程式失敗所造成。 如果此項重新啟動是由藍色螢幕所造成,系統記錄檔中就會記錄事件識別碼 1001,其來源則標示為 Save Dump。您可以在事件的詳細資料中檢視藍色螢幕實際的錯誤訊息。 請注意:如果要包含事件識別碼 1001 的記錄項目,您必須在 [控制台] 的 [系統] 小程式的修復設定區段中選取 [將事件寫入系統記錄檔中] 核取方塊。  
  • **修改或清除安全性記錄檔。**攻擊者可能會試圖修改安全性記錄檔、在攻擊期間停用稽核或是清除安全性記錄檔以避免被偵測。如果您注意到有一段很長的時間安全性記錄檔中沒有產生任何項目,就應該尋找事件識別碼 612 與 517 以判斷是哪一個使用者修改了稽核原則。您應該將產生的所有事件識別碼 517 和指出安全性記錄檔被清除的實體記錄檔做個比對。如果有人非法清除安全性記錄檔,可能是想試圖隱藏那些存在先前的安全性記錄檔中的事件。您可以在事件的詳細資料中找到清除記錄檔的使用者名稱。

原則變更

  稽核原則定義要稽核環境的哪些變更,可幫助您判斷是否有人試圖攻擊您的環境;然而,決心進行破壞的攻擊者會伺機修改稽核原則本身,這樣系統就不會稽核攻擊者所做的任何變更。

  如果您稽核原則的變更,就會看見試圖修改稽核原則的事件,以及變更其他原則與使用者權利的事件。成員伺服器與網域控制站基準原則會稽核成功與失敗的原則變更事件。您會在事件日誌中看見下列事件。

資料表 6.9:顯示在事件日誌中的原則變更事件

事件識別碼 說明
608 已指派使用者權利。
609 已移除使用者權利。
610 已建立和另一個網域的信任關係。
611 已移除和另一個網域的信任關係。
612 已變更稽核原則。
768 偵測到某個樹系中的名稱空間元素和另一個樹系中的名稱空間元素發生衝突 (當某個樹系中的名稱空間元素和另一個樹系中的名稱空間元素重疊時發生)。

此處要尋找的兩個最重要的事件是事件識別碼 608 與 609。一些試圖攻擊的行動可能會產生這些事件。如果有人指派使用者權利,下列範例全部都會產生事件識別碼 608,如果有人移除使用者權利,就全部都會產生事件識別碼 609。在每一種情況下,您都可以在事件的詳細資料中找到獲得使用者權利的特定 SID,以及指派此權利的安全性原則的使用者名稱:

  • **充當作業系統的一部份。**請尋找在事件詳細資料中有指出 seTcbPrivilege 使用者權利的事件識別碼 608 與 609。  
  • **將工作站加入網域。**請尋找在事件詳細資料中有指出 SeMachineAccountPrivilege 使用者權利的事件。  
  • **備份檔案與目錄。**請尋找在事件詳細資料中有指出 SeBackupPrivilege 使用者權利的事件。  
  • **略過周遊檢查。**請尋找在事件詳細資料中有指出 SeChangeNotifyPrivilege 使用者權利的事件。此使用者權利可讓使用者周遊樹狀目錄,即使此使用者沒有可存取此目錄的其他權限。  
  • **變更系統時間。**請尋找在事件詳細資料中有指出 SeSystemtimePrivilege 使用者權利的事件。此使用者權利可讓安全性原則變更系統時間,有可能會掩飾事件發生的時間。  
  • **立永久共用物件。**請尋找在事件詳細資料中有指出 SeCreatePermanentPrivilege 使用者權利的事件。擁有此使用者權利的人可以建立檔案與列印共用。  
  • **偵錯程式。**請尋找在事件詳細資料中有指出 SeDebugPrivilege 使用者權利的事件。擁有此使用者權利的人可以附加到任何處理程序。根據預設值,此使用者權利只指派給系統管理員。  
  • **從遠端系統強迫關機。**請尋找在事件詳細資料中有指出 SeRemoteShutdownPrivilege 使用者權利的事件。  
  • **提高排程優先順序。**請尋找在事件詳細資料中有指出 SeIncreaseBasePriorityPrivilege 使用者權利的事件。擁有此權利的使用者可以修改處理程序的優先順序。  
  • **載入與卸載裝置驅動程式。**請尋找在事件詳細資料中有指出 SeLoadDriverPrivilege 使用者權利的事件。擁有此使用者權利的使用者有可能載入含有病毒的裝置驅動程式。  
  • **管理稽核與安全性記錄檔。**請尋找在事件詳細資料中有指出 SeSecurityPrivilege 使用者權利的事件。擁有此使用者權利的使用者可以檢視與清除安全性記錄檔。  
  • **取代處理程序等級的權杖。**請尋找在事件詳細資料中有指出 SeAssignPrimaryTokenPrivilege 使用者權利的事件。擁有此使用者權利的使用者可以變更和啟動的子處理程序相關聯的預設權杖。  
  • **還原檔案與目錄。**請尋找在事件詳細資料中有指出 SeRestorePrivilege 使用者權利的事件。  
  • **關閉系統。**請尋找在事件詳細資料中有指出 SeShutdownPrivilege 使用者權利的事件。擁有此使用者權利的使用者可以關閉系統以初始化新安裝的裝置驅動程式。  
  • **取得檔案或其他物件的擁有權。**請尋找在事件詳細資料中有指出 SeTakeOwnershipPrivilege 使用者權利的事件。擁有此使用者權利的使用者可以經由取得物件或檔案的擁有權來存取 NTFS 磁碟上的任何物件或檔案。

請注意:這些稽核事件只是指出使用者權利被指派給某特定安全性原則,並不代表此安全性原則已經運用此使用者權利執行了某項工作。這些稽核事件明白指出使用者權利原則在何時遭到修改。 請注意:如需有關運用使用者權利的詳細資訊,請參閱 Michael Howard 與 David LeBlanc 的著作《Writing Secure Code》(Microsoft Press,ISBN: 0-7356-1588-8)。 保護事件日誌

  如果要確保事件日誌項目的維護以供將來參考使用,您應該要採取一些步驟來保護事件日誌的安全。這些步驟應該包括:

  • 定義所有事件日誌的儲存、覆寫與維護原則。此原則應該定義所有必要的事件日誌設定值並經由群組原則強制實行。  
  • 確認此原則有設定如何處理爆滿的事件日誌,特別是安全性記錄檔。我們建議當安全性記錄檔爆滿時應該要關閉伺服器。這對於某些環境而言可能不是很實際,但您應該確實地考慮此方法。  
  • 阻止來賓存取事件日誌,您可以經由啟用安全性原則設定來制止本機來賓存取系統、應用程式以及安全性記錄檔。  
  • 確認有稽核成功與失敗的系統事件,藉以判斷是否有人試圖清除安全性記錄檔的內容。  
  • 所有能夠檢視或修改稽核設定的安全性原則都必須使用複雜的密碼或雙要素驗證方法 (例如智慧卡登入),以預防有人攻擊這些帳戶來取得稽核資訊的存取權。 這些設定都定義在第 4 章〈依據角色來保護伺服器的安全〉中所說明的「成員伺服器與網域控制站群組原則物件」中。 除了這些步驟之外,您應該要採取一些進一步的實務措施以確保事件日誌資訊可以盡可能的安全無虞:  
  • 安全性計畫也應該要包含所有伺服器的實體安全性,以確保攻擊者無法實體存取執行稽核的電腦。攻擊者可以經由修改或刪除本機磁碟子系統上的實體 *.evt 檔來移除稽核項目。  
  • 執行一個方法,將事件日誌移至或儲存至一個和實體伺服器分開的位置。這包括使用 [排定的工作] 定期將事件日誌寫入至 CDR 或寫入至寫一次讀多次的媒體,或者也可以寫入和伺服器分開的其他網路位置。如果備份是複製到外部媒體,例如備份磁帶或 CDR 媒體,則您應該將這些媒體移至可防止發生火災或其他天然災害的位置。

請注意:阻止來賓存取事件日誌只能限制非網域的成員存取事件日誌。根據預設值,網域中的所有使用者都可以存取系統與應用程式記錄檔,唯一無法存取的是安全性記錄檔。獲得指派 [管理稽核及安全日誌] 使用者權利的安全性原則可以存取安全性記錄檔。根據預設值,此項使用者權利只指派給 Administrators 與 Exchange Enterprise Servers。 其他最佳稽核實務

  除了設定稽核之外,您還應該執行其他實務以期能有效的稽核伺服器環境的安全性。這些實務包括:

  • 安排定期檢查事件日誌
  • 檢查其他應用程式記錄檔
  • 監視所安裝的服務與驅動程式
  • 監視開啟的連接埠

安排定期檢查事件日誌

  如先前所述,安全性記錄檔與其他可能的事件日誌應該寫入卸除式媒體或是合併至集中的位置以供檢查時使用。檢查記錄檔是最常漏失的稽核步驟。

  您必須確保某個人或小組的工作職責之一是要定期檢查事件日誌。依據安全性記錄檔中所收集的資料量,您可以將檢查事件日誌排定為每天或每週的工作。通常這是以在網路上執行的稽核等級為基礎。如果稽核的事件越多,記錄項目的量就會越大。如果有安排定期檢查事件日誌,下列事項就比較容易達成:

  • **安全性問題的偵測較快。**如果是每天檢查事件日誌,安全性事件應該不會在 24 小時之後才發現。這樣可加快安全性漏洞的偵測與修復。  
  • **定義職責。**如果需要定期檢查事件日誌,負責檢查記錄檔的人員最終要負起辨識潛在攻擊的責任。  
  • **降低覆寫事件或伺服器關閉的風險。**一旦檢查過事件日誌,記錄檔中的事件就可以歸檔供將來檢閱之用,並且可從目前的事件日誌中移除。這樣可降低事件日誌爆滿的風險。

檢查其他應用程式記錄檔

  除了檢查 Windows 2000 事件日誌的安全性事件之外,您也應該要檢查應用程式建立的記錄檔。這些應用程式記錄檔可能會包含有關潛在攻擊的珍貴資訊,可以補充在事件日誌中找到的資訊。依據環境的不同,您可能需要查看一或多個下列記錄檔:

  • **Internet Information Services (IIS)。**IIS 所建立的記錄檔會追蹤試圖連線至 Web、FTP、網路時間通訊協定 (NTP) 與 SMTP 服務的事件。在 IIS 下執行的每一個服務都會維護個別的記錄檔,並以「W3C 擴充記錄檔格式」將記錄檔儲存在 %WinDir%\System32\Logfiles 資料夾中。每一個服務都會維護各自的資料夾以進一步細分記錄資訊。此外,您可以設定 IIS 將記錄檔儲存到 ODBC 相容資料庫中,例如 Microsoft SQL Server。
  • **Internet Security and Acceleration (ISA) Server。**ISA Server 可提供封包篩選器、「ISA Server 防火牆服務」與「ISA Server Web Proxy 服務」的記錄檔。如同 IIS,根據預設值,記錄檔的儲存格式是 W3C 擴充記錄檔格式,但可以記錄至 ODBC 相容資料庫中,作為一種替代方案。根據預設值,ISA Server 的記錄檔是儲存在 C:\Program Files\Microsoft ISA Server\ISALogs 資料夾中。
  • **Internet Authentication Service (IAS)。**IAS 使用「遠端驗證撥號使用者服務」(RADIUS) 通訊協定,為遠端存取驗證提供集中式驗證與帳戶處理。根據預設值,帳戶處理要求、驗證要求與週期狀態要求都會記錄在 %WinDir%\System32\Logfiles 資料夾的 IASlog.log 檔內。此外,您也可以使用資料庫相容的檔案格式來儲存此記錄檔,不一定要使用 IAS 格式。
  • **協力廠商應用程式。**一些協力廠商應用程式具有本機記錄功能,可提供有關此應用程式的詳細資訊。如需詳細資訊,請參閱特定應用程式的說明檔。

請注意:所有有維護記錄檔的電腦都應該使用同步化的時鐘。這樣可讓系統管理員在各個電腦與服務之間比對事件,以確定哪些動作是由攻擊者所發動。如需同步處理時間的詳細資訊,請參閱本章稍後的〈同步處理時間的重要性〉一節。 監視所安裝的服務與驅動程式

  許多對電腦的攻擊是由安裝在目標電腦上的攻擊服務所執行,或者是以含有病毒的驅動程式來取代有效的驅動程式,讓攻擊者可伺機存取目標電腦。

下列工具可用來監視電腦上安裝的服務與驅動程式:

  • 服務主控台。[服務] MMC 主控台可用來監視本機電腦或遠端電腦上的服務,並且可讓系統管理員設定、暫停、停止、啟動與重新啟動所有安裝的服務。請使用此主控台來判斷是否有任何設定為自動啟動的服務目前並沒有啟動。  
  • **Netsvc.exe。**這個指令行工具是包含在 Windows 2000 Server Resource Kit 中,可讓系統管理員以指令行的方式從遠端啟動、停止、暫停、繼續與查詢服務的狀態。  
  • **SvcMon.exe。**這個工具可以監視本機與遠端電腦上的服務狀態是否有變更 (啟動中或是停止中)。為了要偵測這些變更,「服務監視工具」會執行輪詢系統。當所監視的服務停止或啟動時,服務監視工具會傳送電子郵件來通知您。您必須使用「服務監視設定工具」(smconfig.exe) 來設定要監視的伺服器、輪詢間隔與服務。  
  • **Drivers.exe。**這個工具會顯示執行此工具的電腦上安裝的所有裝置驅動程式。此工具的輸出資訊包括驅動程式的檔案名稱、驅動程式在磁碟上的大小以及驅動程式被連結的日期。連結日期可用來辨識任何新安裝的驅動程式。如果最近沒有安裝更新的驅動程式,這代表可能有人取代了驅動程式。請務必將此資訊和事件檢視器中的系統重新啟動事件關聯在一起判斷。

請注意:雖然您可以查詢這些服務,但並不是所有服務 (例如工作站服務) 都可以直接停止。如果使用者有許多作用中的連線,您就無法從遠端迫使服務關閉,但可以暫停或查詢服務。有些服務還有其他服務在依賴它們,您將無法關閉這種服務,除非先關閉這些依賴它們的服務。 監視開啟的連接埠

攻擊常常開始於執行連接埠掃瞄,以辨識在目標電腦上執行的任何已知服務。您應該確認有仔細監視您的伺服器上有哪些開啟的連接埠,這通常是指自己掃瞄連接埠以判斷有什麼是可以被存取的。

執行連接埠掃瞄時,您應該在目標電腦上本機執行掃瞄,並且也要從遠端電腦進行掃瞄。如果使用者可以從公用網路來存取此部電腦,您就應該從某外部電腦執行連接埠掃瞄,以確認您的防火牆軟體只允許存取所要的連接埠。 Netstat.exe 是一個指令行公用程式,可以顯示所有開啟的 TCP 與 UDP 連接埠。Netstat 指令的語法如下:

NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] 其中:

  • -a 會顯示所有連線與正在接聽的連接埠。
  • -e 會顯示 Ethernet 統計資料。這可以和 -s 選項結合使用。
  • -n 會以數值形式顯示位址與連接埠編號。
  • -p proto 會顯示由 proto 所指定的通訊協定的連線;proto 可能是 TCP 或 UDP。如果和 -s 選項搭配使用以顯示每個通訊協定的統計資料,proto 有可能是 TCP、UDP 或 IP。
  • -r 會顯示路由表。
  • -s 會顯示每個通訊協定的統計資料。根據預設值,可以顯示 TCP、UDP 與 IP 的統計資料;-p 選項可用來指定預設的子集。
  • interval 重新顯示所選的統計資料,介於每次顯示之間的暫停間隔秒數。按 CTRL+C 可停止重新顯示統計資料。如果省略不用,netstat 只會列印目前的設定資訊一次。

  當您列出本機電腦上開啟的 TCP 與 UDP 連接埠時,系統會依據 \%WinDir%\System32\Drivers\Etc\ 資料夾的服務檔案中的項目,將連接埠編號轉譯成名稱。如果您寧願只看連接埠編號,可以使用 -n 參數。

  如果有發現任何開啟的連接埠是無法辨識的,您應該調查這些連接埠以判斷電腦上是否需要執行其相對應的服務。如果不需要,您應該停用或移除相關的服務,以阻止電腦在該連接埠上接聽。本手冊所包含的成員伺服器與網域控制站基準原則中有停用一些服務。

  因為許多伺服器有防火牆或封包篩選路由器在保護,我們建議您也要從遠端電腦執行連接埠掃瞄。有許多協力廠商工具 (包括一些免費軟體) 可用來執行遠端連接埠掃瞄。遠端連接埠掃瞄可揭露當外部使用者試圖連線至此電腦時有哪些連接埠可供使用。 請注意:連接埠掃瞄也可以用來測試您的侵入偵測系統,以確定系統可偵測到正在執行中的連接埠掃瞄。如需侵入偵測系統的詳細資訊,請參閱本章稍後的〈主動偵測方法〉一節。

監視侵入與安全性事件

  監視侵入與安全性事件包括被動與主動的工作。許多侵入都是在攻擊發生之後經由檢查記錄檔才偵測到的。這種攻擊後的偵測作業通常稱為「被動」侵入偵測。只有經由檢查記錄檔,您才能依據記錄檔的資訊來審視與重現攻擊事件。

  另外有一些侵入意圖可以在攻擊發生時偵測到。這種方法稱為「主動」侵入偵測,它會尋找已知的攻擊模式或是指令,然後封鎖這些指令的執行。 這一節將告訴您可用來執行這兩種形式的侵入偵測的工具,以保護網路避免受到攻擊。

同步處理時間的重要性

  如果要在多部電腦之間監視侵入與安全性事件,您必須同步處理每部電腦的時鐘。當多部電腦遭受攻擊時,同步化的時間可讓系統管理員重現當時所發生的事。如果沒有同步處理時間,若要判斷特定事件發生的時間以及事件之間是如何交錯發生,將會很困難。您可以在第 3 章〈使用 Windows 2000 群組原則來管理安全性〉中找到更多有關同步處理時間的詳細資訊。

被動偵測方法

  被動侵入偵測系統需要您手動檢查事件日誌與應用程式記錄檔。檢查作業包含在事件日誌資料中分析與偵測攻擊模式。有一些工具、公用程式與應用程式可幫您檢查事件日誌。這一節將告訴您,如何使用每一種工具來協調資訊。

事件檢視器

  您當然可以使用 Windows 2000 [事件檢視器] MMC 主控台來檢視 Windows 2000 安全性記錄檔。[事件檢視器] 可讓您檢視應用程式、安全性與系統記錄檔。您可以在 [事件檢視器] 中定義篩選器來尋找特定事件。

在事件檢視器中定義篩選器

  1. 在主控台樹狀目錄中選取特定的事件日誌
  2. 從 [檢視] 功能表選取 [篩選]
  3. 選取篩選用的參數

[內容] 對話方塊的 [篩選] 索引標籤中,您可以定義下列屬性以篩選事件項目:

  • **事件類型。**您可以限制篩選器只篩選資訊、警告、錯誤、成功稽核、失敗稽核或是這些事件類型的任意組合。  
  • **事件來源。**產生此事件的特定服務或驅動程式。  
  • **類別。**您可以限制篩選器只篩選特定事件類別。  
  • **事件識別碼。**如果您知道所要搜尋的特定事件識別碼,篩選器可以只列出此特定事件識別碼。  
  • **使用者。**您可以限制篩選器只顯示特定使用者所產生的事件。  
  • **電腦。**您可以限制篩選器只顯示特定電腦所產生的事件  
  • **日期間隔。**您可以限制篩選器只顯示介於特定開始日期與結束日期之間的事件。

當您套用篩選器時,篩選過的事件清單可以匯出成逗號分隔或 Tab 字元分隔的清單,以便匯入資料庫應用程式。

傾印事件日誌工具 (Dumpel.exe)

  「傾印事件日誌」是一個指令行工具,包含在 Windows 2000 Server Resource Kit,Supplement One (Microsoft Press,ISBN:0-7356-1279-X} 中。此工具會將本機或遠端系統的事件日誌傾印至 Tab 字元分隔的文字檔,然後您可以將此檔匯入至試算表或資料庫中以便做進一步的檢查。您也可以用此工具來篩選或排除特定的事件類型。Dumpel.exe 工具的語法如下:

dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3...][-r] [-t] [-d x] 其中:

  • -f file 指定輸出檔的檔案名稱。-f 沒有預設值,所以您必須指定檔案。  
  • -s server 指定您想要傾印其事件日誌的伺服器。伺服器名稱前面的反斜線是可選用的。  
  • -l log 指定要傾印哪一個記錄檔 (系統、應用程式、安全性)。如果指定的記錄檔名稱無效,就會傾印應用程式記錄檔。  
  • -m source 指定要傾印記錄的是哪一個來源 (例如重新導向器 (rdr)、序列等等)。只能指定一個來源。如果沒有使用此參數,就會傾印所有事件。如果使用的來源沒有註冊於登錄中,此工具就會在應用程式記錄檔中搜尋這種記錄。  
  • -e n1 n2 n3 可篩選事件識別碼 nn (最多可指定十個)。如果沒有使用 -r 參數,就只會傾印這些類型的記錄;如果有使用 -r,除了這些類型的記錄之外,會傾印所有其他記錄。如果沒有使用此參數,來自指定的 sourcename 的所有事件都會被選取。您必須搭配 -m 參數來使用此參數。  
  • -r 指定是要篩選特定來源或記錄,或是要排除這些來源或記錄。  
  • -t 指定每一個字串都用 Tab 分開。如果沒有使用 -t,字串會以空格分開。  
  • -d x 傾印過去 x 天的事件。

請注意:Dumpel 只能擷取系統、應用程式與安全性記錄檔的內容。您無法使用 Dumpel 來查詢「檔案複寫服務」、DNS 或「目錄服務」事件日誌的內容。 EventCombMT

EventCombMT 是一種多執行緒工具,可同時分析許多伺服器的事件日誌,替包含在搜尋條件中的每一個伺服器產生個別的執行引線。此工具可讓您:

  • 定義要搜尋的單一事件識別碼,或是多個事件識別碼。您可以加入單一事件識別碼,或是加入以空格做分隔的多個事件識別碼。
  • 定義要搜尋的事件識別碼範圍。結束點也包含在內。例如,如果您想要搜尋介於並包含事件識別碼 528 與事件識別碼 540 之間的所有事件,您可以將範圍定義為 528 > ID < 540。這個功能很有用,因為大部分的應用程式會使用編號連續的範圍來將事件寫入事件日誌。
  • 限制只搜尋特定事件日誌。您可以選擇搜尋系統、應用程式與安全性記錄檔。如果是在網域控制站上執行本機搜尋,您還可以選擇搜尋 FRS、DNS 與 AD 記錄檔。
  • 限制只搜尋特定類型的事件訊息。您可以選擇將搜尋限制在錯誤、資訊、警告、成功稽核、失敗稽核或成功事件。
  • 限制只搜尋特定事件來源。您可以選擇將搜尋限制在來自特定事件來源的事件。
  • 在事件描述中搜尋特定文字。您可以針對每一個事件來搜尋特定文字。如果您試圖追蹤特定使用者或群組,這個方法就很有用。

請注意:您不能在特定文字中加入搜尋邏輯,例如 AND、OR 或 NOT;此外,請勿使用引號來分隔文字。

  • 定義特定時間間隔以便從目前的日期與時間往回掃瞄。這可讓您將搜尋限制在過去一星期、一天或一個月內的事件。

安裝工具

  如果要安裝此工具,請解壓縮本手冊所隨附之 SecurityOps.exe 自我解壓縮檔的內容,這樣做會建立一個 C:\SecurityOps\EventComb 資料夾。一旦檔案解壓縮後,您就可以按兩下 EventCombMT.exe 檔來執行 EventCombMT 工具。

執行 EventComb 工具

  使用 EventComb 工具的第一個步驟是定義要搜尋哪些電腦的事件日誌。

新增要搜尋的電腦

  1. 在 EventCombMT 公用程式中,請確定 [Domain] 方塊中有自動偵測到正確的網域。如果您想要搜尋其他網域中的事件日誌,那麼請在 [Domain] 方塊中手動輸入新的網域名稱。
  2. 如果要將電腦新增至搜尋清單中,請以滑鼠右鍵按一下位於 [Select To Search/Right Click to Add] 下的方塊,就會顯示出圖 6.1 中所示之快顯功能表:

圖 6.1

將沒有自動偵測到的電腦新增至搜尋清單中

您可以選取下列選項:

  • **Get DCs in Domain。**可將目前網域中的所有網域控制站新增至清單中。
  • **Add Single Server。**可讓您使用名稱將一部伺服器或工作站新增至清單中。
  • **Add all GCs in this domain。**可讓您新增所選網域中所有設定為通用類別目錄伺服器的網域控制站。
  • **Get All Servers。**可新增使用瀏覽器服務在網域中找到的所有伺服器。這些伺服器不包括所有網域控制站。
  • **Get Servers from File。**可讓您匯入檔案,檔案中列出想要加入搜尋範圍中的所有伺服器。每個伺服器都應個別地輸入文字檔的一行。
  1. 一旦將伺服器新增至清單之後,您必須選取要對它進行搜尋的伺服器。被選取的伺服器會在清單中反白顯示。您可以使用 CTRL + 按一下的組合方式來選擇多部伺服器。

指定要搜尋的事件日誌與事件類型

  一旦選取了要搜尋其事件日誌的伺服器,您可以選取要包含哪些事件日誌以及事件類型來縮小搜尋範圍。 在 EventCombMT 公用程式中,您可以選取要搜尋下列事件日誌:

  • 系統
  • 應用程式
  • 安全性
  • FRS (檔案複寫服務記錄檔)
  • DNS (DNS 伺服器記錄檔)
  • AD (目錄服務記錄檔)

您也可以選取要包含在搜尋中的事件類型:

  • **錯誤。**這種事件類型記錄在應用程式與系統記錄檔中,也會顯示在 FRS、DNS 與目錄服務記錄檔中。  
  • **資訊。**這種事件類型記錄在應用程式與系統記錄檔中,也會顯示在 FRS、DNS 與目錄服務記錄檔中。  
  • **警告。**這種事件類型記錄在應用程式與系統記錄檔中,也會顯示在 FRS、DNS 與目錄服務記錄檔中。  
  • **成功稽核。**這種事件類型發生在安全性記錄檔中,或者如果應用程式有在應用程式記錄檔中登錄成功稽核,就會顯示在應用程式記錄檔中。例如,「Active Directory 遷移工具」(ADMT) 會在應用程式記錄檔中記錄成功稽核事件。  
  • **失敗稽核。**這種事件類型發生在安全性記錄檔中,或者如果應用程式有在應用程式記錄檔中登錄失敗稽核,就會顯示在應用程式記錄檔中。例如,ADMT 會在應用程式記錄檔中記錄失敗稽核事件。  
  • **成功。**這是很少見的事件類型,可在應用程式或系統記錄檔中找到,也會顯示在 FRS、DNS 與目錄服務記錄檔中。在事件檢視器中,成功事件是顯示為資訊事件類型。

請注意:如果您知道某個事件識別碼會顯示在某特定事件日誌中,以及此事件識別碼的事件類型,請務必在搜尋條件中加入此資訊,因為這樣可以縮短搜尋時間。 儲存搜尋

  EventCombMT 可讓您儲存搜尋,稍後再重新載入搜尋。如果您常常使用 EventCombMT 在 IIS 伺服器上搜尋一組事件,並在網域控制站上搜尋另一組事件,這項功能就很有用處。

搜尋條件會儲存在以下的登錄中:HKLM\Software\Microsoft\EventCombMT,並且很容易編輯。

搜尋結果檔案

根據預設值,搜尋結果會儲存到 C:\Temp 資料夾。搜尋結果包括一個稱為 EventCombMT.txt 的摘要檔,並針對搜尋其事件日誌的每一部電腦個別產生一個稱為 ComputerName-EventLogName_LOG.txt 的文字檔。這些個別的文字檔包含擷取自事件日誌中符合您的搜尋條件的所有事件。

EventCombMT 的使用範例

為了示範 EventCombMT 的使用方式,我們將示範如何設定此工具以偵測網域控制站的重新啟動與帳戶鎖定事件。

使用 EventCombMT 來搜尋網域控制站的重新啟動事件

  1. 在 EventCombMT 工具中,請確認網域是設定為正確的網域名稱。  
  2. 在網域名稱下的 [Select to Search/Right Click to Add] 方塊中,以右鍵按一下此方塊,然後按一下 [Get DCs in Domain]。 請注意:搜尋帳戶登入以及帳戶管理之類的事件時,請確認搜尋了所有網域控制站。因為 Windows 2000 是使用多重主機模式來進行帳戶管理,所以您可以在網域中的任何網域控制站上新增、修改或刪除帳戶;同樣地,網域中的任何網域控制站也都可以驗證帳戶。因為這樣,所以您無法確認特定的更新或驗證意圖是發生在哪一部網域控制站上。  
  3. 以滑鼠右鍵按一下 [Select to Search/Right Click to Add] 方塊,然後按一下 [Select All Servers in List]。  
  4. 在此工具的 [Choose Log Files to search] 區段中,只選取 [System] 記錄檔。  
  5. 在此工具的 [Event Types] 區段中,選取 [Error] 與 [Informational]。  
  6. 在 [Event IDs] 方塊中,輸入下列事件識別碼: 1001 6005 6006 6008  
  7. 在按一下 [Search] 按鈕之前,請先確認您定義的搜尋條件如下圖所示,然後按一下 [Search]。

當搜尋完成時,您可以在記錄檔目錄中檢視搜尋結果,搜尋結果應該會在搜尋完成時自動開啟。

檢查記錄項目

  1. 從 [File] 功能表,選取 [Open Log Directory]。
  2. 在 C:\Temp 資料夾中,按兩下某個網域控制站的輸出檔,以檢視 EventCombMT 工具所記錄的特定事件。您應該會看見類似下面的輸出:

1001,INFORMATIONAL,Save Dump,Wed Nov 28 05:45:50 2001,,The computer has rebooted from a bugcheck.The bugcheck was:0x000000d1 (0x00000004, 0x00000002, 0x00000000, 0x84c983dc).

A dump was saved in:C:\WINDOWS\MEMORY.DMP. 6005,INFORMATIONAL,EventLog,Wed Nov 28 05:45:46 2001,,The Event log service was started.

6008,ERROR,EventLog,Wed Nov 28 05:45:46 2001,,The previous system shutdown at 5:33:47 AM

on 11/28/2001 was unexpected. 6005,INFORMATIONAL,EventLog,Tue Nov 27 14:10:53 2001,,The Event log service was started.

6006,INFORMATIONAL,EventLog,Tue Nov 27 14:09:26 2001,,The Event log service was stopped.

6005,INFORMATIONAL,EventLog,Tue Nov 27 10:11:37 2001,,The Event log service was started.

6006 事件指出某個使用者以可關閉網域控制站的使用者權利所起始的一項經過計劃的關機事件。6005 事件指出事件日誌服務已啟動,此事件發生在啟動期間。

6008 與 1001 事件指出電腦沒有關機就發生電源中斷,或是因為電腦被鎖定而重新啟動,或者發生藍色螢幕事件。如果有 1001 事件,即表示真的發生了藍色螢幕,而其中還會包含相關的偵錯資訊與偵錯檔的參照。

您應該將 EventCombMT 工具所傳回的事件拿來和已知的當機時間做個交互檢查,並且應該調查不相符的事件以確定伺服器沒有遭受攻擊。

EventCombMT 有包含數個事先設定的搜尋,可用來搜尋安全性事件。例如,有一個事先定義的搜尋會搜尋帳戶鎖定事件。

使用 EventCombMT 搜尋帳戶鎖定

  1. 在 EventCombMT 工具中,請確認網域是設定為正確的網域名稱。
  2. 在網域名稱下的 [Select to Search/Right Click to Add] 方塊中,以滑鼠右鍵按一下此方塊,然後按一下 [Get DCs in Domain]。
  3. 以右鍵按一下 [Select to Search/Right Click to Add] 方塊,然後按一下 [Select All Servers in List]。
  4. 從 [Searches] 功能表,按一下 [Built In Searches],然後按 [Account Lockouts]。EventCombMT 公用程式的設定如下圖所示:
  5. 按一下 [Search]。
  6. 當搜尋完成時,您可以在記錄檔目錄中檢視搜尋結果,搜尋結果應該會在搜尋完成時自動開啟。

請注意:EventcombMT 所包含的其他事先定義的搜尋有檔案複寫服務搜尋、重複的 SID 與 NETLOGON DNS 註冊失敗的 Active Directory 搜尋、硬體磁碟錯誤以及 DNS 介面錯誤。您也可以定義並儲存自訂的搜尋。 事件收集

  稽核的主要目的之一是要辨識攻擊者在您的網路上所採取的動作。攻擊者可能會試圖危害網路上的多部電腦與裝置,所以如果要瞭解任何攻擊的廣度,您必須要能協調與合併許多電腦的資訊。

  如果您用的公用程式可以將記錄檔匯入資料庫,就比較容易協調多個記錄檔的資訊。只要所有電腦的時間都有同步化,您就可以用時間欄位來排序,並憑藉時間間隔讓事件的追蹤變得更容易。

  下面章節將告訴您一些可用來將事件日誌資訊收集至一個集中位置的工具與公用程式。

執行指令檔

您可以撰寫指令檔,讓指令檔可以收集遠端電腦的事件日誌資訊並將資訊儲存至集中位置。經由使用指令檔,您可以使用 [排定的工作] 來選擇何時要執行此指令檔,以及一旦事件日誌成功地複製到集中位置後要採取什麼動作。 建立一個使用 Windows 2000 Server Resource Kit 中的 Dumpel.exe 的批次檔,並使用 [控制台] 中的 [排定的工作] 來定期啟動此批次檔,便是一個簡單的例子。 Windows 2000 Resource Kit,Supplement One 中含有 Eventquery.pl。這是一個 Perl 指令檔,可以顯示執行 Windows 2000 的本機與遠端電腦上事件檢視器記錄檔的事件,並提供多樣的篩選器來幫助您找出特定事件。 請注意:如果要使用此指令檔,您必須安裝 Windows 2000 Server Resource Kit 的 ActivePerl。 Microsoft Operations Manager

  Microsoft Operations Manager 2000 提供一組完整的工具,可讓企業徹底分析 Windows 2000 與其應用程式的內建事件報告以及效能監視。Operations Manager 可以使用遠端電腦上的「智慧型代理程式」(Intelligent Agent) 來將事件與效能資料收集、儲存與報告至一個統一的位置,讓系統管理員可以集中檢查所收集的資訊。

  Operations Manager 核心管理套件會收集顯示在系統、應用程式與安全性事件日誌中的事件,並將結果匯集至集中的事件存放區。 請注意:Operations Manager 會將資訊儲存在 SQL 資料庫中,並提供數種方法來擷取與分析歸檔的資料。系統管理員可以使用 Operations Manager Administrator Console、Web Console 或 Operations Manager Reporting 來檢視、列印或公佈資料。每一個檢視畫面都包含事先定義的檢視畫面,以便分析歸檔資料,並可讓您定義自訂的檢視畫面與報告。 協力廠商的事件日誌收集方案

  市面上有一些協力廠商的產品,可提供集中收集與檢查事件日誌的功能。當您評估協力廠商的產品時,請在評選條件中加入下列功能:

  • 支援 Windows 2000 的所有記錄檔。除了要支援應用程式、安全性與系統記錄檔之外,也要支援 DNS 伺服器、目錄服務與檔案複寫服務的記錄檔。
  • 資料庫後端的使用。所選用的工具應該可將事件日誌儲存至某種資料庫結構,而此資料庫結構必須可讓您檢查先前的事件日誌項目以進行趨勢分析,並且可讓您關聯多部伺服器之間的事件。
  • 搜尋與報告的功能。所選用的工具應該可讓您依據所提供的條件來搜尋特定事件,而搜尋結果應該要以可讀的方式來呈現。

可提供事件收集功能的協力廠商產品包括:

主動偵測方法

  主動式侵入偵測系統會在應用程式層級分析內傳的網路資料流,尋找知名的攻擊方法或可疑的應用程式層級付費載入。如果收到可疑的封包,此種侵入偵測系統通常會丟掉封包,然後在記錄檔中留下記錄。如果偵測到嚴重的攻擊,有些侵入偵測系統也可以警示系統管理員。

使用 URLScan 來檢查 HTTP 的存取

  如果您有在公司內架設網站,一些伺服器就會收到內傳的 HTTP 資料流;然而,並不是所有內傳的資料流都是合法的。UrlScan 是一種 ISAPI 篩選器,可以分析內傳的 HTTP 封包,並且可以拒絕任何可疑的資料流。

  UrlScan 可針對所選的 IIS 服務功能,以篩選與拒絕 HTTP 要求的方式來保護伺服器免受攻擊。根據預設值,UrlScan 是設定為只接受對靜態 HTML 檔 — 包括圖檔的要求。它會拒絕下列要求類型:

  • CGI (.exe) 網頁
  • WebDAV
  • FrontPage Server Extensions
  • Index Server
  • Internet 列印
  • 伺服器端的要求

  您可以在網路的所有 IIS 伺服器上安裝此 ISAPI 篩選器,將 UrlScan 實作為終點侵入偵測系統,或是在位於網路邊緣的 ISA Server 上安裝 UrlScan ISAPI 篩選器,將 UrlScan 實作為網路侵入偵測系統。如果您使用 ISA Server 作為防火牆,應該考慮結合這兩種方案。在網路邊緣,可封鎖所有一般不要的資料流,不讓這種資料流進入網路。在終點 IIS 伺服器上,您可以依據 Web 伺服器所提供之內容的格式來執行幾組特定的規則。

  UrlScan 是使用一個稱為 UrlScan.ini 的檔案來進行設定,此檔位於 %WinDir%\system32\inetsrv\Urlscan 資料夾中。這個檔案包含數個區段。 [Options] 區段是定義 IIS 伺服器要如何處理有效與無效的 Web 要求。可以定義的選項包括:

  • **UseAllowVerbs。**可設定的值是 0 或 1。如果是設為預設值 1,UrlScan 會讀取 UrlScan.ini 的 [AllowVerbs] 區段,若要求中所包含的 HTTP 動詞沒有在此區段中明確列出,UrlScan 就會拒絕任何這樣的要求。[AllowVerbs] 區段有大小寫之分。如果設為 0,UrlScan 會讀取 UrlScan.ini 的 [DenyVerbs] 區段,並拒絕任何有包含所列出的 HTTP 動詞的要求。[DenyVerbs] 區段沒有大小寫之分。  
  • **UseAllowExtensions。**可設定的值是 0 或 1。如果是設為 1,UrlScan 會讀取 UrlScan.ini 的 [AllowExtensions] 區段,若要求中所包含的和此 URL 相關的副檔名沒有在此區段中明確列出,UrlScan 就會拒絕任何這樣的要求。如果是設為預設值 0,UrlScan 會讀取 UrlScan.ini 的 [DenyExtensions] 區段,若要求中所包含的和此要求相關的副檔名有列在此區段中,UrlScan 就會拒絕任何這樣的要求。[AllowExtensions] 區段與 [DenyExtensions] 區段都有大小寫之分。  
  • **NormalizeUrlBeforeScan。**可設定的值是 0 或 1。如果是設為預設值 1,UrlScan 會在 IIS 解碼並正常化要求的 URL 之後對處理過的 URL 進行它的所有分析。如果是設為 0,UrlScan 會對用戶端所傳送的未經處理的 URL 進行它的所有分析。只有非常瞭解 URL 分析的資深系統管理員才能將這個選項設為 0,因為這樣做很可能會讓 IIS 伺服器暴露於略過正常 URL 副檔名分析作業的標準攻擊之下。  
  • **VerifyNormalization。**可設定的值是 0 或 1。如果是設為預設值 1,UrlScan 會確認 URL 的正常化。這個動作可防禦標準攻擊,標準攻擊是 URL 中有包含雙重編碼字串的 URL (例如,字串 "%252e" 是一個經過雙重編碼的 '.' 字元,因為 "%25" 會解碼為 '%' 字元,"%252e" 所通過的第一次解碼會產生 "%2e",這可以再次解碼為 '.')。如果是設為 0,就不會執行此確認動作。  
  • **AllowHighBitCharacters。**可設定的值是 0 或 1。如果是設為 1,UrlScan 會允許 URL 中存在任何位元組。如果是設為預設值 0,若要求的 URL 中有包含非 ASCII 字元集的字元,UrlScan 會拒絕任何這樣的要求。這個功能可防禦 Unicode 或 UTF-8 形式的攻擊,但也會拒絕對 IIS 伺服器使用非 ASCII 字碼頁的合法要求。  
  • **AllowDotInPath。**可設定的值是 0 或 1。如果是設為預設值 0,UrlScan 會拒絕包含多個點 (.) 字元的任何要求。如果是設為 1,UrlScan 就不會執行此項測試。因為 UrlScan 是在 IIS 尚未分析 URL 的層級上運作,所以無法在所有情況下都判斷出點字元是否是代表副檔名或是 URL 目錄路徑或檔案名稱的一部分。為了要分析副檔名,UrlScan 總是會假設副檔名是 URL 的一部分,它的開頭是起於字串中上一個點字元之後,並且在此點字元之後的第一個問號或斜線字元做結束,或是在字串的結尾結束。將 AllowDotInPath 設為 0 可防禦攻擊者使用路徑資訊來隱藏要求的真實副檔名 (例如,"/path/TrueURL.asp/BogusPart.htm")。

請注意:將 AllowDotInPath 設為 0 也會造成 UrlScan 拒絕在目錄名稱中包含點字元的任何要求。

  • **RemoveServerHeader。**可設定的值是 0 或 1。如果是設為 1,UrlScan 會移除所有回應的伺服器標頭。如果是設為預設值 0,UrlScan 就不會執行此項動作。請注意,只有當 UrlScan 是安裝在 IIS 4.0 或更新版本上時,您才能使用此功能。  
  • **EnableLogging。**可設定的值是 0 或 1。如果是設為預設值 1,UrlScan 會將它的行動記錄在一個稱為 UrlScan.log 的檔案中,此檔會建立在包含 UrlScan.dll 的相同目錄下。如果是設為 0,就不會做任何記錄。  
  • **PerProcessLogging。**可設定的值是 0 或 1。如果是設為 1,UrlScan 會將主控 UrlScan.dll 的 IIS 處理程序的處理 ID 附加到記錄檔的名稱 (例如,UrlScan.1234.log)。對於可以同時在多個處理程序中主控篩選器的 IIS 版本而言,這個功能很有用。如果是設為預設值 0,記錄檔就是 UrlScan.log。  
  • **AlternateServerName。**可設定的值是一個字串,預設值則是空字串。如果此設定存在 (不是空字串) 並且如果 RemoveServerHeader 是設為 0,IIS 就會使用此字串來取代所有回應中的預設標頭。如果 RemoveServerHeader 是設為 1,AlternateServerName 就沒有意義。只有當 UrlScan 是安裝在 IIS 4.0 或更新版本上時,您才能使用此功能。  
  • **AllowLateScanning。**可設定的值是 0 或 1。如果是設為 1,UrlScan 會將自己註冊為低優先順序的篩選器。這可讓其他篩選器在 UrlScan 執行其分析之前修改 URL (請注意,除了此參數之外,您還需要確認在伺服器的 MMC [ISAPI 篩選器] 內容頁中的篩選器清單中,UrlScan 是列在高優先順序的篩選器的下方)。如果這個值是設為預設值 0,UrlScan 便會充當高優先順序的篩選器來執行。請注意,如果有 Front Page Server Extensions,您就必須將此設定設為 1,讓 UrlScan 位於篩選器載入順序清單的下方,最好是最後一個。  
  • **PerDayLogging。**可設定的值是 0 或 1。如果是設為預設值 1,UrlScan 會每天建立一個新的檔案,並且將日期附加到記錄檔名稱 (例如,UrlScan.101501.log)。如果您同時設定 PerDayLogging=1 與 PerProcessLogging=1,記錄檔的名稱就會同時包含日期與處理 ID (例如,UrlScan.101501.123.log)。請注意,如果使用 PerDayLogging,當一天中的第一個記錄項目被寫入時就會建立一個當天的記錄檔 (而前一天的記錄檔就會關閉)。如果某一天過去了而沒有發生任何 UrlScan 的活動,那一天就不會產生記錄檔。如果這個值是設為 0,那麼 UrlScan 就會開啟一個稱為 UrlScan.log 的唯一檔案 (或如果有設定 PerProcessLogging=1,檔名就會是 UrlScan.xxx.log,其中 xxx 是處理 ID)。  
  • **RejectResponseUrl。**可設定的值是一個字串。預設值是 /<Rejected-By-UrlScan>,這個字串是格式如下的 URL:/path/file_name.ext。如果 UrlScan 拒絕了要求,它會執行指定的 URL;對於 UrlScan 所分析的要求而言,此 URL 必須是網站的本機路徑。指定的 URL 可以和拒絕的 URL 具有相同的副檔名 (例如,.asp)。  
  • **UseFastPathReject。**可設定的值是 0 或 1。如果是設為 1,若 UrlScan 拒絕某用戶端的要求,它就會忽略 RejectResponseUrl 並將簡短的 404 回應傳送至此用戶端。這比完整處理 RejectResponseUrl 的速度還要快,但如果您使用此選項,IIS 就無法傳送自訂的 404 回應或是將要求的許多部分記錄至 IIS 記錄檔 (UrlScan 記錄檔仍然會包含有關被拒絕的要求的完整資訊)。預設值是不啟用 UseFastPathReject

[AllowVerbs] 區段包含一份 HTTP 動詞 (方法) 的清單。如果 [Options] 區段中的 UseAllowVerbs 是設為 1,UrlScan 會拒絕所包含的動詞沒有明確列在此處的任何要求。這個區段中的項目有大小寫之分。

[DenyVerbs] 區段包含一份 HTTP 動詞 (方法) 的清單。如果 [Options] 區段中的 UseAllowVerbs 是設為 0,UrlScan 會拒絕所包含的動詞有列在此處的任何要求。這個區段中的項目有大小寫之分。

[DenyHeaders] 區段包含一份要求標頭的清單,如果收到的要求所包含的標頭有列在此清單中,此要求就會被拒絕。這個區段中的項目有大小寫之分。

[AllowExtensions] 區段包含一份副檔名的清單。如果 [Options] 區段中的 UseAllowExtensions 是設為 1,任何要求所包含的 URL 的副檔名若沒有明確列在此處,就會被拒絕。這個區段中的項目有大小寫之分。 請注意:您可以使用點字元並且不加結尾字元來新增空的副檔名,藉以指定無副檔名的要求 (例如,要求預設網頁或目錄清單時)。 [DenyExtensions] 區段包含一份副檔名的清單。如果 [Options] 區段中的 UseAllowExtensions 是設為 0,任何要求所包含的 URL 的副檔名若有列在此處,就會被拒絕。這個區段中的項目有大小寫之分。 請注意:如果您變更了 UrlScan.ini 檔,就必須重新啟動 ISA PROXY3 服務以確保 ISAPI 篩選器重新載入。 搭配 ISA Server 使用 UrlScan 進行網路掃瞄

  在網路邊緣的 ISA Server 上部署 UrlScan 時,您必須確定 UrlScan.ini 的設定可讓位於 ISA Server 後方的 Web 伺服器所需的所有資料流都可以通過。這可能需要手動設定 UrlScan.ini 檔。

  在定義 ISA Server 上的 UrlScan.ini 設定時,第一個步驟應該是要記錄 ISA Server 上所設定的所有 Web 發行規則。這些規則會明確定義什麼樣的 HTTP 與 HTTPS 資料流可以通過 ISA Server。

  一旦辨識了所有 Web 資料流,便應該記錄這些 Web 資料流以啟用 UrlScan.ini 檔的設定。當您定義設定值時,請記得邊緣侵入偵測必須要讓所需的所有資料流通過。如果兩個 Web 伺服器之間的安全性設定互相衝突,您必須將最寬鬆的那個設定部署在網路邊緣。例如,如果您有兩個受到 ISA Server 保護的 Web 伺服器,一個 Web 伺服器主控 ASP 網站,而另一個 Web 伺服器只持有靜態內容,則部署在 ISA Server 上的 UrlScan 必須要讓和 ASP 相關的資料流通過這兩個 Web 伺服器。您可以在持有靜態內容的 Web 伺服器上實作 UrlScan,以進一步鎖定此 Web 伺服器的資料流。

搭配 IIS 使用 UrlScan 進行終點掃瞄

  您可以定義特定的 UrlScan.ini 設定,以符合個別 Web 伺服器的需求。 URLScan 在保護 Web 伺服器方面很有用處,因為許多攻擊都有共同的特點 — 就是會使用不尋常的要求。例如,這種要求可能非常冗長、會要求不尋常的動作、使用其他字元集進行編碼,或是包含在合法要求中很少見的字元順序。經由排除所有不尋常的要求,URLScan 可防止這種要求到達伺服器並造成損害的可能性。 URLScan 相當有彈性。它預設的一組規則可完全保護伺服器,幾乎可以彌補會影響 IIS 的所有已知的安全性漏洞,同時還可能可以對抗其他尚未發現的攻擊方法。您可以修改此預設規則 — 也可以新增規則 — 以便自訂此工具的動作以符合個別伺服器的需求。除了預設的一組規則外,您也可以在安裝 UrlScan.ini ISAPI 篩選器時,在 IIS「鎖定」精靈中選取下列設定:

  • Small Business Server 2000
  • Exchange Server 5.5 (Outlook Web Access)
  • Exchange Server 2000 (OWA, PF Management, IM, SMTP, NNTP)
  • SharePoint Portal Server
  • FrontPage Server Extensions (SharePoint Team Services)
  • BizTalk Server 2000
  • Commerce Server 2000
  • Proxy Server
  • Static Web Server
  • Dynamic Web server (有啟用 ASP)
  • 其他 (沒有符合任何一個列出的角色的伺服器)
  • 不需要 IIS 的伺服器

當您選取其中一個事先設定的範本時,系統就會部署一個最佳設定的事先定義 UrlScan.ini 檔。除了接受指定的 UrlScan.ini 檔之外,請確認您有搜尋最新的 Microsoft Knowledge Base 文件,以查看是否需要對 Urlscan.ini 檔進行任何調整來配合特定設定。

UrlScan 的特定設定建議事項

  有數個 Knowledge Base 文件可提供在特定環境中使用 UrlScan 的建議設定。在研究 UrlScan 的設定時,請記得檢視下列文件:

Q309394 HOW TO:Use URLScan with FrontPage 2000
Q309508 IIS Lockdown and URLscan Configurations in Exchange Environment
Q309677 XADM:Known Issues and Fine Turning When You Use the IIS Lockdown Wizard in an Exchange 2000 Environment
Q311595 XCCC:How to Install and Configure Microsoft Security Tool Kit On a Microsoft Mobile Information Server
Q312376 HOW TO:Configure URLScan to Allow Requests with a Null Extension in IIS
Q313131 HOW TO:Use URLScan with Exchange Outlook Web Access in Exchange Server 5.5
Q311862 How to Use The IIS Lockdown Tool with Small Business Server
Q311350 HOW TO:Create a Custom Server Type for Use with the IIS Lockdown Wizard

ISA Server 的侵入偵測功能

  ISA Server 的特色在於整合式侵入偵測系統,此系統可判斷何時發生試圖攻擊網路的事件,並以一組事先設定的動作或警示來回應。為了偵測有害的侵入,ISA Server 會將網路資料流與記錄項目拿來和知名的攻擊方法進行比對。可疑的活動會觸發警示,引發 ISA Server 執行一些動作。可能會有的動作包括執行程式、傳送電子郵件、在 Windows 事件日誌中記錄事件、停止與啟動 ISA Server 服務或是這些動作的任何組合。

啟用侵入偵測時,您可以設定對下列攻擊發出警示:

  • **掃瞄所有連接埠 (All Port Scan)。**這是攻擊者用來判斷目標電腦或網路上是否有開啟的連接埠的一種方法。侵入偵測引擎會偵測試圖連線至連接埠的多次意圖,並且會在試圖連線的次數超過系統管理員所設定的臨界值時發出警示。您也可以設定 ISA Server 只對知名的連接埠掃瞄 (1-2048) 進行偵測。  
  • **IP 半掃瞄 (IP Half Scan)。**此攻擊類似「掃瞄所有連接埠」,但利用了 TCP 通訊是三步驟程序的這項事實。「IP 半掃瞄」不會傳送 TCP 三向交涉 (Handshake) 的第三個封包,藉以躲避偵測。  
  • **降落攻擊 (Land Attack)。**將包含騙人的來源 IP 位址與連接埠編號 (和目標位址與連接埠相符合) 的封包傳送至電腦。這騙人的封包會造成目標電腦進入一個迴圈,電腦最後終於當掉。  
  • **死亡之 Ping (Ping of Death)。**這種攻擊是將異常大型的 ICMP Echo 要求 (Ping) 封包大量地傳送至一部電腦。目標電腦會試圖回應所有封包,造成緩衝區溢位而讓電腦當掉。  
  • **UDP 炸彈 (UDP Bomb)。**如果所建構的 UDP 封包在某些欄位中含有不正確的數值,就會造成一些舊的作業系統在收到封包時當掉。如果目標電腦當掉了,通常很難判斷當機的原因。  
  • **Windows 出局 (Windows Out-of-Band)。**也稱為 WinNuke,這是一種拒絕服務攻擊,可用來停用 Windows 網路。如果攻擊成功,就會造成網路連線中斷或是讓有漏洞的電腦當掉。

ISA Server 的協力廠商也有其他的侵入偵測產品可用,或者您也可以使用 ISA Server Software Development Kit 中的應用程式篩選器介面來建立其他侵入偵測功能。如需進一步的詳細資訊,請參閱本章結尾的〈其他資訊〉一節。 請注意:您可以在 ISA Server 管理主控台的 Internet Security and Acceleration Server\Servers and Arrays\<ServerName>\Monitoring\Alerts 資料夾中檢視侵入意圖的警示。 協力廠商的侵入偵測方案

  協力廠商有提供網路與終點侵入偵測系統的解決方案。這些協力廠商的解決方案可支援 HTTP 之外的其他通訊協定,也可以掃瞄網路電腦找出知名的攻擊活動。

侵入偵測系統應該要能辨識的常見攻擊類型包括:

  • **偵察攻擊。**當侵入者正在監視網路、尋找漏洞時就會發生這種攻擊。可能發生的攻擊包括全面 Ping、DNS 區域轉送、電子郵件偵察、連接埠掃瞄以及下載網站內容以尋找有漏洞的指令碼與範例網頁。  
  • **剝削攻擊。**當侵入者利用隱藏的功能或錯誤來取得系統的存取權時就會發生這種攻擊。通常,攻擊點是由先前的剝削攻擊所辨識。  
  • **拒絕服務 (DoS) 攻擊。**當侵入者試圖讓資源 (例如網路連結、CPU 或磁碟子系統) 超載,來破壞電腦上執行的服務時就會發生這種攻擊。侵入者的用意不是要取得資訊,而是要讓您無法使用電腦。

良好的侵入偵測系統應該要能辨識這所有三種攻擊。還有兩種不同的方法可用來辨識攻擊:

  • **偵測異常。**這是以網路上電腦的基準情況為基礎來辨識攻擊,偏離基準的情況代表可能有人試圖侵入。例如,若登入意圖在離峰時間大為增加,代表可能有人想要侵入電腦。異常偵測的優點在於,它不需確切瞭解攻擊是如何發生就可以辨識攻擊的存在。  
  • **辨識特徵。**這是以知名的攻擊模式為基礎來辨識攻擊。例如,許多對 Web 伺服器的攻擊都使用常見的模式,很容易辨識。侵入偵測系統經由將內傳的應用程式資料流和資料庫中的特徵字串拿來做比對,就可以辨識這些攻擊。侵入偵測系統的這種方法的缺點是,特徵資料庫必須常常更新以辨識新的攻擊特徵。

可供測試與部署的一些協力廠商產品包括:

漏洞評估

  除了執行被動與主動侵入偵測外,您還應該定期執行漏洞評估。漏洞評估是模擬網路攻擊事件,並偵測攻擊者可能會找到的漏洞。 經由定期執行漏洞評估,您可以在攻擊者找到漏洞之前就發現漏洞,並加強網路易受傷害部分的安全性以避免漏洞受到攻擊。

在研究漏洞評估工具時,請在決策過程中加入下列需求:

  • **資料庫更新機制。**所選的工具應該要能提供自動更新漏洞特徵的方法,這樣工具就不會在短期後就過時。  
  • **將誤測減到最小。**所選的工具應該要能排除誤測,這樣機構就不會浪費時間在調查非安全性的事件。  
  • **具有將結果儲存到資料庫的功能。**所選的工具應該要能歸檔掃瞄結果,以讓您針對一段時間進行趨勢分析並偵測安全性的變更。  
  • **可提供方案以修正找到的漏洞。**如果有找到漏洞,所選的工具應該要能提供如何修正漏洞的說明文件,或是提供指令檔讓您用它來保護漏洞。

有數個協力廠商工具可讓您用來進行 Windows 2000 網路的漏洞評估。這些工具包括:

  此外,如果可以帶入協力廠商的諮詢服務來進行漏洞評估就更完美了。使用協力廠商服務的優點是,他們對網路沒有先前的瞭解,所以會和外部攻擊者一樣從相同的起點開始著手。因為評估小組的中立性質,這種外部評估常常能提供最有用的資訊。

摘要

稽核與侵入偵測是環境中有效防禦的主要部分。您應該要判斷多少稽核與侵入偵測最適合您的環境,這是風險管理程序的一部分。如需執行跨越多重通訊協定的侵入偵測,您可能要考慮使用協力廠商的工具。

其他資訊

回到頁首