第 3 劑:ASLR 隨機記憶體編排
記憶體位置隨機配置,防堵惡意程式植入
史百誠表示,Vista 在核心層做的最大改變,除了 UAC 功能之外,另一個就是,藉助 Unix 系統的 ASLR (Address Space Load Randomization,位址空間配置隨機化) 功能。
ASLR 以前在 Unix 系統中就有,在電腦一開機時,就可以將一些重要的系統檔案下載到不同的記憶體位置。李倫銓指出,對於不同語言版本的 Windows XP 作業系統而言,其記憶體對應的位置都是一樣的,簡體中文版、英文版等,與正體中文版也都只有一小部分記憶體位置對應的差別。因此,以前駭客只要完成某一個語系作業系統的攻擊程式,就可以攻擊同一語系的電腦,對於其他語系電腦的入侵,有時候甚至也不需要多加修改即可適用。
不過,隨著 Vista 加入 ASLR 功能,讓每個作業系統記憶體空間位置編排隨機化,李倫銓說:「未來,Vista 很難出現蠕蟲,也很難有大規模的病毒擴散,「即使是緩衝區溢位攻擊的漏洞,也很難利用透過推論記憶體位置的手法,再次成功攻擊,」因為,「ASLR 的功能讓開發人員連除錯 (Debug) 都很難。」邱銘彰也同意這說法,「ASLR 功能讓駭客撰寫攻擊程式的難度變高,」ASLR 在 Vista 32 位元版本就具有這樣的功能,Nanika 說,但必須與處理器的 NX (No Execution,非執行技術) 功能配合,才能相得益彰。
目前有些惡意程式會採用緩衝區溢位的手法,注入記憶體中執行,為了確保電腦系統的安全,處理器晶片廠商不論是 AMD 或英特爾,都推出具有 NX 技術的處理器晶片,藉由保護記憶體中某一些片段,將記憶體設定為隔離區,讓處理器無法在這些片段執行指令,藉此阻止蠕蟲或其他惡意程式碼藉此執行。
不過,NX 保護對於針對特定系統函數的攻擊無效,此時若加上 ASLR 功能,因為難以確定系統函數的位址,兩者結合將可有效限制緩衝區溢位的危害程度。
下一頁