自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入了解Windows 7用戶(hù)帳戶(hù)控制

安全 漏洞
在家庭和公司環(huán)境中,使用標(biāo)準(zhǔn)用戶(hù)帳戶(hù)可以提高安全性并降低總體擁有成本。當(dāng)用戶(hù)使用標(biāo)準(zhǔn)用戶(hù)權(quán)限(而不是管理權(quán)限)運(yùn)行時(shí),系統(tǒng)的安全配置(包括防病毒和防火墻配置)將得到保護(hù)。

在家庭和公司環(huán)境中,使用標(biāo)準(zhǔn)用戶(hù)帳戶(hù)可以提高安全性并降低總體擁有成本。當(dāng)用戶(hù)使用標(biāo)準(zhǔn)用戶(hù)權(quán)限(而不是管理權(quán)限)運(yùn)行時(shí),系統(tǒng)的安全配置(包括防病毒和防火墻配置)將得到保護(hù)。這樣,用戶(hù)將能擁有一個(gè)安全的區(qū)域,可以保護(hù)他們的帳戶(hù)及系統(tǒng)的其余部分。對(duì)于企業(yè)部署,桌面 IT 經(jīng)理設(shè)置的策略將無(wú)法被覆蓋,而在共享家庭計(jì)算機(jī)上,不同的用戶(hù)帳戶(hù)將受到保護(hù),避免其他帳戶(hù)對(duì)其進(jìn)行更改。

但是,很久以來(lái),Windows 的用戶(hù)一直都在使用管理權(quán)限運(yùn)行。因此,軟件通常都開(kāi)發(fā)為使用管理帳戶(hù)運(yùn)行,并且(通常無(wú)意間)依賴(lài)于管理權(quán)限。為了讓更多軟件能夠使用標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行,并且?guī)椭_(kāi)發(fā)人員編寫(xiě)能夠使用標(biāo)準(zhǔn)用戶(hù)權(quán)限正常運(yùn)行的應(yīng)用程序,Windows Vista 引入了用戶(hù)帳戶(hù)控制 (UAC)。UAC 集成了一系列技術(shù),其中包括文件系統(tǒng)和注冊(cè)表虛擬化、受保護(hù)的系統(tǒng)管理員 (PA) 帳戶(hù)、UAC 提升權(quán)限提示,以及支持這些目標(biāo)的 Windows 完整性級(jí)別。我在我的會(huì)議演示文稿和 TechNet 雜志UAC 內(nèi)部信息一文中詳細(xì)討論了這些內(nèi)容。

Windows 7 沿用了 UAC 的目標(biāo),基礎(chǔ)技術(shù)相對(duì)未做改變。但是,它引入了 UAC 的 PA 帳戶(hù)可以運(yùn)行的兩種新模式,以及某些內(nèi)置 Windows 組件的自動(dòng)提升機(jī)制。在此文章中,我將論述推動(dòng) UAC 技術(shù)發(fā)展的因素、重新探討 UAC 和安全性之間的關(guān)系、描述這兩種新模式,并介紹自動(dòng)提升的具體工作方式。請(qǐng)注意,此文章中的信息反映了 Windows 7 預(yù)發(fā)布版本的行為,該行為在許多方面與 beta 版有所不同。

UAC 技術(shù)

UAC 技術(shù)的最基本元素和直接效益在于它能使標(biāo)準(zhǔn)用戶(hù)更方便地使用 Windows。演示示例展示了 Windows XP 和 Windows Vista 上有關(guān)設(shè)置時(shí)區(qū)的權(quán)限要求的不同之處。在 Windows XP 上,更改時(shí)區(qū)需要管理權(quán)限,實(shí)際上,即使是使用時(shí)間/日期控制面板小程序查看時(shí)區(qū)也需要管理權(quán)限。

這是因?yàn)?Windows XP 未將更改時(shí)間(安全敏感的系統(tǒng)操作)與更改時(shí)區(qū)(只是影響時(shí)間的顯示方式)區(qū)分開(kāi)來(lái)。在 Windows Vista(和 Windows 7)中,更改時(shí)區(qū)不是一項(xiàng)管理操作,并且時(shí)間/日期控制面板小程序也將管理操作與標(biāo)準(zhǔn)用戶(hù)操作進(jìn)行了分隔。僅僅這一項(xiàng)更改就讓許多企業(yè)能夠?yàn)槌霾畹挠脩?hù)配置標(biāo)準(zhǔn)用戶(hù)帳戶(hù),因?yàn)橛脩?hù)將能夠調(diào)整時(shí)區(qū)來(lái)反映他們的當(dāng)前位置。Windows 7 進(jìn)一步做出了改進(jìn),比如刷新系統(tǒng)的 IP 地址、使用 Windows Update 來(lái)安裝可選的更新和驅(qū)動(dòng)程序、更改顯示 DPI,以及查看標(biāo)準(zhǔn)用戶(hù)可訪問(wèn)的當(dāng)前防火墻設(shè)置。

文件系統(tǒng)和注冊(cè)表虛擬化在后臺(tái)工作,可以幫助許多無(wú)意間使用管理權(quán)限的應(yīng)用程序在沒(méi)有管理權(quán)限的情況下也能正常運(yùn)行。對(duì)于不必要地使用管理權(quán)限而言,最常見(jiàn)的情況是將應(yīng)用程序設(shè)置或用戶(hù)數(shù)據(jù)存儲(chǔ)在注冊(cè)表或文件系統(tǒng)中系統(tǒng)所使用的區(qū)域內(nèi)。舉例來(lái)說(shuō),某些舊版應(yīng)用程序?qū)⑵湓O(shè)置存儲(chǔ)在注冊(cè)表的系統(tǒng)范圍部分 (HKEY_LOCAL_MACHINE\Software),而不是每用戶(hù)部分 (HKEY_CURRENT_USER\Software),而注冊(cè)表虛擬化會(huì)將嘗試寫(xiě)入系統(tǒng)位置的操作轉(zhuǎn)到 HKEY_CURRENT_USER (HKCU) 中的位置,同時(shí)保持應(yīng)用程序兼容性。

設(shè)計(jì) PA 帳戶(hù)的目的是為了鼓勵(lì)開(kāi)發(fā)人員將應(yīng)用程序編寫(xiě)為只需要標(biāo)準(zhǔn)用戶(hù)權(quán)限,同時(shí)使盡可能多的在管理組件和標(biāo)準(zhǔn)用戶(hù)組件之間共享狀態(tài)的應(yīng)用程序能夠繼續(xù)工作。默認(rèn)情況下,Windows Vista 或 Windows 7 系統(tǒng)上的***個(gè)帳戶(hù)(在 Windows 的早期版本上為完全權(quán)限管理員帳戶(hù))是 PA 帳戶(hù)。PA 用戶(hù)執(zhí)行的任何程序都使用標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行,除非用戶(hù)明確提升了應(yīng)用程序,即授予應(yīng)用程序管理權(quán)限。諸如安裝應(yīng)用程序和更改系統(tǒng)設(shè)置等用戶(hù)活動(dòng)會(huì)觸發(fā)提升權(quán)限提示。這些提升權(quán)限提示是最顯著的 UAC 技術(shù),表現(xiàn)形式為切換到一個(gè)包含允許/取消對(duì)話(huà)框的屏幕,背景為灰色的桌面快照。

在安裝之后創(chuàng)建的帳戶(hù)是標(biāo)準(zhǔn)用戶(hù)帳戶(hù),默認(rèn)情況下,這些帳戶(hù)通過(guò)一個(gè)“即時(shí)權(quán)限提升”提示提供提升功能,該提示要求提供將用于授予管理權(quán)限的管理帳戶(hù)的憑據(jù)。利用這一便捷功能,只要共享家庭計(jì)算機(jī)的家庭成員或更注重安全的使用標(biāo)準(zhǔn)用戶(hù)帳戶(hù)的用戶(hù)知道管理帳戶(hù)的密碼,他們就能夠用管理權(quán)限來(lái)運(yùn)行應(yīng)用程序,而不必手動(dòng)切換到其他用戶(hù)登錄會(huì)話(huà)。此類(lèi)應(yīng)用程序的常見(jiàn)示例包括安裝程序以及家長(zhǎng)控制配置。

在啟用了 UAC 后,所有用戶(hù)帳戶(hù)(包括管理帳戶(hù))都將使用標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行。這意味著,應(yīng)用程序開(kāi)發(fā)人員必須考慮他們的軟件默認(rèn)情況下將沒(méi)有管理權(quán)限這一事實(shí)。這應(yīng)會(huì)提醒他們將其應(yīng)用程序設(shè)計(jì)為使用標(biāo)準(zhǔn)用戶(hù)權(quán)限工作。如果應(yīng)用程序或其功能的某些部分需要管理權(quán)限,它可以利用提升機(jī)制來(lái)允許用戶(hù)解鎖該功能。通常,應(yīng)用程序開(kāi)發(fā)人員只需進(jìn)行少許更改就可讓其應(yīng)用程序使用標(biāo)準(zhǔn)用戶(hù)權(quán)限正常工作。如有關(guān) UAC 的 E7 博客文章所述,UAC 成功地改變了開(kāi)發(fā)人員編寫(xiě)軟件的方式。

提升權(quán)限提示的另一個(gè)優(yōu)點(diǎn)是:它們能夠在軟件想要對(duì)系統(tǒng)進(jìn)行更改時(shí)“通知”用戶(hù),并使用戶(hù)有機(jī)會(huì)來(lái)阻止這種情況。例如,如果用戶(hù)不信任或不想允許修改系統(tǒng)的軟件包要求管理權(quán)限,則它們可以拒絕提示。#p#

提升和惡意軟件安全性

UAC 的主要目標(biāo)是讓更多用戶(hù)能夠使用標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行。但是,其中一項(xiàng) UAC 技術(shù)看起來(lái)像是安全功能:許可提示。許多人認(rèn)為,因?yàn)檐浖仨氁笥脩?hù)授予其管理權(quán)限,因此他們能夠防止惡意軟件獲得管理權(quán)限。提示是一種視覺(jué)暗示,它僅為其所述操作獲取管理權(quán)限,除此之外,用戶(hù)還可以切換到不同桌面來(lái)顯示提升對(duì)話(huà)框,以及使用 Windows 完整性機(jī)制,包括用戶(hù)界面特權(quán)隔離 (UIPI),這些都使人們更加堅(jiān)信這一理念。

正如在 Windows Vista 推出之前我們所談到的,提升的主要目的不是安全性,而是其方便性:如果用戶(hù)必須通過(guò)登錄到管理帳戶(hù)或通過(guò)“快速用戶(hù)切換”切換到管理帳戶(hù),從而切換帳戶(hù)以執(zhí)行管理操作,則大多數(shù)用戶(hù)都只會(huì)切換一次,而不會(huì)切換回來(lái)。更改應(yīng)用程序開(kāi)發(fā)人員進(jìn)行設(shè)計(jì)所針對(duì)的環(huán)境將不會(huì)有進(jìn)展。那么,安全桌面和 Windows 完整性機(jī)制的目的是什么?

為提示切換到不同桌面的主要原因是:標(biāo)準(zhǔn)用戶(hù)軟件無(wú)法“欺騙”提升權(quán)限提示,例如,它們無(wú)法通過(guò)在對(duì)話(huà)框上的發(fā)布者名稱(chēng)上繪圖來(lái)欺騙用戶(hù),讓用戶(hù)認(rèn)為是 Microsoft 或另一個(gè)軟件供應(yīng)商(而不是這些軟件)生成了提示,從而欺騙提升權(quán)限提示。這種替代桌面稱(chēng)為“安全桌面”,因?yàn)樗窍到y(tǒng)(而不是用戶(hù))所擁有的,就像系統(tǒng)顯示 Windows 登錄對(duì)話(huà)框的桌面一樣。

使用其他桌面還有一個(gè)重要目的,就是為了實(shí)現(xiàn)應(yīng)用程序兼容性:在正在運(yùn)行其他用戶(hù)擁有的應(yīng)用程序的桌面上,如果內(nèi)置輔助功能軟件(比如屏幕鍵盤(pán))能夠正常工作,那么此時(shí)就有一個(gè)第三方軟件不能正常工作。當(dāng)本地系統(tǒng)帳戶(hù)擁有的提升對(duì)話(huà)框顯示在用戶(hù)擁有的桌面上時(shí),該軟件將無(wú)法正常工作。

Windows 完整性機(jī)制和 UIPI 的設(shè)計(jì)目的是在提升的應(yīng)用程序周?chē)⒁坏辣Wo(hù)性屏障。它最初的目標(biāo)其中之一是防止軟件開(kāi)發(fā)人員投機(jī)取巧,利用已經(jīng)提升的應(yīng)用程序來(lái)完成管理任務(wù)。使用標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行的應(yīng)用程序無(wú)法將合成鼠標(biāo)或鍵盤(pán)輸入發(fā)送到提升的應(yīng)用程序中,以使應(yīng)用程序執(zhí)行其指令,也無(wú)法將代碼注入提升的應(yīng)用程序以執(zhí)行管理操作。

Windows 完整性機(jī)制和 UIPI 在 Windows Vista 中用于保護(hù)模式 Internet Explorer,使得感染 IE 的運(yùn)行實(shí)例的惡意軟件更難于修改用戶(hù)帳戶(hù)設(shè)置,例如,將本身配置為在每次用戶(hù)登錄時(shí)啟動(dòng)。盡管 Windows Vista 的一個(gè)早期設(shè)計(jì)目標(biāo)是使用帶有安全桌面的提升、Windows 完整性機(jī)制和 UIPI,在使用標(biāo)準(zhǔn)用戶(hù)權(quán)限和管理權(quán)限運(yùn)行的軟件之間建立一個(gè)堅(jiān)不可摧的屏障(稱(chēng)為安全邊界),但由于以下兩個(gè)原因,而導(dǎo)致該目標(biāo)未能實(shí)現(xiàn),并隨之被放棄:可用性和應(yīng)用程序兼容性。

圖 1 顯示可執(zhí)行文件的名稱(chēng)。

圖 1 顯示可執(zhí)行文件的名稱(chēng)。

首先,考慮提升對(duì)話(huà)框本身。它顯示將被授予管理權(quán)限的主要可執(zhí)行文件的名稱(chēng)和發(fā)布者。遺憾的是,盡管越來(lái)越多的軟件發(fā)布者為其代碼添加了數(shù)字簽名,但仍然有一些軟件發(fā)布者沒(méi)有這樣做,并且還有許多未添加簽名的舊版應(yīng)用程序。對(duì)于未簽名的軟件而言,提升對(duì)話(huà)框只會(huì)顯示可執(zhí)行文件的文件名,因此,對(duì)于某些惡意軟件(例如,已采用用戶(hù)帳戶(hù)運(yùn)行并且正在監(jiān)視未簽名 Setup.exe 應(yīng)用程序安裝程序的提升)而言,將能夠?qū)⒖蓤?zhí)行文件替換為惡意的 Setup.exe,而用戶(hù)卻一無(wú)所知(請(qǐng)參閱圖 1)。

其次,該對(duì)話(huà)框不會(huì)告知用戶(hù)#p#可執(zhí)行文件在啟動(dòng)時(shí)將會(huì)加載哪些 DLL。如果可執(zhí)行文件位于用戶(hù)可以控制的目錄中,則使用用戶(hù)標(biāo)準(zhǔn)權(quán)限運(yùn)行的惡意軟件將能夠替換該位置中軟件將使用的任何關(guān)聯(lián) DLL。此外,惡意軟件可以使用并行功能,使可執(zhí)行文件加載應(yīng)用程序或系統(tǒng) DLL 的惡意版本。并且,除非用戶(hù)警惕地單擊詳細(xì)信息按鈕,并仔細(xì)查看為提升可執(zhí)行文件列出的文件路徑,否則惡意軟件可以將可執(zhí)行文件復(fù)制到名稱(chēng)類(lèi)似的位置,例如,\ProgramFiles\Vendor\Application.exe(注意應(yīng)為“Program Files”的內(nèi)容中缺少的空格),在該位置中,惡意軟件將可控制應(yīng)用程序加載哪些 DLL。在圖 2 中,我已將 Microsoft 網(wǎng)絡(luò)監(jiān)視器的一個(gè)組件復(fù)制到用戶(hù)創(chuàng)建的 C:\ProgramFiles 目錄(用戶(hù)可控制該目錄),并啟動(dòng)了該組件。

圖 2 已啟動(dòng)的 Microsoft 網(wǎng)絡(luò)監(jiān)視器組件的副本。 

圖 2 已啟動(dòng)的 Microsoft 網(wǎng)絡(luò)監(jiān)視器組件的副本。

***,為了實(shí)現(xiàn)應(yīng)用程序兼容性,提升的應(yīng)用程序與標(biāo)準(zhǔn)用戶(hù)環(huán)境共享實(shí)質(zhì)性狀態(tài),惡意應(yīng)用程序可以使用該狀態(tài)來(lái)影響提升的應(yīng)用程序的行為。就這一點(diǎn)而言,最直觀的示例就是用戶(hù)的注冊(cè)表配置文件 HKEY_CURRENT_USER (HKCU)。該配置文件是共享的,因?yàn)橛脩?hù)希望他們作為標(biāo)準(zhǔn)用戶(hù)注冊(cè)的設(shè)置和擴(kuò)展能夠在提升的應(yīng)用程序中工作。惡意軟件可以使用 HKCU 中注冊(cè)的外殼擴(kuò)展來(lái)加載到使用任何外殼瀏覽對(duì)話(huà)框(比如“打開(kāi)文件”和“保存文件”)的已提升應(yīng)用程序中。其他各種狀態(tài)也是共享的,特別是基本命名對(duì)象命名空間,應(yīng)用程序?qū)⒃谄渲袆?chuàng)建同步和共享內(nèi)存對(duì)象。舉例來(lái)說(shuō),惡意軟件可以利用該共享來(lái)劫持提升的應(yīng)用程序使用的共享內(nèi)存對(duì)象,從而對(duì)應(yīng)用程序和系統(tǒng)造成危害。

至于 Windows 完整性機(jī)制,由于我前面提到的提升問(wèn)題,因此它作為屏障的有效性是有限的,而它還存在由于應(yīng)用程序兼容性而導(dǎo)致的限制。舉例來(lái)說(shuō),UIPI 不會(huì)阻止標(biāo)準(zhǔn)用戶(hù)應(yīng)用程序在桌面上繪圖,這一點(diǎn)可能會(huì)被用來(lái)欺騙用戶(hù),采用為惡意軟件授予管理權(quán)限的方式來(lái)與提升的應(yīng)用程序交互。同時(shí),Windows 完整性機(jī)制也不能跨網(wǎng)絡(luò)應(yīng)用。采用 PA 帳戶(hù)運(yùn)行的標(biāo)準(zhǔn)用戶(hù)應(yīng)用程序?qū)⒛茉L問(wèn) PA 帳戶(hù)具有管理權(quán)限的遠(yuǎn)程系統(tǒng)上的系統(tǒng)資源。如果解決這些限制,將會(huì)對(duì)應(yīng)用程序兼容性造成很大影響。盡管如此,我們一直在探尋提高系統(tǒng)安全性(例如,改善保護(hù)模式 IE),同時(shí)解決應(yīng)用程序兼容性問(wèn)題并與軟件開(kāi)發(fā)人員密切配合的方法。

那么,當(dāng)您在啟用了 UAC 的情況下采用 Windows Vista PA 帳戶(hù)運(yùn)行時(shí),您將得到什么程度的惡意軟件防護(hù)?首先,請(qǐng)記住,要使任何這種情況發(fā)生,惡意軟件首先必須進(jìn)入系統(tǒng)并且開(kāi)始執(zhí)行。Windows 具有許多深層防御功能,其中包括數(shù)據(jù)執(zhí)行保護(hù) (DEP)、地址空間加載隨機(jī)化 (ASLR)、保護(hù)模式 IE、IE 8SmartScreen 篩選器,以及可以幫助防止惡意軟件進(jìn)入系統(tǒng)并運(yùn)行的 Windows Defender。

至于惡意軟件通過(guò)某種方式成功進(jìn)入系統(tǒng)的情況,由于惡意軟件作者(比如合法的開(kāi)發(fā)人員)假設(shè)用戶(hù)使用管理權(quán)限運(yùn)行,因此大多數(shù)惡意軟件將無(wú)法正常工作。僅這一點(diǎn)可以被視為一種安全優(yōu)勢(shì)。但是,已進(jìn)入系統(tǒng)并且設(shè)計(jì)為可利用這些機(jī)會(huì)的惡意軟件將能夠在用戶(hù)***次提升時(shí)獲得管理權(quán)限 — 但惡意軟件甚至不需要等待“實(shí)際”提升,因?yàn)樗梢源俪商嵘@種提升甚至可以欺騙最注重安全的用戶(hù)。我已經(jīng)在我的 UAC 內(nèi)部信息Windows 安全邊界演示文稿中公開(kāi)演示過(guò)惡意軟件如何能夠劫持提升過(guò)程(演示位于安全邊界討論的 1 分 03 秒處)。但是,請(qǐng)記住,如果惡意軟件已經(jīng)開(kāi)始運(yùn)行,它只需使用標(biāo)準(zhǔn)用戶(hù)權(quán)限就可達(dá)到惡意軟件想要達(dá)到的大部分目的,其中包括將本身配置為在每次用戶(hù)登錄時(shí)運(yùn)行、竊取或刪除所有用戶(hù)的數(shù)據(jù),或者甚至成為僵尸網(wǎng)絡(luò)的一部分。#p#

Windows 7 中的不同之處

我在前面提過(guò),Windows 7 中的某些操作現(xiàn)在可由標(biāo)準(zhǔn)用戶(hù)執(zhí)行,但正如有關(guān) UAC 的 E7 博客文章所述,我們還認(rèn)識(shí)到,我們可以在不影響 UAC 的目標(biāo)的情況下使 Windows 體驗(yàn)更加流暢。許多用戶(hù)抱怨說(shuō),當(dāng)他們執(zhí)行常見(jiàn)的系統(tǒng)管理操作時(shí),Windows Vista 本身會(huì)頻繁地請(qǐng)求管理權(quán)限。使 Windows 能夠針對(duì)標(biāo)準(zhǔn)用戶(hù)環(huán)境正常工作對(duì)我們最有利,因?yàn)檫@樣將為我們的客戶(hù)帶來(lái)利益。但是,提升權(quán)限提示并沒(méi)有告誡或鼓勵(lì)我們這樣做,而是會(huì)強(qiáng)制用戶(hù)在絕大多數(shù)用戶(hù)都不理解的對(duì)話(huà)框中再次單擊。因此,Windows 7 開(kāi)始從默認(rèn) Windows 體驗(yàn)中***程度地減少這些提示,并使以管理員身份運(yùn)行的用戶(hù)能夠控制其提示體驗(yàn)。

為此,我們進(jìn)一步重構(gòu)了系統(tǒng),這樣,擁有標(biāo)準(zhǔn)用戶(hù)權(quán)限的用戶(hù)將能執(zhí)行更多任務(wù),并且,我們減少了若干多提示方案(例如,在 IE 中安裝 ActiveX 控件)中的提示數(shù)量。Windows 7 還引入了兩種新的 UAC 操作模式,可以在新的 UAC 配置對(duì)話(huà)框(請(qǐng)參閱圖 3)中選擇這些模式。通過(guò)轉(zhuǎn)到控制面板,單擊“用戶(hù)帳戶(hù)”,單擊“用戶(hù)帳戶(hù)”,然后單擊“更改用戶(hù)帳戶(hù)控制設(shè)置”,您可以打開(kāi)該對(duì)話(huà)框。(您也可以通過(guò)單擊提升權(quán)限提示上的“顯示這些通知時(shí)進(jìn)行更改”鏈接或通過(guò)訪問(wèn)“操作中心”來(lái)進(jìn)入該對(duì)話(huà)框。)

圖 3 可在新的 UAC 配置對(duì)話(huà)框中選擇的兩種新 UAC 操作模式。 

圖 3 可在新的 UAC 配置對(duì)話(huà)框中選擇的兩種新 UAC 操作模式。

圖 3 中顯示的默認(rèn)設(shè)置就是其中一個(gè)新級(jí)別。與位于滑塊頂部并相當(dāng)于 Windows Vista 中的默認(rèn)模式的“始終通知”不同,只有當(dāng)非 Windows 可執(zhí)行文件請(qǐng)求提升時(shí),Windows 7 才會(huì)默認(rèn)提示用戶(hù);針對(duì)非 Windows 提升的行為與 Windows Vista 相同。

下面接下來(lái)的滑塊位置是第二個(gè)新設(shè)置,它的標(biāo)簽相同,只是后面附加了“(不降低桌面亮度)”。該模式和默認(rèn)模式的唯一不同之處在于:提示將出現(xiàn)在用戶(hù)的桌面(而不是安全桌面)上。這樣的好處是:用戶(hù)可以在提示處于活動(dòng)狀態(tài)的同時(shí)與桌面交互,但正如我之前提到的,將會(huì)出現(xiàn)第三方輔助功能軟件可能無(wú)法在該提示對(duì)話(huà)框上正常工作的風(fēng)險(xiǎn)。

***,如果選擇***部的滑塊位置,將會(huì)完全禁用 UAC 技術(shù),這樣,所有采用 PA 帳戶(hù)運(yùn)行的軟件都將使用完全管理權(quán)限運(yùn)行、文件系統(tǒng)和注冊(cè)表虛擬化將被禁用,并且保護(hù)模式 IE 將被禁用。盡管采用此設(shè)置時(shí)將沒(méi)有提示,但保護(hù)模式 IE 的損失是此模式的一個(gè)很大的弊端。#p#

自動(dòng)提升

在采用中間兩種設(shè)置時(shí),之所以(大多數(shù))Windows 可執(zhí)行文件的提升不會(huì)產(chǎn)生提示,其原因在于系統(tǒng)“自動(dòng)提升”了 Windows 可執(zhí)行文件。首先,在此上下文中,Windows 對(duì) Windows 可執(zhí)行文件的定義是什么?答案取決于若干因素,但有兩個(gè)條件必須得到滿(mǎn)足:該可執(zhí)行文件必須經(jīng)過(guò) Windows Publisher 的數(shù)字簽名,Windows Publisher 是用于對(duì) Windows 附帶的所有代碼進(jìn)行簽名的證書(shū)(僅由 Microsoft 進(jìn)行簽名是不夠的,因此 Windows 未附帶的 Microsoft 軟件不包括在內(nèi));并且該可執(zhí)行文件必須位于其中一個(gè)為數(shù)不多的“安全”目錄中。安全目錄是指標(biāo)準(zhǔn)用戶(hù)無(wú)法修改的目錄,并且它們包括 %SystemRoot%\System32(例如,\Windows\System32)及其大多數(shù)子目錄、%SystemRoot%\Ehome,以及 %ProgramFiles% 下的少許目錄(其中包括 Windows Defender 和 Windows 日記本)。

同時(shí),視可執(zhí)行文件是普通 .exe、Mmc.exe 還是 COM 對(duì)象而定,自動(dòng)提升還有一些附加規(guī)則。如果 .exe 種類(lèi)的 Windows 可執(zhí)行文件(如前面所定義)在其清單中指定了 autoElevate 屬性,這些可執(zhí)行文件將會(huì)自動(dòng)提升。應(yīng)用程序也將在該清單中向 UAC 指明它們需要管理權(quán)限。此處的 Sysinternals Sigcheck 實(shí)用工具通過(guò)命令“sigcheck –m %systemroot%\system32\taskmgr.exe”來(lái)轉(zhuǎn)儲(chǔ)任務(wù)管理器 (Taskmgr.exe) 的清單,該清單顯示任務(wù)管理器已加入自動(dòng)提升,如圖 4 所示。

圖 4 autoElevate 屬性

圖 4 autoElevate 屬性

在目錄樹(shù)中查找自動(dòng)提升可執(zhí)行文件的一種簡(jiǎn)便方法是,通過(guò)如下所示的命令使用 Sysinternals Strings 實(shí)用工具:

  1. strings –s *.exe | findstr /i autoelevate 

還有一個(gè)硬編碼列表,其中包含獲得自動(dòng)提升處理的 Windows 可執(zhí)行文件。這些 Windows 可執(zhí)行文件也并非是 Windows 7 附帶的內(nèi)部文件,因此它們必須能夠在 autoexecute 屬性會(huì)導(dǎo)致錯(cuò)誤的舊版系統(tǒng)上運(yùn)行。列表中包括 Migwiz.exe(遷移向?qū)Вkgmgr.exe(程序包管理器)和 Spinstall.exe(Service Pack 安裝程序)。

將對(duì) Microsoft 管理控制臺(tái) Mmc.exe 進(jìn)行特殊處理,因?yàn)樗休d了多個(gè)以 DLL 形式實(shí)現(xiàn)的系統(tǒng)管理管理單元。Mmc.exe 通過(guò)命令行啟動(dòng),該命令行指定一個(gè) .MSC 文件,其中列出要加載的管理單元 MMC。Mmc.exe 將在通過(guò) PA 帳戶(hù)啟動(dòng)時(shí)請(qǐng)求管理權(quán)限,當(dāng) Windows 發(fā)現(xiàn)這一點(diǎn)時(shí),它將驗(yàn)證 Mmc.exe 是否為 Windows 可執(zhí)行文件,然后檢查 .MSC。為了獲得自動(dòng)提升資格,.MSC 文件必須滿(mǎn)足 Windows 可執(zhí)行文件條件(由 Windows 在安全的位置中簽名),并且必須列在自動(dòng)提升 .MSC 的內(nèi)部列表中。該列表實(shí)際上包括 Windows 附帶的所有 .MSC 文件。

***,COM 對(duì)象可以通過(guò)創(chuàng)建一個(gè)名為 Elevation 的子項(xiàng)(其名為 Enabled 的值設(shè)置為 1),利用其注冊(cè)表項(xiàng)中的注冊(cè)表值來(lái)指定需要管理權(quán)限。圖 5 顯示了外殼的“復(fù)制”/“移動(dòng)”/“重命名”/“刪除”/“鏈接”對(duì)象的注冊(cè)表項(xiàng),當(dāng)用戶(hù)對(duì)其帳戶(hù)沒(méi)有權(quán)限訪問(wèn)的位置執(zhí)行文件系統(tǒng)操作時(shí),資源管理器將使用該對(duì)象。

圖 5 外殼注冊(cè)表項(xiàng)

圖 5 外殼注冊(cè)表項(xiàng)

要使 COM 對(duì)象能夠自動(dòng)提升,它還必須是 Windows 可執(zhí)行文件,并且必須已由 Windows 可執(zhí)行文件進(jìn)行實(shí)例化。(不過(guò),無(wú)需將實(shí)例化可執(zhí)行文件標(biāo)記為自動(dòng)提升。)例如,當(dāng)您使用資源管理器通過(guò) PA 帳戶(hù)在 %ProgramFiles% 目錄中創(chuàng)建目錄時(shí),操作將會(huì)自動(dòng)提升,因?yàn)?COM 對(duì)象請(qǐng)求了提升、對(duì)象的 DLL 是 Windows 可執(zhí)行文件,并且資源管理器是 Windows 可執(zhí)行文件。#p#

自動(dòng)提升與UAC的目標(biāo)

那么,所有特殊自動(dòng)提升規(guī)則背后的原理是什么?選擇要自動(dòng)提升哪些程序以及不自動(dòng)提升哪些程序是由以下問(wèn)題確定的:“應(yīng)用程序開(kāi)發(fā)人員是否能夠利用自動(dòng)提升無(wú)意間或不費(fèi)力地依賴(lài)于管理權(quán)限?”由于可以使用 Cmd.exe 通過(guò)命令行參數(shù)來(lái)執(zhí)行批處理腳本,并且普通用戶(hù)不需要以提升方式運(yùn)行命令提示符(大多數(shù)用戶(hù)甚至不知道命令提示符是什么),因此未將 Cmd.exe 列入自動(dòng)提升的清單。同樣,承載控制面板插件的可執(zhí)行文件 Rundll32.exe 在 Windows 7 的最終版本中也未自動(dòng)提升,因?yàn)閷?duì)于任何常見(jiàn)管理任務(wù)而言,并不需要對(duì)其進(jìn)行提升,并且,如果 Rundll32.exe 進(jìn)行了自動(dòng)提升,則它通過(guò)命令行承載任意 DLL 的能力將會(huì)導(dǎo)致開(kāi)發(fā)人員要求使用管理員權(quán)限,而自己卻未意識(shí)到。

自 Windows Vista 測(cè)試版發(fā)布以來(lái),最終用戶(hù)一直在要求 Windows 提供一種向自動(dòng)提升列表中添加任意應(yīng)用程序的方法。經(jīng)常被提及的原因是:他們常用的某個(gè)第三方應(yīng)用程序強(qiáng)制他們不斷單擊提升權(quán)限提示,而這已經(jīng)成為他們?nèi)粘9ぷ鞯囊徊糠?。就?Windows Vista 一樣,Windows 7 并未提供這種功能。我們理解這種操作非常繁瑣,并且可能有這些應(yīng)用程序無(wú)法在沒(méi)有管理權(quán)限的情況下運(yùn)行的合理原因,但開(kāi)發(fā)人員將會(huì)避免將其代碼修正為使用標(biāo)準(zhǔn)用戶(hù)權(quán)限,而這樣的風(fēng)險(xiǎn)太高。即使有關(guān)哪些應(yīng)用程序進(jìn)行自動(dòng)提升的列表只能由管理員訪問(wèn),但開(kāi)發(fā)人員只需更改其要求一次性提升的應(yīng)用程序安裝程序,就可將其應(yīng)用程序添加到列表中。作為替代,我們選擇進(jìn)行投資來(lái)進(jìn)行培訓(xùn)并與應(yīng)用程序開(kāi)發(fā)人員密切合作,以確保其程序能夠以標(biāo)準(zhǔn)用戶(hù)身份正常工作。

很多人發(fā)現(xiàn),采用 PA 帳戶(hù)通過(guò)標(biāo)準(zhǔn)用戶(hù)權(quán)限運(yùn)行的第三方軟件可以利用自動(dòng)提升來(lái)獲取管理權(quán)限。例如,軟件可以使用 WriteProcessMemory API 將代碼注入資源管理器,并使用 CreateRemoteThread API 來(lái)執(zhí)行該代碼,這種技術(shù)稱(chēng)為 DLL 注入。由于代碼在資源管理器(一種 Windows 可執(zhí)行文件)中執(zhí)行,因此它可以利用自動(dòng)提升的 COM 對(duì)象(比如“復(fù)制”/“移動(dòng)”/“重命名”/“刪除”/“鏈接”對(duì)象)來(lái)修改系統(tǒng)注冊(cè)表項(xiàng)或目錄,并為軟件授予管理權(quán)限。如果是這樣,這些步驟將需要蓄意謀劃,而且并非無(wú)關(guān)緊要,因此,與將其軟件修正為使用標(biāo)準(zhǔn)用戶(hù)權(quán)限來(lái)運(yùn)行相比較,我們不相信正當(dāng)?shù)拈_(kāi)發(fā)人員會(huì)選擇進(jìn)行這些步驟。事實(shí)上,我們建議任何應(yīng)用程序開(kāi)發(fā)人員不要依賴(lài)于系統(tǒng)中的提升行為,并且建議應(yīng)用程序開(kāi)發(fā)人員測(cè)試其軟件在標(biāo)準(zhǔn)用戶(hù)模式下運(yùn)行的情況。

接下來(lái)的發(fā)現(xiàn)是,惡意軟件可以使用同樣的技術(shù)獲取管理權(quán)限。同樣,情況確實(shí)如此,但正如我前面指出的,惡意軟件也可以通過(guò)提示的提升來(lái)危害系統(tǒng)。從惡意軟件的角度來(lái)看,Windows 7 的默認(rèn)模式并不比“始終通知”模式(“Vista 模式”)安全多少,并且,采用管理權(quán)限的惡意軟件在 Windows 7 的默認(rèn)模式下運(yùn)行時(shí),將仍然會(huì)崩潰。

結(jié)論

總而言之,UAC 是一組具有一個(gè)整體目標(biāo)的技術(shù):使用戶(hù)能夠以標(biāo)準(zhǔn)用戶(hù)身份運(yùn)行。因?yàn)閷?duì) Windows 進(jìn)行了更改,使標(biāo)準(zhǔn)用戶(hù)能夠執(zhí)行以前需要管理權(quán)限的更多操作,再結(jié)合文件和注冊(cè)表虛擬化以及提示,從而共同實(shí)現(xiàn)了此目標(biāo)。最終標(biāo)準(zhǔn)是:默認(rèn)的 Windows 7 UAC 模式通過(guò)減少提示使 PA 用戶(hù)的體驗(yàn)更加流暢、允許用戶(hù)控制可以修改其系統(tǒng)的合法軟件,并仍然實(shí)現(xiàn) UAC 的目標(biāo),即讓更多的軟件能夠在沒(méi)有管理權(quán)限的情況下運(yùn)行,并繼續(xù)使軟件生態(tài)系統(tǒng)轉(zhuǎn)變?yōu)榫帉?xiě)能夠使用標(biāo)準(zhǔn)用戶(hù)權(quán)限工作的軟件。

文章地址

本文來(lái)源:微軟TechNet中文站

【責(zé)任編輯:佟媛微 TEL:(010)68476606】

責(zé)任編輯:佟健 來(lái)源: 微軟TechNet中文站
相關(guān)推薦

2012-05-03 08:44:31

2010-06-23 20:31:54

2010-10-21 15:46:05

SQL Server服

2010-01-20 09:11:56

2010-10-14 11:25:39

2010-10-14 11:33:42

MySQL用戶(hù)

2010-12-27 14:33:01

用戶(hù)帳戶(hù)控制

2010-11-19 16:22:14

Oracle事務(wù)

2010-07-13 09:36:25

2009-08-25 16:27:10

Mscomm控件

2022-08-26 13:48:40

EPUBLinux

2020-09-21 09:53:04

FlexCSS開(kāi)發(fā)

2020-07-20 06:35:55

BashLinux

2022-06-03 10:09:32

威脅檢測(cè)軟件

2010-11-15 11:40:44

Oracle表空間

2011-07-18 15:08:34

2013-04-16 10:20:21

云存儲(chǔ)服務(wù)云存儲(chǔ)SLA服務(wù)水平協(xié)議

2021-04-28 10:13:58

zookeeperZNode核心原理

2021-01-19 12:00:39

前端監(jiān)控代碼

2010-11-08 13:54:49

Sqlserver運(yùn)行
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)