圖像隱碼術(Steganography)與惡意程式:原理和方法

能夠躲避偵測的威脅,是今日所面臨最危險的威脅。而那些最令人頭痛的資安問題也都具備這樣的特性,例如「進階持續性滲透攻擊」(Advanced Persistent Threat,以下簡稱APT攻擊) 和零時差漏洞攻擊。駭客只要能不被發現,就能立於不敗之地,也因此,這項能力一直是他們不斷追求的目標。在這一系列的部落格文章當中,趨勢科技將探討網路犯罪集團用來躲避偵測及分析的技巧。

駭客

在第一篇當中,我們首先將介紹所謂的圖像隱碼術 (Steganography),我們將說明何謂隱寫術,以及今日惡意軟體如何利用這項技術。希臘文中的 steganos 一詞代表隱藏的意思,而惡意程式就是喜歡偷偷暗藏東西。對於駭客來說,這真是天上掉下來的禮物。

當然,隱寫術也能應用在真實生活當中。例如將秘密訊息暗藏在特別的地方 (下文就是一篇有趣的例子),不過,此處我們要討論的是資料檔案,以及歹徒如何利用這些檔案。

steganography

圖 1:當年的加州州長阿諾史瓦辛格回覆加州議會的信函,解釋為何他在某議員於演講中羞辱他之後否決了議會的一項決議。其實這是一篇藏頭文,只要將正文的每一行第一個字圈出來就會看到隱藏的訊息:I Fuck You.

 

儘管以下所討論的方法,並非每一種都是傳統認知的隱寫術。不過,我認為這只是解讀上的差異。在這系列部落格文章中,任何方法,只要是能讓駭客將資料隱藏在令人意想不到的地方,我們就將它視為一種隱寫術。

將資料隱藏在令人意想不到的地方就能達到駭客想要的結果:騙過資安研究人員,讓他們不會注意一些原本安全的管道、通訊協定或包裝工具,也就是資料不應出現的地方 (至少不是駭客所傳送的資料類型)。以下我們就來舉幾個例子。

ZeusVM:將惡意程式設定檔暗藏在 JPG 影像中

ZeuS 惡意程式的某個變種所下載的設定檔案是一個漂亮的風景圖片。沒錯,這真的是一張圖片。但其影像檔的末端卻多出了一些資料,這些資料經過解密之後,就會變成一個設定檔。但不論怎麼看,這個影像檔都是一張真正的圖片,因此,任何攔截惡意程式通訊的機制都只會看到漂亮的落日風景。

圖 2:ZeusVM 下載的圖片,裡面暗藏了資料

 

這個變種我們曾經在 2014 年 3 月的一篇部落格當中討論過:「日落和貓的圖片可能威脅您的網路銀行帳號」(Sunsets and Cats Can Be Hazardous to Your Online Bank Account)

VAWTRAK 將設定檔案暗藏在一個遠端的網站圖示當中

這個惡毒的銀行木馬程式最近被發現將其設定儲存在一個網站圖示當中。所謂的網站圖示 (favicon.ico) 是瀏覽器顯示在網址左邊的一個小圖。幾乎每個網站都會提供一個 favicon.ico 影像檔,因此,資安軟體看到這個檔案絕對不會懷疑它的真實性。除此之外,散布 Vawtrak 的網站還架設在 Tor 洋蔥路由器網路當中,因此非常難以追查和偵測,不過這又是另一個話題。

VAWTRAK 在影像當中使用了一種稱為 LSB (最低位元) 的技巧來隱藏訊息。它藉由稍為修改像素的顏色來暗藏其資訊。例如,若某個像素的顏色原本是 0,0,0 (分別代表:紅、綠、藍),也就是紅綠藍的值都是零 (等於純黑)。當顏色修改成 0,0,1時,該像素會稍微沒那麼黑 (人眼其實無法分辨),但卻能夠攜帶一個位元的資訊。

依此類推,歹徒只要將很多像素的顏色都稍微修改一下,就能將完整資訊暗藏在其中,知情的人只要利用反向演算法就能解開其中的訊息。但不知情的人,卻只會看到一幅優美的景色或任何其他的圖片。

若您想更進一步了解 VAWTRAK 如何運用隱寫術,請參閱 SecurityAffairs 網站。此外,我們的威脅百科 (Threat Encyclopedia) 也提供了有關 VAWTRAK 的完整說明。

FakeReg 將惡意程式設定暗藏在應用程式圖示當中

網站圖示並非唯一可以隱藏資料的地方。至少有一個惡意的 Android 應用程式 (也就是我們偵測到的 ANDROIDOS_SMSREG.A) 就在其應用程式的主要圖示 (顯示在手機畫面上的圖示) 當中暗藏了一些資訊。

圖 3:暗藏資訊的 Android 應用程式圖示。由於該圖含有色情內容,所以打碼賽克處理。

有關這項威脅的詳細分析,請參閱 spreitzenbarch forensics 部落格

VBKlip 將資料藏在 HTTP 通訊協定當中

最後一個例子並非利用影像檔案來暗藏資訊,而是利用網路通訊協定。VBKlip 銀行木馬程式 (僅限波蘭地區) 會監控受感染的電腦是否輸入了波蘭的銀行帳號。

一旦發現,就會將轉帳目標26位數帳號偷偷調包,讓匯款轉到歹徒的帳戶。這是一個從幕後操縱 (C&C) 伺服器以特殊方式接收而來的人頭帳戶。惡意程式會發起一些看似毫無意義的 HTTP 連線至 C&C 伺服器,例如:

GET g4x6a9k2u.txt HTTP/1.1

這個連線表面上是從伺服器取得一個文字檔,但其內容毫不重要。不過,C&C 伺服器的 HTTP 回應標頭當中卻暗藏玄機 (為了讓範例簡短一點,我們去除了一些 HTTP 標頭內容):

HTTP/1.1 400 Site Not Installed
Server: .V06 Apache
Content-Type: text/html
MDEwMTAyMDIwMjAyMDMwMzAzMDMwMzAzMDM=

這段 HTTP 標頭最後面那串 base64 編碼的文字,解開之後就是一個銀行帳號,例如:0101-02020202-03030303030303。(感謝波蘭 NASK 機構的 Lukasz Siewierski 幫忙解釋這個範例。)

不過,波蘭的受害者看到的其實是另一個帳號,但錢卻進了這個人頭帳戶口袋。駭客又再次利用一個令人意想不到的管道讓 VBKlip 偷偷傳送資料。嚴格來說,這不算是隱寫術,但仍符合我前面設定的條件,也就是利用防禦方從未懷疑的意外管道來偷渡資訊。

以上非常簡單扼要地說明何謂圖像隱碼術 (Steganography) 以及惡意程式如何利用這項技術。我們很容易就能判斷這樣的技術是否對駭客有利 (答案當然是肯定的)。下一篇,我們將探討惡意程式如何暗藏其他類型的資訊:二進位程式碼。在此之前,請多注意自己的安全…

 

原文出處: Steganography and Malware: Why and How|    作者:David Sancho (資深威脅研究員)

 

 

《提醒》在粉絲頁橫幅,讚的右邊三角形選擇接收通知新增到興趣主題清單,重要通知與好康不漏接