徐志強(qiáng),吳鴻偉
(廈門市美亞柏科信息股份有限公司 廈門 361008)
1948年,克勞德·香農(nóng)(Claude Shannon)提出了“信息熵(entropy)”的概念,同時(shí)也提出了信息熵的計(jì)算公式,解決了對(duì)信息的量化度量問題。它是信息論中用于度量信息量的一個(gè)概念。一個(gè)系統(tǒng)越是有序,信息熵就越低;反之,一個(gè)系統(tǒng)越是混亂,信息熵就越高。所以,信息熵也可以說是系統(tǒng)有序化程度的一個(gè)度量。正是“信息熵”具備對(duì)信息量化的能力,因此它也逐步被用于信息及網(wǎng)絡(luò)安全領(lǐng)域,用于發(fā)現(xiàn)通信中的異常數(shù)據(jù)的檢測(cè)與發(fā)現(xiàn)。
近年來,國(guó)內(nèi)外電子數(shù)據(jù)取證分析技術(shù)及產(chǎn)品發(fā)展迅速,然而隨著軟件開發(fā)人員對(duì)數(shù)據(jù)安全防護(hù)意識(shí)的提高,誕生了越來越多的反取證軟件,同時(shí)反取證技術(shù)也得到了更為廣泛的應(yīng)用,因此電子數(shù)據(jù)取證面臨了越來越嚴(yán)峻的挑戰(zhàn)。
在電子數(shù)據(jù)取證領(lǐng)域,加密文件的發(fā)現(xiàn)是大多數(shù)案件調(diào)查必做的一個(gè)重要環(huán)節(jié)。常見的加密文件類型,如Office(Word/Excel/PowerPoint)、PDF、RAR、Zip,這些常見類型文件通??山柚?jì)算機(jī)取證分析軟件(如取證大師、EnCase、FTK、X-Ways等)來完成,通常采用分析加密文件類型的內(nèi)部特定結(jié)構(gòu)來實(shí)現(xiàn)加密檢測(cè)。此外,還有一些特殊的加密文件類型,即加密容器文件,有時(shí)也稱之為虛擬容器文件,是由專門的軟件生成,采用了高強(qiáng)度加密算法及哈希算法,常用加密算法有AES-128、AES-256。此類加密容器文件大部分可通過文件簽名(file signature)來發(fā)現(xiàn)。部分加密類型文件(如TrueCrypt加密容器)無明顯的文件簽名特征,也無明顯文件內(nèi)部結(jié)構(gòu)特征,因此很難發(fā)現(xiàn)此類加密文件的存在。在電子數(shù)據(jù)取證分析過程中,調(diào)查人員還將遇到更多未知的加密文件類型,如何去發(fā)現(xiàn)未知的加密文件類型,避免遺漏重要線索或證據(jù),是值得我們思考的問題。
信息隱藏一直以來是電子數(shù)據(jù)取證領(lǐng)域中的取證分析難點(diǎn)。信息隱藏的方式千變?nèi)f化,很難掌握所有的信息隱藏方式。常見的信息隱藏方式有:
·將文件或數(shù)據(jù)隱藏于文件尾部或嵌入于文件內(nèi)容中(采用信息隱寫技術(shù)將文件或數(shù)據(jù)隱藏于常見的一些文件載體中,如圖片、音頻、exe可執(zhí)行文件等);
·將文件或數(shù)據(jù)隱藏于磁盤中特定的區(qū)域(如文件殘留區(qū)、磁盤殘留區(qū));
·將文件或數(shù)據(jù)隱藏于網(wǎng)絡(luò)通信數(shù)據(jù)包中。
越是隱藏的數(shù)據(jù),其對(duì)取證調(diào)查的價(jià)值也越高。因此,如何有效發(fā)現(xiàn)隱藏的數(shù)據(jù),是電子數(shù)據(jù)取證過程中的重點(diǎn),同時(shí)也是難點(diǎn)。
惡意程序的分析也是電子數(shù)據(jù)取證分析的重要部分。通常惡意程序的分析采用了靜態(tài)分析和動(dòng)態(tài)分析的方法來發(fā)現(xiàn)惡意程序。靜態(tài)分析惡意程序難度較大,如今惡意代碼采用了各種反取證、反分析的手段進(jìn)行自我保護(hù),代碼混淆(obfuscation)、加殼(shell)、壓縮(compression)、加密(encryption)、反匯編(anti-disassembly)、反調(diào)試(anti-debugging)等。因此通過傳統(tǒng)的一些方法(如搜索惡意程序中的關(guān)鍵特征代碼,通過惡意程序樣本的哈希值比對(duì))已經(jīng)很難發(fā)現(xiàn)新興的惡意程序。雖然采用動(dòng)態(tài)分析的方法更加有效,然而對(duì)調(diào)查人員分析能力的要求相對(duì)較高,難度也更大。
電子數(shù)據(jù)取證面臨的挑戰(zhàn)遠(yuǎn)不止以上所述要點(diǎn),如何來應(yīng)對(duì)現(xiàn)有的挑戰(zhàn),解決實(shí)際工作中遇到的問題,是值得所有電子數(shù)據(jù)取證調(diào)查人員去深思的。正因?yàn)橐陨纤龅母鞣N反取證技術(shù)的特點(diǎn),即特征的不確定性、可變性,因此,采用“信息熵”適用于解決以上所述的幾個(gè)難題。
每個(gè)字節(jié)通常有8位,每個(gè)位通常有兩個(gè)狀態(tài)(0或1),因此每個(gè)字節(jié)就有28(即256)種狀態(tài)。因此一個(gè)文件的信息熵計(jì)算公式可寫為:
可參加圖1和圖2所示的范例。
通過對(duì)一些常見文件類型的信息熵值計(jì)算及統(tǒng)計(jì),得出測(cè)試結(jié)果,如圖3和表1所示,可供取證分析過程中參考。
圖1 以0和1填充的文件(各50%)
圖2 以隨機(jī)數(shù)填充的文件
表1 相同內(nèi)容、不同格式文件熵值對(duì)比
通過 “信息熵”值計(jì)算及得出的一些數(shù)據(jù)統(tǒng)計(jì),我們可以看出“信息熵”在電子數(shù)據(jù)取證領(lǐng)域可以發(fā)揮其重要作用。目前其主要應(yīng)用有如下幾個(gè)方面。
(1)加密文件或壓縮文件的檢測(cè)
圖3 常見文件類型熵值范圍
目前“信息熵”計(jì)算分析已經(jīng)在一些國(guó)外知名取證分析軟件(FTK、X-Ways)及國(guó)內(nèi)自主知識(shí)產(chǎn)權(quán)的取證分析軟件“取證大師”中得到了應(yīng)用,用于分析未知的加密文件。X-Ways Forensics已應(yīng)用“信息熵”技術(shù)進(jìn)行加密文件的檢測(cè), 默認(rèn)對(duì)大于 255 byte的文件(Zip、RAR、TAR、GZ、BZ、7Z、ARJ、CAB、JPG、PNG、GIF、TIF、MPG 和 SWF 類型的文件除外)進(jìn)行“信息熵”的計(jì)算,將超過特定熵值的文件列為潛在的加密文件,在文件的屬性列將會(huì)顯示 “e?”標(biāo)識(shí),以供取證人員參考,該方式可發(fā)現(xiàn) TrueCrypt、PGP、BestCrypt、DriveCrypt等加密容器文件。筆者使用 X-Ways Forensics測(cè)試一些文件樣本,其中包含1個(gè)TrueCrypt加密容器文件(test.tc),通過加密文件分析后,通過“文件屬性”列可查看到e?標(biāo)識(shí),參照X-Ways圖例說明,可以清楚地了解到該標(biāo)識(shí)的意義,說明該文件加密可能性較大。因此,說明該利用計(jì)算文件“信息熵”方式發(fā)現(xiàn)一些無顯著特征的加密文件或未知加密文件還是效果比較顯著的。
(2)隱藏?cái)?shù)據(jù)的發(fā)現(xiàn)
通過計(jì)算機(jī)取證分析軟件提供的“信息熵”計(jì)算,可手工分析出有可能包含隱藏?cái)?shù)據(jù)的文件。例如一個(gè)隱藏有文本數(shù)據(jù)的JPEG圖片文件,常規(guī)互聯(lián)網(wǎng)上下載的JPEG圖片的“熵”值在5.5~7.9,大多數(shù)數(shù)碼相機(jī)拍攝的 JPEG在7.5~7.9,具體還與采用的壓縮算法有關(guān)。假設(shè)該圖片文件的熵值比較低,例如熵值為5.1,那么該文件就很可能包含了隱藏信息或可打印文本信息,通過找出可疑的文件,再手工進(jìn)行分析即可發(fā)現(xiàn)其中包含的隱藏?cái)?shù)據(jù),從而找到有用的線索或證據(jù)。筆者通過對(duì)比兩個(gè)圖片可以發(fā)現(xiàn),如果有隱藏?cái)?shù)據(jù),那么其熵值將會(huì)變小。原始圖片文件熵值為7.835,包含隱藏文件的圖片文件為7.810,如圖5所示。
(3)惡意程序文件分析
圖4 X-Ways Forensics加密文件檢測(cè)分析
圖5 隱藏?cái)?shù)據(jù)文件熵值對(duì)比
圖6 內(nèi)存中可疑惡意程序檢測(cè) (進(jìn)程熵值計(jì)算)
通過靜態(tài)分析的方法來分析磁盤中哪個(gè)文件是惡意程序相關(guān)文件或被惡意嵌入了可執(zhí)行的代碼是比較困難的。如果平常在取證分析過程中有搜集一定量的惡意程序代碼樣本,并建立一個(gè)數(shù)據(jù)集,獲得樣本的“信息熵”,那么這將對(duì)于后續(xù)的惡意程序分析非常有利。信息熵的計(jì)算還涉及到各種優(yōu)化的算法以便能有效發(fā)現(xiàn)惡意程序文件,本文中將不做詳細(xì)闡述。相關(guān)的實(shí)際應(yīng)用可參見圖5。
目前全球知名取證軟件廠商Guidance Software研發(fā)出專門用于惡意代碼檢測(cè)的系統(tǒng)(EnCase Cybersecurity),可發(fā)現(xiàn)網(wǎng)絡(luò)中各種已知或未知的惡意代碼變種,該系統(tǒng)的核心技術(shù)之一就是信息熵的應(yīng)用,參見圖6。
(4)磁盤冗余陣列重組的智能分析
磁盤陣列重組(RAID)是電子數(shù)據(jù)取證中的一個(gè)重要內(nèi)容。通常由3個(gè)物理硬盤組合的RAID5陣列不知道磁盤組合次序的情況下,也可以通過猜測(cè)、手工逐步按不同次序進(jìn)行組合,實(shí)現(xiàn)RAID的重組。我們可以通過一些取證分析軟件,如EnCase、X-Ways Forensics/WinHex來實(shí)現(xiàn)手工進(jìn)行RAID重組。然而遇到由較多物理磁盤組成的RAID,那么通過猜測(cè)磁盤組合次序顯然是很難成功完成RAID重組的任務(wù)。
“信息熵”也可以應(yīng)用在RAID陣列重組的智能分析,通過對(duì)重組后的RAID邏輯卷中的數(shù)據(jù)計(jì)算其熵值,從而進(jìn)行判斷磁盤組合的最佳次序。RAID邏輯卷中的文件通常以“塊”的方式分散存儲(chǔ)在各個(gè)磁盤,如果分散在磁盤中的各個(gè)數(shù)據(jù)塊(Block)能正確拼接起來,文件就能正常查看,然而如果磁盤組合持續(xù)錯(cuò)誤,那么拼接起來的邏輯卷中的數(shù)據(jù)就是相對(duì)無序的,因此,其熵值就會(huì)相對(duì)較大。
目前,國(guó)外Runtime公司的RAID Reconstructor應(yīng)用了該技術(shù)來對(duì)RAID重組的智能分析,取得了較佳的效果。圖7中所示是針對(duì)一個(gè)由3個(gè)硬盤組成的RAID陣列的測(cè)試結(jié)果,紅色選中的磁盤次序?yàn)樽罴哑ヅ浣M合,其“信息熵”值為0.04,是所有磁盤組合中最小值。
圖7 RAID Reconstructor進(jìn)行RAID陣列重組分析的結(jié)果
本文通過拋磚引玉,主要闡述“信息熵”的重要性及其在電子數(shù)據(jù)取證領(lǐng)域的應(yīng)用價(jià)值,讓從事電子數(shù)據(jù)取證的人員對(duì)“信息熵”有更多的了解,引發(fā)更多的思考與探索?!靶畔㈧亍币殉蔀閷?duì)抗反取證技術(shù)的有利武器之一。在電子數(shù)據(jù)取證分析中,它除了可用于檢測(cè)未知的加密或壓縮文件,發(fā)現(xiàn)隱藏于某些特定文件的數(shù)據(jù),發(fā)現(xiàn)相似的惡意程序變種,進(jìn)行RAID磁盤冗余陣列的智能分析外,同時(shí)也可以用于文件內(nèi)容的模糊比對(duì),當(dāng)然還有更多應(yīng)用等待我們一起去研究。筆者相信它在電子數(shù)據(jù)取證領(lǐng)域?qū)?huì)發(fā)揮越來越重要的作用。
1 吳軍.Google研究員.怎樣度量信息
2 http://www.google.com.hk/ggblog/googlechinablog/2006/04/4_1731.html
3 Shannon C E,Weaver W.The mathematical theory of communication.Univ of Illinois Press,1963
4 Shannon M M.Forensic relative strength scoring-ASCII and entropy scoring
5 Shawn McCreight.Guidance software,cyber security lab-entropy.In:Computer and Enterprise Investigations Conference,2010
6 Simson Garfinkel.Anti-forensics:techniques,detection and countermeasures.Naval Postgraduate School,Monterey,CA,USA
7 Automated mapping of large binary objects using primitive fragment type classification,Digital Investigation,2010(7)
8 M Zubair Shafiq,Syeda Momina Tabish,Muddassar Farooq.Embedded malware detection using Markovian statistical model of benign files,2008
9 Runtime.RAID Reconstructor Help,http://www.runtime.org
10 Data Analysis in WinHex, http://www.winhex.com/winhex/analysis.html