欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Making Your Application UAC Aware
Making Your Application UAC Aware
Posted on 2007-10-02 09:17hylotta 閱讀(524) 評論(0)編輯
UAC 的目標
UAC 旨在使用戶(hù)能夠使用標準用戶(hù)權限(而不是管理權限)運行。管理權限使用戶(hù)能夠讀取和修改操作系統的任何部份,包括其他用戶(hù)的代碼和數據 — 甚至是 Windows? 本身。如果沒(méi)有管理權限,用戶(hù)不會(huì )意外(或有意)修改系統設置,惡意軟件無(wú)法改變系統安全設置或禁用防病毒軟件,用戶(hù)也不會(huì )危及共享計算機上其他用戶(hù)敏感信息的安全。因此,使用標準用戶(hù)權限運行可以減少企業(yè)環(huán)境中緊急咨詢(xún)臺呼叫的次數,減輕惡意軟件的影響,使家庭計算機的運行更順暢,并保護共享計算機上的敏感數據。
要使通過(guò)標準用戶(hù)帳戶(hù)運行切實(shí)可行,UAC 必須要解決幾個(gè)問(wèn)題。首先,在 Windows Vista? 之前,Windows 使用模型一直是某種假定的管理權限。軟件開(kāi)發(fā)人員假定他們的程序可以訪(fǎng)問(wèn)和修改任何文件、注冊表或操作系統設置。甚至當 Windows NT? 引入了安全性并區分了授予管理用戶(hù)帳戶(hù)和標準用戶(hù)帳戶(hù)的權限后,仍指導用戶(hù)完成一個(gè)設置過(guò)程,使他們能夠使用內置的 Administrator 帳戶(hù)或 Administrators 組的成員帳戶(hù)。
UAC 必須解決的第二個(gè)問(wèn)題是用戶(hù)有時(shí)需要管理權限來(lái)執行某些操作,如安裝軟件、更改系統時(shí)間以及在防火墻中打開(kāi)端口。
UAC 針對這些問(wèn)題的解決方案是使用標準用戶(hù)權限運行大多數應用程序,始終避免對管理員權限的需要,并鼓勵軟件開(kāi)發(fā)人員創(chuàng )建使用標準用戶(hù)權限運行的應用程序。UAC 通過(guò)以下方式來(lái)實(shí)現這些方面:減少對管理權限的需求頻率,使舊應用程序能夠使用標準用戶(hù)權限運行,使標準用戶(hù)在需要時(shí)能夠方便地訪(fǎng)問(wèn)管理權限,甚至使管理用戶(hù)像標準用戶(hù)那樣運行。
作為標準用戶(hù)運行
在 Windows Vista 的開(kāi)發(fā)過(guò)程中,通過(guò)對所有管理操作的全面審核,確定了許多可以為標準用戶(hù)啟用而不會(huì )有損系統安全性的操作。例如,即使是為其 Windows XP 桌面系統采用了標準用戶(hù)帳戶(hù)的企業(yè)也無(wú)法從 Administrators 組中刪除其移動(dòng)用戶(hù),唯一的原因是 Windows XP 并不區分更改時(shí)區與更改系統時(shí)間之間的差別。如果便攜式計算機用戶(hù)希望配置本地時(shí)區以便旅行時(shí)能夠在其日歷中正確顯示預約時(shí)間,他們必須具有“更改系統時(shí)間”特權(在內部稱(chēng)為 SeSystemTimePrivilege),在默認情況下該特權僅授予管理員。
安全協(xié)議(如 Kerberos)中通常會(huì )使用時(shí)間,但是時(shí)區僅影響時(shí)間的顯示方式,因此 Windows Vista 添加了一個(gè)新特權“更改時(shí)區”(SeTimeZonePrivilege),并將其分配給 Users 組,如圖 1 所示。這樣許多企業(yè)便有可能使其便攜式計算機用戶(hù)在標準用戶(hù)帳戶(hù)下運行。
圖 1 “更改時(shí)區”特權 (單擊該圖像獲得較大視圖)
Windows Vista 還允許標準用戶(hù)在連接到無(wú)線(xiàn)網(wǎng)絡(luò )時(shí)配置 WEP 設置、創(chuàng )建 VPN 連接、更改電源管理設置以及安裝重要 Windows 更新。此外,它還引入了“組策略”設置,使標準用戶(hù)能夠安裝 IT 管理員批準的打印機和其他設備驅動(dòng)程序,以及從管理員批準的站點(diǎn)安裝 ActiveX? 控件。
對于不能以標準用戶(hù)帳戶(hù)正確運行的客戶(hù)和業(yè)務(wù)線(xiàn) (LOB) 應用程序該如何處理?雖然某些軟件確實(shí)需要管理權限,但許多程序都毫無(wú)必要地將用戶(hù)數據存儲在系統全局位置。Microsoft 建議希望使用管理權限來(lái)運行的全局應用程序安裝程序在 %ProgramFiles% 目錄下創(chuàng )建一個(gè)目錄來(lái)存儲應用程序的可執行文件和輔助數據,并在 HKEY_LOCAL_MACHINE\Software 下為其應用程序設置創(chuàng )建一個(gè)注冊表項。當執行某個(gè)應用程序時(shí),它可以使用不同的用戶(hù)帳戶(hù)運行,因此它應當在針對每個(gè)用戶(hù)的 %AppData% 目錄中存儲用戶(hù)特定數據,并在 HKEY_CURRENT_USER\ Software 下的用戶(hù)注冊表配置文件中保存每個(gè)用戶(hù)的設置。標準用戶(hù)帳戶(hù)不具備 %ProgramFiles% 目錄或 HKEY_LOCAL_MACHINE\Software 的寫(xiě)訪(fǎng)問(wèn)權限,但是因為多數 Windows 系統都是單用戶(hù)的,并且在 Windows Vista 之前多數用戶(hù)都是管理員,所以錯誤地將用戶(hù)數據和設置保存到這些位置的應用程序仍能工作。
通過(guò)文件系統和注冊表命名空間虛擬化的幫助,Windows Vista 使這些舊應用程序能夠在標準用戶(hù)帳戶(hù)下運行。當應用程序修改文件系統或注冊表中的系統全局位置并且該操作由于訪(fǎng)問(wèn)被拒絕而失敗時(shí),Windows 會(huì )將該操作重定向到特定于用戶(hù)的區域;當應用程序從某個(gè)系統全局位置讀取時(shí),Windows 將首先檢查每個(gè)用戶(hù)區域中的數據,如果數據不存在,則允許從該全局位置進(jìn)行讀取嘗試。
針對此虛擬化目的,如果某個(gè)進(jìn)程是 32 位的(與 64 位相對)、不是使用管理權限運行,并且沒(méi)有指令清單文件表明它是為 Windows Vista 編寫(xiě)的,那么 Windows Vista 會(huì )將其視為舊進(jìn)程。根據此定義,對于任何操作(包括網(wǎng)絡(luò )文件共享訪(fǎng)問(wèn)),如果它不是源于分類(lèi)為舊進(jìn)程的進(jìn)程,則不會(huì )將其虛擬化。進(jìn)程的虛擬化狀態(tài)存儲為其令牌中的一個(gè)標志,它是跟蹤進(jìn)程安全環(huán)境的內核數據結構,包括其用戶(hù)帳戶(hù)、組成員身份和特權。
您可以通過(guò)向“任務(wù)管理器”的“進(jìn)程”頁(yè)添加“虛擬化”欄來(lái)查看進(jìn)程的虛擬化狀態(tài)。圖 2 顯示大多數 Windows Vista 組件(包括桌面窗口管理器 (Dwm .exe)、客戶(hù)端服務(wù)器運行時(shí)子系統 (Csrss.exe) 和資源管理器)或者因為它們有 Windows Vista 指令清單而禁用了虛擬化,或者是使用管理權限運行而因此不允許虛擬化。Internet Explorer? (iexplore.exe) 啟用了虛擬化,因為它可以承載多個(gè) ActiveX 控件和腳本,并且必須假定它們沒(méi)有編寫(xiě)為使用標準用戶(hù)權限即可正確操作。
圖 2 “任務(wù)管理器”顯示虛擬化狀態(tài) (單擊該圖像獲得較大視圖)
為舊進(jìn)程虛擬化的文件系統位置為 %ProgramFiles%、%ProgramData% 和 %SystemRoot%,其中不包括某些特定子目錄。但是,任何具有可執行文件擴展名的文件(包括 .exe、.bat、.scr、.vbs 等等)都將從虛擬化中排除。這意味著(zhù),使用標準用戶(hù)帳戶(hù)進(jìn)行自我更新的程序將失敗,而不會(huì )創(chuàng )建對于運行全局更新程序的管理員不可見(jiàn)的專(zhuān)有可執行文件版本。要向排除列表中添加其他擴展名,請在以下注冊表項中輸入它們并重新啟動(dòng):
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd
使用一種多字符串類(lèi)型來(lái)分隔多個(gè)擴展名,并且不要在擴展名中包含前導點(diǎn)。
舊進(jìn)程對虛擬化目錄的修改將重定向到用戶(hù)的虛擬根目錄 %LocalAppData%\VirtualStore。例如,如果我的系統上運行的某個(gè)虛擬化進(jìn)程要創(chuàng )建 C:\Windows\Application.ini,那么它實(shí)際創(chuàng )建的文件為 C:\Users\Markruss\AppData\Local\VirtualStore\Windows\Application.ini。該路徑的本地部分表明這樣一個(gè)事實(shí),即當帳戶(hù)具有漫游配置文件時(shí),虛擬化文件不會(huì )隨配置文件的其余部分漫游。
如果在資源管理器中導航到一個(gè)包含虛擬化文件的目錄,資源管理器將在其工具欄中顯示一個(gè)標記為“兼容性文件”的按鈕,如圖 3 所示。單擊該按鈕可導航至對應的 VirtualStore 子目錄以顯示虛擬化文件。
圖 3 “兼容性文件”按鈕指明了附近的虛擬化文件 (單擊該圖像獲得較大視圖)
圖 4 顯示 UAC 文件虛擬化篩選器驅動(dòng)程序 (%SystemRoot%\System32\Drivers\Luafv.sys) 如何實(shí)施文件系統虛擬化。因為它是文件系統篩選器驅動(dòng)程序,所以它會(huì )看到所有文件系統操作,但是僅為來(lái)自舊進(jìn)程的操作實(shí)施功能。您可以看到它為在系統全局位置創(chuàng )建文件的舊進(jìn)程更改了目標文件路徑,但是沒(méi)有為以標準用戶(hù)權限運行 Windows Vista 應用程序的進(jìn)程進(jìn)行此更改。當它確實(shí)在用戶(hù)具有完全訪(fǎng)問(wèn)權限的位置創(chuàng )建了文件時(shí),舊進(jìn)程便認為操作成功,但在 \Windows 目錄上的默認權限會(huì )拒絕對為 Windows Vista 編寫(xiě)的應用程序的訪(fǎng)問(wèn)。
圖 4 文件系統虛擬化
注冊表虛擬化的實(shí)施與文件系統虛擬化略有不同。虛擬化的注冊表項包括 HKEY_LOCAL_MACHINE\Software 分支的大部分,但有許多例外項,例如以下項:
HKLM\Software\Microsoft\WindowsHKLM\Software\Microsoft\Windows NTHKLM\Software\Classes
只有通常由舊應用程序修改,但不會(huì )帶來(lái)兼容性或互操作性問(wèn)題的項才能虛擬化。Windows 將舊應用程序對虛擬化項的修改重定向到位于 HKEY_ CURRENT_USER\Software\Classes\VirtualStore 的用戶(hù)注冊表虛擬根目錄。該項位于用戶(hù)的 Classes 配置單元 %LocalAppData%\Microsoft\Windows\UsrClass.dat 中,與任何其他虛擬化文件數據一樣,它并不隨漫游用戶(hù)配置文件漫游。
與 Windows 為文件系統維護一個(gè)固定虛擬化位置列表不同,注冊表項的虛擬化狀態(tài)作為一個(gè)標志 REG_ KEY_DONT_VIRTUALIZE 存儲在該項自身。Reg.exe 實(shí)用工具可以顯示該標志以及另外兩個(gè)虛擬化相關(guān)標志:REG_KEY_ DONT_SILENT_FAIL 和 REG_KEY_ RECURSE_FLAG,如圖 5 所示。當設置了 REG_KEY_DONT_SILENT_FAIL 并且該項未虛擬化(已設置 REG_KEY_DONT_VIRTUALIZE)時(shí),除了應用程序請求的訪(fǎng)問(wèn)外,原本被拒絕對該項執行操作訪(fǎng)問(wèn)的舊應用程序還將被授予用戶(hù)對該項所擁有的任何訪(fǎng)問(wèn)權限。REG_KEY_RECURSE_FLAG 表明新的子項是否繼承父項的虛擬化標志,而不僅僅是默認標志。
圖 5 Reg 實(shí)用工具顯示虛擬化標志 (單擊該圖像獲得較大視圖)
圖 6 顯示了配置管理器如何實(shí)施注冊表虛擬化,該管理器管理操作系統內核 Ntoskrnl.exe 中的注冊表。對于文件系統虛擬化,創(chuàng )建虛擬化項的子項的舊進(jìn)程將被重定向到用戶(hù)的注冊表虛擬根,但默認權限會(huì )拒絕 Windows Vista 進(jìn)程的訪(fǎng)問(wèn)。
除了文件系統和注冊表虛擬化以外,某些應用程序還需要其他幫助才能在標準用戶(hù)權限下正確運行。例如,對于測試其正在運行的帳戶(hù)是否是 Administrators 組成員的應用程序,如果是該組成員,則會(huì )正常運行,如果不是,則不能正常運行。因此,Windows Vista 定義了許多應用程序兼容性填充,以使這類(lèi)應用程序無(wú)論如何都能夠運行。最常應用于舊應用程序以使其在標準權限下操作的填充如圖 7 所示。企業(yè) IT 專(zhuān)業(yè)人員可以使用諸如應用程序兼容性工具包(ACT,可從 technet.microsoft .com/windowsvista/aa905066.aspx 獲得),及其標準用戶(hù)分析程序 (SUA) 實(shí)用工具,或 Aaron Margosis 的LUA Buglight 等工具來(lái)確認其 LOB 應用程序的填充要求。他們使用 Compatibility Administrator(也是 ACT 的一部分)將填充分配給應用程序,然后將得到的兼容性數據庫(.sdb 文件)通過(guò)組策略部署到桌面。請注意,如果需要,可以對使用全局安全策略設置的系統完全禁用虛擬化。
虛擬化的效果
在“任務(wù)管理器”中右鍵單擊某個(gè)進(jìn)程并從上下文菜單中選擇“虛擬化”,即可更改進(jìn)程的虛擬化狀態(tài)。圖 A 顯示了當其虛擬化狀態(tài)更改時(shí)命令提示符的行為。開(kāi)始時(shí)虛擬化是禁用的,因為它有一個(gè) Windows Vista 指令清單。因為它使用標準用戶(hù)權限運行,所以無(wú)法在 \Windows 目錄中創(chuàng )建文件,但是在使用任務(wù)管理器將其虛擬化后,它似乎能夠成功創(chuàng )建該文件。當其虛擬化返回禁用狀態(tài)時(shí),它將找不到該文件,該文件實(shí)際位于用戶(hù)的虛擬存儲中。
圖 A 虛擬化狀態(tài)更改 (單擊該圖像獲得較大視圖)
管理員批準模式
即使用戶(hù)只運行與標準用戶(hù)權限兼容的程序,某些操作仍要求管理權限。絕大多數軟件安裝都要求使用管理權限,以便在系統全局位置創(chuàng )建目錄或注冊表項,或者安裝服務(wù)或設備驅動(dòng)程序。修改系統全局 Windows 設置和應用程序設置也要求使用管理權限,Windows Vista 家長(cháng)控制功能便是如此。通過(guò)切換到專(zhuān)用管理帳戶(hù)可以執行大多數這些操作,但是這樣很不方便,導致多數用戶(hù)仍然會(huì )使用管理帳戶(hù)來(lái)執行其日常任務(wù)。
因此,Windows Vista 提供了一個(gè)增強的“運行身份”功能,以使標準用戶(hù)能夠方便地以管理權限啟動(dòng)進(jìn)程。此功能要求為應用程序提供一種方式來(lái)標識系統可為之獲得管理權限(代表該應用程序)的操作,我將對此進(jìn)行簡(jiǎn)要說(shuō)明。
此外,Windows Vista 還引入了一個(gè)管理員批準模式 (AAM),這樣,作為系統管理員的用戶(hù)便可以使用標準用戶(hù)權限來(lái)運行,而不必在每次希望獲得管理權限時(shí)輸入用戶(hù)名和密碼。此功能在登錄時(shí)為用戶(hù)創(chuàng )建兩個(gè)身份:一個(gè)具有標準用戶(hù)權限,另一個(gè)具有管理權限。由于 Windows Vista 系統上的每個(gè)用戶(hù)要么是標準用戶(hù),要么多數情況下作為 AAM 中的標準用戶(hù)來(lái)運行,因而開(kāi)發(fā)人員必須假定所有 Windows 用戶(hù)都是標準用戶(hù),這將導致有更多的程序使用不帶有虛擬化或填充的標準用戶(hù)權限來(lái)運行。
為進(jìn)程授予管理權限稱(chēng)為提升。由標準用戶(hù)帳戶(hù)執行此過(guò)程時(shí),稱(chēng)為“當面式”(OTS) 提升,因為它要求輸入某個(gè)管理員組的成員帳戶(hù)的憑據,這通常由另一個(gè)用戶(hù)當著(zhù)該標準用戶(hù)的面完成。由 AAM 用戶(hù)執行的提升稱(chēng)為“同意”提升,因為用戶(hù)只需批準其管理權限的分配即可。
如果用戶(hù)是圖 8 中所列任意管理員類(lèi)型組的成員,Windows Vista 就會(huì )將該用戶(hù)視為管理員。所列的許多組都只用于加入域的系統,并且不直接賦予用戶(hù)本地管理權限,但是允許他們修改域范圍內的設置。如果用戶(hù)是其中任何組的成員,而不是實(shí)際的管理員組的成員,該用戶(hù)將通過(guò) OTS 提升而不是“同意”提升來(lái)獲得其管理權限。
當屬于所列的某個(gè)組的用戶(hù)登錄時(shí),Windows Vista 將創(chuàng )建一個(gè)令牌,代表該用戶(hù)的管理身份的標準用戶(hù)版本。新令牌解除了分配給該用戶(hù)的所有特權,只保留了圖 9 中所列的那些特權,它們是默認標準用戶(hù)特權。此外,任何管理員類(lèi)型組在該新令牌中都帶有 USE_FOR_DENY_ONLY 標志。圖 10 顯示了 Sysinternals Process Explorer(一種進(jìn)程管理工具,可從microsoft .com/technet/sysinternals 下載),其左側顯示了使用管理權限運行的進(jìn)程的組成員關(guān)系和特權,右側顯示了不具備管理員權限的情況。(為防止意外錯誤使用,Windows 安全模型要求先啟用帶有禁用標志的特權,然后才能使用它。)
圖 10 AAM 管理員和標準用戶(hù)令牌 (單擊該圖像獲得較大視圖)
具有“僅拒絕”標志的組只能用于拒絕(而不能允許)用戶(hù)對某個(gè)資源的訪(fǎng)問(wèn),這樣就消除了當該組被整個(gè)刪除時(shí)所產(chǎn)生的安全漏洞。例如,如果某個(gè)文件的訪(fǎng)問(wèn)控制列表 (ACL) 拒絕了 Administrators 組的所有訪(fǎng)問(wèn),但為該用戶(hù)所屬的另一個(gè)組授予某些訪(fǎng)問(wèn)權限,那么如果令牌中沒(méi)有管理員組,則會(huì )為用戶(hù)授予訪(fǎng)問(wèn)權限,從而為該用戶(hù)身份的標準用戶(hù)版本賦予比管理員身份更多的權限。
獨立系統(通常是家用計算機)和加入域的系統對來(lái)自遠程用戶(hù)的 AAM 訪(fǎng)問(wèn)的處理不同,因為連接了域的計算機可以在其資源權限內使用域管理組。當用戶(hù)訪(fǎng)問(wèn)獨立計算機的文件共享時(shí),Windows 將請求該遠程用戶(hù)的標準用戶(hù)身份,但在加入域的系統上,Windows 將通過(guò)請求該用戶(hù)的管理身份來(lái)支持其所有域組成員。
方便地獲得管理權限
系統和應用程序可以通過(guò)多種方式標識對管理權限的需求。其中一個(gè)是顯示在資源管理器 UI 中的“以管理員身份運行”上下文菜單項和快捷方式選項。這些項目包含一個(gè)彩色盾牌圖標,它應放在任何按鈕或菜單項上,當選中它時(shí)會(huì )導致權限的提升。選擇“以管理員身份運行”菜單項將使資源管理器使用動(dòng)詞“runas”調用 ShellExecute API。
絕大多數安裝程序都要求使用管理權限,因此,映像加載程序(用于觸發(fā)可執行文件的啟動(dòng))包含了安裝程序檢測代碼以發(fā)現可能的舊安裝程序。它使用的某些啟發(fā)方式很簡(jiǎn)單,只需檢測該映像在其文件名或內部版本信息中是否具有設置 (setup)、安裝 (install) 或更新 (update) 字樣;較為復雜的啟發(fā)方式則涉及掃描可執行文件中的字節序列,第三方安裝包裝實(shí)用工具大多為這種情況。
映像加載器還會(huì )調用應用程序兼容性 (appcompat) 庫,以查看目標可執行文件是否要求使用管理員權限。該庫將查詢(xún)應用程序兼容性數據庫,以查看該可執行文件是否關(guān)聯(lián)了 RequireAdministrator 或 RunAsInvoker 兼容性標志。
可執行文件請求得到管理權限的最常用方式是在其應用程序指令清單文件中包含一個(gè) requestedElevationLevel 令牌。指令清單是 XML 文件,其中包含有關(guān)某個(gè)映像的補充信息。它們是在 Windows XP 中引入的,作為標識與并列 DLL 和 Microsoft .NET Framework 程序集的依賴(lài)關(guān)系的一種方式。指令清單中出現的 trustInfo 元素(可在下面的 Firewallsettings.exe 字符串轉儲摘錄中看到)表明這是一個(gè)為 Windows Vista 編寫(xiě)的可執行文件,并且其中嵌套了 requestedElevationLevel 元素。該元素的 level 屬性可具有以下三個(gè)值之一:asInvoker、highestAvailable 和 requireAdministrator。
<trustInfoxmlns=”urn:schema-microsoft-com:asm.v3”><security><requestedPrivileges><requestedExecutionLevelLevel=”requireAdministrator”uiAccess=”false”/></requestedPrivileges></security></trustInfo>
不需要管理權限的可執行文件(如 Notepad.exe)指定 asInvoker 值。某些可執行文件預期管理員始終希望具有最大訪(fǎng)問(wèn)權限,因此他們使用 highestAvailable 值。如果某用戶(hù)運行具有該值的可執行文件,那么僅當他在 AAM 中運行或被視為管理員(根據早先定義的規測)且必須提升以獲得其管理權限時(shí),才會(huì )要求提升他的權限。例如,Regedit.exe、Mmc.exe 和 Eventvwr.exe 都是使用 highestAvailable 的應用程序。最后,requireAdministrator 始終會(huì )導致提升請求,任何沒(méi)有管理權限就無(wú)法操作的可執行文件需要使用該值。
可訪(fǎng)問(wèn)性應用程序為 uiAccess 屬性指定“true”,以便驅動(dòng)所提升進(jìn)程的窗口輸入,并且它們還必須帶有簽名并位于多個(gè)安全位置(包括 %SystemRoot% 和 %ProgramFiles%)之一以獲取該能力。
確定可執行文件所指定值的一種簡(jiǎn)單方法是使用 Sysinternals Sigcheck 實(shí)用工具查看其指令清單,如下所示:
sigcheck –m <executable>
執行一個(gè)請求管理權限的映像將導致在服務(wù)主機進(jìn)程 (%SystemRoot%\System32\Svchost .exe) 中運行的應用程序信息服務(wù)(也稱(chēng)為 AIS,它包含在 %SystemRoot%\System32\Appinfo.dll 中)啟動(dòng) Consent.exe (%SystemRoot%\System32\Consent.exe)。Consent 將捕獲屏幕的位圖、向其應用一個(gè)淡入淡出效果、切換到只能由本地系統帳戶(hù)訪(fǎng)問(wèn)的桌面、將該位圖作為背景、并顯示一個(gè)提升對話(huà)框,其中包含有關(guān)該可執行文件的信息。在單獨的桌面上顯示可防止用戶(hù)帳戶(hù)中的任何惡意軟件修改對話(huà)框的外觀(guān)。
圖 11 OTS 提升對話(huà)框 (單擊該圖像獲得較大視圖)
如果映像是由 Microsoft 數字簽名的 Windows 組件,并且位于 Windows 系統目錄中,則對話(huà)框頂部將顯示一條藍帶,如圖 11 頂部所示?;規В▽υ?huà)框中間)表明映像由 Microsoft 以外的組織數字簽名,橙色帶(對話(huà)框底部)表明映像未經(jīng)簽名。提升對話(huà)框顯示了映像的圖標、描述以及數字簽名映像的發(fā)布者,但對于未簽名的映像只有一個(gè)通用的圖標、文件名和“未能識別的發(fā)布程序”。這樣就使惡意軟件更難以模仿合法軟件的外觀(guān)。對話(huà)框底部的“詳細信息”按鈕展開(kāi)后將顯示當可執行文件啟動(dòng)時(shí)要傳遞給它的命令行。圖 12 所示的“AAM 同意”對話(huà)框與此類(lèi)似,但它不會(huì )提示提供管理員憑據,而是包含了“繼續”和“取消”按鈕。
圖 12 AAM 提升對話(huà)框 (單擊該圖像獲得較大視圖)
如果用戶(hù)拒絕提升,Windows 將向激發(fā)該啟動(dòng)過(guò)程的進(jìn)程返回一個(gè)拒絕訪(fǎng)問(wèn)錯誤。當用戶(hù)通過(guò)輸入管理員憑據或單擊“繼續”同意提升時(shí),AIS 將調用 CreateProcessAsUser 以使用適當的管理身份啟動(dòng)進(jìn)程。雖然從技術(shù)上講 AIS 是所提升進(jìn)程的父項,但 AIS 使用了 CreateProcessAsUser API 中的新支持,后者將該進(jìn)程的父進(jìn)程 ID 設為最初啟動(dòng)它的進(jìn)程的 ID(請參閱圖 13)。這就是在顯示進(jìn)程樹(shù)的工具(如 Process Explorer)中,已提升進(jìn)程沒(méi)有顯示為 AIS Service Hosting 進(jìn)程的子項的原因。
圖 13 提升流程
即使提升對話(huà)框顯示在單獨的安全桌面上,默認情況下,用戶(hù)也無(wú)法驗證他們查看的是合法對話(huà)框,而不是由惡意軟件提供的對話(huà)框。這并不是 AAM 的問(wèn)題,因為惡意軟件雖無(wú)法使用假的“同意”對話(huà)框獲取管理權限,但它可以等待標準用戶(hù)的 OTS 提升,截獲它,并使用特洛伊木馬對話(huà)框捕獲管理員憑據。使用那些憑據,它們可以獲得對管理員帳戶(hù)的訪(fǎng)問(wèn)權限并感染它。
因此,強烈建議不要在企業(yè)環(huán)境中使用 OTS 提升。要禁用 OTS 提升(并減少咨詢(xún)臺呼叫),請運行本地安全策略編輯器 (Secpol.msc) 并將“用戶(hù)帳戶(hù)控制:標準用戶(hù)的提升提示行為”配置為“自動(dòng)拒絕提升請求”。
注重安全的家庭用戶(hù)應當將 OTS 提升配置為要求使用一個(gè)惡意軟件無(wú)法截獲或模擬的安全注意序列 (SAS)。要配置 SAS,請運行組策略編輯器 (Gpedit.msc),導航到“計算機配置”|“管理模板”|“Windows 組件”|“憑據用戶(hù)界面”,并啟用“要求輸入憑據的受信任路徑”。完成上述步驟后,會(huì )要求您輸入 Ctrl+Alt+Delete 以訪(fǎng)問(wèn)提升對話(huà)框。
隔離已提升的進(jìn)程
Windows Vista 在已提升進(jìn)程周?chē)O置了一道屏障,以保護它們免受在同一桌面上使用標準用戶(hù)權限運行的惡意軟件的侵擾。如果沒(méi)有這道屏障,惡意軟件可能會(huì )通過(guò)窗口消息發(fā)送合成的鼠標和窗口輸入,從而驅動(dòng)某個(gè)管理應用程序。雖然標準 Windows 安全模型可防止使用標準用戶(hù)權限在進(jìn)程中運行的惡意軟件破壞作為不同用戶(hù)運行的已提升進(jìn)程,但它不會(huì )禁止作為某個(gè)管理用戶(hù)的標準權限版本運行的惡意軟件打開(kāi)該用戶(hù)的已提升進(jìn)程、向其中插入代碼并啟動(dòng)其中的線(xiàn)程以執行插入的代碼。
Windows Vista 為窗口消息提供的防護稱(chēng)為用戶(hù)界面特權隔離 (UIPI)。它基于新的 Windows 完整性機制,Windows Vista 同樣使用該機制作為已提升進(jìn)程周?chē)钠琳?。在此新安全模型中,所有進(jìn)程和對象都具有完整性級別,并且對象的完整性策略可以限制訪(fǎng)問(wèn)權限,否則,這些訪(fǎng)問(wèn)權限將由 Windows 隨機訪(fǎng)問(wèn)控制 (DAC) 安全模型授予某個(gè)進(jìn)程。
完整性級別 (IL) 由安全標識符 (SID) 表示,后者還表示用戶(hù)和組;而級別則編碼在 SID 的相對標識符 (RID) 中。圖 14 顯示了四個(gè)主要 IL 的顯示名稱(chēng)、SID 和 SID 的 RID 的十六進(jìn)制版本。十六進(jìn)制數字揭示了每個(gè)級別間的 0x1000 的間隔,以便提供由 UI 可訪(fǎng)問(wèn)性應用程序使用的中間級別并考慮未來(lái)增長(cháng)需要。
圖 15 列出了對象 IL 策略以及它們所限制的訪(fǎng)問(wèn)類(lèi)型,這些訪(fǎng)問(wèn)類(lèi)型與為對象定義的通用訪(fǎng)問(wèn)權限相對應。例如,No-Write-Up 將禁止低 IL 進(jìn)程獲取任何由 GENERIC_WRITE 訪(fǎng)問(wèn)權限表示的訪(fǎng)問(wèn)權限。大多數對象(包括文件和注冊表項)的默認策略都是 No-Write-Up,這將禁止進(jìn)程從具有比它更高的 IL 的對象獲取寫(xiě)訪(fǎng)問(wèn)權限,即使該對象的隨機訪(fǎng)問(wèn)控制列表 (DACL) 授予用戶(hù)這種訪(fǎng)問(wèn)權限也是如此。僅有的具有不同策略的對象是進(jìn)程對象和線(xiàn)程對象。它們的策略(No-Write-Up 加上 No-Read-Up)會(huì )禁止在低 IL 上運行的進(jìn)程向具有較高 IL 的進(jìn)程插入代碼或從中讀取數據(如密碼)。
Windows 為每個(gè)進(jìn)程分配一個(gè) IL,該 IL 放在進(jìn)程令牌中組 SID 的旁邊,這些組是運行該進(jìn)程的用戶(hù)所屬的組。圖 16 列出了分配給不同 IL 的進(jìn)程示例。進(jìn)程通常繼承其父項的 IL,但進(jìn)程也可以在其他 IL 上啟動(dòng)進(jìn)程,與 AIS 啟動(dòng)已提升進(jìn)程時(shí)的操作相同。您可以通過(guò)指定 /all 選項使用內置的 Whoami 實(shí)用工具、Sysinternals Process Explorer 或 AccessChk 來(lái)查看進(jìn)程完整性級別。Process Explorer 可以在附加的“完整性級別”列中顯示進(jìn)程 IL。
每個(gè)安全對象都有一個(gè)顯式或隱式的 IL。進(jìn)程、線(xiàn)程和令牌對象始終具有一個(gè)顯式分配的 IL,它通常與對應進(jìn)程令牌中存儲的 IL 相同。多數對象都沒(méi)有顯式 IL,因此都默認為某個(gè)中等 IL。使用中等以外的 IL 創(chuàng )建的僅有對象是由在低 IL 上運行的進(jìn)程創(chuàng )建的對象,它們因此而具有一個(gè)低 IL。您可以使用內置的 iCacls 工具 (%SystemRoot%\System32\iCacls.exe) 查看文件的 IL,并使用 Sysinternals AccessChk 實(shí)用工具查看文件、注冊表項、服務(wù)和進(jìn)程的 IL。圖 17 顯示需要通過(guò)保護模式 Internet Explorer 才能訪(fǎng)問(wèn)的目錄的 IL 為“低”。
圖 17 顯示用戶(hù)收藏夾目錄 IL 的 AccessChk (單擊該圖像獲得較大視圖)
如果對象具有顯式 IL,則它存儲在 Windows Vista 中新引入的一種訪(fǎng)問(wèn)控制項 (ACE) 類(lèi)型中(即 Label ACE),該 ACE 位于對象安全描述符的系統訪(fǎng)問(wèn)控制列表 (SACL) 中(請參閱圖 18)。ACE 中的 SID 對應于對象的 IL,ACE 的標志為對象的完整性策略進(jìn)行了編碼。在 Windows Vista 之前,SACL 只存儲審核 ACE,這需要“管理審核和安全日志”特權 (SeSecurityPrivilege),但讀取 Label ACE 只需要“讀取權限”(READ_CONTROL) 訪(fǎng)問(wèn)權限。如果進(jìn)程要修改對象的 IL,它必須具有該對象的“更改所有者”(WRITE_OWNER) 訪(fǎng)問(wèn)權限以及一個(gè)與該對象相同或更高的 IL,并且該進(jìn)程只能將 IL 設置為自己的 IL 或更低的 IL。新的“修改對象標簽”(SeRelabelPrivilege) 特權使進(jìn)程能夠更改它可以訪(fǎng)問(wèn)的任何對象的 IL,甚至將 IL 提高到超過(guò)進(jìn)程自己的 IL,但默認情況下,該特權未分配給任何帳戶(hù)。
圖 18 對象的 Label ACE
當進(jìn)程嘗試打開(kāi)某個(gè)對象時(shí),內核的 SeAccessCheck 功能中將先進(jìn)行完整性檢查,然后再進(jìn)行標準的 Windows DACL 檢查。在默認完整性策略下,僅當進(jìn)程的 IL 等于或高于對象的 IL,且 DACL 也為該進(jìn)程授予了它所需要的權限時(shí),該進(jìn)程才能打開(kāi)此對象進(jìn)行寫(xiě)訪(fǎng)問(wèn)。例如,低 IL 進(jìn)程不能打開(kāi)中等 IL 進(jìn)程進(jìn)行寫(xiě)訪(fǎng)問(wèn),即使 DACL 為該進(jìn)程授予了寫(xiě)訪(fǎng)問(wèn)權限。
在默認完整性策略下,進(jìn)程可以打開(kāi)任何對象(進(jìn)程和線(xiàn)程對象除外)進(jìn)行讀取訪(fǎng)問(wèn),只要對象的 DACL 為它們授予了讀取權限即可。這意味著(zhù),在低 IL 上運行的進(jìn)程可以打開(kāi)任何其運行所在的用戶(hù)帳戶(hù)可以訪(fǎng)問(wèn)的文件。保護模式 Internet Explorer 使用 IL 來(lái)幫助防止感染它的惡意軟件修改用戶(hù)帳戶(hù)設置,但是它不能禁止惡意軟件讀取用戶(hù)的文檔。
上述情況不適用于進(jìn)程和線(xiàn)程對象,因為它們的完整性策略還包括 No-Read-Up。這意味著(zhù),進(jìn)程的 IL 必須等于或高于它要打開(kāi)的進(jìn)程或線(xiàn)程的 IL,且 DACL 必須授予它成功打開(kāi)所需的訪(fǎng)問(wèn)權限。假設 DACL 允許授予所需的權限,圖 19 顯示了在中等和低 IL 上運行的進(jìn)程針對其他進(jìn)程和對象所擁有的訪(fǎng)問(wèn)權限。
圖 19 對象和進(jìn)程訪(fǎng)問(wèn)權限
Windows 消息傳遞子系統還支持完整性級別通過(guò)以下方式實(shí)施 UIPI:禁止進(jìn)程向具有較高 IL 的進(jìn)程所擁有的窗口發(fā)送除信息性窗口消息以外的任何消息。這將不允許標準用戶(hù)進(jìn)程向已提升進(jìn)程的窗口進(jìn)行輸入,或不允許通過(guò)向其發(fā)送可觸發(fā)內部緩沖區溢出的格式不正確的消息來(lái)破壞已提升進(jìn)程。進(jìn)程可以通過(guò)調用 ChangeWindowMessageFilter API 選擇允許其他消息通過(guò)這層防范。UIPI 還會(huì )防止窗口掛接影響較高 IL 進(jìn)程的窗口,這樣,例如標準用戶(hù)進(jìn)程便無(wú)法記錄用戶(hù)在管理應用程序中的鍵擊情況。
提升和安全邊界
UAC 提升是一種方便性,而不是安全邊界,清楚這一點(diǎn)很重要。安全邊界要求安全策略指明能夠通過(guò)該邊界的內容。用戶(hù)帳戶(hù)就是 Windows 中安全邊界的一個(gè)示例,因為如果沒(méi)有另一個(gè)用戶(hù)的許可,某個(gè)用戶(hù)就無(wú)法訪(fǎng)問(wèn)屬于另一個(gè)用戶(hù)的數據。
因為提升不是安全邊界,所以無(wú)法保證使用標準用戶(hù)權限在系統上運行的惡意軟件不會(huì )侵擾已提升進(jìn)程以獲取管理權限。例如,提升對話(huà)框只標識了即將提升的可執行文件;其中沒(méi)有提供執行時(shí)將如何操作的任何信息??蓤绦形募⑻幚砻钚袇?、加載 DLL、打開(kāi)數據文件并與其他進(jìn)程通信??梢韵胂?,上述任何操作都可能允許惡意軟件侵擾已提升進(jìn)程,進(jìn)而獲取管理權限。
低 IL 沙盒中的游戲
保護模式 Internet Explorer 在低 IL 上運行,以便在可能感染其進(jìn)程的惡意軟件周?chē)鹨坏绹鷫?。這將防止惡意軟件更改用戶(hù)帳戶(hù)設置并將自己安裝在一個(gè)自動(dòng)啟動(dòng)位置。您可以使用 Sysinternals PsExec 實(shí)用工具和 -l 開(kāi)關(guān),在低 IL 上啟動(dòng)任意進(jìn)程以探究沙盒的秘密。圖 B 顯示了在低 IL 上運行的命令提示符如何無(wú)法在用戶(hù)的臨時(shí)目錄(具有中等 IL)中創(chuàng )建文件,卻能夠在具有低 IL 的 Internet Explorer 臨時(shí)目錄中創(chuàng )建該文件。
圖 B 命令提示符只能在相似的 IL 中創(chuàng )建文件 (單擊該圖像獲得較大視圖)
已提升的 AAM 進(jìn)程尤其易受侵擾,因為它們在與 AAM 用戶(hù)的標準權限進(jìn)程相同的用戶(hù)帳戶(hù)下運行,并共享用戶(hù)的配置文件。許多應用程序讀取在用戶(hù)配置文件中注冊的設置并加載在其中注冊的擴展,這為惡意軟件的提升提供了機會(huì )。例如,常用控制對話(huà)框會(huì )加載在用戶(hù)的注冊表項(位于 HKEY_CURRENT_USER 下)中配置的外殼擴展,因此惡意軟件可以將其自身作為一項擴展添加進(jìn)去,以加載到使用那些對話(huà)框的任何已提升進(jìn)程中。
即使是從標準用戶(hù)帳戶(hù)提升的進(jìn)程也必定會(huì )因共享狀態(tài)而受到侵擾。在某個(gè)登錄會(huì )話(huà)中運行的所有進(jìn)程將共享 Windows 用來(lái)存儲對象(如事件、mutex、信號和共享內存)的內部命名空間。如果惡意軟件知道某個(gè)已提升進(jìn)程將在進(jìn)程啟動(dòng)時(shí)嘗試打開(kāi)并讀取特定共享內存對象,它可以創(chuàng )建該對象,而其內容將觸發(fā)緩沖區溢出以便將代碼插入到已提升進(jìn)程中。這種攻擊類(lèi)型比較復雜,但其存在的可能性使得 OTS 提升無(wú)法成為一種安全邊界。
我們的底線(xiàn)是引入提升以提供方便,從而鼓勵要獲得管理權限的用戶(hù)在默認情況下使用標準用戶(hù)權限運行。希望安全邊界有保障的用戶(hù)可以用方便性換取這種保障,此時(shí),可以為日常任務(wù)使用標準用戶(hù)帳戶(hù),同時(shí)使用快速用戶(hù)切換 (FUS) 切換到專(zhuān)用管理員帳戶(hù)來(lái)執行管理操作。另一方面,希望用安全性換取方便性的用戶(hù)可以在“控制面板”的“用戶(hù)帳戶(hù)”對話(huà)框中禁用系統上的 UAC,但是必須清楚,這同時(shí)也會(huì )禁用 Internet Explorer 的保護模式。
結束語(yǔ)
以標準用戶(hù)身份運行有許多好處,其中包括有助于保護系統免受無(wú)意或有意的損害,以及防止共享系統的用戶(hù)的數據和完整性受到未經(jīng)授權的訪(fǎng)問(wèn)。UAC 的各種變化和技術(shù)將導致 Windows 使用模型發(fā)生重要改變。在 Windows Vista 中,Windows 用戶(hù)第一次能夠使用標準用戶(hù)權限執行大多數日常任務(wù)并運行大多數軟件,現在,許多企業(yè)都能夠部署標準用戶(hù)帳戶(hù)。
Mark Russinovich是 Microsoft 平臺和服務(wù)部門(mén)的一名技術(shù)人員。他是“Microsoft Windows Internals”(Microsoft Windows 內核)(Microsoft Press, 2004) 的合著(zhù)者之一,并經(jīng)常在 IT 和開(kāi)發(fā)人員會(huì )議上發(fā)表演講。在 Microsoft 最近收購了 Mark Russinovich 與其他人創(chuàng )辦的 Winternals Software 之后,Mark Russinovich 也隨之加入了 Microsoft。他還創(chuàng )建了 Sysinternals,在這里他發(fā)布了 Process Explorer、Filemon 和 Regmon 實(shí)用工具。
.from Microsft TechNet
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
讓你的權限提升!
WEB專(zhuān)用服務(wù)器的安全設置的實(shí)戰技巧
其實(shí)Unix很簡(jiǎn)單
【ITECN技術(shù)專(zhuān)欄】之 Windows Vista的UAC功能淺析- Vista...
十七點(diǎn)安全知識 超級詳細了解進(jìn)程和病毒知識
Windows Server 2008 R2 為用戶(hù)“IIS APPPOOL\DefaultAppPool”授予的權限不足,無(wú)法執行此操作
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久