【重大漏洞】Flash 零時差漏洞解析

這起漏洞攻擊背後的元兇應該就是 Angler 漏洞攻擊套件。過去一天之內,趨勢科技見到涉及這起零時差漏洞攻擊的 Angler 漏洞攻擊套件伺服器活動大量攀升,如下圖所示:年 1 月 20 日起,我們就陸續經由 Smart Protection Network 威脅情報網收到一些內含 Angler 漏洞攻擊套件的惡意 SWF 檔案樣本。這些樣本皆來自美國境內使用者,我們認為其中一個樣本就是資安研究人員 Kafeine 所通報的 Flash 零時差漏洞攻擊所用的惡意程式,只不過感染來源和 Kafeine 所發現的不同。

圖 1:涉及這起零時差漏洞攻擊的 Angler 漏洞攻擊套件伺服器網頁造訪數量。

上圖清楚顯示 Angler 的活動在過去一天之內大幅增加,大致上與該漏洞首次被發現的時間吻合。其中大部分受害者都在美國,如下圖所示:

圖 2:感染 Angler 的使用者地理位置分布

感染來源

根據我們產品所回報的資料顯示,這起攻擊是利用惡意廣告 (malvertisement) 來侵襲一般使用者。儘管目前我們仍在針對漏洞本身進行完整剖析,受影響的很顯然是 Adobe Flash Player 的現行版本:

圖 3 和 4:Flash 漏洞攻擊感染來源

漏洞攻擊方法與混淆編碼技巧

在 Adobe 釋出修補程式之前,我們暫不公開漏洞攻擊的細節。不過,我們確實發現其手法大致上類似先前的 Flash 零時差漏洞攻擊,如:CVE-2014-0515

此外,我們也注意到,我們所拿到的樣本都使用了重重的混淆編碼技巧。首先,惡意程式會使用 loadByte() 函式來載入並執行一個內嵌的 Flash 檔案。而「loadByte」這個函式名稱已經過字串處理的混淆編碼,且其參數 (亦即 Flash 檔案內容) 也利用了位元組陣列的混淆編碼技巧。

內嵌的 Flash 檔案本身則使用了多重控制流的混淆編碼技巧。

Shell 程式碼

樣本中的 Shell 程式碼會先列出必要的 API 函式位址。接下來便建立一個新的執行緒來從漏洞攻擊套件伺服器下載酬載 (亦即惡意內容)。

此酬載已經過加密,不過 Shell 程式碼會在記憶體中將它解密。從它列出的 API 可以看出並沒有 CreateProcess 和 WriteFile 這兩個函式。因此,它不會將最後的 PE 檔案寫入磁碟,這一點是 Angler 漏洞攻擊套件習慣的作法,有別於其他漏洞攻擊套件。

圖 5:Shell 程式碼在記憶體中列出的 API 函式位址

防範建議和最佳實務作法

在 Adobe 釋出安全更新之前,使用者或許可以考慮暫時停用 Flash Player,直到修正版本出現為止。此外,我們也發現,Chrome 版本的 Flash Player 外掛程式已沙盒化,因此可避免使用者遭到潛在的威脅。此外,Firefox 也對這項威脅免疫。

趨勢科技端點防護產品當中的瀏覽器漏洞攻擊防護 (Browser Exploit Prevention) 功能可預防使用者連上散布此漏洞攻擊的網址。同時,瀏覽器漏洞攻擊防護功能還可防止專門攻擊瀏覽器和相關外掛程式的漏洞攻擊。而 Deep Discovery 現行的沙盒模擬和 Script 分析引擎也可以偵測這項威脅,無須更新掃瞄引擎或病毒碼。

我們將持續追蹤這項威脅並視情況隨時更新本文。

 

感謝 Joseph C. Chen 提供樣本與額外資料,同時也感謝 Brooks Li、Jack Tang、Moony Li、Michael Du 與 Peter Pi 提供進一步分析。

上次更新日期:太平洋標準時間 2015 年 1 月 22 日上午 11:00

趨勢科技 Vulnerability Protection 漏洞防護 (前身為 OfficeScan IDF 外掛程式) 可套用下列深層封包檢查 (DPI) 規則來預防使用者電腦遭到這項零時差漏洞攻擊:

1006460 – Adobe Flash Player Buffer Overflow Vulnerability (Adobe Flash Player 記憶體緩衝區溢位漏洞)
原文出處:Flash Greets 2015 With New Zero-Day