2014 年截至目前為止趨勢科技已發現 14 個重大漏洞

鎖定APT攻擊/目標攻擊經常利用漏洞來暗中感染電腦系統,這類攻擊不一定會利用新發現或零時差的漏洞,例如 Internet Explorer 的 CVE-2013-2551 漏洞就是一個在 2014 年仍受到攻擊的漏洞。

儘管如此,零時差攻擊依然是一項嚴重威脅,因為它們會讓所有人都措手不及,包括資訊安全廠商在內。零時差漏洞正是利用這段防護空窗期,因此即使是勤勞的使用者和系統管理員也不免會暴露於威脅當中。

防護研究

趨勢科技的產品內含一些可解決這類問題的技術,包括瀏覽器漏洞防護、文件漏洞防護以及虛擬修補。這些技術都已整合到我們的消費端及企業級產品當中。

此外,我們也利用這些產品所回報的漏洞與漏洞攻擊訊息來建立一些經驗法則,進而防範已修補的漏洞和零時差漏洞。這樣的作法已展現優良成效。2010 年,一些利用 IE 漏洞來攻擊 Google (CVE-2010-0249) 的惡意程式樣本早在漏洞被揭露之前數星期前就被我們預先攔截。其他類似的案例還有利用 CVE-2013-5990CVE-2013-3346CVE-2014-0496 以及 CVE-2014-1761 等漏洞的攻擊。

發掘漏洞

趨勢科技投入了大量的人力和資源來發掘漏洞以及相關的零時差攻擊,這方面也獲得了不少成果。2014 年我們在各種應用程式當中總共發現了 14 個可能讓駭客從遠端執行程式碼的漏洞。其中十個是 Internet Explorer 漏洞,兩個是 Adobe Flash Player 漏洞,另外  Adobe Reader/Acrobat 和  Java 也各有一個。

2014 年截至目前為止趨勢科技已發現 14 個重大漏洞

圖 1:2014 年發現的漏洞。

我們在 2014 年發現的這 14 個重大漏洞以及受影響的軟體 (皆已通報相關廠商) 分別為:

我們主要是分析從鎖定APT攻擊/目標攻擊受害者所蒐集到的樣本,因為這些樣本更能反應威脅情勢的真實狀況。這些樣本來源廣泛,包括:誘補網路、產品回報、使用者送審的檔案等等。我們相信,這些樣本所使用的都是駭客正在使用或者最可能使用的漏洞。

趨勢科技透過多種方法來發掘潛在的漏洞和漏洞攻擊,包括:經驗法則掃瞄、機器自我學習以及沙盒模擬分析 (Sandboxing)。我們的自動化流程每日可處理數十萬個樣本,其中只有數十個樣本必須再經過手動分析。

如同其他研究人員一樣,我們也會利用靜態分析、輸入資料錯誤測試 (fuzzing)、滲透測試等方法來主動發掘漏洞。我們會在這些漏洞遭駭客利用之前預先通報 Microsoft、Adobe 和 Oracle 等廠商。

我們正是藉由這樣的流程來發現那些容易遭到攻擊的熱門軟體漏洞。我們也和相關廠商密切合作,協助他們修補我們發現的漏洞。正因這些努力,趨勢科技才能在 2014 年寫下輝煌的記錄,發現許多知名 Windows 應用程式的漏洞。

常見的漏洞威脅

不同應用程式在不同時期會流行不同類型的漏洞。這是因為駭客會選擇當時較能穩定獲得成果的漏洞。

例如,趨勢科技今年所發現的 Internet Explorer 漏洞大多是「使用已釋放的記憶體」(Use After Free,簡稱 UAF) 漏洞。Microsoft 今年發布了多次安全更新來解決 UAF 漏洞,包括 CVE-2014-0322CVE-2014-1776 零時差漏洞。

像 UAF 這樣的漏洞或許不容易根除,原因包括:

  • 當開發人員使用 C/C++ 來撰寫程式時較容易犯錯。
  • 文件物件模型 (Document Object Model,簡稱 DOM) 第 1 到第 4 層是由複雜的元件和邏輯所構成,而 UAF 漏洞通常發生在非同步的處理程序 (process) 當中。同樣的問題也會出現在 Google ChromeMozilla Firefox
  • Internet Explorer 當中含有一些非公開的 (private) 的 DOM 元件 (例如 VML),使得程式碼更加複雜,問題也更嚴重。
  • Microsoft 提供了向下相容性,當新舊程式引擎搭配在一起時,安全性就會大打折扣 (因為舊的並未包含安全性更新)。

所幸,Microsoft 導入了兩種解決方法:隔離式 Heap 記憶體延後釋放,這兩種方法可讓歹徒較難利用 UAF 漏洞。

不過,Flash Player 卻存在著一個超出存取範圍的問題。它的程式碼當中缺乏適當的範圍檢查,尤其是某些複雜邏輯背後的相關程式碼。我們發現兩個與此問題相關的漏洞。Flash 在四月出現的零時差漏洞攻擊 (CVE-2014-0515) 也是利用類似的弱點。

重複利用的漏洞攻擊

透過程式碼的重複利用,駭客現在能比以往更快開發出漏洞攻擊程式。一旦漏洞攻擊程式開發到一個穩定的狀態,駭客就會建立一個程式範本。而該範本將包含所有從遠端執行程式碼的步驟,以及避開資料執行防止 (DEP)、位址空間配置隨機化 (ASLR) 等安全機制的方法。

DEP 可防止電腦從非執行碼記憶體區塊執行程式 (包括惡意程式)。ASLR 則是可以將記憶體區塊的排列方式隨機化,讓歹徒更難猜測確切位置。

由於程式碼的重複利用,一旦出現類似的新漏洞,歹徒就能迅速針對新的漏洞開發出新的攻擊程式,因為只要修改少量的程式來確保相關系統登錄在漏洞攻擊時滿足預期的條件即可。

以下我們用 CVE-2014-0322 和 CVE-2014-1776 為範例來說明,這兩個漏洞都屬於 UAF 漏洞,針對這兩個漏洞的攻擊程式範本基本上有四個步驟:

  1. 利用 Flash ActionScript 將程式碼塞入 Heap 記憶體,如此一來就能透過該漏洞以及兩個向量 (vector) 來存取絕大多數的記憶體空間。
  2. 為了避開 ASLR,搜尋 ZwProtectVirtualMemory 的位址,然後用該位址來建立一段返回指標程式碼 (return-oriented programming,ROP),這樣就能避開漏洞防範機制。
  3. 修改 media.Sound 的 vtable 指向 ROP 程式碼,如此就能呼叫其虛擬涵式 (virtual function)。接著,將 shellcode 的權限改成 RWX,如此就能避開 DEP 機制。
  4. 返回 shellcode – 此時駭客就能執行任意的程式碼。

漏洞攻擊的未來發展

前面提過,今年駭客主要都鎖定在發掘 Internet ExplorerFlash Player 的漏洞。我們的研究發現也支持這項說法,今年上半年尤其以 UAF 漏洞為主。

就在 Microsoft 推出兩項解決方法不久,UAF 相關的漏洞攻擊就不再是個嚴重問題。即使我們還是會看到一些 UAF 漏洞,但卻再也不能利用舊的方法來發動攻擊。儘管目前已有解決方案,但我們預料,一旦這些機制又再度被破解,未來 UAF 漏洞攻擊還是有機會再度流行,或許會隨著明年新版的 Internet Explorer 發表一起現身也說不定。

我們認為,無可避免地,駭客會不斷利用新的方法或新的漏洞。我們也看到歹徒改用 UAF 以外的其他類型漏洞,例如超出存取範圍以及資料類型混淆所造成的漏洞。

在躲避安全機制方面也是同樣的情況。今日,駭客已有辦法避開 DEP 和 ASLR,而且研究顯示,就連較新的一些機制也已被破解。例如,在某些特殊的條件下,即使是「延後釋放」的物件記憶體空間也可能立即被釋放。要刻意達到這樣的條件只是變得較為困難,並非全然不可能。

建立一個資訊安全生態體系

趨勢科技將持續投入漏洞與漏洞攻擊的研究。不過我們很清楚,只將我們的研究成果運用到我們自己的產品當中是不夠的。我們必須建立一個生態體系來防範零時差攻擊,因為越來越多的鎖定目標攻擊都利用這種漏洞。我們不應僅止於攔截這類威脅,使用者和廠商都應具備相關的知識,才能讓每一個人都免於這些威脅。

在這個目標達成之前,一般使用者該做些什麼呢?使用者應該確保自己的軟體隨時保持更新,盡可能減少漏洞的存在,也確保自己擁有最新的漏洞防護。正如我們先前提到,我們研究將直接用於為客戶提供更好的防護。

尤其,企業應看看我們的 Deep Discovery產品,因為這是專為發掘鎖定目標攻擊而設計。其經驗式掃瞄與沙盒模擬分析 (sandboxing) 在發掘未知威脅方面非常迅速有效,此外,Deep Discovery

也會利用我們研究所發現的知識來提供最完整的經驗式漏洞偵測。

◎原文出處:https://blog.trendmicro.com/trendlabs-security-intelligence/trend-micro-uncovers-14-critical-vulnerabilities-in-2014-so-far/作者:Weimin Wu (威脅分析師)