將數據隱藏在圖像中:揭祕惡意軟件使用的隱寫術

概述

本週,許多Facebook用戶都會發現,一些用戶發佈圖片上出現了本來應該隱藏的圖像標籤。由此能夠證實,圖像能夠攜帶大量表面上不可見的數據。實際上,Facebook和Instagram所使用的圖片元數據與惡意攻擊者製做的特製圖像相比顯得很是簡單,攻擊者能夠採用複雜的方法,製做出用於傳遞惡意代碼或泄露用戶數據的圖像。在過去幾年中,使用隱寫技術和隱寫式技巧的野外惡意軟件活動有顯著增長。攻擊者利用這種技術,在圖片和其餘「載體」文件中嵌入隱藏的信息。在本篇文章中,咱們將瞭解隱寫術是什麼,以及惡意攻擊者是如何使用它的。html

什麼是隱寫術?

隱寫術(Steganography)是一種能夠隱藏代碼的技術,例如在圖像文件中加入隱藏的標籤信息。該技術也一般被稱爲「Stego」,是指在其餘非祕密文本中(在「載體」消息內)隱藏消息或信息的作法。這也就意味着,惡意行爲者可使用此技術,在網站上僅僅託管圖像,或僅經過電子郵件發送圖像。安全

儘管隱藏數據的載體文件不必定必須是圖像,但數字圖像具備與其餘文件同樣的字節流,就使得它們成爲隱藏祕密文本和其餘數據的一個有效媒介。當用戶在設備上打開圖片時,不多有人會關注除了視覺呈現以外的內容,也就是隱藏在.jpg、.png、.bmp或其餘圖像文件格式內的內容。服務器

隱寫術是一種混淆的方法,它與密碼學徹底不一樣。密碼學是編制編碼或加密消息的實踐。一段加密的消息,可以很明顯地被看出它隱藏了一些內容,這些消息一般看起來沒有任何邏輯,須要採用專業的方法來進行解碼或解密。網絡

另外一方面,儘管隱寫信息看起來像普通訊息,但卻巧妙地隱藏了一些意想不到的信息。咱們能夠採用熟悉的技術,使用簡單的示例來講明隱寫術背後的基本思想:ide

祕密消息「HelLo, worlD」沒有被編碼,閱讀者只須要知道以某種特定的方式來查看消息,便可讀取其中的信息,咱們無需向「載體」中添加任何額外數據來實現傳播。儘管圖像隱寫術的實現過程具備較強的技術性,但它在一個更低的維度上來看,其原理是相同的。工具

在上面這個簡單的例子中,是由人類的大腦解碼在純文本中隱藏的消息,但計算機程序讀取的字節並非天然語言,這樣一來,對計算機來講就很是容易隱藏明顯的信息。對於人類來講,也幾乎不可能在沒有任何工具幫助的狀況下實現對其的解析。網站

事實上,考慮到圖像文件的性質,它不只能夠用來隱藏文本字符串,還能夠隱藏.jpg和其餘圖像格式的整個文件。實際上,根據所使用的技術,也能夠實如今原始圖像的文件大小不明顯增加的狀況下隱藏信息。編碼

隱寫術如何隱藏信息?

要了解圖像隱寫術的工做原理,首先咱們先來看看在圖像文件中隱藏文本的一些基本方法。加密

最簡單的一個方法,就是將一個字符串附加到文件的末尾。這樣作,既不會影響圖像的正常顯示,也不會改變圖像的視覺外觀。在這裏,咱們只須要將「hello world」附加到文件的末尾。經過Hexdump,咱們看到了被添加的額外字節。spa

純文本字符串能夠很容易地被程序轉儲或讀取。在這種狀況下,咱們只需使用xxd實用程序來逆向十六進制,並以純文本的形式打印出來。

echo 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a | xxd -r -p

咱們可使用相同的思路,藉助RAR壓縮格式將完整的文件附加到圖像之中。圖像查看器只會讀取並顯示與圖像相關的代碼,會忽略壓縮包中包含的其餘任何文件。可是,惡意行爲者或程序能夠輕鬆提取附加的文件。

在此示例中,文件new.jpg在圖像查看器應用程序中打開時會顯示圖片,但在使用WinRAR壓縮實用程序進行查看時,咱們能夠看到解壓縮後的.jpg文件中包含一個祕密的28字節文本文件msg.txt。

這些簡單的技術,可能對於擴展用戶數據頗有幫助,但同時也具備缺點。首先,這些技術會增長文件的大小,其次,它們會更改文件的哈希值。此外,因爲其不尋常的格式,能夠很容易被安全軟件檢測到。

有一種更好的方式,是以二進制形式修改代碼,並操縱每一個像素的最低有效位(LSB)。彩色圖像中的像素能夠用3個字節表示,分別是R(紅色)、G(綠色)、B(藍色)。假設咱們有三個字節,表示一種特定的顏色,例如橙色:

若是咱們從左到右看,最後的四位,實際上對顏色的視覺外觀沒有太大的影響。

1 1 1 1 1 1 1 1

0 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

咱們能夠將最後四位修改爲咱們但願的任何值,最終會致使該像素看起來與原來的值幾乎相同。接下來,咱們來看看另外一個徹底不一樣的顏色,好比綠松石色:

1 0 0 1 1 0 0 1

1 1 0 0 1 1 0 0

1 1 0 0 1 1 0 0

咱們使用綠松石代碼的前四位,來替換橙色代碼的後四位,從而生成複合的RGB:

1 1 1 1 1 0 0 1

0 1 1 1 1 1 0 0

0 0 0 0 1 1 0 0

新生成的顏色與此前相比,沒有明顯的顏色變化。

然而,若是咱們構建一個程序,來分別讀取和提取這四位,那麼咱們就能夠有效地在橙色的代碼中隱藏了綠松石的代碼。兩個像素的信息共同保存在一個像素之中,因此文件的大小也沒有增長。由此證實,咱們能夠在不增長原始消息長度的狀況下傳輸隱藏的消息,也無需操縱文件格式,所以對於依賴於文件掃描查找的簡單檢測方式來講是無效的。實際上,這些代碼徹底被混淆,直到攻擊者從新組裝。

簡而言之,這意味着攻擊者可使用最後四位編碼的RGB數據來寫入其餘數據,而不會顯著下降圖像的視覺呈現效果,也不會增長文件的大小。隨後,隱藏的數據能夠被另外一個程序讀取,並用於重建惡意文件或泄露用戶數據。

LSB操縱只是衆多隱寫技術中的一種。實際上,有許多其餘方法能夠操縱圖像和其餘類型的文件,以實現隱藏密碼的目的。攻擊者甚至還能夠在網絡協議中使用隱寫術,即所謂的「網絡隱寫術」,以攜帶隱藏的消息。在這些狀況下,其原則保持不變,經過在可見載體上搭載不可見的信息,從而將特定內容隱藏在人們的視線以外。

目前在野外發現已經使用隱寫術的惡意軟件

目前,已經在野外發現存在一些針對Windows和macOS平臺的惡意軟件使用了隱寫術。咱們已經發現,攻擊者使用隱寫術來隱藏部分勒索軟件的攻擊代碼,提供惡意JavaScript,甚至承載挖礦工具。下面展現了使用隱寫術的主要惡意軟件。

AdGhonlas:該惡意軟件在圖像、文本、HTML文件中隱藏了惡意JavaScript。

Cerber:在圖像文件中嵌入惡意代碼。

DNSChanger:使用PNG LSB隱藏惡意軟件的AES加密密鑰。

Stegano:在PNG格式的橫幅廣告中包含惡意代碼。

Stegoloadr(又名Lurk):該惡意軟件使用隱寫術和密碼術,隱藏加密的URL,從而提供後期階段的Payload。

Sundown:使用合法PNG文件來隱藏漏洞利用代碼或泄露用戶數據。

SyncCrypt:勒索軟件,將部分核心代碼隱藏在圖像文件中。

TeslaCrypt:在HTTP 404錯誤頁面中,存在HTML註釋標記,其中包含C2服務器命令。

Vawtrak(又名Neverquest):在圖標的LSB中隱藏用於下載惡意Payload的URL。

VeryMal:該惡意軟件針對macOS用戶,將惡意JavaScript嵌入到合法文件中。

Zbot:將數據附加到包含隱藏數據的JPEG文件的末尾。

ZeroT:使用隱寫技術,將惡意軟件隱藏到Britney Spears的照片之中。

如何防範惡意圖像

將惡意代碼隱藏在圖像或其餘載體中,只是威脅行爲者試圖繞過反病毒安全產品時所利用的衆多技術之一。不管使用哪一種技術,惡意軟件做者總有着相同的目標:在終端上保證持久性、掃描遍歷網絡、收集並泄露用戶數據。爲了實現這些目標,惡意軟件做者留下了能夠經過行爲AI解決方案檢測到的足跡。

總結

將文件、圖片、消息甚至是視頻隱藏在另外一個文件中,多是惡意軟件做者用於模糊其Payload或者泄露用戶數據的一種有效方式。考慮到社交媒體網站上圖像的覆蓋程度之高,以及大多數廣告都是以圖像形式展示,咱們預計將來惡意軟件使用隱寫術的趨勢將會保持。考慮到最終用戶難以鑑別出精心構造的的惡意圖像文件,對於企業來講,使用行爲AI軟件來檢測惡意代碼的執行就顯得相當重要,不管該代碼是來自圖像仍是來自其餘文件,甚至還包括無文件惡意軟件。所以,咱們建議企業用戶能夠考慮選用自動化終端防禦產品來防範此類風險。

本文翻譯自: sentinelone.com/blog/hi如若轉載,請註明原文地址: 4hou.com/technology/190 更多內容請關注「嘶吼專業版」——Pro4hou

 

出處:https://zhuanlan.zhihu.com/p/74630938

相關文章
相關標籤/搜索