Rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的檔案、進程和網路連結等資訊,Rootkit一般都和木馬、後門等其他惡意程式結合使用。Rootkit通過載入特殊的驅動,修改系統核心,進而達到隱藏資訊的目的。
Windows Vista自身對惡意軟體的防護主要是通過驅動程式數位簽章、使用者存取控制(UAC)和WindowsDefender來實現的,前兩者對Rootkit類惡意軟體的防禦尤為重要。因為Rootkit的隱藏功能實現需要載入驅動,我們就先說說Vista的驅動程式載入管理:Vista驅動程式的安裝載入管理和原有的Windows版本相比有較大的改進,在Microsoft的設計中,Vista不允許載入沒有經過數位簽章的驅動程式,而在之前的Windows2000、XP、2003系統上,系統雖然會在安裝未簽名或老版本驅動程式時會有提示,但安裝好之後是能夠載入的。
出於Microsoft意料之外的是,“有數位簽章的驅動程式才能被Vista所載入”這個設定對Rootkit類的防護作用並不是很大。去年的Blackhat會議上,曾有研究人員示範過在VistaX64Beta2版本上通過修改磁碟上分頁檔來載入未經數位簽章的驅動程式,雖然這個漏洞稍後被Microsoft補上,但已經說明通過技術手段來突破Vista的驅動載入管理並非不可能。但要突破Vista驅動載入管理的更好途徑是在數位簽章本身上做功夫,之前曾有安全研究人員提到,Vista驅動程式的數位簽章申請的審核並不嚴格,只需要有合法的申請實體,並交納少許的申請費用即可。這樣,通過註冊或借用一個公司的名義,Rootkit作者完全可以從Microsoft拿到合法的驅動數位簽章,也就是說,很有可能會出現擁有Microsoft數位簽章的、“合法”的Rootkit程式。攻擊者還可以使用特殊的載入程式來載入沒經數位簽章的程式,安全公司LinchpinLabs最近就發布了一個叫做Astiv的小工具,這個工具實現的原理就是使用經過數位簽章的系統組件來載入未經數位簽章的驅動程式,而且用這種方式載入的驅動程式並不會出現在正常驅動程式列表中,更增強了載入目標驅動程式的隱蔽。
使用者存取控制(UAC)是Vista防禦惡意軟體的另外一個手段
在開啟了UAC的Vista系統上,使用者的許可權相當於被限制了的管理員權限,如果使用者程式要對系統硬碟及註冊表等地方進行修改的話,需要使用者進行互動的二次確認。如果使用者拒絕或者是目標程式比較特殊(比如木馬、後門等)不出現UAC提示,因為對系統目錄和註冊表的訪問被Vista所拒絕,除了極個別不寫入系統目錄的之外,大部分目標程式是無法安裝成功的。Rootkit程式在UAC環境中同樣會因為許可權問題而無法安裝成功,但很多情況下,攻擊者會使用社交工程學的方法來誘騙使用者信任攻擊者所提供的程式,並在UAC提示時選擇允許操作。
至此可以得出一個結論,由於WindowsVista從設計開始就很重視安全性,因此對它推出之前的Rootkit等惡意軟體的防禦水平到達了一個新的高度,攻擊者單純靠技術手段攻擊的成功率已經比在原先的Windows2000/XP/2003平台上大為下降。但我們也應該注意到,攻擊者會更多的使用社交工程手段,偽造和利用各種信任關係,欺騙使用者安裝惡意軟體。
如何在Vista下對Rootkit類惡意程式進行防護?使用者可以參考以下幾點:
1、保持Vista的系統補丁版本為最新。
2、不在不可信的來源擷取軟體,並在安裝使用時留意系統的各種提示,尤其是有關數位簽章的提示。
3、注意UAC的提示資訊,及時攔截試圖修改系統的危險操作。
4、使用反病毒軟體並保持病毒庫版本為最新,為防護惡意軟體多加一層保障。
5、定期使用支援Vista的反Rootkit工具對系統進行掃描檢查。