免費用Windows Server將惡意應用拒之門外
譯文要想控制運行在業務環境中的所有應用聽起來似乎像是不可能完成的任務,而且平心而論,達成這一目標確實需要投入大量精力。我們需要制定管理政策以限制軟件安裝與執行,并利用工具確保這些政策得到切實貫徹,而不至于像行政管理工作那樣“蜻蜓點水”般一帶而過。整個流程需要以探索的態度組織試驗、發現錯誤,然后才能逐步推開。不過只要能從實踐中積累經驗,這樣的處理方式也將給我們帶來諸多回報,其中包括:
惡意軟件幾乎會得到徹底根除。但凡沒有獲得批準或列入白名單的應用程序都不允許執行。
由用戶安裝未受審核的應用(例如iTunes與Dropbox)所引發的桌面系統支持難題將大幅減少。
針對數據泄露的保護機制得到增強,因為用戶無法使用那些沒有與組策略設定相匹配的應用程序,也就無法繞開企業預先制定好的安全政策。
在本文中,我將帶大家一同了解如何在Windows客戶計算機中對軟件安裝及執行實施控制。除非特殊說明,否則我提到的一切操作方式都基于Windows Server2008及后續版本,因此各位不必擔心由于使用第三方工具而帶來額外的許可開支。另外,我還會為大家總結各套方案的優勢與缺點。
限制Windows安裝程序
如果您是一位二八開原則的忠實擁護者,完全可以利用20%的精力對Windows安裝程序做出簡單限制,從而獲得80%的管理控制成效。我們最常見的處理方式通常是借助組策略。創建一個組策略對象(group policy object,GPO),右鍵點擊進行編輯,并在彈出的組策略對象編輯器窗口中依次找到計算機配置——>管理模板——>Windows組件——>Windows安裝程序。
雙擊窗口右側的“禁用Windows安裝程序”選項,為了保證Windows安裝程序只能接受組策略中所列出的應用程序對象,請點擊“只針對未管理應用”。大家也可以直接點擊“始終有效”來禁止Windows安裝程序處理包括獲得許可的應用在內的所有軟件。
這套方案的弊端在于只能影響到通過Windows安裝程序進行安裝的軟件。很多知名軟件都擁有獨立的安裝工具,在這種情況下管理政策將無法有效控制其安裝與執行。除此之外,GPO在針對業務環境下特定設備子集時效果也不理想,尤其是在某些用戶擁有本地管理員權限時——此類權限意味著我們信任其安裝應用程序的操作。話說回來,雖然存在各種局限,這種處理方式至少堪稱“聊勝于無”,而且確實可以預防某些用戶的違規操作。
不過我個人還沒見過哪種病毒或者惡意軟件會通過Windows安裝程序進行傳播,因此如果大家希望能在對抗這類威脅時擁有額外的防御機制,這套方案恐怕幫不上什么忙。
#p#
軟件限制策略
軟件限制策略(簡稱SRP)允許我們通過推行組策略來控制特定程序的執行。除了能作用于現有業務環境之外,SRP還是一套非常適合終端服務器或公共資訊支持設備的管理方案。在它的幫助下,用戶將只能使用特定的某一項功能,且無法利用管理軟件或下載來自互聯網的應用程序與實用工具。
Windows能夠通過不同方式正確識別軟件的限制與放行標準。Hash規則就是其中之一,它會識別程序中文件與可執行文件的特征,而后為其生成一套hash算法。
Hash機制對于識別同款程序的特定版本方面表現出色,因為hash值會隨著文件的變更而有所不同(程序新舊版本之間必然存在文件差異)。
驗證規則會通過數字簽名識別軟件,這一點在保護授權腳本方面極為重要。Windows系統還能通過軟件的路徑與互聯網區域(IE瀏覽器內部)識別軟件身份,進而嚴格控制軟件下載活動的安全性。
最后,Windows系統可以創建規則、幫我們揪出那些無法通過受信列表或其它管理規則明確界定的軟件對象。Windows將程序與規則相比照以確認對方是否符合軟件限制GPO要求,如果同一款程序符合多套管理規則,系統會為其匹配最核心的規則。
這些策略功能強大,但正如我在本文開頭所提到,每套方案都有自己的弱點:除非大家能精心為用戶可能需要的每個Windows可執行文件創建例外規則(包括其應用程序),否則SRP的介入會令整套業務系統變得相當遲鈍。
SRP還可能給創建安全環境所必要的用戶登錄腳本帶來麻煩。如果大家決意采取這套方案,那就必須在實驗環境下提前對所有限制策略與例外清單進行全面測試。另外還要提醒各位:當我們為特定軟件創建限制GPO時,請務必確保將域管理員組加入GPO的訪問控制清單當中,而且GPO不可擁有應用組策略的權限。這么做是為了將策略本身的控制權交給管理員,而不至于在關上門之后才發現自己也被鎖在了外面。
在做好創建策略的準備工作后,請遵循以下步驟:
為每套限制策略創建新的GPO,一旦我們在實際應用中發現限制過嚴,就可以輕松禁用對應策略。
通過計算機配置或用戶配置將限制規則應用至設備或用戶端,具體流程為策略——>Windows設定——>安全設定——>軟件限制策略。
右擊軟件限制策略,在彈出的功能菜單中選擇新的軟件限制策略。
設定一套默認識別規則:在窗口左側點擊“安全級別”,右擊某一安全級別然后在彈出的功能菜單中選擇“設為默認”。
現在,我們需要創建一套判斷軟件是否符合限制約束標準的規則。右鍵點擊窗口左側的“額外規則”,點選“新驗證規則”后從“新Hash規則”及其文件審計模式、“新互聯網區域規則”及其區域審計模式、“新路徑規則”及其文件模式或者注冊表項等方案中做出選擇。
在窗口右側,雙擊“執行”選項。現在我們來看看這些限制究竟如何生效。推薦大家使用以下選項:“全部軟件文件例外庫”將幫助我們避免關鍵性系統及應用程序功能文件受到阻斷。“全部本地管理員例外用戶”則表示Windows系統只會在本地管理員組之外的用戶當中嚴格執行限制策略。
接下來在窗口右側雙擊“指定文件類型”,我們需要在其中審查并添加軟件限制策略中涉及到的應用程序文件擴展名。這份列表需要非常完整,而且在必要的情況下請大家確保企業所使用的腳本語言也擁有對應的文件擴展名關聯。
最后,在窗口右側雙擊“受信發布者”。在這里我們可以指定普通用戶、本地管理員或者企業管理員是否有權決定開放數字簽名程序的可信性并對其進行控制。
大家可以在任何版本的WindowsXP、Windows Vista、Windows7或者Windows8系統中使用SRO,不過作為其后續方案,AppLocker的功能無疑更為豐富——這也正是我們接下來要討論的重點。AppLocker目前只在售價最高的Windows7或Windows8操作系統客戶端中出現。
#p#
AppLocker
微軟公司將AppLocker描述為“WindowsServer2008R2與Windows7中出現的一項新機制,為軟件限制策略帶來功能與特性上的全面提升。AppLocker包含的新功能與擴展能力允許用戶根據獨一無二的文件驗證手段創建應用程序控制規則,并可以指定哪些用戶或群組有權運行這些應用程序。”
但簡單來說,AppLocker基本就是經過健身訓練的SRP。也許其中最出彩的兩項特性要數根據目前已經安裝的軟件自動創建規則以及AppLocker的“純審計”運行模式。這意味著它能夠在無需管理人員手動設定策略的前提下自主判斷一款應用程序可以放行還是該被關禁閉。在初始設置與故障排查等情況下,這樣的功能顯然非常貼心。
我們可以在組策略中使用AppLocker。首先創建新GPO,對其右鍵點擊以進行編輯,然后按照計算機配置——>Windows設定——>安全設定——>應用程序控制策略與AppLocker的流程找到這項新機制。
以下截圖顯示了AppLockerGPO的使用界面,其中顯示了規則執行配置以及哪些規則正處于適用狀態。
Windows Server 2008 R2中的AppLocker組策略對象界面
AppLocker與SRP相比更容易從白名單起步加以部署,這是因為它能夠對相關設備進行自主配置。舉例來說,我們剛剛搭建好一套設備環境,其中尚未設定任何限制、也沒有安裝任何業務環境中的常用軟件。只要完成最基本的計算機設置(例如企業環境下必不可少的流程——部署鏡像),我們就可以讓AppLocker自動為其生成規則,而規則本身又能通過信息收集識別系統中可信的軟件可執行文件。最后,大家只要將這些規則導入生產組策略環境中以備規則網絡使用即可。
AppLocker的弊端在哪里?首先,它只能運行于Windows7旗艦版、Windows7企業版或者Windows8專業版當中,所以如果大家還在使用WindowsXP——甚至在跟Vista打交道——那么AppLocker恐怕沒法幫到您了。不過我們可以先從已經采用了Windows7的設備上入手,先行體驗AppLocker的實際表現;而后再慢慢遷移,讓新系統自動接納來自組策略的管理規則。在這種情況下,安全性只取決于我們何時全面部署Windows7或者Windows8。
總結
只要聽到“白名單”這個字眼,大家的第一反應很可能是:這好像是份麻煩的活兒。事件也的確如此。不過對未經授權的軟件進行安裝與執行限制能帶來諸多回報——正如我在前文所提到,而且也能免去在網絡及業務環境中不斷進行補丁安裝與軟件升級的麻煩。(一旦限制機制太過松散,用戶很可能隨意下載并安裝軟件,從而導致業務環境中的軟件版本千奇百怪。另外,以Java為代表的‘頑劣’應用往往存在安全漏洞,而IT部門對于未經批準的軟件很難提供集中化的補丁安裝方案。)
依靠Windows自帶的工具,再加上一點點聰明才智,大家完全可以不花一分錢讓自己的系統安全性更上一層樓。
國外有句俗語,叫做“但凡值得做的事都值得做好”,誠不我欺也。
附:關于用戶賬戶控制的一點意見
大家可能在想,為什么現有Windows版本(包括WindowsVista及其后續版本)都會提供用戶賬戶控制(簡稱UAC)機制。這套機制最著名的特色就是在我們訪問系統中的敏感內容或是嘗試執行可能給系統完整性帶來影響的操作時彈出確認對話框。
對于一些(或者說大部分)應用程序而言,單憑UAC限制機制來實現權限許可就已經足夠了。用戶無法安裝那些嘗試訪問或將內容寫入受權限保護區域的軟件,除非他們擁有超級管理權限。
不過某些軟件的正常安裝機制(也就是并不涉及系統敏感區域的機制)也有可能觸發UAC保護。另外,某些實用工具還可能會在可執行文件中綁定運行時間庫或者動態分發機制,而非利用常規的安裝規程。
進一步來講,以谷歌Chrome以及流行的文件共享工具Dropbox為代表的某些程序會直接被安裝在用戶的個人配置空間當中;UAC無法針對這類情況提供保護。最后,UAC幾乎不能在安裝流程結束后再對軟件的執行加以控制;UAC一般只在軟件執行過程中涉及權限操作時才會起效。
如果大家希望對所有類型的軟件都擁有限制能力,或者控制系統中的軟件執行流程,那么UAC并不算是理想的解決方案;我們需要通過其它途徑對計算環境中的軟件安裝與執行進行管理。