從Vista到Windows 7微軟用戶帳戶控制功能
在Windows 7中,微軟改變了用戶帳戶控制功能的工作方式,根據來自安全專家的觀點,這將會降低操作系統的安全性。可信賴計算技術是否會因此受到影響,而變得無關緊要?
2002年1月,比爾·蓋茨發布了可信賴計算技術,從根本上將微軟的工作重點從創建功能豐富的操作系統,轉移到保障用戶的安全和隱私。蓋茨先生在備忘錄中解釋說:
“過去,我們致力于讓軟件變得擁有更多新功能和特色,讓整個平臺具有豐富的可擴展性,以便為用戶提供更多服務。在這一領域,我們已經作出了出色的工作,但除非用戶信賴我們的軟件,否則,所有的偉大功能都將變成無關緊要的。
為了強調這一點,蓋茨先生繼續說:
“因此,當需要在新功能和安全之間進行選擇時,現在我們必須選擇安全。我們的產品必須可以立即使用,隨著安全形式的發展變化,還必須不斷地進行完善和改進。
大多數人認為這種持續的努力獲得了成功,特別是隨著用戶帳戶控制(UAC)功能的到來。
什么是用戶帳戶控制
微軟意識到,如果要建立可信賴計算技術,容許用戶在所有時間都擁有系統管理員權限(安全方面的主要風險來源)是不可接受的。因此,從Vista操作系統開始,微軟開始了調整。這些調整最終成為用戶帳戶控制功能,包含了如下所示的內容:
*在可行的情況下,進行操作的權限將從系統管理員調整為標準用戶。在這方面,最明顯的一個例子就是給予標準用戶調整時區設置的權限。
*利用虛擬化技術在沒有獲得系統管理員權限的情況下協助程序運行。
*對程序進行再處理,這樣用戶帳戶控制功能就可以知道在什么情況下需要系統管理員權限。
*確保在系統管理員權限下運行的程序和在標準用戶權限下運行的程序是分離的。
用戶帳戶控制功能的工作原理
用戶帳戶控制功能是相當復雜的。因此,我推薦大家閱讀微軟公司的馬克·魯西諾偉奇發表在TechNet上的文章《深入了解WindowsVista的用戶帳戶控制功能》,在文中他對用戶帳戶控制功能的工作原理進行了詳細的介紹。
在默認設置下,用戶帳戶控制功能會授予用戶標準權限。如果一個程序需要系統管理員權限才能運行的話,用戶帳戶控制功能將詢問用戶是否提高該任務的權限。這樣的調整可以防止惡意軟件在自動安裝的時間獲取系統管理員權限。
系統管理員批準模式
用戶帳戶控制功能利用系統管理員批準模式(AAM)來處理權限的調整。AAM在用戶的登陸日志中創建了兩個配置文件,一個用來處理標準的用戶權限,一個用來提供系統管理員權限。正如我前面提到的,UAC可以提升用戶的權限。我并不知道這里存在兩種類型的調整方式。一種叫作“即時權限提升(OTS)型,另一種則是“同意型。
用戶使用的權限調整類型,取決于他是否屬于本地系統管理員組。如果不屬于的話,UAC將使用OTS型,這時請求需要獲得屬于本地系統管理員組的用戶批準。如果用戶屬于本地系統管理員組的話,UAC將使用同意型的權限調整方式,請求當前用戶許可。
看起來UAC是一個非常好的創意。它模仿自Linux的超級用戶,同時操作起來更加便利。正如我所想的。進一步的深入研究發現了一些問題。
便利與安全
馬克·魯西諾偉奇和吉姆·阿爾欽(原微軟成員)都承認,AAM模式的關注重點是方便,而不是安全。在關于AAM模式的文章中,阿爾欽先生提到:
“該功能(AAM)僅僅是為了方便系統管理員的操作而設計的。系統管理員可以利用該模式在不同的進程之間建立安全邊界。在這種情況下,處在隔離中的進程是有可能被干擾的。
阿爾欽先生進一步解釋道:
“如果系統管理員在同一桌面上運行多個任務的話,那惡意軟件就有可能從一個非提高進程中攻擊或者干預權限提高的進程。
這是我對此邏輯的理解。如果用戶需要在配置文件中進行切換以獲得系統管理員權限的話,我相信大多數用戶只會切換一次,并永遠不會再返回到使用標準用戶權限的狀態。不過,對于UAC來說,運行權限和程序分離是一條重要的原則。因此,這是否屬于可信賴計算技術的一個缺陷。
魯西諾偉奇先生在另一篇文章《深入了解Windows 7用戶帳戶控制功能》中解釋了微軟放棄使用進程隔離技術的原因:
“盡管這屬于Windows Vista的一個早期設計目標,利用安全桌面系統的權限調整,Windows誠信機制和用戶界面特權隔離來建立安全邊界,對標準權限下的進程和系統管理員權限下的進程進行隔離,但有兩個原因阻止了該目標的實現,它們是:可用性和應用程序兼容性。
對于微軟來說,公平地講UAC是聊勝于無的。魯西諾偉奇先生指出,UAC可以提供哪些幫助:
“因為惡意軟件編寫者的目標是擁有系統管理員權限的用戶,在某種程度上惡意軟件的目標是控制整個系統,因此,大多數惡意軟件將無法正常使用。UAC和Windows 7
在Windows 7中,微軟對UAC的工作方式進行了調整。在Windows7中,用戶獲得了更多的自主權。如果你需要更改用戶帳戶控制設置,選擇用戶帳戶,進入控制面板,就會發現新選項。這里有四項設置:
*最高安全權限:就是“總是提示,等同于Vista的默認模式。
*次級安全權限:是Windows 7的默認設置,在非Windows可執行文件要求權限提升的時間,會提示用戶。
*三級安全權限:類似次級安全權限。不同之處在于是在用戶的桌面上進行提示,而不是安全桌面。
*最低安全權限:在該設置下,UAC提供的所有保護功能都被關閉。
除了在UAC處理過程中,更多得聽取來自用戶的建議外,微軟也開始使用“自動權限調整技術,企圖減少提交給用戶的提示數量。限于自動權限調整的本質,微軟非常重視那些可以利用權限升級的程序。他們在以下方面放寬了限制:
*該可執行文件必須由Windows數字出版商簽署。
*該可執行文件必須位于一個Windows安全目錄中。
方便更多,安全更少
看起來,微軟并沒有給予足夠的重視,這引起了安全專家的關注。特別是在研究人員拉斐爾·里韋拉和鄭龍開發出兩種“概念證明程序后,其中的一種可以禁用UAC,而另一種可以利用UAC的自動權限提升將攻擊者所選擇惡意軟件的權限予以提升。
真相是什么
在研究UAC發生的變化時,我感覺到發生了一些變化。微軟和安全分析師對UAC應該提供什么樣的功能有著截然不同的看法。分析師希望微軟的UAC應該象Linux一樣控制管理權限。
微軟并不這樣認為。我讓魯西諾偉奇先生闡明了微軟目前的觀點:
“對于Windows7默認的UAC模式來說,底線是保證用戶的體驗,減少提示的數量,讓他們可以控制修改系統的合法軟件。UAC的目標是鼓勵更多軟件在運行的時間不需要獲取系統管理員權限,廣大軟件開發人員選擇在標準用戶權限下開發軟件。
真的會是這么簡單嗎?UAC的真正目的是迫使軟件開發人員在標準用戶權限下編寫代碼。
最后的思考
我認為可信賴計算技術和蓋茨先生負責的時間相比,并沒有變化。你覺得呢?
相關文章:
