當前位置:
首頁 > 新聞 > 將惡意代碼隱藏在圖像中:揭秘惡意軟體使用的隱寫術

將惡意代碼隱藏在圖像中:揭秘惡意軟體使用的隱寫術

概述

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

什麼是隱寫術?

隱寫術(Steganography)是一種可以隱藏代碼的技術,例如在圖像文件中加入隱藏的標籤信息。該技術也通常被稱為「Stego」,是指在其他非秘密文本中(在「載體」消息內)隱藏消息或信息的做法。這也就意味著,惡意行為者可以使用此技術,在網站上僅僅託管圖像,或僅通過電子郵件發送圖像。

儘管隱藏數據的載體文件不一定必須是圖像,但數字圖像具有與其他文件一樣的位元組流,就使得它們成為隱藏秘密文本和其他數據的一個有效媒介。當用戶在設備上打開圖片時,很少有人會關注除了視覺呈現之外的內容,也就是隱藏在.jpg、.png、.bmp或其他圖像文件格式內的內容。

隱寫術是一種混淆的方法,它與密碼學完全不同。密碼學是編製編碼或加密消息的實踐。一段加密的消息,能夠很明顯地被看出它隱藏了一些內容,這些消息通常看起來沒有任何邏輯,需要採用專業的方法來進行解碼或解密。

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

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

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

事實上,考慮到圖像文件的性質,它不僅可以用來隱藏文本字元串,還可以隱藏.jpg和其他圖像格式的整個文件。實際上,根據所使用的技術,也可以實現在原始圖像的文件大小不明顯增長的情況下隱藏信息。

隱寫術如何隱藏信息?

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

最簡單的一個方法,就是將一個字元串附加到文件的末尾。這樣做,既不會影響圖像的正常顯示,也不會改變圖像的視覺外觀。在這裡,我們只需要將「hello world」附加到文件的末尾。通過Hexdump,我們看到了被添加的額外位元組。

純文本字元串可以很容易地被程序轉儲或讀取。在這種情況下,我們只需使用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 11 1 1 1

0 1 1 11 1 1 1

0 0 0 00 0 0 0

我們可以將最後四位修改成我們希望的任何值,最終會導致該像素看起來與原來的值幾乎相同。接下來,我們來看看另一個完全不同的顏色,比如綠松石色:

1 0 0 11 0 0 1

1 1 0 01 1 0 0

1 1 0 01 1 0 0

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

1 1 1 11 0 0 1

0 1 1 11 1 0 0

0 0 0 01 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軟體來檢測惡意代碼的執行就顯得至關重要,無論該代碼是來自圖像還是來自其他文件,甚至還包括無文件惡意軟體。因此,我們建議企業用戶可以考慮選用自動化終端防護產品來防範此類風險。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

一次基於GAO報告的暗網追蹤比特幣槍支銷售的OSINT調查
價值10000美元的Tesla Model 3 XSS漏洞

TAG:嘶吼RoarTalk |