圖片來源: 

iThome

最近,兩位資安研究員,相繼發現了不需要透過漏洞,就能利用PDF原本的功能,進行惡意攻擊的手法,並且公開將過程展示在Youtube上。事實上,透過PDF這一類文件檔案進行的攻擊手法,已經越來越普遍,這也使得這兩位研究員的發現,掀起了一股風波。

在臺灣,每年行政院國家資通安全會報都會進行「電子郵件社交工程演練」,針對各個機關發送社交工程攻擊手法的模擬攻擊電子郵件,假冒各個不同單位發信,測試看看有多少人會無預警的打開郵件裡的連結或附檔。以2007年12月的結果來看,平均24.17%的使用者會打開郵件;16.29%的使用者會進一步打開連結或附件。其中,詐騙成功率最高的,是以夾帶惡意文件檔的方式誘騙使用者點擊。測試中,每年都有5~8%的使用者會打開這樣類型的惡意文件檔案。

與社交工程手法混用,惡意文件檔成為有效攻擊手法

上述的數字,隱約透露了一個事實,隨著一般使用者的資安意識逐漸升高,傳統來路不明的執行檔和連結,誘騙使用者點擊的攻擊手法,已經逐漸不那麼有效了;但是文件檔,如PDF、Office文件等,則反而成為了新的可利用手法,如果搭配社交工程的手法,偽裝成使用者認識的寄件者單位或人員,成功率就更高了。

一般來說,透過文件檔達成的攻擊,主要有兩種,一種是利用軟體的漏洞,如透過緩衝區溢位等手法,遠端取得使用者電腦的存取權利,然後植入惡意程式。另外一種,則是透過文件中夾帶的JavaScript,自動引導使用者連線到惡意的網站,下載惡意程式。

這些手法都不是新的手法,不過令人意外的,卻非常有效。趨勢科技技術支援部經理簡勝財就表示,這種透過文件檔打入組織內部的攻擊手法,在臺灣非常普遍,目前很多針對特定目標發動攻擊的駭客,甚至是針對政府機關攻擊的「網軍」,常常都會利用這樣的手法,先調查內部人員的資訊,然後偽裝成相關的人員,發送惡意的文件檔,誘使使用者點擊。由於一般使用者對於文件類型檔案的戒心較低,這樣的手法成功率很高。「我們有不少客戶都有遇過類似的手法,這種搭配社交工程的手段,已經牽涉到使用者的行為,是目前最難防禦的威脅。」簡勝財說。

不過當然軟體廠商也不會坐以待斃,隨著軟體廠商的持續更新,許多文件檔可以利用的漏洞也逐一的被修補。例如過去多個微軟Office軟體可以被利用的緩衝區溢位漏洞,就已經幾乎都被修補,隨著新版軟體的推出,安全性也隨之升高;PDF檔案也是類似的狀況,Adobe和Foxit等PDF Reader軟體的廠商,也持續的修補漏洞,解決類似問題。使用者也可以透過關閉執行JavaScript等功能,確保安全。

看起來只要持續更新,似乎受到惡意文件檔攻擊的安全威脅風險已經減低不少。但是最新的PDF檔案攻擊手法,卻戳破了這個幻夢。

不需漏洞,攻擊者也可以透過PDF讓使用者執行程式

3月底,資安研究員Dider Stevens證實了,透過在PDF檔案中寫入/Launch指令的手法,可以讓使用者只要執行特定的PDF檔案,連帶就自動執行其他任何程式。Dider Stevens甚至提供一個PDF檔案下載,證實只要點選了插入特定指令的PDF檔案,就可以自動執行cmd.exe。雖然部分PDF 閱讀軟體會跳出警告視窗,可是Dider Stevens指出,由於PDF的檔案格式也允許更改警告視窗內的提示文字,這使得透過社交工程的手法,在提示文字上做一些手腳,就可以欺騙使用者執行攻擊者想要執行的檔案。

由於Dider Stevens展示的這個手法,是PDF合法允許的指令延伸,其寫法如下:

/OpenAction <<

/F <>

/S /Launch

>>

而更改警告視窗的寫法,也是合法的範圍,只要加上類似:(app.alert("提示文字內容"))的這個字串,在「提示文字內容」的地方,填入想要填入的內容,就能隨意改變警告視窗的內文。在這樣的狀況下,透過這種欺騙手法進行攻擊的可能性,就和過往任何利用程式漏洞的手法不同,不僅合法(這代表著防毒軟體和更新都無法阻擋),對於一般使用者來說,警覺心如果不夠強,很容易就會中招。

4月初,這個手法又被另一位資安研究人員Jeremy Conway利用,發展出一套透過這樣手法進行擴散感染的方式。使用者只要打開惡意PDF檔案,就會讓正常的PDF檔案被植入特定的指令,進而如果又有其他人打開被植入指令的檔案時,就會自動連結到特定網站,下載惡意程式。而這一切的動作,都不是利用漏洞,而是利用PDF本身就具備的功能。

Jeremy Conway雖然沒有公布他所利用的指令寫法,不過透過他的概念驗證,已經證明了透過「Launch」這樣的指令搭配OpenAction的功能,可以在完全合法的行為模式下,讓惡意攻擊者達成目的。

不要高估PDF的安全性

為了因應這樣的手法,原本對於呼叫不會有警告的Foxit Reader,很快速的就發表了更新,現在Adobe Reader和Foxit Reader在自動執行其他程式時,都會跳出警告框。不過正如前面說到,這也能透過社交工程去動手腳,欺騙使用者。目前看來,唯一能夠阻止這種手法的防範之道,只有透過偏好設定裡的信任管理程式,把允許使用外部應用程式開啟非PDF檔案附件的選項關掉。

不過對於企業內部的資訊人員來說,要確實要求每個使用者遵循,這會是一個難題。就這個角度來看,目前這種以合法程序去驅動的惡意攻擊手法,幾乎沒有任何方式可以徹底根絕。只有透過教育訓練去提升員工在使用上的資安意識。這種融合社交工程的手法,是目前最難防禦的攻擊方式。

大家必須體認到,PDF事實上並不是一種非常安全的文件格式。這起源於PDF實在有太多的互動能力,舉例來說,除了Launch指令之外,還有GoTo、Thread、URI、Sound、Movie、Hide、Named、Set-OCG-Stage、Rendition、Transition、Go-To-3D、JavaScript等各種不同的互動指令,可以讓使用者在打開文件時,就自動執行不同的動作。也正由於擁有這麼多互動的能力,這使得每隔一陣子,就會聽到利用PDF的新攻擊手法。比如說JavaScript的指令,就會被利用來讓使用者外連到惡意網站。

更糟糕的是,因為PDF閱讀軟體的很多設定,是可以透過修改一些電腦上的機碼達到的。比如說,在Windows系統下,如果使用Adobe的Reader,透過修改「HKCU\Software\Adobe\ Acrobat Reader」、「HKLM\SOFTWARE\Policies\Adobe\Acrobat」、「Reader\FeatureLockDown」、「%APPDATA%\Adobe\Acrobat」等位置的資料,就可以更改一些PDF的設定,像是一些擴充功能與外連網頁的白名單和黑名單,這都使得統一管理上有一定難度。舉例來說,如果在HKCU中可以設定的連線白名單中加入「http://」,那麼所有透過PDF外連出去的動作,都將不會出現警告。

至截稿前,Adobe方面都還沒有針對這樣的手法做任何的修補,據了解,Adobe方面也沒有任何移除PDF閱讀軟體上執行JavaScript的功能,Adobe雖然在4月13日更新修補多個漏洞,但是這些修補和Jeremy Conway等人公布的手法無關。

由上述可知,此類手法目前看來還會是企業內部很大的風險,而且沒有明確的可防禦方法。資安研究人員Jeremy Conway在示範他的手法時就公開表示,他相信目前多數的企業仍然對於這樣的手法沒有做任何的防禦準備。「這很有可能會變成未來大規模攻擊者可利用的手段。」Jeremy Conway說。企業內部的IT人員,在軟體廠商還沒有針對這些手法做出回應之前,其實應該要開始考量到這個層面的安全,並且設法做出一些管理機制上的因應。

 

1成6的公務人員會打開不明附件

 

PDF可自動執行的互動指令

GoTo:跳到特定的視窗

Launch:執行指令

Thread:移動到文章特定段落

URI:連結到指定的URL

Sound:播放聲音檔案

Movie:播放電影檔案

Hide:隱藏或顯示註解

Named:依照預先設定的行動,變更整份文件的設定

Set-OCG-Stage:處理特定的內容

Rendition:控制多媒體內容的播放與否

Transition:處理動作與動作間的圖形

Go-To-3D:設定3D動畫和內容

JavaScript:開啟JavaScript

資料來源:iThome整理,2010年4月

 


相關報導請參考「小心!PDF也會藏毒

熱門新聞

Advertisement