惡意 PDF 閃避技術分析

在許多漏洞攻擊包裡,惡意PDF檔案是用來感染使用者以帶入各種惡意檔案的最常見威脅之一。自然地,安全廠商會投資在正確偵測這些檔案的努力上 – 而惡意作者也會投資在閃避這些廠商的偵測上。

PDF

透過主動式雲端截毒技術的回饋資料,我們研究了幾種今日常見用在PDF漏洞攻擊的技術。這篇文章會介紹這些技術。對於這些技術的瞭解則有助於加強趨勢科技偵測這些漏洞的能力。

 

常見的JavaScript閃避技術

大多數PDF漏洞攻擊碼都會使用某種形式的內嵌JavaScript。正因為如此,常見的JavaScript閃避和模糊處理技術也會被用在這裡。例如:字符串替換、try-catch 例外,fromCharCode迴圈都可以用在PDF檔案。

下面的程式碼片段顯示一些被使用的技術:

 

惡意PDF分析閃避技術

圖一、常見被使用的JavaScript閃避/混淆處理技術

 

這個特定的漏洞攻擊碼針對CVE-2010-0188

 

編碼內容和函數名稱的INFO物件

這類型的混淆處理將加密過的程式碼存到部分INFO物件(如標題、主題、作者等)。可以用JavaScript來提取和解碼加密過的惡意程式碼。

在此樣本裡,INFO物件的標題/建立者欄位很詭異。建立者欄位是非常長的字串,用無數驚嘆號來斷開。

惡意PDF分析閃避技術

 

圖二、INFO物件內的編碼過程式碼

跟前面的漏洞攻擊碼一樣,這樣本也是針對CVE-2010-0188。

 

針對JavaScript執行平台(Runtime)

這種類型的閃避技術是為了躲避分析工具。執行PDF檔案內的JavaScript需要特定的執行平台程式庫。這程式庫是Adobe Reader的一部分,但大多數分析工具並不包含。當惡意軟體發現部分函數並無定義或無法正確動作,惡意程式碼就不會被解密。

可以被用在這裡的函數包括檢查檔案大小和檢查應用程式版本。

在下面的例子裡,app.endPriv會被檢查,如果它沒有被正確定義,就不會執行惡意程式碼。

惡意PDF分析閃避技術

 

圖三。檢查特定函數

 

欄位屬性和範圍函數

有些惡意軟體會使用XML表單架構(XFA)的欄位屬性來做條件檢查。就像上面的例子,分析工具並沒有正確的「實作」這些範圍函數。如果特定物件和函數無法被找到(在這例子中是ImageFiled1物件和ZZA函數),再次地,惡意程式碼將不會被執行。

在其他案例中,可能會利用寬度和高度等屬性。

 

惡意PDF分析閃避技術

 

圖4、欄位屬性和範圍函數

 

名稱空間控制

在今年,我們看到一個新的弱點(CVE-2013-2729)會搭配新的閃避技術。

我們看到有JavaScript程式碼運作在不同的名稱空間(由name屬性控制)。分析工具有時有困難加以處理。在底下的片段裡,我們可以看到有兩個不同物件 – util和spray,以及函數和變數如何被用在這兩個名稱空間。

惡意PDF分析閃避技術

惡意PDF分析閃避技術

惡意PDF分析閃避技術

 

圖五至七、被使用的名稱空間和變數

 

eval函數內的變數範圍改變

這類型的閃避方式是基於PDF JavaScript引擎的某些細節。看看下面的程式碼片段:

(function(){var v=”inner”; e=eval; e(“alert(v)”); })();

上述程式碼在Adobe Reader內可以正常運作,「inner」程式碼會被執行。但用其他的JavaScript引擎則可能無法正常運作,而會回應錯誤。這可以防止惡意程式碼被分析。

總結

我們相信在這些閃避方法中,有兩種 – 檢查Javascript執行平台和改變變數範圍 – 將會在未來被更廣泛地使用。這些是最新的網路犯罪分子企圖逃避偵測的作法。

趨勢科技現有的網頁信譽評比服務會偵測並封鎖使用這些技術的網站。上面所提到的樣本也被偵測為:TROJ_PIDIEF.ERQ,TROJ_PIDIEF.ERP,TROJ_PIDIEF.SMAL和TROJ_PIDIEF.SMAP。

@原文出處:Malicious PDF Analysis Evasion Techniques

作者:Michael Du(威脅分析師)

 

還不是趨勢科技粉絲嗎?想了解更多關於網路安全的秘訣和建議,只要到趨勢科技粉絲網頁 或下面的按鈕按讚加入粉絲,各種粉絲專屬驚奇好禮,不定期放送中

按<這裡>下載 2013台灣進階持續性威脅白皮書APT 攻擊

 

◎ 歡迎加入趨勢科技社群網站