引言:注冊表可謂是Windows系統(tǒng)的核心之處,無論是應(yīng)用程序安裝還是系統(tǒng)服務(wù)運行,都離不開它的控制。也正因為它如此重要,網(wǎng)絡(luò)上的各種惡意程序往往會將它作為重點攻擊對象。為讓注冊表安全無懈可擊,我們需要采取措施,對其使用和訪問進行強化監(jiān)控和保護!
注冊表可謂是Windows系統(tǒng)的核心之處,無論是應(yīng)用程序安裝還是系統(tǒng)服務(wù)運行,都離不開它的控制。也正因為它如此重要,網(wǎng)絡(luò)上的各種惡意程序往往會將它作為重點攻擊對象,如此一來,它反而變成了Windows系統(tǒng)的安全要害,任何注冊表鍵值的惡意變動,輕則會引起程序或服務(wù)啟動運行錯誤,重則能導(dǎo)致系統(tǒng)直接崩潰癱瘓。為了讓注冊表安全無懈可擊,我們需要采取措施,對其使用和訪問進行強化監(jiān)控和保護!
圖1 注冊表編輯器對話框
讓注冊表安全無懈可擊最簡單且最常見的方法就是將注冊表內(nèi)容備份到位,一旦注冊表內(nèi)容受到破壞時,可以在第一時間將其恢復(fù)正常。普通備份操作很簡單,只要打開系統(tǒng)運行文本框,在其中執(zhí)行“regedit”命令,進入系統(tǒng)注冊表編輯界面。選中“計算機”節(jié)點選項,打開如圖1所示的右鍵菜單,選擇“導(dǎo)出”命令,從彈出的注冊表文件導(dǎo)出設(shè)置對話框中,設(shè)置好備份文件名稱和保存路徑,同時將“保存類型”修改為“REG”選項,確認后就可以將整個注冊表內(nèi)容備份成功了。日后如需要將注冊表內(nèi)容恢復(fù)到正常狀態(tài)時,只要簡單地雙擊備份文件即可。
倘若要備份注冊表中特定分支下的內(nèi)容時,可以先選中特定分支選項,打開它的右鍵菜單,單擊“導(dǎo) 出”命 令,設(shè)置好保存名稱和路徑就能進行備份操作了。因為病毒木馬程序一般會偷偷修改Run、Winlogon、RunOnce、RunServicesOnce、load、RunOnceEx、RunServices等分支下的內(nèi)容,所以我們應(yīng)該加強對HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce、HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx、HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun等分支內(nèi)容,進行及時備份操作。
如果嫌手動備份操作麻煩,我們不妨利用ERUNT這款外力工具,快速備份注冊表內(nèi)容,該工具可以免費使用且無需進行安裝操作。從網(wǎng)上獲得漢化版ERUNT工具壓縮包,借助專業(yè)解壓工具,將壓縮包內(nèi)容釋放到臨時目錄中,雙擊可執(zhí)行文件“ERUNT.EXE”,不經(jīng)過安裝操作就能彈出如圖2所示備份主窗口。在“備份選項”設(shè)置項處,勾選“系統(tǒng)注冊表”選項,可以對整個注冊表內(nèi)容進行備份;如果勾選了“當前用戶注冊表”選項,那么目標程序僅會備份與當前用戶相關(guān)分支內(nèi)容。之后指定好備份文件名稱和存儲路徑,按下“確定”按鈕后,目標工具就能成功備份好系統(tǒng)注冊表了。為了確保安全,建議大家在安裝、卸載應(yīng)用程序,或?qū)ο到y(tǒng)配置之前,都及時對注冊表備份一次。日后,當系統(tǒng)注冊表受到損壞需要恢復(fù)時,只要進入備份文件夾窗口,雙擊“ERUNT.EXE”文件即可。
圖2 備份對話框
此外,為了提高備份效率,也能通過ERUNT工具自動備份注冊表內(nèi)容。例如,ERUNT工具現(xiàn)被保存在“F:111”文件夾中,在通過該工具對注冊表進行自動備份時,只要進行如下操作:
首先啟動記事本之類的文本編輯程序,在文本編輯窗口中輸入下面的命令行代碼:
@echo off
F:111ERUNT.EXE %SystemRoot%ERUNT#Date# /noconfirmdelete
其 中“F:111ERUNT.EXE”是ERUNT程序保存路徑,“%SystemRoot%ERUNT#Date#”表示備份文件存儲路徑,并且備份文件自動以當前日期作為名 稱,“noconfirmdelete”參數(shù)表示強制刪除同名備份文件。將上面的命令代碼保存為“222.bat”批處理文件。
接著打開系統(tǒng)運行文本框,在其中執(zhí)行“gpedit.msc”命令,開啟組策略編輯器運行狀態(tài),依次跳轉(zhuǎn)到“本地計算機策略”、“計算機配置”、“Windows設(shè)置”和“腳本(啟動/關(guān)機)”分支上,找到指定分支下的“啟動”選項,用鼠標雙擊進入對應(yīng)選項設(shè)置框,選擇“添加”,從文件添加對話框中導(dǎo)入“222.bat”批處理文件,確認后保存設(shè)置操作。日后Windows系統(tǒng)每次啟動運行時,ERUNT工具都會自動調(diào)用指定批處理文件,對系統(tǒng)注冊表自動備份。
眾所周知,我們既能在本地訪問系統(tǒng)注冊表,又能在其他地方遠程訪問它。但要是讓人隨意在其他地方遠程訪問系統(tǒng)注冊表,那注冊表安全可能會受到不小威脅。為了減少注冊表的安全攻擊途徑,我們不妨對系統(tǒng)進行如下設(shè)置操作,切斷注冊表的遠程訪問通道:
首先選中系統(tǒng)桌面上的“計算機”圖標,打開它的快捷菜單,單擊“管理”命令,展開計算機管理界面。在該界面左側(cè)列表中,依次點擊“服務(wù)和應(yīng)用程序”、“服務(wù)”節(jié)點選項。
接著從指定節(jié)點下面選中“Remote Registry”選項,并用鼠標雙擊切換到如圖3所示的選項設(shè)置對話框,單擊“停止”按鈕,并將啟動類型設(shè)置為“禁止”,確認后退出設(shè)置對話框。這樣,就能完全切斷對系統(tǒng)注冊表的遠程訪問通道了。
一些惡意程序常常會主動修改系統(tǒng)注冊表有關(guān)鍵值內(nèi)容,以便讓自身跟隨Windows系統(tǒng)一起啟動運行。為了避免病毒木馬等程序隨意修改注冊表鍵值,影響系統(tǒng)安全運行,我們不妨借助“Registry Locker”這款外力工具,巧妙鎖定保護系統(tǒng)注冊表中的特定重要分支內(nèi)容,讓病毒木馬沒有任何編輯修改權(quán)限。該工具內(nèi)置了很多項容易被病毒木馬程序感染的注冊表位置,通過對這些注冊表位置的鎖定保護,就能避免注冊表受到各類病毒或其他惡意程序的損壞。
圖3 屬性對話框
圖4 Registry Locker主程序
在對系統(tǒng)注冊表執(zhí)行鎖定保護操作之前,建議大家先將常用程序都安裝到計算機中,再用殺毒軟件完整掃描一次Windows系統(tǒng),確保系統(tǒng)處于“干凈”狀態(tài)。接著下載安裝好“Registry Locker”工具,展開如圖4所示的主程序窗口,在這里可以直觀看到一些容易受到非法攻擊的注冊表分支或項目,例如系統(tǒng)服務(wù)、映像劫持、IE插件項、系統(tǒng)啟動項、IE右鍵菜單、IE首頁等,將特定分支和項目選中,選擇工具欄中的“鎖定選定項”,這樣對應(yīng)注冊表分支或項目就會自動受到“Registry Locker”工具保護了,日后惡意程序在嘗試篡改特定注冊表分支內(nèi)容時,系統(tǒng)將彈出無權(quán)修改之類的提示。如果我們自己想調(diào)整特定注冊表分支下的內(nèi)容時,可以從注冊表項目列表中,對特定項目執(zhí)行解鎖操作即可。
如果我們想修改默認的注冊表項目時,只要先單擊主界面中的“保存”工具欄按鈕,將當前列表內(nèi)容存儲成“Registry.dat”,該 文 件默認會被存儲到“Registry Locker”工具的安裝目錄下。下面用寫字板之類的文本編輯程序打開“Registry.dat”文件,根據(jù)已有的條目信息,手工增加或刪除需要安全保護的注冊表分支或項目,每一行只允許存在一條記錄,每條記錄輸入格式一定要符合“1或0|說明項|注冊表項”標準,這里的“1”或“0”代表在默認狀態(tài)是否選定當前注冊表分支或項目,“說明項”指的是當前條目詳細說明信息,“注冊表項”用來指定需要被鎖定保護的注冊表詳細分支地址。按需編輯好“Registry.dat”文件后,將其重新保存一下,并關(guān)閉文本編輯界面。重啟“Registry Locker”工具,該工具會自動為“Registry.dat”文件中指定的新注冊表項目,提供鎖定保護服務(wù)。
由于非法攻擊或操作錯誤等原因,系統(tǒng)注冊表常常會出現(xiàn)一些蹊蹺的錯誤。為了讓系統(tǒng)注冊表運行狀態(tài)快速還原,我們不妨借助“Registry Life”工具,對系統(tǒng)注冊表中的各種錯誤進行強制修復(fù)。
啟 動 運 行“Registry Life”工具后,它會自動掃描整個系統(tǒng)注冊表,掃描任務(wù)完成后,系統(tǒng)注冊表中存在的各個錯誤和錯誤數(shù)量都會列寫在主操作窗口中。其中,該工具會用紅色感嘆號標記突出顯示錯誤的地方,我們能直觀分辨出錯誤屬于什么類型。要想對存在的錯誤進行清除修復(fù)時,只要在主操作窗口中單擊“Run Registry Ceanup”按鈕,彈出錯誤清除向?qū)гO(shè)置框,單擊“Start”按 鈕,“Registry Life”工具就能智能逐項分析系統(tǒng)注冊表中存在的錯誤,分析結(jié)束后,我們能看到對錯誤信息的詳細說明,再單擊“Fix”按鈕,錯誤修復(fù)操作就會正式開始。
圖5 權(quán)限設(shè)置對話框
系統(tǒng)注冊表在一段時間運行后,很可能會產(chǎn)生垃圾或出現(xiàn)錯誤,定期清除垃圾,能讓注冊表處于最理想工作狀態(tài)。在進行該操作時,先進入“Registry Life”主操作窗口,依次點選“Main Functions”、“Registry Optimization”命令,彈出注冊表優(yōu)化設(shè)置界面,單擊“Perform the Registry Optimization”按鈕,位于系統(tǒng)注冊表各個位置處的的所有垃圾,就能被目標工具強行清除掉了。
惡意程序可以偷偷修改系統(tǒng)注冊表,主要是因為Windows系統(tǒng)默認對注冊表編輯權(quán)限管控不嚴。倘若對注冊表重要分支編輯權(quán)限進行嚴格限制,那么注冊表的安全性能會大大提升。在嚴控注冊表編輯權(quán)限時,既可以對特定鍵值權(quán)限直接限制外,又能借助安全模板進行限制,通過模板進行限制時,往往不要擔(dān)心設(shè)置不當引起Windows系統(tǒng)運行不正常。
正常情況下,對特定注冊表分支權(quán)限進行管控時,可以通過權(quán)限直接編輯法來完成(如圖 5),詳細操作為:先進入系統(tǒng)注冊表編輯窗口,選中特定注冊表分支選項,比如說選中注冊表分支 選 項“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”,打開它的右鍵菜單,單擊“權(quán)限”命令,展開如圖5所示的權(quán)限編輯框。我們可以在這里單擊“添加”或“刪除”按鈕,導(dǎo)入或移除特定用戶賬號,接著選中某個對象,同時對操作權(quán)限進行拒絕或允許。
要提醒大家的是,很多注冊表分支權(quán)限是從高級別分支繼承過來的,有時不能對其直接控制。這個時候,不妨單擊“高級”按鈕,在高級安全設(shè)置框“權(quán)限”頁面中的“繼承于”設(shè)置項處,查看對應(yīng)權(quán)限究竟是從哪里繼承來的,這些權(quán)限默認都是從對應(yīng)鍵值根分支繼承過來的。在確認修改訪問權(quán)限前,一定要弄清楚有沒有必要勾選“包括可以從該對象的父項繼承的權(quán)限”選項,如果勾選的話,特定分支下的訪問權(quán)限都會同步跟隨變化。打開“所有者”選項設(shè)置頁面,可以查到特定分支的當前所有者,并能根據(jù)實際需要設(shè)置所有權(quán),默認狀態(tài)下,只有特定分支會受到影響,如果希望適用于特定分支下的所有子項時,必須要勾選“替換子容器和對象的所有者”選項。在“有效權(quán)限”選項設(shè)置頁面中,可以查看到當前配置會對特定用戶或組應(yīng)用什么樣的權(quán)限,該特性作用不可忽視,可以幫助大家知道在對權(quán)限修改確認前會不會被應(yīng)用。
如果要對整個系統(tǒng)注冊表的編輯權(quán)限進行嚴格限制,也可以對注冊表程序的訪問權(quán)限進行控制。在進行該操作時,不妨先進入系統(tǒng)資源管理器界面,找到%SystemRoot%目錄下的“Regedit.exe”文件,這個文件其實就是系統(tǒng)注冊表編輯器程序,打開該程序的右鍵菜單,選擇“屬性”命令,切換到對應(yīng)程序?qū)傩栽O(shè)置框,點選“安全”選項卡,在對應(yīng)選項設(shè)置頁面中,按照實際情況添加或者刪除用戶或組,再定義好適當?shù)脑L問權(quán)限。
如果對系統(tǒng)注冊表變化狀態(tài)進行實時監(jiān)控,那么非法程序攻擊注冊表時,就可以在第一時間被發(fā)現(xiàn),這有利于保護系統(tǒng)注冊表的安全運行。要想監(jiān)控系統(tǒng)注冊表異常,可以使用“Registry Monitor”工具,它既可以監(jiān)控記錄與注冊表數(shù)據(jù)有關(guān)的各種操作,又能允許用戶對監(jiān)控結(jié)果進行查找、篩選、過濾、分析等。
啟 動 運 行“Registry Monitor”程序后,它會默認掃描系統(tǒng)注冊表的變化狀態(tài),并同步顯示掃描結(jié)果,掃描結(jié)果包括訪問注冊表的進程、位置以及相關(guān)操作等,依照這些結(jié)果,基本就能初步判斷出注冊表是否受到過攻擊了。因為分析不斷更新的注冊表掃描結(jié)果往往有點吃力,此時不妨進行合適設(shè)置,突出顯示一些關(guān)鍵更新項目。在進行該操作時,逐一選擇“選項”、“過濾”、“高亮”命令,彈出高亮設(shè)置界面,在“高亮”設(shè)置項處,輸入關(guān)鍵鍵值名稱,例如輸入“Run”、“RunOnce”,確認后與關(guān)鍵鍵值相關(guān)數(shù)據(jù)就會被突出顯示。為了進一步提高分析成功率,我們還可以利用“Registry Monitor”程序強大的過濾功能,按需過濾記錄內(nèi)容,例如過濾注冊表讀寫操作、成功錯誤操作等。
在沒有外力工具可以使用的情況下,也可以加強系統(tǒng)注冊表訪問操作的審核,達到實時監(jiān)控目的。因為注冊表審核操作會消耗一些系統(tǒng)資源,所以僅對重要項目審核,能降低系統(tǒng)資源的消耗。在審核注冊表之前,先要啟用系統(tǒng)審核功能。打開系統(tǒng)運行對話框,輸入“gpedit.msc”命令并回車,進入本地計算機策略控制臺,依次跳轉(zhuǎn)到“計算機配置”、“Windows 設(shè)置”、“安全設(shè)置”、“本地策略”、“審核策略”節(jié)點上,雙擊指定節(jié)點下的“審核系統(tǒng)事件”選項,彈出如圖6的選項設(shè)置框,勾選“成功”、“失敗”選項,單擊“確定”按鈕保存設(shè)置。
圖6 屬性對話框
啟用了系統(tǒng)審核功能后,就可以審核監(jiān)控特定注冊表分支內(nèi)容了,當然通過繼承功能,就用不著對注冊表相關(guān)分支進行審核設(shè)置了。如在審核與賬戶安全相關(guān)的注冊表分支時,不妨先進入系統(tǒng)注冊表編輯窗口,選中注冊表分支 選 項“HKEY_LOCAL_MACHINESAMSAM”,打開該分支選項的右鍵菜單,單擊“權(quán)限”命令,切換到權(quán)限編輯對話框,選擇“高級”按鈕,彈出高級安全設(shè)置框,選擇“審核”選項卡,單擊對應(yīng)選項設(shè)置頁面中的“添加”按鈕,導(dǎo)入要審核的用戶或組,針對每個權(quán)限定義好適當?shù)膶徍祟愋?,確認后退出設(shè)置對話框即可。