Win7之家( afsion.com.cn):Win7殺軟:殺毒軟件本身的抵抗力“弱爆了”
為什么反病毒軟件對比瀏覽器等軟件反而更容易被獲得漏洞并利用?
這個問題可以簡化成三個子問題:
殺毒軟件的哪些構(gòu)造可能存在可利用的漏洞?
為什么通過瀏覽器就能入侵系統(tǒng)?
為什么取道殺軟比瀏覽器更容易獲得漏洞并利用?
我們先來分析殺毒軟件中存在漏洞的潛在機會。
殺毒軟件不只要對抗病毒,還要能檢測木馬程序、間諜軟件、具備反Rootkit能力,現(xiàn)代殺毒軟件還要確保瀏覽器不被安裝惡意插件、掃描你的郵箱中潛在的病毒、以及智能化地分析惡意軟件的行為等。其中殺毒軟件檢測病毒的方式有兩種常用手段:特征碼識別和啟發(fā)式識別。特征碼識別的原理是檢測病毒文件中某種惡意代碼的存在,但這種檢測方式很笨拙,病毒制作者在病毒程序中隨意加入一些無關(guān)代碼就能擾亂殺毒軟件對齊識別的能力。并且不同語言、不同編譯器、甚至32位和64位平臺下編譯出來的代碼都不同,靠特征碼識別只能亡羊補牢,先發(fā)現(xiàn)后補救。而這也是數(shù)十年前,電腦病毒甚是流行的原因之一。而啟發(fā)式的識別則會在一個虛擬空間內(nèi)檢測病毒程序的行為,解剖病毒程序的結(jié)構(gòu),從而判定是否會對系統(tǒng)造成威脅。熊貓燒香病毒流行的時候,微點就做到了不升級病毒庫就能查殺該病毒。
殺毒軟件會提供“實時防護”,也就是當你打開程序、下載文件時,殺毒軟件都會對當前操作的程序進行一次掃描,如果發(fā)現(xiàn)可以文件還可能進行一次啟發(fā)式分析,當然這些都發(fā)生在從你雙擊程序到程序打開前的幾秒空白時間里。短短幾秒鐘,從殺毒軟件在后臺默默運行的服務(wù)到正在被監(jiān)視的explorer.exe進程,從雙擊操作的消息被轉(zhuǎn)發(fā)到user32.dll,再從CreateProcess操作跳轉(zhuǎn)到殺毒軟件設(shè)下的SSDT HOOK中,再從鑒定病毒到刪除、處理病毒程序,每個環(huán)節(jié)都涉及高權(quán)限的操作。進入內(nèi)核態(tài)之后,無論是殺毒軟件,還是系統(tǒng)代碼、驅(qū)動程序,大家都在內(nèi)核態(tài)中各自穿行,一點點的不穩(wěn)定因素都可以導(dǎo)致藍屏,內(nèi)核態(tài)的代碼被注入、篡改,都能導(dǎo)致丟掉整個系統(tǒng)的控制權(quán)。
殺毒軟件所安裝的驅(qū)動程序、內(nèi)核鉤子,所啟動的服務(wù)、守護進程,都可以視作對原系統(tǒng)的修改。如果它們自身存在缺陷而被替換的系統(tǒng)組件固若金湯,那么安裝了殺毒軟件的系統(tǒng)反而更容易遭到入侵。
總結(jié)一下就是殺毒軟件本身具備高權(quán)限,如果被病毒附體,那看門人就變成了大強盜。那么普普通通的瀏覽器為何也能被入侵呢?
以Chrome為例,Chrome本身具備一些安全措施,保證惡意程序不會通過瀏覽器釋放到系統(tǒng)環(huán)境中。這些技術(shù)包括ASLR、DEP和沙盒等。其中ASLR全程即Address Space Layout Randomization(地址空間布局隨機化),每次打開Chrome時其核心組件都位于內(nèi)存中不同的位置,就基本消除了通過在特定位置注入惡意代碼來入侵瀏覽器的可能。DEP即Data Execution Protection(數(shù)據(jù)執(zhí)行保護),可以幫助避免Chrome在保留用于不可執(zhí)行代碼的內(nèi)存區(qū)域中插入惡意代碼。而Chrome的沙盒技術(shù)則利用了Windows所提供的安全機制來實現(xiàn):
• 受限的Token
• Job機制
• 窗口站隔離
• 桌面隔離
• 一致性級別(Integrity Level)
篇幅所限就不在這里一一解釋所有概念,大家可以自行查閱維基百科。
除此之外,隨著HTML5技術(shù)的發(fā)展,網(wǎng)頁應(yīng)用所能獲取的本地權(quán)限也越來越多,此前Chrome就出現(xiàn)過授權(quán)給網(wǎng)頁應(yīng)用一次以錄音權(quán)限、該應(yīng)用就能持續(xù)監(jiān)聽用戶聲音的事件(Speech recognition hack turns Google Chrome into advanced bugging device)。本地緩存、硬件繪圖等新組件也為瀏覽器帶來了潛在的被入侵機會。
現(xiàn)在我們可以討論正題了,為什么說現(xiàn)如今取道殺軟比瀏覽器更容易獲取漏洞并利用?
1、相比瀏覽器,殺毒軟件本身具備的高權(quán)限,使病毒一旦侵入,可以獲得更大的自由和活動空間,進行更大范圍的監(jiān)聽或造成更大范圍的破壞;
2、現(xiàn)代瀏覽器提供了完善的機制來對網(wǎng)頁應(yīng)用進行限制,而系統(tǒng)對應(yīng)用程序的限制主要靠UAC和殺毒軟件來保證,對高權(quán)限應(yīng)用程序的需求一直存在(QQ為了防止輸入密碼時按鍵被記錄,就需要部分代碼運行在內(nèi)核態(tài))而網(wǎng)頁應(yīng)用理論上是絕對不能獲取高權(quán)限的;
3、殺毒軟件的更新頻率要高于瀏覽器的更新頻率,其中存在更多分析殺毒軟件行為的機會。
雖然Chrome的安全機制也有被攻破的時候(Google Chrome hacked with sophisticated exploit),但即便被攻破,也只能獲得中等的執(zhí)行權(quán)限,要想對系統(tǒng)造成破壞,仍然需要經(jīng)過UAC和殺毒軟件的關(guān)卡。費盡心機卻不能獲得最高權(quán)限,作為病毒制造者,為什么不直接從殺毒軟件下手呢?
事實上,真正盯上卡巴斯基的人,不是盜號軟件的作者們,也不是白帽黑帽黑客們,而是像NSA和英國GCHQ這樣的情報集團。而卡巴斯基自曝的入侵事件,也被聲明是“國家級的入侵”。
其實漏洞這種東西,你永遠不知道正在被利用、沒有被公開的有多少,因為建立在軟件上的絕對安全,是不存在的。