2010.11.28 20:31

Windows 7 的 UAC 到底在保護什麼?

ADVERTISEMENT

筆者曾經在網路上看到這樣的言論:「Windows 7的UAC根本是脫褲子放屁,我都要修改系統設定了,多一個彈出視窗也不會更安全,只是多一道干擾而已」。乍聽之下好像還蠻有道理的,實際上使用者帳戶控制(User Account Control,UAC)到底是幹嘛的,跑出一片黑畫面的警告視窗有什麼意義?

UAC可以隨便關?

以一句話來說:「用一般使用者的權限完成所有操作」,就是從Windows Vista開始導入UAC的基本精神。我們知道從Windows XP開始就有使用者帳戶權限的概念,可以粗分成系統管理帳戶和一般使用者,不過很多人根本懶得改變習慣,就一路以擁有最大權限的管理員帳號玩到掛,當有網路上的病毒或惡意程式被這些粗心的使用者執行,後果也不堪設想。

ADVERTISEMENT

▲ Vista時代飽受批評的UAC警告畫面還是傳承下來,你知道為什麼這樣比較安全嗎?

臨機啟用系統權限

因此,即使用管理員帳號,通常也只有一般使用者權限的保護模式(protected administrator),系統被駭客破壞的風險就低得多,等到必要修改系統設定,再臨時提升權限就行了。這也是詭異的黑畫面警告視窗出現的時機,它不是故意弄得很嚇人而已,而是因為這個「安全桌面(secure desktop)」的擁有者是最高權限的系統,而不是一般使用者,所以一般應用程式沒辦法偽造出來。另外由於整個螢幕畫面會被鎖住,也無法操控或修改提升權限的應用程式,只能等你按對話框確認。

5種權限來把關

所謂「最高權限的系統」指的是什麼火星文呢?這是由Windows Vista開始建構的「安全層級(Windows Integrity Levels,簡稱IL)」機制,IL所賦予的權限凌駕在檔案系統、程式等其他物件之上,就算某個程式對某個物件具有完整的存取權限,但是該程式的IL比要存取的對象低,就會無法執行。IL的等級總共分成6種:

ADVERTISEMENT

1.非信任(untrusted):

用訪客帳號等匿名登入的程序會被歸類為非信任層級。

2.低(low):

只要是和網際網路溝通的程序通通預設都是低安全層級,像是IE瀏覽器預設執行的保護模式(protected mode),會使得和它相關的程序和檔案只能有低安全層級。

3.中(medium):

一般使用者,和任何沒有特別指定IL的元件都是中安全層級。

ADVERTISEMENT

4.高(high):

系統管理員會被賦予高安全層級,所以它能存取其他低、中、高的各種元件。

5.系統(system):

保留給Windows核心和系統服務使用的層級,它的層級比「high」還要高,所以也不會被系統管理員修改。

6.安裝程式(installer):

這是擁有最高層級的特殊權限,才能用來移除其他各種元件。

ADVERTISEMENT

▲IE瀏覽器保護模式勾選視窗,與其取消勾選保護模式,應該把網站加入受信任的清單才是。

少了UAC大不妙

看起來是不是有點霧煞煞?很多病毒、惡意程式都是從網路相關的途徑下載、傳染進來的,而Windows把預設的元件設成「medium」,這些網路來的「低」等物件就不能隨意去修改或刪除了。

所以啦,UAC保護關或不關,並沒有表面上看來那麼簡單。當UAC啟動的時候,包括系統管理員在內的帳戶都是以一般使用者的權限執行。而UAC關閉時,原本會以「保護模式(protected administrator)」執行的程式就會完全以管理員權限運作。而且檔案系統與登錄檔的虛擬化被關閉,IE保護模式也被取消。總之就是大事不妙。

既然UAC這麼可靠,那Windows 7「順應民意」減少一大堆對話框會怎樣呢?基本上沒有影響,這些原本會出現警告的項目,還是看得到旁邊有UAC的小圖示,它代表執行的時候系統會幫我們「自動升級」。

▲ 雖然Windows 7的警告視窗少很多,但是「保護依舊在,只是沒視窗啦」。

ADVERTISEMENT