當(dāng)執(zhí)行某個(gè)任務(wù)標(biāo)明自己需要管理特權(quán)時(shí),UAC確實(shí)會(huì)彈出一個(gè)對(duì)話框讓我們選擇。有人看到這里馬上就“頓悟”了,于是乎,開始鄙視起UAC的安全機(jī)制-什么都得靠用戶去判斷~
果真是這樣嗎?
UAC ≠ Consent
UAC對(duì)話框是讓用戶選擇是否提供高級(jí)特權(quán),如果不彈出對(duì)話框,程序就以低特權(quán)運(yùn)行。根據(jù)“最小特權(quán)”的安全原則,盡可能讓程序運(yùn)行在低特權(quán)模式,這樣就算這些程序受到攻擊或者有漏洞,惡意代碼也不可能用作跳板攻擊系統(tǒng)。
病毒會(huì)不會(huì)彈出對(duì)話框讓你選擇?
這就要分析一下病毒的常見行為。
通常,如果病毒編寫者智商不低的話,病毒的習(xí)慣是“悄悄地進(jìn)村,打槍的不要”。
病毒一般不會(huì)主動(dòng)跳出來說“我就是病毒,看這里、看這里、看這里。。。你點(diǎn)我呀。。。”
就好像絕大多數(shù)“文抄公”一樣,在抄襲ITECN的原創(chuàng)文章時(shí),總是千方百計(jì)隱藏自己的劣跡,例如刪除圖片中的版權(quán)水印,把作者名改成他們自己。。。當(dāng)然不排除,有些病毒采用這種“社會(huì)工程學(xué)”手段,希望能夠騙用戶點(diǎn)擊“允許”。
這里首先分析一下要彈出提UAC提示,得滿足哪些條件?
Windows并沒有一種與生俱來的魔力,能夠未卜先知哪個(gè)程序需要管理員權(quán)限。
要想拿到管理員權(quán)限,程序必須在它的manifest里添加“requestedExecutionLevel level="highestAvailable”(或者level ="requireAdministrator")這樣的語(yǔ)句。
附圖所示的是注冊(cè)表編輯器的內(nèi)嵌manifest語(yǔ)句:
盆盆評(píng)注:Windows可以自動(dòng)識(shí)別絕大多數(shù)安裝程序,從而提示提升權(quán)限。
也就是說,病毒要想能夠彈出權(quán)限提示框,就必須修改其manifest。
然而對(duì)于病毒來說,要用這種方法欺騙用戶,非常難,這是因?yàn)橐韵滤狞c(diǎn):
1. 病毒大多數(shù)會(huì)設(shè)置為開機(jī)時(shí)運(yùn)行。但是UAC默認(rèn)阻止開機(jī)時(shí)需要提升權(quán)限的進(jìn)程。這條路可以說被堵住了。
2. 病毒的特點(diǎn)是,即使沒有手動(dòng)啟動(dòng)它,它也會(huì)想法設(shè)法自己?jiǎn)?dòng)(否則技術(shù)含量也太低了)。但是如果電腦用得好好的,我們沒有點(diǎn)擊啟動(dòng)任何程序,但是突然冷不丁彈出一個(gè)橙色警報(bào)的UAC對(duì)話框,您會(huì)選擇“允許”嗎?
盆盆評(píng)注:注意,在這種情況下,UAC對(duì)話框并沒有獲得鼠標(biāo)焦點(diǎn),而是會(huì)在任務(wù)欄上顯示一個(gè)黃色閃爍的圖標(biāo),不會(huì)打斷用戶的工作。這很容易判斷。
3. 病毒偽裝成合法的模樣,或者嵌入到其他正常程序(這些程序標(biāo)識(shí)為需要彈出UAC對(duì)話框)中,這時(shí)候也會(huì)彈出橙色警報(bào)的UAC對(duì)話框。
4. 在企業(yè)環(huán)境里,甚至可以設(shè)置組策略,不允許提升沒有合法數(shù)字簽名的程序。這樣這類病毒就無法運(yùn)行了。
聽到這個(gè)概念時(shí),可能有朋友會(huì)很悲憤地認(rèn)為“微軟又一輪的壟斷開始了”,并且前瞻性地?cái)嘌?#8220;病毒也可以弄一個(gè)數(shù)字簽名”。
盆盆評(píng)注:病毒當(dāng)然可以自己做一個(gè)數(shù)字簽名,但是無法偽造別人的簽名。那么合法的程序會(huì)不會(huì)不能運(yùn)行?不會(huì),一方面可以在企業(yè)環(huán)境里通過CA簽署沒有簽名的程序,另外一方面也可以打開一個(gè)高特權(quán)的Shell,然后運(yùn)行這些程序。當(dāng)然肯定會(huì)比較麻煩,這需要在安全和方便之間進(jìn)行權(quán)衡。
現(xiàn)在我們已經(jīng)可以得出以下三個(gè)結(jié)論:
1. 并非所有病毒都敢冒風(fēng)險(xiǎn),修改menifest,以便彈出對(duì)話框,誘使用戶點(diǎn)擊。
2. 就算病毒會(huì)彈出UAC對(duì)話框,也很容易判斷,只要看到是橙色報(bào)警、或者是莫名其妙自己彈出來的,多留一個(gè)心即可。學(xué)習(xí)成本并不高。
3. 無論如何,肯定會(huì)有人選擇“允許”。
那么是不是都點(diǎn)擊“允許”,還不如禁用UAC?這就帶出了另一個(gè)經(jīng)典誤解,這是后話,此處且按過不提。
病毒制造者會(huì)改變策略,他們會(huì)盡量想辦法在以標(biāo)準(zhǔn)用戶的身份運(yùn)行時(shí),獲取高級(jí)特權(quán),辦法遲早會(huì)有的,針對(duì)Windows Vista的革命性病毒遲早會(huì)出現(xiàn)。
如果您實(shí)在覺得UAC麻煩,為什么不試試這個(gè)方法呢?
http://blogs.itecn.net/blogs/ahpeng/archive/2007/03/21/EasyDisableUAC.aspx
饒是如此,還是可以相信,很多人寧可把權(quán)限拱手奉送給應(yīng)用程序,也不愿意控制在自己手上。
嘆嘆。
聯(lián)系客服