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

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

UAC可以隨便關?

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

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

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

臨機啟用系統權限

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

5種權限來把關

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

1.非信任(untrusted):

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

2.低(low):

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

3.中(medium):

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

4.高(high):

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

5.系統(system):

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

6.安裝程式(installer):

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

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

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

少了UAC大不妙

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

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

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

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

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

使用 Facebook 留言

CircleBear
1人給推

21.  CircleBear (發表於 2010年12月05日 10:46)
對呀沒錯,
UAC有其存在的價值,
很多病毒過去所使用的手法遇到了UAC馬上就露出馬腳掰掰了,
可是只要是知道UAC能關的人,
大部分一安裝完Win7 or Vista的第一件事,
就是徹底關閉UAC(包括我在內),
這樣才方便設定、方便裝軟體。
(不然一天內出現幾十次黑色的畫面誰受得了!?)

白名單應該是個好方法,
因為UAC我遇到最X杯的情況是,
我開機自動載入的一支程式會被UAC檔下來,
結果每次還沒開好機就一片黑要我去按,
像我平常人在外面會用定時開機,
然後用TeamViewer遙控,
有UAC真的會把人搞瘋。

卡巴斯基也有類似狀況,
其「免疫防護」元件每當偵測到狀況,
跳出一個黃色視窗,
寫著例如:
「程式~~~~~(PID XXXX)偵測到PDM Invader。允許。」
跟我說有可疑狀況,結果又全自動允許,
我也沒有選擇「拒絕」的餘地,
那跑一個黃黃的東西出來嚇人幹嘛??
而且我一開始不知道PDM Invader指的是啥?
還以為遇到木馬...
╯-__-)╯ ╩╩
D569907ea03cf089a833581ba38ad6ae?size=48&default=wavatar
22.  sppmg (發表於 2010年12月06日 18:58)
xp 的使用者帳號超難用,連看月曆都不准,誰想用它。當然都是管理者玩到底。
linux 中,圖形介面下若需碰到系統,一樣也會跳出視窗,但會有個選項是:「在此階段記憶密碼」。這樣在登出前都不用再輸入密碼(不過會提醒正在操作系統管理)
uac有沒有類似此功能呢?

習慣linux的人~
A71c0cca84e4f07e2577b8994606fc60?size=48&default=wavatar
23.  麥鼠 (發表於 2010年12月18日 19:08)
UAC是個好的功能,只是微軟放錯地方了!

如果能像Linux一樣,把權限、加密控制放在作業系統的core
最核心的部分,
使得作業系統必得經過他的認證才能運行,
就不必讓使用者多按按鈕了。

Windows的架構太依賴外掛的.dll和外掛驅動程式, ╯-__-)╯ ╩╩
導致他們被抽換都沒人知道。

若能將她們與system core綁在一起,這些資料一旦遭到駭客串改,電腦就運作失敗,該程式(甚至整個系統)直接Stop中斷掉(不中斷掉也難,hard ware driver都死當了)。

就免於中毒之擾了!
UAC是光明未來的跳板!
先苦後甜囉~ (≧▽≦)

發表回應

謹慎發言,尊重彼此。按此展開留言規則