第五章 - 修補程式管理

本頁索引

名詞解釋
公司內的修補程式管理
修補程式管理程序
用戶端修補程式管理
摘要


  作業系統和應用程式經常是十分複雜的,其中可能包含由許多程式設計人員所寫的數百萬行程式。最重要的是軟體要穩定,不能危害到您 IT 環境的安全性和穩定性。如果要將發生問題的可能性降到最低,程式在發行之前就必須做過完整的測試,但駭客總會想盡辦法找出軟體的安全性漏洞來進行攻擊。

  如果軟體發行後其程式或執行出現安全性漏洞,軟體廠商便會發行修補程式來處理。但隨著駭客數目增加、手法益形複雜,惡意程式利用安全性漏洞的情況也日增,這些問題逐漸地影響到安全性。然而,只在產品中加入需要的功能時,也有可能發生問題。
安全性修補程式對大部分公司都是一項挑戰。一旦軟體出現破綻,駭客通常便會迅速對外散佈這項消息,因此軟體廠商必須儘快寫出安全性設定修補程式。在修補程式部署之前,您所倚賴的安全性很可能已經嚴重減損。

  無論您公司有多少部電腦,管理所有可用的修補程式、找出其中與您環境相關者,以及評估部署之前可作多少測試,這些都是艱困耗時的工作。

  本章即在協助您保護以 Windows 2000 為基礎的伺服器,此處的程序亦可用在進行軟體更新的的修補程式管理程序中。如需軟體更新方式的詳細資訊,請聯絡相關廠商。

名詞解釋

  本書交互使用修補程式、Service Pack 和 Hotfix 等名詞來代表軟體發行後的更新,這是因為這些更新在每個案例中的部署程序都相同,但這些名詞分別有更精確的定義:

Service Pack

  Service Pack 可讓產品保持最新狀態、修正已知問題,並可擴充電腦功能。其中含有工具、驅動程式及更新,包括產品發行之後所做的加強。為了方便下載起見,這些項目都會封裝在一起。
Service Pack 是產品特有的,亦即每一個產品各有其獨立的 Service Pack,但同一份 Service Pack 常被用在相同產品的不同版本上;例如,同一份 Service Pack 即可用來更新 Windows 2000 Server 及 Windows 2000 Professional。

  Service Pack 也是累加性的, 新的 Service Pack 含有先前各 Service Pack 的所有修正程式,外加之後所建議的任何新修正程式及系統修改。因此安裝最新的 Service Pack 後,就不需要安裝先前的各版本。

Hotfix 或 QFE

  Quick Fix Engineering (QFE ) 是 Microsoft 公司內負責撰寫 Hotfix (產品程式碼修補程式) 的一個小組。當個別客戶遭遇嚴重問題,且沒有可用的解決方式時,便需提供 Hotfix。有些技術文件會將 Hotfix 稱為 QFE。

  Hotfix 並未接受廣泛的迴歸測試,且只處理特定問題,因此只有在遇到 Hotfix 可以處理的問題,且在使用現行軟體版本加上最新的 Service Pack 時,才應套用 Hotfix。
Hotfix 累積到一定數目之後,會定期包裝成 Service Pack,此時這些 Hotfix 會接受比較嚴格的測試,並公佈讓客戶使用。

安全性修補程式

  安全性修補程式的目的在於填補安全性漏洞。意圖闖入系統的駭客會去尋找這些安全性漏洞。安全性修補程式和 Hotfix 類似,但屬於強制性,只要條件符合,就必須儘快部署。
許多已發行的安全性更新都是針對用戶端 (常是瀏覽器) 的問題,這些更新可能與伺服器安裝有關,也可能無關。您必須以用戶端修補程式更新目前的用戶端基礎元件,並以系統管理修補程式更新伺服器上的用戶端建置區。

公司內的修補程式管理

  修補程式的管理要如何施行,大部份視您公司大小和複雜度而定,最重要的是要了解修補程式管理的重要性,以及如何將修補程式管理納入公司整體的風險管理策略中。例如,如果決定要不計成本地降低風險,您的策略就必須是在發現軟體有安全性漏洞時,立即關閉所有生產系統。接下來除非安全性修補程式已作過廣泛測試並部署到整個公司,否則不再啟動系統。這種方式昂貴又費時,對許多公司來說完全不實際。

  在整個修補程式管理程序中,您必須評估部署適當反制措施的成本。從發現安全性漏洞到寫出修補程式之間可能會有一小段空檔。您必須評估此漏洞所造成的多出風險,並決定在測試及部署修補程式之前要採取何種措施。這些措施包括停用服務、將系統離線,必要時限制內部使用者或其他群組的存取等等。修補程式發行後,您應該決定要立即部署、承擔未經測試的風險,或者要在確定修補程式對系統沒有負面影響之後再部署,但後者會讓系統短期內暴露在駭客攻擊的危險之下。如果決定要進行測試,還需在部署與不部署之間取得一個平衡點,以決定要測試到什麼程度。

注意事項:您的公司應該要有一個變更管理程序。MOF 附有一個變更管理程序,可據以建構您公司的程序。本章最後〈其他資訊〉一節中列有與 MOF 的連結。

評估目前的環境

  通常修補程式在公司內套用的方式不會一致,也沒有文件記載部署這些修補程式的原因、時間和地點。想要管理好環境的安全性,首先就必須先詳細了解環境目前的狀態。在管理修補程式的前提下,您至少要知道以下幾點:

  • 環境中包含哪些系統?
    • 作業系統,包括其版本
    • 修補程式層級 (Service Pack 版本、Hotfix 以及其他修改)
    • 功能
    • 應用程式
    • 所有權及聯絡資料
       
  • 您環境中有哪些資產,其相對價值為何?
  • 已知的威脅為何?以何種程序找出新的威脅及如何降低威脅層級?
  • 已知的安全性漏洞為何?以何種程序找出新的安全性漏洞及如何降低安全性漏洞層級?
  • 您部署了哪些反制措施?

建議您將這些資訊公佈給修補程式管理程序的參與人員得知,並隨時更新這些資訊。
了解您所具有的資產、安全性漏洞、威脅及環境的設定方式之後,即可判斷哪些威脅和安全性漏洞可能危害到您的公司。

安全性更新系統

  您的環境中如果有專用電腦來執行修補程式管理程序所需的步驟,這將會非常方便。這些系統提供了專屬位置來存放工具、修補程式、Hotfix、Service Pack 及文件。您可以在這些系統上執行修補程式分析、擷取及部署。本書將這些系統稱為「安全性更新系統」。

  您的安全性更新系統應該位於一或多部可完全控制且絕對安全的專用電腦上,這些系統將用來部署及維護您環境中所有系統的安全性修補程式。安全性更新系統通常不需用到強力伺服器,因為這類系統的負擔通常很輕,但是伺服器的可用性必須很高,因為您必須依賴這些電腦,並使用最新的修補程式來保持環境的最新狀態。

  為了正確部署安全性更新系統,電腦必須直接或間接透過 Internet 從信任的來源下載最新的修補程式資訊,以及存取負責保持其最新狀態的電腦。

本章稍後附有應從安全性更新系統執行的範例和指令碼。

注意事項:MOF 將更新系統當作發行管理程序的一部份討論。

通訊

  如果您的公司很小,只要指派一名人員負責保持修補程式的最新狀態、測試修補程式、安裝修補程式及閱讀各個記錄檔即可。但在大公司中,通常會有較多人負責管理各層面的安全性。負責管理修補程式的人員之間就必須有效率地聯絡溝通,作決定時才不致事倍功半,或者遺漏了某些步驟。

修補程式管理及變更管理

  修補程式管理事實上只是變更管理下的一個子項目。如果您公司已訂定了變更管理程序,就不需要建立全新的修補程式管理程序,但閱讀本章中修補程式特定的管理程序資訊仍然很有用。

  一個好的變更控制系統會有具備身分識別的擁有者、供客戶輸入的路徑、變更的稽核記錄、清楚的公佈及審查期間,以及清楚的還原計劃。

Microsoft Security Tool Kit

  Microsoft Security Tool Kit 用在取得 Service Pack 和 Hotfix,以保持伺服器最新狀態時相當好用。它含有 Windows NT 4.0、Windows 2000、IIS 與 Internet Explorer 的重要安全性資訊、最新的 Service Pack,以及重要的安全性修補程式,也含有「重大更新」通知工具。這個工具會連回 Windows Update 網站,確保最近的修補程式均已安裝。Security Toolkit 可從 TechNet 取得。

修補程式管理程序

修補程式管理程序的流程請見圖 5.1。
Dd548242.ch05-1(zh-tw,TechNet.10).gif

圖 5.1修補程式管理程序


以下將詳細討論這些步驟:

  • 分析。探討現行環境及可能的威脅。決定降低您環境威脅所需的修補程式。
  • 規劃。判斷哪些修補程式能夠阻擋找出的可能威脅及安全性漏洞。決定誰可以執行測試、部署及相關步驟。
  • 測試。檢查可用的修補程式,並依您環境的需求將其分類,測試所有被辨識出來的修補程式,以確定它們對您的環境沒有負面
  • 影響。了解修補程式做了什麼以及對您環境的影響。驗證其執行效果是否一如預期。
  • 部署。部署正確的修補程式,保障您環境的安全。
  • 監視。部署好修補程式之後應檢查所有的系統,確定沒有發生任何副作用。
  • 審查。定期審查新發行的修補程式、您的環境以及公司所需的修補程式等,這些也是管理程序的一部份。如果審查時發現需要新的修補程式,請再從第一步開始做起。

注意事項:在部署修補程式之前,建議您先將所有產品系統備份起來。

分析環境中是否有遺漏的修補程式

  在程序進行當中,您必須確定手上的修補程式是最新的。有時中途可能會有新的修補程式發行,這時您就必須將它安裝到所有伺服器上;如果中途加入了新的伺服器,則伺服器上也需要加入適當的修補程式。您必須持續分析所有伺服器,確定它們已安裝最新的修補程式。有許多工具可以協助您達成這個目的。

Microsoft Network Security Hotfix Checker (Hfnetchk)

  Hfnetchk 是一個指令行公用程式,可以檢查目前伺服器上的設定是否為最新,以及是否具有適當的安全性修補程式。這個工具的運作方式,是直接從 Microsoft 下載一個內含最新 Hotfix 清單的「可延伸標記語言」(XML,Extensible Markup Language) 資料庫據以核對。如果您無法連線到 Internet,Hfnetchk 也會使用一個本機 XML 資料庫,雖然其中的資料可能有點過時。

注意事項:如果要使用 Hfnetchk,您必須具有要檢查其上修補程式的電腦之系統管理權限 (本機管理員或網域管理員均可)。

這個工具有許多指令行參數,如下表。
表 5.1:Hfnetchk 參數

Hfnetchk 參數功能
-about 關於 hfnetchk。
-h <hostname> 指定要掃描的 NetBIOS 機器名稱。預設值為 localhost。
-fh <hostfile>指定要掃描的 NetBIOS 機器名稱所在的檔案之名稱。一行一個名稱,一個檔案至多 256 個名稱。
-i <ipaddress> 指定要掃描的機器之 IP 位址。
-fip <ipfile> 指定要掃描的位址所在的檔案之名稱。一行一個 IP 位址,一個檔案至多 256 個 IP 位址。
-r <range> 指定要掃描的 IP 位址範圍,從 ipaddress1 到 ipaddress2。前後兩個位址都包含在內。
-d <domain_name> 指定要掃描的網域名稱。網域中的所有機器都會被掃描。
-n <network> 區域網路上的所有系統 ([網路上的芳鄰] 中的所有主機) 均會被掃描。
-history <level>正常操作時不需使用此參數。
-t <threads> 用來執行掃描的引線數目。可用的值為 1 到 128。預設值為 64。
-o <output> 指定需要的輸出格式。(tab) 以定位字元分隔的格式輸出。(wrap) 以換行的格式輸出。預設值為 wrap。
-x <datasource>指定 Hotfix 資訊所在的 xml 資料來源。其位置可能是一個 xml 檔名、壓縮的 xml cab 檔,或是 URL。預設值是 Microsoft 網站的 mssecure.cab。
-s <suppress> 不顯示 NOTE (注意) 及 WARNING (警告) 訊息。1 = 不顯示 NOTE 訊息,2 = 不顯示 NOTE 及 WARNING 訊息。預設值是兩者均顯示。
-z 不執行登錄檢查。
-nosum 不評估檔案的總和檢查碼。總和檢查碼測試可計算檔案的總和檢查碼。這將用掉大量頻寬。使用此選項可以加快掃描速度,使用的頻寬也比較少。檔案版本檢查仍然會執行。
-b顯示符合最低限度基準安全性標準所需的 Hotfix 之狀態。
-v顯示 Patch NOT Found (找不到修補程式)、WARNING (警告) 和 NOTE (注意) 訊息的詳細資訊。預設值為啟用並使用 tab 模式。
-f <outfile> 指定要儲存結果的檔案名稱。預設值為顯示在螢幕上。
-u <username> 指定登入遠端電腦所需的選擇性使用者名稱。
-p <password> 指定搭配使用者名稱的密碼。
-? 顯示說明功能表。

如果使用 Hfnetchk 來驗證修補程式狀態,則您必須確定該公用程式有定期執行。在大部份的環境下,最好的方式是將 Hfnetchk 排定成定期執行。

注意事項:如需使用 Hfnetchk 的詳細資訊,請參閱「知識庫」文件 CHT303215〈Microsoft Network Security Hotfix Checker (Hfnetchk.exe) 工具問世〉。

修補程式管理指令碼

  本手冊附有一個修補程式管理指令碼 hfnetchk.cmd,這個指令碼會檢查數部伺服器,看有無遺漏的修補程式,並將結果記錄到一個記錄檔,儲存於以每日為基準的資料夾內。此指令碼使用 Hfnetchk 來掃描伺服器,另一個指令碼 movelog.vbs 則會將檔案移到適當的資料夾。一段時間之後,這些資料夾就會形成一個歷程記錄,對分析和審查都相當有價值,也能協助您保障環境的安全。

注意事項:本手冊所含的指令碼必須搭配 Hfnetchk.exe 3.32 版或更新的版本使用。

下載本手冊所附指令碼加以解壓縮之後,修補程式管理指令碼便會出現如下的資料夾結構。
表 5.2:修補程式管理指令碼的資料夾結構

資料夾 說明
C:\SecurityOps 此為本手冊所附所有檔案的根資料夾。
C:\SecurityOps\PatchMgmt 此資料夾含有修補程式管理指令碼 hfnetchk.cmd、movelog.vbs script 以及內含支援檔和記錄檔的子資料夾。這個資料夾也是 mssecure.xml 檔應存放之處。
C:\SecurityOps\PatchMgmt\Hfnetchk 這個資料夾是從 Microsoft 網站下載 hfnetchk.exe 公用程式之後應存放之處。後續章節對此有更詳細的指示。
C:\SecurityOps\PatchMgmt\ServerLists 請在這個資料夾內建立並保存一些文字檔,而該文字檔列有需要加以掃描以便查看是否有遺漏修補程式的伺服器群組清單。
C:\SecurityOps\PatchMgmt\Logs 此資料夾是 hfnetchk.cmd 執行後記錄檔建立之處。此指令碼建立一個以目前日期為名的子資料夾以儲存記錄檔,例如 \SecurityOps\PatchMgmt\Logs\2002117。

注意事項:如果將本手冊所附檔案安裝到 C: 以外的磁碟分割,就必須將 hfnetchk.cmd 檔案中路徑編輯成使用該磁碟分割。

在安全性更新系統上安裝及使用 Hfnetchk.cmd 指令碼

  1. 執行 SecurityOps.exe 將本手冊所附的指令碼解壓縮,以建立表 5.2 所示的資料夾結構。
  2. 從 http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31154 下載並解壓縮 Hfnetchk 公用程式,並將 hfnetchk.exe 置於 C:\SecurityOps\PatchMgmt\Hfnetchk 資料夾內。如果執行指令碼的電腦未連接 Internet,您還需要從 http://download.microsoft.com/download/xml/security/1.0/nt5/en-us/mssecure.cab 下載及解壓縮 Mssecure.xml 檔。Mssecure.xml 應置於 C:\SecurityOps\PatchMgmt 資料夾內。
  3. 在 C:\SecurityOps\PatchMgmt\ServerLists 中建立一個伺服器清單文字檔。此文字檔含有您想檢查的伺服器之 NetBIOS 名稱,中間以換行符號 (Carriage Return) 分隔。

    注意事項:如果伺服器名稱與換行符號中間出現空格,Hfnetchk.exe 3.32 版就不會掃描該伺服器。因此請在執行 Hfnetchk 之前,先檢查每一行後面是否有不必要的空格。
     
  4. 啟動一個命令提示,變更至 C:\SecurityOps\PatchMgmt 資料夾,然後使用以下指令行啟動指令碼。
    Hfnetchk.cmd serverlist.txt
    其中 serverlist.txt 是伺服器清單文字檔的名稱。

    注意事項:如果出現對話方塊詢問您是否要下載 mssecure.xml 檔,請按一下 [Yes]。
     
  5. 變更到 C:\SecurityOps\PatchMgmt\Logs 資料夾,開啟目前日期的對應資料夾,再開啟與 serverlist.txt 檔同名的檔案。
  6. 檢查記錄檔,看您伺服器少了哪些修補程式。

注意事項:如果修補程式管理指令碼一天內執行兩次,第一次的記錄檔會被第二次複寫。

使用多重伺服器清單

  在大規模的網路中,您可能有許多不同類型的伺服器。在風險管理程序中,您可能必須判斷哪些伺服器要更常受到監視。如果使用多重伺服器清單,即可將修補程式管理指令碼排定成以不同的時間間隔掃描不同類型的伺服器。多重伺服器清單也適合用在有數個系統管理員負責不同群組的伺服器之時。使用多重清單可為每一組系統管理員分別建立一個遺漏修補程式報告。

例如在圖 5.2 的簡單網路中,您可以建立六個伺服器清單檔案,提供修補程式報告給不同群組的系統管理員。
Dd548242.ch05-2(zh-tw,TechNet.10).gif
圖 5.2簡單網路的伺服器清單檔案


在這個例子中,每一類伺服器的伺服器清單檔案均含有這些伺服器的名稱。例如 File&Print.txt 就只含有:
  FP01
  FP02
  FP03
第六個伺服器清單檔 Servers.txt 含有環境中所有的伺服器。此次掃描的結果將提供安全小組使用,以確定每個小組之伺服器均套用了最新的修補程式。

排定修補程式管理指令碼的時程

  為了確保 hfnetchk.cmd 能夠定期執行,您可以考慮將該工具排程在每隔一段時間固定執行。這項工作可以利用工作排程器或 AT 命令來進行。藉由使用多重伺服器清單,您可以確保不同的伺服器會在不同的時間進行檢查。

注意事項:在「成員伺服器與網域控制站基準原則」中,排程服務預設是停用的。如果想替「修補程式管理指令碼」排程,必須先啟用此服務。

其他可決定 Hotfix 層級的方式

  如果您不想或無法在環境的某些部份中使用 hfnetchk 工具,仍有其他方式可以判斷 Hotfix 是否已安裝。
最簡單的方式是查看登錄中的 HKLM\Software\Microsoft\Windows Nt\Currentversion\hotfix 機碼。每個新安裝的 Hotfix 都應該有一個具有 Q 名稱的機碼,此 Q 名稱對應到討論該 Hotfix 的知識庫文件。但某些較舊的 Hotfix 或是某些應用程式的 Hotfix 並沒有此種 Q 名稱。

Microsoft 還提供兩項免費工具,可用來收集這項資訊。這兩項工具如下:

  • Qfecheck.exe /v。可以告訴您 Service Pack 層級以及安裝的 Hotfix。如果修補程式未正確安裝,Qfecheck 也會告訴您。
  • Hotfix.exe -l. 顯示已安裝的 Hotfix。

規劃

  並非所有威脅和安全性漏洞都會對您的環境造成威脅。當您收到作業系統或應用程式可能產生安全性漏洞的通知時,應該先評估這些漏洞是否會在您環境中發生。例如,如果安全性漏洞出現在 Windows 2000 的 FTP 服務之中,而且您從未啟用過此服務時,這個安全性漏洞並不會對您造成危害。同樣地,如果今年颱風比較多,但您的 IT 環境是位於內陸地區時,颱風所帶來的威脅就變得很小。如果對與您環境不太相干的威脅及安全性漏洞作出反應,將浪費可貴的資源,同時對環境穩定性有不良影響,絲毫看不出其好處。

  新的威脅及安全性漏洞出現時,應該先閱讀相關的支援資訊,以便明智地判斷您的環境是否會受到危害,並決定適當的因應措施。這些措施可能是不採取任何行動、停用有風險的服務,或者部署修補程式。

注意事項:建立部署新修補程式的計畫時,請同時建立一個還原計畫。

注意事項:為了確保系統所安裝的修補程式都是最新的,請確定您可定期從 Microsoft 收到安全性公告。如需此項服務,請至 Microsoft Security 網站申請。此網站的連結請參閱本章最後的〈其他資訊〉。

替修補程式分類

每一個新的修補程式問世之後,您都必須判斷它對您環境的重要性。接下來便是決定部署的時間以及可以作多少測試。
Microsoft 為安全性公告所公佈的每個安全性漏洞,都提供一個等級。下表顯示了這些等級。
表 5.3: Microsoft 所定義的安全性漏洞等級

電腦類型 等級
 極度嚴重 中度嚴重 輕度嚴重
Internet 伺服器網站損毀、拒絕服務或完全控制 難以利用、不尋常的設定,或暫時性效果有限的影響,如指令碼外洩
內部伺服器權限評估、資料外洩或修改稽核困難可稽核的資料、修改或拒絕服務沒有目標或片斷的資料竊取或修改,有限的拒絕服務
用戶端系統在沒有使用者動作之下執行任意 (arbitrary) 程式;從遠端提升權限從本機提升權限;沒有目標的資料外洩或拒絕服務;利用使用者動作有限或片斷的資料竊取或修改;惡意的網站攻擊

分級系統會依據安全性漏洞遭到利用時對環境可能造成的影響,為安全性漏洞分類。

您可以利用這個分級系統作為修補程式分類的指引,但 Microsoft 的分級系統只是從全球數百萬個客戶所作的統計,歸納出可能的影響;嚴重性分級是基於過往經驗及主觀判斷,可能無法準確地判斷出對您環境的影響,最終還是得依您環境的實際情況來進行分類。

測試修補程式

  許多軟體的修補程式不見得在所有環境中都能正確運作。最理想的狀況是修補程式安裝到您環境以前,要先作過完整的測試,但許多修補程式需要儘快安裝,以避免發生嚴重問題,而且在許多情況下,您必須在解決安全性問題的需求和保證修補程式在您環境中能夠穩定運作之間,取得一個平衡。

要作多少測試才足夠,視您修補程式的分類方式而定。下表使用 Microsoft 的分類方式,顯示每一類修補程式最低限度的測試等級。
表 5.4:修補程式最低限度的測試

修補程式類型 測試必須包含
極度嚴重修補程式 評估修補程式
評估伺服器操作 (有限)
中度嚴重修補程式 評估修補程式
將修補程式安裝到測試環境
評估伺服器操作 (完整)
檢查解除安裝程序
輕度嚴重修補程式 評估修補程式
將修補程式安裝到測試環境
評估伺服器操作 (完整)
評估應用程式操作
檢查解除安裝程序

您必須決定每個步驟要執行得多徹底,這也是風險管理程序的一部份。如果事態緊急必須跳過幾個步驟,您仍然需要找機會在測試實驗室中完成所有的步驟,以便在已部署的系統發生問題之前,先將問題找出來。

所有的測試都必須在儘量模仿生產伺服器的伺服器上進行。

評估修補程式

您的修補程式評估至少要包含以下步驟:

  • 找出修補程式的擁有者。所有修補程式都必須有一個擁有者,負責進行該修補程式的評估。
  • 審閱所有文件。在套用任何 Service Pack、Hotfix 或安全性修補程式之前,均應閱讀並與同事交換審閱所有的相關文件。與同事交換審閱的程序相當重要,這樣可以降低單獨一個人遺漏重要資訊的可能性。
  • 驗證修補程式類別。在對修補程式作進一步的評估之後,有可能必須更改其類別。這會影響到您測試的其他部份。

閱讀文件時,請注意以下幾點:

  • 此更新是否與您的環境相關且可解決重要的問題?
  • 採用此更新會產生其他問題,以致讓生產系統遭人侵入嗎?
  • 此更新有任何依存元件嗎?(例如,您必須啟用或停用某些功能,更新才能運作)
  • 部署此更新之前需要執行任何動作嗎?

  除了檢視隨更新發行的文件之外,還必須搜尋 Microsoft 支援網站,看是否有發行後新增的其他資訊。TechNet 在其網站上亦提供可搜尋 (依產品名稱及 Service Pack) 的安全性公告。這些資料提供了重要的參考資訊。

安裝

  您必須確定修補程式的安裝正確、了解安裝後是否要重新開機、知道修補程式所佔用的空間 (包括解除安裝資料夾) 以及可用的選擇有哪些等等。除了安裝修補程式之外,還必須閱讀支援文件以獲得額外的資訊。

伺服器操作

  安裝好修補程式之後,還必須確定伺服器能夠正常作業。監視「事件記錄檔」和「系統監視器」,看其中是否有預期之外的結果,這也是個好習慣。測試所有伺服器功能,確定是否一切正常。而對於您可以處理多少有關於特定伺服器的特定安全性漏洞之風險這一點,將決定在判斷一切是否操作正常之前,應該讓伺服器執行多久的時間。如果有任何問題,請務必以書面記錄下來,並評估套用修補程式的優缺點。如果遇到問題,請儘快向 Microsoft 報告。

注意事項:您可以使用 Microsoft Operations Manager 來收集事件記錄檔和系統監視器資訊。

應用程式操作

將修補程式與伺服器上共存的應用程式一起進行測試,以及確定您已經找出相依性的問題,這都是測試程序的重要事項。安裝好修補程式之後,您應該檢查是否所有應用程式的運作都和以前一樣順利。

解除安裝

  無論如何進行測試,還是有可能在安裝修補程式之後出現問題,此時您可能需要先解除安裝修補程式,因此測試解除安裝是否可以作用也很重要。解除安裝之後,請檢查伺服器是否可如預期般運作,並持續觀察事件記錄檔和系統監視器計數器。

建立還原計劃

  即使您的測試進行順利而且毫無意外,但將修補程式部署到整個公司時,還是有可能會發生問題。因此您必須在部署修補程式之前,先訂定好讓系統回復原狀的還原計畫。有時這包括了在安裝之前進行快照備份,以便在發生問題時可以很快地將伺服器還原。無論您的還原計畫為何,請務必進行完整的測試。

部署修補程式

假設您的測試進行得很順利,現在應該可以將修補程式部署到整個公司了。有許多方式可以達到這個目的,其中包括:

  • 手動安裝
  • 群組原則
  • 指令碼

注意事項:如需部署修補程式的其他資訊,請參閱 TechNet 文件〈Best Practices for Applying Service Packs, Hotfixes and Security Patches〉(套用 Service Pack、Hotfix 及 Security Patch 的最佳實務)。其連結請參閱本章最後的〈其他資訊〉一節。

手動安裝

大部份公司最常使用的是手動安裝,這只要在每部伺服器上執行相對應的可執行檔即可,但如果您的公司有許多伺服器,就不適合使用這個方法。

大部份的 Hotfix 名稱都透露了此修正程式的重要資訊。例如,以下是一個典型的 Hotfix 名稱 Q292435_W2K_SP3_x86_en.EXE,其中:

  • Q292435 是知識庫中此 Hotfix 相關文件的編號。
  • W2K 是指此 Hotfix 與 Microsoft Windows 2000 相關。
  • SP3 是應該包含此 Hotfix 的 Service Pack。
  • x86 是此 Hotfix 適用的處理器架構。
  • en 是指語言 (英文)。

注意事項:檔名中只有 QXXXXXX.exe,後面沒有 W2K_SP3_x86 的 Hotfix,則是應用程式 (如 Internet Explorer) 所特有。

Hotfix 也支援許多指令行參數,可用來控制 Hotfix 安裝程序的行為。
表 5.5:Hotfix 可執行檔的參數

參數 說明
-y 執行解除安裝
-f 關機時強迫應用程式關閉
-n 不建立解除安裝目錄
-z 更新完成後不重新開機
-q 無訊息模式 — 沒有使用者介面
-m 自動模式
-l 列出已安裝的 Hotfix

注意事項:檔名為 QXXXXXX.exe 的應用程式特定 Hotfix 通常不會支援上述所有的參數。

如果將安裝多重 Hotfix 的程序寫成指令碼,則可利用 -q 和 -z 參數讓使用者無需介入,且不強迫重新開機。

  在安裝多個 Hotfix 時,通常每安裝好一個,就得重新開一次機。這是因為系統無法替換被鎖定或使用中的檔案,因此要替換的檔案會先置於佇列中,等到系統重新開機後再替換。QChain 工具可讓您將數個 Hotfix 串連起來,只要最後重新開機一次,不需要每次都重開機。如果要使用 QChain,請在安裝 Hotfix 時加上 -z 參數,讓安裝程式完成後不會重新開機。然後執行 QChain.exe,最後再重新開機。

注意事項:QChain 可從 TechNet 取得。如需詳細資訊,請參閱本章最後的〈其他資訊〉一節。

  如果在套用了 Service Pack 及修補程式之後新增了額外的元件 (如 DNS),就必須重新套用一次 Service Pack 及修補程式,以確保新元件也已修補。

群組原則

  Windows 2000 使用群組原則來支援軟體散佈,但修補程式通常不包含在 Windows Installer 封裝內,不過您可搭配 .zap 檔來使用可執行檔。

  未使用 Windows Installer 封裝的應用程式必須使用 .zap 檔來描述其現有的安裝程式。.zap 檔是一個文字檔 (與 .ini 檔類似),提供了如何安裝程式、應用程式屬性,以及安裝此應用程式時的進入點等資訊。

  但 .zap 檔只能指派給一名使用者,這表示如果設定群組原則來散佈 Hotfix,您仍然需要以 .zap 檔所指派的使用者帳戶來登入電腦。

注意事項:如需建立 .zap 檔並指派其使用群組原則的詳細資訊,請參閱 Knowledge Base 文件 Q231747〈How to Publish non-MSI Programs with .zap Files〉。

指令碼

  您也可以建立自己的 VBScript 或批次檔來散佈修補程式;您可以用登入或啟動指令碼的形式來製作修補程式,而這些指令碼則會檢查修補程式目前的狀態,再從集中式的伺服器上檢查是否有更新。

您的指令碼中可以加進 QChain,以確保如果需要一個以上的 Hotfix,也只會重新開機一次。

監視

  將修補程式安裝到生產環境之後,必須持續監視您的伺服器。請隨時觀察事件記錄檔和系統監視器計數器是否有問題。如果在接下來的幾個星期中發現電腦有任何其他錯誤,請測試到確定這些錯誤與您所部署的修補程式無關為止。同時如果因時間緊迫,無法在實驗室進行詳盡的測試就安裝,仍請在實驗室環境中把必要的測試作完,以確定沒有任何重點被遺漏。

  除了監視既有的伺服器之外,也要同時監視整個環境,確定沒有新伺服器加入網路且未套用最新的修補程式。新伺服器必須收到最新的建置版本,您也必需監視這一點。

審查

  只有經常審查才能確定所有程序的運作正確無誤。完成個別修補程式的修補程式管理程序之後,您必須審視修補程式的部署是否正確,所有程序的運作亦如預如。如此將有助於整個程序順利地運作下去。審查修補程式管理程序時,必須持續分析環境是否有進一步的變化,如果有的話,就必須重新開始修補程式管理程序。

本章討論了伺服器端的修補程式管理程序,但是病毒和其他威脅也經常透過用戶端破壞公司的安全性。

  前面討論的項目也和用戶端管理有關,但之間有所差異。這些差異不在於修補程式進行的作業有多麼不同,而是在您的公司決定需要哪些修補程式、進行測試、然後部署的過程。

有許多工具可以協助您進行用戶端修補程式管理。

Windows Update

  如果您執行的是 Windows XP 用戶端基礎元件,那麼要檢查及套用修正程式時,最簡單的方式便是使用 Windows Update。造訪 Windows Update 網站時,您的電腦便會被掃描,列出未下載的修補程式 (與安全性或非與安全性相關者)。

您必須是本機系統管理員才能執行 Windows Update。這項限制導致許多環境無法使用這項工具。

Windows Update Corporate Edition

  Windows Update Corporate 網站上列有可在公司網站上散佈的更新之詳細目錄。您可從這個網頁一次下載 Winodws Update 及 Microsoft Windows Hardware Quality Lab (WHQL) 標誌裝置驅動程式。
Windows Update Corporate Edition 可讓您:

  • 依關鍵字、作業系統、更新類型、元件類型、語言、張貼日期以及製造商來搜尋最新的軟體更新和驅動程式更新,並找出與您公司最相關的更新。
  • 依照需要一次下載一個更新,或者選取多個更新以下載到一個組合封包,準備好在網路上散佈。
  • 使用「下載記錄」來檢視先前下載的更新及其所在位置。
  • 請在下載之前,先閱讀每個下載封裝的 Read This First (請先閱讀本段說明) 檔案內的詳細資訊。每一個下載封裝均附有一個 Read This First 檔,其中有連至相關網站以查閱詳細資料的連結。

Microsoft Baseline Security Analyzer

  可以從 TechNet 下載這個應用程式,以便協助您確定以 Windows 2000 和 Windows XP 為基礎的系統是既安全的,而且也安裝最新修補程式。Baseline Security Analyzer 可掃描一或多個系統,傳回的報告列有以下項目:遺漏的安全性修補程式、易破解的密碼、Internet Explorer 與 Outlook Express 安全性設定以及 Office 巨集保護設定。該報告還會提供安全性問題的相關資訊、如何修正此問題,並有此問題相關資料的連結。

其他工具

如果遵循本章所建議的方式,您已經在有效管理修補程式的路上往前一大步了,但仍有許多工具可以進一步將修補程式的管理自動化。

SMS

如果在公司內部署了 Microsoft Systems Management Server (SMS),便可用該程式協助您執行前述的許多階段。
Microsoft Security Toolkit 含有一個 SMS 匯入公用程式,可將建議的 IIS 安全性修正程式的散佈及安裝程序自動化。SMS 可以協助您判斷哪些電腦需要安裝安全性修正程式,然後自動部署這些修正程式。

  SMS 的軟體部署功能可在您環境中將修補程式散佈到具有 SMS 用戶端的電腦上。如果您替修補程式建立一個軟體封裝,即可強制環境中所有或部份電腦進行升級,其中一個主要好處是可以監視哪些電腦已經安裝了修補程式,但是必須要有 SMS 系統管理員或者對建立 SMS 封裝有相當了解的人,才能正確地散佈這些修補程式。

協力廠商工具

  許多協力廠商提供的工具亦有助於修補程式管理。這些工具提供了 Microsoft 免費工具目前尚未具備的功能,包括部署修正程式並回報狀態、建立具有相同更新需求的電腦群組、支援前述工具未提供的其他產品,以及提供圖形使用者介面 (GUI) 指令區供系統管理員使用。您必須評估這些功能,判斷您的環境是否需要這些功能。

Polaris Group Hotfix/Service Pack Utility

這個工具有簡單易用的 GUI、支援所有 Microsoft 產品、可將部署 Service Pack 和 Hotfix 的工作自動化,讓所有電腦均以您所指定的公司標準執行。http://www.polarisgroup.com/

Shavlik Hfnetchkpro

這個工具是以 Hfnetchk 技術為基礎所設計的,該工具具有一個 GUI,可讓您建立掃描歷程記錄,這是指令行版本所無法提供的。
http://www.shavlik.com/nshc.htm

Bindview Security Advisor

Bindview 的工具有一個 GUI,以簡化檢查不相容電腦的程序。該工具也提供更新服務,告知您何時發行了新的修補程式。
http://www.bindview.com/

Pedestal Software’s Security Expressions

這個工具可讓系統管理員在 Windows 及 UNIX 機器上施行安全性鎖定原則,也能檢查 Hotfix,並在需要時自動加以下載及安裝。
http://www.pedestalsoftware.com/secexp/index.htm

摘要

  IT 安全性的漏洞絕大部份是因為系統未部署最新版的修補程式而造成。 要將安全性風險降到最低,好的修補程式管理是不可或缺的。正視修補程式管理將可大幅降低安全性漏洞所付出的成本。

其他資訊

參考連結


顯示: