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