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