Win7操作系統用戶帳戶控制功能詳解收獲很多的( 二 )


在啟用了 UAC 后 , 所有用戶帳戶(包括管理帳戶)都將使用標準用戶權限運行 。 這意味著 , 應用程序開發人員必須考慮他們的軟件默認情況下將沒有管理權限這一事實 。 這應會提醒他們將其應用程序設計為使用標準用戶權限工作 。 如果應用程序或其功能的某些部分需要管理權限 , 它可以利用提升機制來允許用戶解鎖該功能 。 通常 , 應用程序開發人員只需進行少許更改就可讓其應用程序使用標準用戶權限正常工作 。 如有關 UAC 的 E7 博客文章所述 , UAC 成功地改變了開發人員編寫軟件的方式 。
提升權限提示的另一個優點是:它們能夠在軟件想要對系統進行更改時“通知”用戶 , 并使用戶有機會來阻止這種情況 。 例如 , 如果用戶不信任或不想允許修改系統的軟件包要求管理權限 , 則它們可以拒絕提示 。
提升和惡意軟件安全性:
UAC 的主要目標是讓更多用戶能夠使用標準用戶權限運行 。 但是 , 其中一項 UAC 技術看起來像是安全功能:許可提示 。 許多人認為 , 因為軟件必須要求用戶授予其管理權限 , 因此他們能夠防止惡意軟件獲得管理權限 。 提示是一種視覺暗示 , 它僅為其所述操作獲取管理權限 , 除此之外 , 用戶還可以切換到不同桌面來顯示提升對話框 , 以及使用 Windows 完整性機制 , 包括用戶界面特權隔離 (UIPI) , 這些都使人們更加堅信這一理念 。
正如在 Windows Vista 推出之前我們所談到的 , 提升的主要目的不是安全性 , 而是其方便性:如果用戶必須通過登錄到管理帳戶或通過“快速用戶切換”切換到管理帳戶 , 從而切換帳戶以執行管理操作 , 則大多數用戶都只會切換一次 , 而不會切換回來 。 更改應用程序開發人員進行設計所針對的環境將不會有進展 。 那么 , 安全桌面和 Windows 完整性機制的目的是什么?
為提示切換到不同桌面的主要原因是:標準用戶軟件無法“欺騙”提升權限提示 , 例如 , 它們無法通過在對話框上的發布者名稱上繪圖來欺騙用戶 , 讓用戶認為是 Microsoft 或另一個軟件供應商(而不是這些軟件)生成了提示 , 從而欺騙提升權限提示 。 這種替代桌面稱為“安全桌面” , 因為它是系統(而不是用戶)所擁有的 , 就像系統顯示 Windows 登錄對話框的桌面一樣 。
使用其他桌面還有一個重要目的 , 就是為了實現應用程序兼容性:在正在運行其他用戶擁有的應用程序的桌面上 , 如果內置輔助功能軟件(比如屏幕鍵盤)能夠正常工作 , 那么此時就有一個第三方軟件不能正常工作 。 當本地系統帳戶擁有的提升對話框顯示在用戶擁有的桌面上時 , 該軟件將無法正常工作 。
Windows 完整性機制和 UIPI 的設計目的是在提升的應用程序周圍建立一道保護性屏障 。 它最初的目標其中之一是防止軟件開發人員投機取巧 , 利用已經提升的應用程序來完成管理任務 。 使用標準用戶權限運行的應用程序無法將合成鼠標或鍵盤輸入發送到提升的應用程序中 , 以使應用程序執行其指令 , 也無法將代碼注入提升的應用程序以執行管理操作 。
Windows 完整性機制和 UIPI 在 Windows Vista 中用于保護模式 Internet Explorer , 使得感染 IE 的運行實例的惡意軟件更難于修改用戶帳戶設置 , 例如 , 將本身配置為在每次用戶登錄時啟動 。 盡管 Windows Vista 的一個早期設計目標是使用帶有安全桌面的提升、Windows 完整性機制和 UIPI , 在使用標準用戶權限和管理權限運行的軟件之間建立一個堅不可摧的屏障(稱為安全邊界) , 但由于以下兩個原因 , 而導致該目標未能實現 , 并隨之被放棄:可用性和應用程序兼容性 。

Win7操作系統用戶帳戶控制功能詳解收獲很多的

文章插圖

首先 , 考慮提升對話框本身 。 它顯示將被授予管理權限的主要可執行文件的名稱和發布者 。 遺憾的是 , 盡管越來越多的軟件發布者為其代碼添加了數字簽名 , 但仍然有一些軟件發布者沒有這樣做 , 并且還有許多未添加簽名的舊版應用程序 。 對于未簽名的軟件而言 , 提升對話框只會顯示可執行文件的文件名 , 因此 , 對于某些惡意軟件(例如 , 已采用用戶帳戶運行并且正在監視未簽名 Setup.exe 應用程序安裝程序的提升)而言 , 將能夠將可執行文件替換為惡意的 Setup.exe , 而用戶卻一無所知(請參閱圖 1) 。
其次 , 該對話框不會告知用戶可執行文件在啟動時將會加載哪些 DLL 。 如果可執行文件位于用戶可以控制的目錄中 , 則使用用戶標準權限運行的惡意軟件將能夠替換該位置中軟件將使用的任何關聯 DLL 。 此外 , 惡意軟件可以使用并行功能 , 使可執行文件加載應用程序或系統 DLL 的惡意版本 。 并且 , 除非用戶警惕地單擊詳細信息按鈕 , 并仔細查看為提升可執行文件列出的文件路徑 , 否則惡意軟件可以將可執行文件復制到名稱類似的位置 , 例如 , /ProgramFiles/Vendor/Application.exe(注意應為“Program Files”的內容中缺少的空格) , 在該位置中 , 惡意軟件將可控制應用程序加載哪些 DLL 。 在圖 2 中 , 我已將 Microsoft 網絡監視器的一個組件復制到用戶創建的 C:/ProgramFiles 目錄(用戶可控制該目錄) , 并啟動了該組件 。

推薦閱讀