在微軟攻打新一代操作系統Longhorn的途中,發現Windows XP也存在一些不合理不完善的機制。於是作為新舊兩代操作系統的過渡,Services Pack 2一貼膏藥直指Windows XP肚臍。SP2徹底打破了以往常人眼中的“補丁”形象,Windows XP的安全性添上了濃墨重彩的一筆。但傳說中的SP2兼容性差又是怎麼一回事呢?沒有遇過SP2兼容性問題經歷的人也許並不當回事,但是當使用了P4 Prescott/Celeron D(C0步進核心)的處理器的用戶遇到安裝SP2後,系統停滯在啟動畫面而不能啟動的情況;或者有時某些編碼格式的DVD電影無法正常播放等,人們紛紛把質疑的目光投向SP2奪目的光輝。
筆者最近使用Realmagic Hollywood Plus DVD解碼軟件,遇到了無法播放,頻頻出錯的情況。
圖1 到微軟的官方
技術支持網站詢問,原來是SP2的DEP在搗鬼。
數據執行保護DEP可幫助保護您的計算機免受病毒和其他安全威脅的破壞。某些惡意軟件會利用軟件的安全漏洞發動攻擊,這些漏洞允許過多的數據被復制到計算機內存的某個區域。這種漏洞一般被稱作緩沖區溢出。Microsoft 正在與微處理器公司合作,以便讓 Windows 支持由硬件強制實施的執行保護(也被稱為NX或無執行)特性。通過這種方式,當某個發動攻擊的蠕蟲或病毒將程序代碼插入到一塊被標記為僅包含數據的內存部分時,應用程序或 Windows 組件將不會運行這些代碼。從Windows XP Service Pack 2開始,32 位版本的Windows利用了 64位AMD 和Intel Itanium 處理器家族的NX特性對軟件執行保護。換句話說,CPU已經開始具有殺毒功能。但是如果沒有用這些處理器的用戶又怎樣享受到相近的待遇呢?Windows XP Service Pack 2中可以實現軟件DEP
技術幫助系統抵御惡意代碼。
右鍵單擊“我的電腦”,點擊“屬性”,打開系統控制面板,點擊“高級”→“性能”→“設置”→“數據執行保護”,系統默認只對Windows內部程序和服務啟用DEP。這裡勾選為“除下列選定程序的所有程序和服務啟用DEP”,即可對全部程序加以執行保護。
圖2 但DEP的啟用也會帶來一些弊端,總結起來有三點:
1.和老版本的驅動(包括上文提到的解碼軟件)沖突,因為老版本的驅動有些指令與惡意代碼有些類似。這時,只要在數據執行保護對話框中,點擊“添加”,添加不需要執行保護的運行中會調用老版本驅動的程序即可。
2.給程序添加DEP後會降低程序的性能。
DEP本身可能存在安全漏洞。莫斯科安全公司Positive TechnologIEs披露了DEP的兩個漏洞。該公司開發了一個小補丁:PTmsHORP(下載地址:
http://www.maxpatrol.com/ptmshorp.ASP)。運行後即可對全部程序的DEP打上補丁。
圖3 【總結】DEP在保護計算機不被惡意代碼侵害的同時,也有本身所固有的種種缺憾。但總體來說,DEP打破了緩存區溢出漏洞無法彌補的神話,在處理器廠商的配合下。必然會引領操作系統的趨勢。