零時差漏洞攻擊:Magnitude 漏洞攻擊套件收錄舊版 Adobe Flash Player 零時差漏洞 CVE-2016-1019

繼 2016 年 4 月 5 日發出 安全公告 之後,Adobe 隨即釋出了一份緊急更新來修補一個 Adobe Flash Player  漏洞 :CVE-2016-1019。趨勢科技已觀察到一些專門利用 Magnitude 漏洞攻擊套件的零時差攻擊,受影響的使用者包括 Flash 20.0.0.306 版以及更早版本的使用者。不過,這一波攻擊並不影響 Flash 21.0.0.182 及 21.0.0.197 版的使用者,因為 Adobe 已在 21.0.0.182 版當中導入了 Heap 記憶體保護機制,而 21.0.0.197 版理所當然承襲了這項功能。這兩個版本的使用者在遇到這項漏洞攻擊時只會發生 Adobe Flash 當掉的情況。

我們強烈建議所有使用者立即安裝最新的安全更新,因為目前這一波漏洞攻擊正在網路上流行。趨勢科技在 安全更新釋出之前,即發現上述漏洞攻擊套件收錄了這項漏洞,並且會讓電腦感染勒索軟體。

根據我們的分析,CVE-2016-1019 是一種所謂的「類型混淆漏洞」,該漏洞會影響  Flash 20.0.0.306 以及更早的版本。不過在遇到 Flash 21.0.0.182 及 21.0.0.197 版本時,僅會造成 Flash 當掉。Adobe 從 21.0.0.182 版本開始便加入了 Heap 記憶體保護措施。

 

圖 1:散布 Magnitude 漏洞攻擊套件的惡意網域。 

 

Magnitude 漏洞攻擊套件,全球流量分布,台灣排名第ㄧ

早在 2016 年 3 月 31 日,趨勢科技即經由我們 Smart Protection Network™ 的回報發現一項使用  Magnitude 漏洞攻擊套件 的零時差攻擊已經收錄了這項漏洞。這項攻擊會讓系統感染 Locky勒索軟體,這是一種將惡意程式碼暗藏在文件巨集當中的加密勒索軟體。根據報導,此惡意程式曾攻擊美國肯德基州一家基督教衛理公會醫院 (Methodist Hospital) 的電腦系統。

圖 2:Magnitude 漏洞攻擊套件全球流量分布,台灣排名第ㄧ(2016 年 3 月 31 日至 4 月 6 日)。 繼續閱讀

Hacking Team 資料外洩事件又一個Adobe Flash Player 漏洞零時差漏洞曝光

Hacking Team 資料外洩事件前一個曝光的零時差漏洞 (CVE-2015-5119) 熱潮還未消退,另一個同樣危險的 Adobe Flash Player 漏洞 (CVE-2015-5122) 就浮上檯面。此漏洞一旦遭到攻擊,可能導致系統當機,並讓駭客取得系統控制權。此外,與CVE-2015-5119 相同的是,所有 Windows、Mac 及 Linux 最新版的 Flash (18.0.0.203) 都含有此漏洞。

alert 病毒警訊

這是一個新的漏洞,並未包含在先前我們未修補的 Flash Player 漏洞以及其他 Hacking Team 資料外洩事件當中發現的概念驗證攻擊 一文所討論的兩個 Flash 漏洞和 Windows 核心漏洞當中。

好消息是:此漏洞目前還在概念驗證階段,所以我們還在觀察是否有任何攻擊已運用該漏洞。壞消息是:該漏洞目前尚無修補程式,不過我們在確認此漏洞的真實性之後便立即通報了 Adobe (台北時間 7 月 11 日上午10:30),因此相信很外就會有修補程式。Adobe也在台北時間當天上午11:40針對此漏洞發布了安全公告

這漏洞到底如何運作?

經過仔細分析,我們發現這是一個利用  TextBlock.createTextLine() 和 TextBlock.recreateTextLine(textLine) 兩個函式來製造使用已釋放物件情況的漏洞。

觸發此漏洞的程式碼為:my_textLine.opaqueBackground = MyClass_object。實際情況是:MyClass.prototype.valueOf 被覆寫,因此使得 valueOf 函式會呼叫 TextBlock.recreateTextLine(my_textLine)。然後 my_textLine 在釋放之後又被用到。

由於我們是在x86環境上利用偵錯 (debugging) 來追蹤這個漏洞,因此觸發漏洞的是 MyClass32 這個類別。漏洞攻擊函式本身則為 MyClass32 的 TryExpl。

以下說明漏洞攻擊的步驟:

  1. 我們有一個新的 Array 物件,名為 _ar,設定 _ar 的長度為 _arLen = 126。使用 Vector.<uint> 來設定 _ar[0…29] 的數值,Vector 長度為 0x62。使用 Vector.<uint> 來設定 _ar[46…125] 的數值,Vector 長度為 0x8。將 _ar[30….45] 的數值設為 textLine,使用 _tb.createTextLine() 來產生 textLine,並將 textLine.opaqueBackground 設為 1。

繼續閱讀