李國強








摘要:文件雕復是從數字設備中恢復數據的最新技術,其不依賴文件系統中的任何信息[1-3]。文件雕復僅使用存儲在磁盤上的數據塊中可用的信息來恢復文件[4]。在圖片隱寫、CTF也有運用,國外還以此開發出文件雕復器,并取得了商業上的成功。廣泛應用于執法機構和企業的各種取證調查中[5],FBI曾經成功將EnCase(Guidance Software)用于安然(Enron)和世通(WorldCom)的調查[6]。
關鍵詞:雕復;結構;圖片隱寫
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)35-0081-03
文件雕復是基于文件結構恢復文件的最新技術,許多已知的文件都有都獨特的頭部和尾部結構,以標識文件的開始和結束[4]。通過對文件結構分析,可以發現更多文件信息,其應用也越來越廣泛,近年在圖片隱寫、CTF、圖像偽造檢測中都有運用,商業上也有成功應用。FBI曾經成功將EnCase(Guidance Software)用于安然(Enron)和世通(WorldCom)的調查[6]。本文通過文件結構分析和運用來分析圖片隱寫。
1 隱寫術原理
隱寫術簡單地解釋為將一個信息源嵌入另一個信息源[4]。實質上也是將秘密(需要隱藏的信息)嵌入到一種載體的過程,載體和隱藏方式是隱寫術嵌入和提取動作得以實現的關鍵元素。
對于載體,可以是圖片文件、壓縮文件、視頻文件、音頻文件等,只要是可以通過計算機讀寫和傳輸的都是可以作為載體的。
對于隱藏方式,可以利用的選項就很多,常見的隱寫方法如下:
1)基于文件結構的隱寫。直接嵌入式隱寫,這種可以在不影響載體文件的使用的情況下實現文件隱藏。
2) 根據文件特性與冗余性分為:追加插入法和前置插入法,插入信息可分為:文本插入,文件插入;(追加插入法是最常用的,最簡單的一種方法,利用文件特性在文件末尾進行附加數據;分離文件,一個照片文件里可能有兩張照片,組成結構為文件頭數據塊文件尾文件頭數據塊文件尾,因為有一個文件尾,所以后一部分的沒有被識別出來,同樣的前置插入法因為共用一個文件頭,使用formost工具分離)。
對于CTF來說,常見的misc雜項——隱寫是基于文件類型來分的,不同的文件,隱寫方式不同,解題邏輯也就不一樣,比如說,基于圖片文件的隱寫,首先需要識別圖片的基本結構。這里通過一個例子來說明:
以一個png文件01.png為例,用WinHex查看分析其中結構。
標準的PNG文件結構包括PNG文件標識和PNG數據塊。這里以01.png分析png圖片文件結構:
- (固定)8字節89 50 4E 47 0D 0A 1A 0A為png文件頭;
- (固定)4字節00 00 00 0D代表數據塊的長度為13;
- (固定)4字節49 48 44 52是文件頭數據塊的標識(IDCH);
- (可變)13位數據塊(IHDR);前四個字節代表該圖片的寬:6D02;后四個字節代表該圖片的高 5C01;最后五個字節依次為:Bit depth(位深)、ColorType(顏色類型)、Compression method(壓縮方式)、Filter method(過濾方式)、Interlace method(分隔方式)。
剩余四字節為png的CRC檢驗碼,由IDCH到IHDR的十七位字節進行CRC計算得到。PNG圖片文件頭數據塊(IHDR)包括:寬、高、圖像深度、顏色類型、壓縮方法等。
2 png文件結構與基本隱寫行為
2.1 修改高度隱寫(基于圖片基本屬性隱寫)
先用TweakPNG打開圖片,一般修改過長寬的圖片都會報錯,用TweakPNG查看01.png原始信息,顯示未修改圖片的原始信息。然后找到PNG圖片高度值所對應的位置,并修改為一個較大的值(27),嘗試打開,(發現此時圖片偏離了原來的位置)。
修改寬高之后的PNG圖片可能打不開,需要修復PNG圖片的CRC校驗值,我們發現,CRC Calculator自動計算出了新的校驗值。
方法1: 選中PNG的struct IHDR Ihdr部分,使用CRC Calculator重新計算CRC校驗值。將圖中CRC數據修改為重新計算過的CRC值(36 AB B5 8D)。
用TweakPNG再次打開圖片不報錯,修復成功。
2.2 IDAT塊的隱寫(基于圖片基本內容)
IDAT定義:圖像數據塊IDAT(Image Data Chunk):它存儲實際的數據,在數據流中可包含多個連續順序的圖像數據塊。IDAT存放著圖像真正的數據信息,因此,如果能夠了解IDAT的結構,用戶就可以很方便地生成PNG圖像。一般IDAT常常用于校驗文件的完整性,因為文件有修改的話,用pngcheck就可以檢查出來。
在前面的塊中,數據塊都是滿填充,而最后面倒數兩個塊出現非連續填充。IDAT是連續儲存的圖像數據塊,正常情況下,數據塊結束前不會多出沒有填充滿的數據塊,如果出現了這種情況,說明圖片被篡改,具體見案例。
實際上,想要在實戰中利用IDAT隱寫非常困難,IDAT塊本身既確保了圖片本身的信息數據,也確保了其完整性。
2.3 LSB隱寫(基于替換隱藏)
圖片中的像素一般是由三種顏色組成,即三原色(紅綠藍),由這三種原色可以組成其他各種顏色,在png圖片的存儲中,每個顏色占有8bit,即有256種顏色,一共包含256的三次方顏色,即16777216種顏色。
LSB隱寫就是修改RGB顏色分量的最低二進制位也就是最低有效位(LSB),LBS算法導致的更改,對人的眼睛是不可見的,每個像素可以攜帶3bit的信息。
在肉眼中看不出來,也就把信息隱藏了起來,顏色可能變淡,肉眼看不出來區別。
分析LSB隱寫,使用stegsolve工具。藏有二維碼,使用QR Reserach。利用LSB最低有效位(Least Significant Bit)來進行隱寫。例如在PNG圖片的儲存中,每個顏色會有8bit,LSB隱寫就是修改了像素中的最低的1bit,人眼無法區別。例如想把A隱藏進來的話,可以把A轉成16進制的0x61再轉成二進制的01100001,再修改為紅色通道的最低位為這些二進制串。
分離方法:Stegsolve分離:使用Stegsolve—Analyse—Frame Browser,可以瀏覽三個顏色通道中的每一位。
3 案例
3.1 normal_png(修改高度)
1)本題是一個基本的簽到題[7]。
2)打開附件,打開后發現一張png圖片。
3)使用WinHex分析,貌似沒什么問題。
4)計算其校驗值 用CRC Calculator 計算4948445
20000026C0000036B0806000000,校驗值為FBE7C429。發現這個校驗值與原校驗值36B4F5FD對不上,使用tweakpng工具驗證,校驗值出現問題,可以使用tweakpng工具去查看詳細信息。
以上證據表明,圖片的寬高被修改,根據隱寫術的原理,更改寬高(IHDR),不會影響其他數據塊,所以,經常會有人修改文件頭數據塊來控制圖片顯示的信息。
接下來,嘗試把圖片的寬度改大,但是修改寬度會導致圖像顯示混亂,一般而言,隱寫做手腳的參數是高度。先嘗試修改寬度026C為027B,看看修改后的結果是什么。
打開圖片查看,出現亂碼。
修改高度036B為03EE試一下,圖片打開成功。
3.2 misc_pic_again(LSB)
1)再看一個題目,下載附件,打開也是一張png圖片[7]。
2)用WinHex等工具進行分析
用tweakpng打開時發現這張png圖片有一些問題,它不像正常png文件一樣有輔助數據塊,相反,它含有大量的IDAT數據塊,推測png圖片中隱藏其他的文件。
3)使用專門分析LSB隱寫(RGB隱寫)工具stegsolve打開圖片
使用analyse的data extract功能。
Bit planes對應的是顏色通道,這里從0到7剛好8位,剛好每個色塊儲存8bit數據,通過屏蔽或選擇某一色道可以幫助更好地分析隱含的內容,在這里,屏蔽了灰色通道,發現了PK,PK是zip的文件特征。
4)把找到的部分保存為1.zip文件。
5)打開文件1.zip,就發現文件1。
6)用WinHex查看文件1,看到了ELF特征。
ELF是可執行與可鏈接格式,由四部分組成,分別是ELF頭(ELF header)、程序頭表(Program header table)、節(Section)和節頭表(Section header table),并且使用的編碼格式是ascii,在這里,可以直接搜索hctf字符串即可。
4 結束語
以上通過CTF賽題案例,運用數據雕復技術文件結構研究來分析圖片隱寫術技術,識別隱藏有特殊信息的圖片文件內容,該方法也可用作識別反向運用該技術改變原始文件數據的行為,比如數據隱寫、特殊信息傳遞等,將越來越多地出現于各種CTF賽題中,此外還可以專注于某些特定文件類型的詳細工作,研究如RAR文件[8]、PDF文件[9],以及用于辦公類文檔,分析恢復難度較大的文件,同時引導更多其他相關聯應用。
參考文獻:
[1] Lei Z.Forensic analysis of unallocated space[D].Master’s Thesis,University of Ontario Institute of Technology,2011.
[2] Beek C.Introduction to File Carving.McAfee White Paper[EB/OL].[2021-06-20].http://www.macafee.com/ca/resources/white-papers/foundstone/wp-intro-to-file-carving.pdf.
[3] File carving -forensics wiki[EB/OL].[2021-06-20].http://www.forensicswiki.org/wiki/File_Carving.
[4] 林曉東.電子數據取證[M].陳晶,郭勇健,譯.北京:機械工業出版社,2021.
[5] Guidance Software.Investigations of individuals[EB/OL].[2021-06-20].http://www.guidancesoftware.com/computer-forensics-ediscovery-individual-investigation.htm.
[6] Lin X,Zhang C,Dule T.On Achieving Encrypted File Recovery[M]//Lai X,Gu D,Jin B,et al.Forensics in Telecommunications,Information,and Multimedia.e-Forensics 2010,Lecture Note of the Institute for Computer Sciences,Social Informatics and Telecommunications Engineering,vol 56.Springer,Berlin,Heidelberg,2010.
[7] CTF文件隱寫總結之圖片[EB/OL].[2021-06-20]. https://juejin.cn/.
[8] Wei Y J,Zheng N,Xu M.An automatic carving method for RAR file based on content and structure[C]// Kiev,Ukraine:2010 Second International Conference on Information Technology and Computer Science.IEEE,2010:68-72.
[9] Chen M,Zheng N,Xu M,et al.Validation algorithms based on content characters and internal structure:the PDF file carving method[C]//Shanghai,China:2008 International Symposium on Information Science and Engineering. IEEE,2008:168-172.
【通聯編輯:謝媛媛】