Sunday, June 20, 2010

Windows 為了改變使用者(使用管理員權限 -> 使用一般User權限) 所做的設計

我認為,Linux很大一部分的安全性來自於系統不允許使用者預設使用Root操作系統(很多資料也極力不建議這麼做),但是Windows絕大部分使用者還是使用管理員權限操作系統,導致許多惡意程式獲得過高的權限破壞系統

深入 Windows 核心 - Windows Internals - 第五版中,有提到不少關於Windows的安全性設計(作者顯然用一大章節才粗略的描述了概觀),其中也寫到了Windows UAC跟為了相容性而作的虛擬化設計

Windows UAC其實設計上有一個很大的功能,在於方便使用者在一般User下於必要時刻取得適當權限(e.g. 管理員權限),Windows 7一般User安全性有清楚的提及,我認為比起Linux在需要Root權限情況下所設計的詢問機制友善多了

相容用的虛擬化技術是為了相容一些被設計以管理員權限執行的軟體(大部分是如此,微軟現在也在將"以一般User權限角度設計軟體"的觀念推廣給軟體設計者),由於這些軟體本來預料中是會被以管理員權限執行的,所以也會做出許多一般User權限被阻止的行為(e.g. 寫檔案到C:\WINDOWS資料夾下),微軟為了相容這些軟體,會將這些被阻止的操作轉向到當前User的一個資料夾下(登錄檔則放在當前User的一個特殊Key下),就像是一個SandBox,軟體還是可以照常運作(它以為它操作成功了),但是又不會危害到Windows所建立的安全架構

不過虛擬化技術只在32bit有效,微軟認為64bit是個全新的開始,所以並沒有做這項相容設計

不過這目前看起來,大部分的使用者還是以管理員帳戶來操作系統

No comments:

Post a Comment