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