王文奇,潘 恒,鄭秋生,關(guān)云云
(1.中原工學(xué)院 計(jì)算機(jī)信息系統(tǒng)安全評(píng)估河南省工程實(shí)驗(yàn)室,河南 鄭州450007;2.中原工學(xué)院 鄭州市計(jì)算機(jī)網(wǎng)絡(luò)安全評(píng)估重點(diǎn)實(shí)驗(yàn)室,河南 鄭州450007;3.中原工學(xué)院圖書館,河南 鄭州450007)
網(wǎng)絡(luò)取證[1]近年網(wǎng)絡(luò)取證逐漸成為研究的熱點(diǎn)。國(guó)內(nèi)如田志宏等針對(duì)證據(jù)推理網(wǎng)絡(luò)實(shí)時(shí)取證進(jìn)行了研究[2];楊珺等基于人工免疫原理對(duì)過濾網(wǎng)絡(luò)證據(jù)進(jìn)行了研究[3];楊化志等利用Linux的防火墻機(jī)制對(duì)在線還原基于HTTP 協(xié)議的文件進(jìn)行了研究[4];王文奇等提出網(wǎng)絡(luò)取證的完整性技術(shù)并對(duì)網(wǎng)絡(luò)取證的規(guī)則進(jìn)行了探討[5];國(guó)外研究方面,Pilli E.S等提出了網(wǎng)絡(luò)取證的通用模型及對(duì)應(yīng)的工具,其側(cè)重點(diǎn)是研究網(wǎng)絡(luò)取證的特征[6];Palomoa等則采用自組織映射技術(shù)對(duì)網(wǎng)絡(luò)數(shù)據(jù)特征進(jìn)行了研究[7]。國(guó)內(nèi)外對(duì)瀏覽器內(nèi)容取證研究相對(duì)較少。
目前已開發(fā)的網(wǎng)絡(luò)監(jiān)控取證工具相對(duì)較多,網(wǎng)絡(luò)監(jiān)控僅僅監(jiān)控犯罪嫌疑人訪問的鏈接,應(yīng)用于取證存在如下問題:①由于頁(yè)面可能隨時(shí)更新,無法獲得其訪問網(wǎng)頁(yè)原始內(nèi)容;②許多Web服務(wù) (如各類色情網(wǎng)站)返回的頁(yè)面內(nèi)容需要客戶提供用戶和密碼,之后客戶端及與服務(wù)器端會(huì)話依靠Cookie來維持,而Cookie是有生存周期的,僅靠監(jiān)控鏈接無法獲取其瀏覽內(nèi)容。因此有必要針對(duì)網(wǎng)絡(luò)犯罪,如何獲取其網(wǎng)絡(luò)數(shù)據(jù)并還原網(wǎng)絡(luò)內(nèi)容進(jìn)行研究。
在前期研究中,主要是為保證取證網(wǎng)絡(luò)會(huì)話的完整性,設(shè)計(jì)了基于二維鏈表的多隊(duì)列高速網(wǎng)絡(luò)數(shù)據(jù)緩存算法[5],解決了高效緩存網(wǎng)絡(luò)數(shù)據(jù)的關(guān)鍵問題。因此本次研究是在前期研究的基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)取證研究,包括捕獲的網(wǎng)絡(luò)數(shù)據(jù)高效匹配算法、網(wǎng)絡(luò)數(shù)據(jù)重組和HTTP數(shù)據(jù)還原恢復(fù)技術(shù)。通過還原被取證用戶的瀏覽器活動(dòng)過程和活動(dòng)現(xiàn)場(chǎng),為司法單位相關(guān)部門提供新的追蹤犯罪分子、偵破違法事件的手段和方法。
當(dāng)使用瀏覽器瀏覽頁(yè)面時(shí),作為瀏覽器作為客戶端訪問服務(wù)器過程如下:瀏覽器析取URL (uniform resource locator)地址中主機(jī)域名,利用DNS協(xié)議訪問DNS服務(wù)器并獲取其IP地址,基于HTTP 協(xié)議利用GET 命令向服務(wù)器發(fā)送獲取訪問頁(yè)面請(qǐng)求。對(duì)于靜態(tài)頁(yè)面,服務(wù)器端將存儲(chǔ)于服務(wù)器端對(duì)應(yīng)的頁(yè)面文件傳回;對(duì)于動(dòng)態(tài)頁(yè)面 (如需要用戶登錄的郵箱系統(tǒng)、論壇等頁(yè)面),服務(wù)器端則依據(jù)會(huì)話的cookie,自動(dòng)生成動(dòng)態(tài)頁(yè)面并傳回客戶端。客戶端瀏覽器獲取Web 頁(yè)面的HTML 文本后解析并緩存于本地,Web頁(yè)面一般不是只有文字組成,而且包含圖片、音頻、視頻以及PHP、CGI、JSP甚至是HTML 等腳本語(yǔ)言構(gòu)成的內(nèi)嵌文件,這些資源在Web頁(yè)面中以鏈接的形式內(nèi)嵌。瀏覽器解析這些鏈接后再次利用GET 命令獲得對(duì)應(yīng)的服務(wù)器端文件,直至獲得Web 頁(yè)面中所有內(nèi)嵌資源,并根據(jù)HTML腳本描述顯示,從而呈現(xiàn)豐富多彩的頁(yè)面內(nèi)容??蛻舳讼蚍?wù)器提交內(nèi)容時(shí),則通過POST、PUT 命令提交。因此,由中間監(jiān)控者看來,瀏覽器訪問服務(wù)器并顯示W(wǎng)eb頁(yè)面的過程,實(shí)際上就是客戶端利用HTTP 協(xié)議的GET命令不斷獲取服務(wù)文件,以及少量POST、PUT 命令向服務(wù)器提交內(nèi)容的過程。
由于IPSEC等安全協(xié)議的復(fù)雜性 (如需要服務(wù)器及客戶端證書),除少數(shù)電子商務(wù)性質(zhì)涉及金融交易的網(wǎng)絡(luò)服務(wù)外,為方便用戶的訪問,實(shí)際應(yīng)用中,當(dāng)前提供Web服務(wù)的網(wǎng)絡(luò)幾乎全部采用明文傳輸,甚至這些門戶網(wǎng)站 (如新浪、網(wǎng)易等)提供的郵件傳輸服務(wù)也是明文傳輸,對(duì)特定用戶提供Web服務(wù)的各種論壇、OA 系統(tǒng)等網(wǎng)站,也絕大部分采用明文傳輸,明文傳輸?shù)奶卣鳛閷?shí)時(shí)取證及根據(jù)內(nèi)容恢復(fù)網(wǎng)頁(yè)提供了可能。
在文獻(xiàn) [5]中,我們定義了網(wǎng)絡(luò)取證模型,以及網(wǎng)絡(luò)取證必須遵循證據(jù)的客觀性規(guī)則、完整性規(guī)則。在此基礎(chǔ)上,我們認(rèn)為,由于網(wǎng)絡(luò)數(shù)據(jù)的易逝性、通信的復(fù)雜性及電子數(shù)據(jù)易修改特征,網(wǎng)絡(luò)證據(jù)還必須遵循證據(jù)的有效性規(guī)則,為此有以下規(guī)則:
網(wǎng)絡(luò)證據(jù)有效性規(guī)則:一個(gè)由網(wǎng)絡(luò)數(shù)據(jù)包構(gòu)成的網(wǎng)絡(luò)證據(jù)集合只有同時(shí)包含以下兩部分,網(wǎng)絡(luò)證據(jù)才是有效的:
網(wǎng)絡(luò)證據(jù):E= {S∪C};其中:E 表示網(wǎng)絡(luò)數(shù)據(jù)包組成的證據(jù)集;S由會(huì)話內(nèi)容組成的網(wǎng)絡(luò)數(shù)據(jù)包集;C 網(wǎng)絡(luò)控制的數(shù)據(jù)包集,是在網(wǎng)絡(luò)內(nèi)容傳輸過程中產(chǎn)生的必要的網(wǎng)絡(luò)控制數(shù)據(jù)包集,包含了豐富的控制信息,且難以完整地偽造,用于證明S并能夠形成一條完整的證據(jù)鏈。
如在進(jìn)行瀏覽器進(jìn)行網(wǎng)頁(yè)瀏覽時(shí),基于DNS協(xié)議客戶端需要先獲得服務(wù)器的IP 地址,基于TCP 協(xié)議雙方需要先進(jìn)行三次握手協(xié)議,會(huì)產(chǎn)生大量的網(wǎng)絡(luò)控制信息;基于HTTP協(xié)議,客戶端使用GET 命令獲取服務(wù)器資源時(shí),雙方需要交換大量相關(guān)信息。這些數(shù)據(jù)包是獲得網(wǎng)頁(yè)內(nèi)容過程中必要的網(wǎng)絡(luò)通信,不包含證據(jù)內(nèi)容,但可以用于證明網(wǎng)絡(luò)數(shù)據(jù)的真實(shí)性,從而間接證明網(wǎng)絡(luò)數(shù)據(jù)的司法有效性。
根據(jù)網(wǎng)絡(luò)取證的對(duì)象,網(wǎng)絡(luò)取證可以分為兩種:特定主機(jī)監(jiān)控取證、關(guān)鍵詞分析取證。特定主機(jī)監(jiān)控取證,需將該主機(jī)所有網(wǎng)絡(luò)數(shù)據(jù)取證保存,適用于已掌握取證對(duì)象主機(jī)的取證,取證方式較為簡(jiǎn)單。關(guān)鍵詞取證分析,適用于根據(jù)關(guān)鍵詞在特定的網(wǎng)絡(luò)段內(nèi)監(jiān)控海量網(wǎng)絡(luò)數(shù)據(jù)包,從中實(shí)時(shí)分析網(wǎng)絡(luò)數(shù)據(jù)取證,設(shè)計(jì)相對(duì)較為復(fù)雜。
針對(duì)后者,設(shè)計(jì)如圖1所示的網(wǎng)絡(luò)取證框架。
圖1 網(wǎng)絡(luò)取證框架
框架系統(tǒng)描述如下:
(1)零拷貝技術(shù)
其主要功能是從網(wǎng)絡(luò)中提取鏈路層原始網(wǎng)絡(luò)數(shù)據(jù)。由于取證網(wǎng)絡(luò)數(shù)據(jù)一般是從高速網(wǎng)絡(luò)中提取,WinPcap在高速網(wǎng)絡(luò)下存在一定的丟包現(xiàn)象[8],基于此,采用零拷貝技術(shù)捕獲鏈路層網(wǎng)絡(luò)數(shù)據(jù),以盡量減少丟包。
(2)高速網(wǎng)絡(luò)數(shù)據(jù)緩存系統(tǒng)
由于網(wǎng)絡(luò)數(shù)據(jù)包的易逝性,當(dāng)判斷到網(wǎng)絡(luò)數(shù)據(jù)需要取證時(shí),之前相關(guān)網(wǎng)絡(luò)數(shù)據(jù)包早已流過,造成網(wǎng)絡(luò)數(shù)據(jù)不完整而無法將網(wǎng)絡(luò)數(shù)據(jù)還原到應(yīng)用層。為此利用計(jì)算機(jī)資源盡可能地緩存網(wǎng)絡(luò)數(shù)據(jù)包,需要取證時(shí),再把相關(guān)網(wǎng)絡(luò)數(shù)據(jù)保存到證據(jù)庫(kù)。
(3)關(guān)鍵詞取證分析系統(tǒng)
先查看該會(huì)話是否處于取證會(huì)話列表,如是則直接取證保存;否則,將捕獲的鏈路層數(shù)據(jù)還原到應(yīng)用層,根據(jù)預(yù)設(shè)的關(guān)鍵詞判斷是否需要取證,如果需要取證則將該會(huì)話信息及其它相關(guān)會(huì)話信息加入取證會(huì)話列表,并通知高速網(wǎng)絡(luò)數(shù)據(jù)緩存系統(tǒng),將所有相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)包保存到證據(jù)庫(kù),高速網(wǎng)絡(luò)數(shù)據(jù)緩存系統(tǒng)不再緩存這些相關(guān)會(huì)話。
(4)證據(jù)庫(kù)保存系統(tǒng)
采用加密簽名技術(shù),對(duì)原始網(wǎng)絡(luò)證據(jù)加密簽名,以防止網(wǎng)絡(luò)證據(jù)保存、復(fù)制及傳輸過程中被篡改,保證其司法有效性。由于捕獲的是鏈路層數(shù)據(jù),保存數(shù)據(jù)格式采用tcpdump等工具使用的通用網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)格式。
(5)還原顯示系統(tǒng)
將捕獲的鏈路層數(shù)據(jù)根據(jù)TCP/IP 協(xié)議將鏈路層數(shù)據(jù)還原到應(yīng)用層,還原瀏覽器使用過程及內(nèi)容,并以可視的方式呈現(xiàn)給取證用戶。
上述系統(tǒng)中,零拷貝技術(shù)已是相對(duì)成熟技術(shù);證據(jù)保存技術(shù)也采用成熟的加密簽名技術(shù)及通用存儲(chǔ)格式;高速網(wǎng)絡(luò)數(shù)據(jù)緩存系統(tǒng)已在文獻(xiàn) [5]中進(jìn)行描述和論證。因此本文主要就其它兩個(gè)系統(tǒng)中未解決的關(guān)鍵問題進(jìn)行分析和論述。
關(guān)鍵詞取證分析系統(tǒng)是根據(jù)取證關(guān)鍵詞對(duì)海量高速網(wǎng)絡(luò)數(shù)據(jù)析取分析,從而判斷網(wǎng)絡(luò)數(shù)據(jù)是否為要取證網(wǎng)絡(luò)數(shù)據(jù)。其主要目標(biāo)是識(shí)別與證據(jù)相關(guān)網(wǎng)絡(luò)數(shù)據(jù)。
基于1.1分析,訪問一次Web頁(yè)面需要客戶端/服務(wù)器端 多 次GET 會(huì) 話 交 互 完 成,經(jīng) 對(duì)IE (6.0 以 上)、Chrome(20.0以上)及Mozilla等測(cè)試分析,HTTP 層多次GET 會(huì)話在TCP 層可能是同一個(gè)TCP 會(huì)話 (源/目的IP地址,源/目的端口號(hào)),也可能是不同TCP會(huì)話 (并行實(shí)現(xiàn)GET 命令)。監(jiān)控端表現(xiàn)為僅是客戶端端口號(hào)不同,取證分析就是盡量將這些相關(guān)會(huì)話分析出來以便保存。
根據(jù)HTTP協(xié)議,服務(wù)器向客戶端傳輸數(shù)據(jù)過程中,可以采用多種編碼方式如UTF 系列編碼、GB2312、BIG5等,因此不能直接對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行關(guān)鍵詞匹配,為提高匹配速度,先把取證關(guān)鍵詞轉(zhuǎn)換成不同編碼,根據(jù)會(huì)話的編碼方式,提取對(duì)應(yīng)編碼的取證關(guān)鍵詞匹配分析。對(duì)于以明文傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù),可以直接對(duì)每一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行取證關(guān)鍵詞匹配;對(duì)于壓縮網(wǎng)絡(luò)數(shù)據(jù),則需要將整個(gè)會(huì)話緩存后,解壓再匹配取證關(guān)鍵詞。
對(duì)網(wǎng)絡(luò)數(shù)據(jù)的處理是以TCP 層網(wǎng)絡(luò)會(huì)話為單位處理,需要保存網(wǎng)絡(luò)會(huì)話的相關(guān)信息,高速網(wǎng)絡(luò)下可能保存大量的會(huì)話,為盡快定位到相關(guān)會(huì)話,設(shè)計(jì)哈希函數(shù)定位。
TCP層網(wǎng)絡(luò)會(huì)話一般通過4個(gè)域標(biāo)識(shí):目的/源IP 地址、目的/源端口號(hào)。由于Web 服務(wù)器端口號(hào)一般為80,所以只考慮另外3個(gè)域。取證系統(tǒng)針對(duì)某一網(wǎng)段監(jiān)控取證時(shí),IP地址的中高位部分即網(wǎng)絡(luò)地址部分變化較小,所以可以舍棄不予考慮,客戶端端口號(hào)一般是由客戶端操作系統(tǒng)根據(jù)當(dāng)前運(yùn)行情況自動(dòng)生成,一般是連續(xù)的,即表示端口號(hào)的二進(jìn)制字段中低位更富于變化。
基于以上分析,設(shè)計(jì)IP哈希函數(shù)如圖2所示,首先是客戶端和服務(wù)器端IP地址低2字節(jié)相異或,然后與客戶端的端口號(hào)交錯(cuò)異或,這是由于IP地址、端口號(hào)均在低字節(jié)變化性更強(qiáng),有助于將TCP會(huì)話均勻分布到目的空間。
圖2 哈希函數(shù)設(shè)計(jì)
當(dāng)捕獲到鏈路層數(shù)據(jù)包后,解析出IP層數(shù)據(jù)包,根據(jù)報(bào)頭中上層協(xié)議標(biāo)識(shí),拋棄非TCP 協(xié)議網(wǎng)絡(luò)數(shù)據(jù),解析TCP包頭,拋棄不含80端口網(wǎng)絡(luò)數(shù)據(jù)。解析會(huì)話信息,如果屬于取證會(huì)話列表則直接取證,否則在應(yīng)用層匹配分析,其中取證會(huì)話列表的定位采用上述哈希函數(shù)。
應(yīng)用層匹配時(shí),根據(jù)分析會(huì)話列表查看會(huì)話狀態(tài),如果列表中沒有該會(huì)話信息,先根據(jù)HTTP協(xié)議析取該會(huì)話客戶端相關(guān)信息,這時(shí)應(yīng)該獲得GET 命令請(qǐng)求數(shù)據(jù)包。當(dāng)匹配網(wǎng)絡(luò)數(shù)據(jù)應(yīng)用層前4個(gè)字符 “GET” (包含空格)時(shí),判斷為客戶端GET 請(qǐng)求,根據(jù)其各個(gè)域的值獲得客戶端相關(guān)信息,如圖3為利用GET 請(qǐng)求訪問163服務(wù)器圖片文件的HTTP頭信息。利用服務(wù)器對(duì)客戶端的響應(yīng)獲取服務(wù)器的相關(guān)信息。根據(jù)這些頭信息可以獲取以下會(huì)話相關(guān)信息:傳輸方式、是否壓縮傳輸、壓縮算法、雙方采用的編碼方式、瀏覽器類型等。
圖3 GET 訪問數(shù)據(jù)包頭
匹配取證關(guān)鍵詞時(shí),為充分發(fā)揮多核計(jì)算機(jī)優(yōu)勢(shì),采用并行計(jì)算模式進(jìn)行檢索。目前有多種并行編程方式,如多線程技術(shù)、蘋果公司發(fā)起的并行異構(gòu)編程OpenCL 以及微軟推出C++加速大規(guī)模并行計(jì)算 (accelerated massive parallelism,AMP)[9]等,鑒于系統(tǒng)在Windows系統(tǒng)上采用C++語(yǔ)言開發(fā),采用AMP 并行編程模式,AMP 實(shí)際上是由系統(tǒng)從底層啟動(dòng)多線程對(duì)容器中的數(shù)據(jù)并行計(jì)算并由系統(tǒng)對(duì)計(jì)算任務(wù)優(yōu)化處理。同時(shí)實(shí)測(cè)結(jié)果表明,Windows系統(tǒng)下AMP相對(duì)于應(yīng)用程序采用多線程技術(shù)并行計(jì)算有一定的優(yōu)勢(shì)[10]。對(duì)于本算法,字符串匹配可以作為相同的計(jì)算任務(wù),數(shù)據(jù)包則是一個(gè)并行計(jì)算的數(shù)據(jù),因此,可以考慮將網(wǎng)絡(luò)數(shù)據(jù)分段而有利于并行計(jì)算?;谝陨戏治觯瑢⒕W(wǎng)絡(luò)數(shù)據(jù)分割成n段,考慮到程序效率和當(dāng)前CPU 大多采用超線程技術(shù)的現(xiàn)狀,這里n設(shè)計(jì)CPU 個(gè)數(shù)的2倍;為保證包含關(guān)鍵詞的數(shù)據(jù)內(nèi)容分到同一數(shù)據(jù)段,分段時(shí)采用冗余分段,不同段之間至少重復(fù)的字符長(zhǎng)度是最長(zhǎng)取證關(guān)鍵詞長(zhǎng)度。將分段后的n段網(wǎng)絡(luò)數(shù)據(jù)置于容器,利用boost函數(shù)庫(kù)將匹配函數(shù)綁定為函數(shù)對(duì)象[11],調(diào)用該函數(shù)對(duì)象進(jìn)行并行搜索匹配。
如果匹配成功,則認(rèn)為是需要取證網(wǎng)絡(luò)會(huì)話,將該會(huì)話加入取證會(huì)話列表,并通知高速網(wǎng)絡(luò)數(shù)據(jù)緩存系統(tǒng)將之前緩存的相關(guān)網(wǎng)絡(luò)數(shù)據(jù)包存入證據(jù)庫(kù)。
由于HTML支持格式復(fù)雜性,不同的瀏覽器存在不同的顯示風(fēng)格,全新開發(fā)能夠解析鏈路層數(shù)據(jù)到應(yīng)用層并顯示的瀏覽器是不現(xiàn)實(shí)的?;跒g覽器都是將Web內(nèi)容緩存于本地并顯示,同時(shí)目前的主流瀏覽器提供了其瀏覽器內(nèi)核插件如IE、Chrome、Firefox等。為此,將網(wǎng)絡(luò)數(shù)據(jù)中的服務(wù)器資源還原到本地,利用插件技術(shù),將這些網(wǎng)頁(yè)重構(gòu)并顯示。
基于以上分析,設(shè)計(jì)還原網(wǎng)絡(luò)數(shù)據(jù)過程如圖4 所示。主要包含兩部分:①根據(jù)網(wǎng)絡(luò)數(shù)據(jù)還原服務(wù)器資源;②重構(gòu)Web頁(yè)面。
主要功能是利用IP/TCP 各層協(xié)議將網(wǎng)絡(luò)會(huì)話重組到應(yīng)用層,還原服務(wù)器資源。網(wǎng)絡(luò)數(shù)據(jù)在傳輸過程中,由于網(wǎng)絡(luò)的復(fù)雜性,可能會(huì)出現(xiàn)不同的異常狀況,如數(shù)據(jù)的重傳、網(wǎng)絡(luò)數(shù)據(jù)異常斷開等。因此,需要根據(jù)控制信息對(duì)異常數(shù)據(jù)處理。
圖4 網(wǎng)絡(luò)數(shù)據(jù)還原顯示流程
從證據(jù)文件讀取數(shù)據(jù)為鏈路層數(shù)據(jù)包,鏈路層包含客戶端和服務(wù)器相關(guān)物理信息 (如MAC 地址、物理網(wǎng)絡(luò)類型等),因此利用鏈路層信息可以用于還原取證環(huán)境,從而間接證明取證過程的司法有效性。
根據(jù)通信雙方的IP地址、端口號(hào)確定同一會(huì)話;同一會(huì)話中,根據(jù)數(shù)據(jù)包的序列號(hào)和確認(rèn)號(hào)對(duì)網(wǎng)絡(luò)數(shù)據(jù)重新排序,并丟棄重傳數(shù)據(jù),重組網(wǎng)絡(luò)數(shù)據(jù)還原服務(wù)器端資源。
傳輸層通過控制位FIN/RST 終止會(huì)話,可能產(chǎn)生不完整文件;同時(shí)在高速網(wǎng)絡(luò)環(huán)境下捕包,可能會(huì)產(chǎn)生少量丟包現(xiàn)象,利用TCP序列號(hào)無法重組文件。因此需要對(duì)這些不完整文件進(jìn)一步處理,采取以下措施:所有正常數(shù)據(jù)處理完成之后,根據(jù)其序列號(hào)之差以及應(yīng)用層獲得文件長(zhǎng)度判斷丟棄數(shù)據(jù)的大小,并根據(jù)文件類型填充不同數(shù)據(jù),使之符合該文件格式。
根據(jù)HTTP服務(wù)器響應(yīng)頭可以獲取以下信息:文件的傳輸方式是壓縮傳輸還是正常傳輸,采用的字符集、文件的長(zhǎng)度,如果是chunked方式編碼則沒有文件長(zhǎng)度,需要根據(jù)chunked協(xié)議判斷文件傳輸是否結(jié)束,因此正常網(wǎng)絡(luò)通信過程中,在應(yīng)用層判斷文件傳輸是否已經(jīng)完成。
瀏覽的頁(yè)面一般為HTML文件,頁(yè)面內(nèi)嵌了圖片、音頻等資源,根據(jù)HTTP 協(xié)議的各個(gè)域值來分析這種關(guān)聯(lián)性:根據(jù) “GET”域值和 “Host”域值合成本次訪問的URL地址,如圖3合成的URL 地址為 “news.2hua.com/adiframe/163/index08/images/a1.jpg”;根 據(jù) “Referer”域值獲取 該 鏈 接 源URL 地 址,為news.2hua.com/adiframe/163/index08/index.htm,該HTML 頁(yè) 面 源 碼 中 應(yīng) 包 含 本URL地址鏈接,為該頁(yè)面的內(nèi)嵌圖片。
基于1.1分析,瀏覽器訪問頁(yè)面時(shí),獲得頁(yè)面HTML腳本,解析編碼內(nèi)容,進(jìn)一步獲取其中的服務(wù)器資源。由于這些資源已經(jīng)還原并保存于本地,為此可以修改頁(yè)面腳本,將其修改為訪問還原的本地 “服務(wù)器資源”。如圖3中,還 原 的 網(wǎng) 頁(yè)"news.2hua.com/adiframe/163/index08/index.htm"中 一 定 含 有 鏈 接 “news.2hua.com/adiframe/163/index08/images/a1.jpg”。將訪問服務(wù)器的鏈接修改為訪問本地文件a1.jpg,瀏覽器將直接顯示本地a1.jpg。為此首要任務(wù)是在HTML腳本中析取出這些鏈接。根據(jù)HTML語(yǔ)法,表示獲取資源語(yǔ)句位于HTML 屬性值中,這些屬性值可以用雙引號(hào)、單引號(hào)、圓括號(hào)等不同的邊界標(biāo)識(shí)來區(qū)分屬性值,同時(shí)對(duì)空格等字符忽略解析。為準(zhǔn)確析取網(wǎng)頁(yè)中鏈接資源,采用正則表達(dá)式表示網(wǎng)頁(yè)中內(nèi)嵌鏈接資源:"(\s*?=\s*?)*? ([’" =\ (]) (http://)(.+?)([’" \)])"。
正則搜索函數(shù)采用boost庫(kù)中正則搜索函數(shù) (boost::regex_search)[10],上述正則表達(dá)式中,函數(shù)匹配結(jié)果將析取服務(wù)器端資源URL以及網(wǎng)絡(luò)資源類型如:HREF (超文本引用)、內(nèi)嵌資源類型 (如bgsound為背景音樂、img為圖片)。根據(jù)搜索結(jié)果,當(dāng)網(wǎng)絡(luò)資源類型為超文本引用時(shí),表示用戶可以通過本頁(yè)面訪問其它資源;如為內(nèi)嵌資源,需要更改頁(yè)面編碼使之替換為已還原的本地“服務(wù)器資源”。
對(duì)于JS (javascript)、XML 以 及FALSH 等 內(nèi) 嵌 的 腳本語(yǔ)言代碼,由于其訪問資源標(biāo)識(shí)可能用變量來表示,需要解析其變量訪問資源標(biāo)識(shí),為此設(shè)計(jì)了分析資源標(biāo)識(shí)的正則表達(dá)式如下:" (src\d:\s*?")(.*?)(")";
獲取變量標(biāo)識(shí)后將其指向?qū)?yīng)的服務(wù)器資源修改為指向已還原的本地 “服務(wù)器資源”。
取證系統(tǒng)運(yùn)行及開發(fā)環(huán)境為操作系統(tǒng)為64 位Windows7.0,采用Visual Studio 2013;實(shí)現(xiàn)語(yǔ)言采用C++11。取證系統(tǒng)運(yùn)行于某高校出口處,交換機(jī)為千兆以太網(wǎng)交換機(jī),流量最大為750 Mb/s左右。取證主機(jī)的內(nèi)存采用DDR3代16G 內(nèi)存,CPU 采用酷睿內(nèi)核i7。
首先對(duì)并行關(guān)鍵詞分析算法的有效性進(jìn)行測(cè)試,圖5顯示了不同關(guān)鍵詞個(gè)數(shù)在不同流量下的數(shù)據(jù)包未檢測(cè)率,實(shí)測(cè)結(jié)果顯示,采用AMP 并行分析技術(shù)即使在500 Mbps流量下,也有較好的檢測(cè)效果,而采用串行分析時(shí),4 個(gè)關(guān)鍵詞在100 Mbps流量時(shí),未檢測(cè)率就會(huì)有明顯提高,因此,AMP并行分析能夠較大幅度地提高檢測(cè)效果。
圖5 關(guān)鍵詞并行處理算法測(cè)試
同時(shí)還對(duì)頁(yè)面還原有效性進(jìn)行了測(cè)試,圖6 (a)為對(duì)捕獲的鏈路層數(shù)據(jù)重構(gòu)并通過IE 提供的COM 控件還原顯示的163主頁(yè)效果。該頁(yè)面內(nèi)嵌了JS腳本、圖片,聲音等資源,并包含了彈出頁(yè)面,重構(gòu)結(jié)果顯示,上述算法能夠較好地還原原頁(yè)面內(nèi)容。圖6 (b)為重構(gòu)某學(xué)校OA 系統(tǒng)用戶登錄后的頁(yè)面,并還原了用戶下載文件的過程及內(nèi)容,由于該系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)沒有加密,重構(gòu)時(shí),獲取了用戶登錄時(shí)的用戶名和密碼。
圖6 IE瀏覽器還原結(jié)果
本文采用監(jiān)控網(wǎng)絡(luò)方式對(duì)瀏覽器訪問過程進(jìn)行了取證和內(nèi)容還原研究,通過取證用戶瀏覽時(shí)所產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù),將取證的鏈路層數(shù)據(jù)還原到應(yīng)用層并重構(gòu)頁(yè)面。實(shí)驗(yàn)結(jié)果顯示,設(shè)計(jì)的系統(tǒng)能夠?qū)g覽器用戶的上網(wǎng)過程進(jìn)行初步的取證和還原,基本達(dá)到了設(shè)計(jì)的目的。但是由于網(wǎng)頁(yè)是一種非常復(fù)雜且靈活的腳本語(yǔ)言,瀏覽器用戶行為也是復(fù)雜多變,因此需要后續(xù)的工作中對(duì)不同復(fù)雜頁(yè)面和不同瀏覽器用戶行為進(jìn)行大量測(cè)試,以期進(jìn)一步驗(yàn)證系統(tǒng)的有效性并改進(jìn)算法,進(jìn)而實(shí)用化。
[1]Casey E.Digital evidence and computer crime:Forensic science,computers and the internet[M].Academic press,2011.
[2]TIAN Zhihong,YU Xiangzhan,ZHANG Hongli,et al.A real time network intrusion forensics method based on evidence reasoning network [J].Chinese Journal of Computers,2014,37 (5):1184-1186 (in Chinese). [田 志宏,余翔 湛,張 宏莉,等.基于證據(jù)推理網(wǎng)絡(luò)的實(shí)時(shí)網(wǎng)絡(luò)入侵取證方法 [J].計(jì)算機(jī)學(xué)報(bào),2014,37 (5):1184-1186.]
[3]YANG Jun,MA Qinsheng,WANG Min,et al.Filtering for network forensics data on artificial immune network clustering[J].Engineering Journal of Wuhan University,2012,45(1):123-127 (in Chinese). [楊珺,馬秦生,王敏,等.網(wǎng)絡(luò)取證數(shù)據(jù)的人工免疫網(wǎng)絡(luò)聚類過濾方法 [J].武漢大學(xué)學(xué)報(bào)工學(xué)版,2012,45 (1):123-127.]
[4]YANG Huazhi,XU Lan,LI Peifeng,et al.Design and realisation of IPQueue-based real-time Web pages restoring system[J].Computer Applications and Software,2011,28 (10):23-26 (in Chinese). [楊化志,許蘭,李培峰,等.基于IPQueue實(shí)時(shí)網(wǎng)頁(yè)還原系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用與軟件,2011,28 (10):23-26.]
[5]WANG Wenqi,MIAO Fengjun,PAN Lei,et al.The research on integrity technique of network based forensic [J].Chinese Journal of Electronics,2010,38 (11):2529-2534(in Chinese).[王文奇,苗鳳君,潘磊,等.網(wǎng)絡(luò)取證完整性技術(shù)研究 [J].電子學(xué)報(bào),2010,38 (11):2529-2534.]
[6]Pilli ES,Joshi RC,Niyogi R.Network forensic frameworks:Survey and research challenges [J].Digital Investigation,2010,7 (1):14-27.
[7]Palomoa EJ,Northb J,Elizondob D,et al.Application of growing hierarchical SOM for visualisation of network forensics traffic data[J].Neural Networks,2012,32:275-284.
[8]Orosz P,Skopko T,Imrek J.Performance evaluation of the nanosecond resolution time stamping feature of the enhanced lib-pcap [C]//The Sixth International Conference on Systems and Networks Communications,2011:220-225.
[9]Gregory K,Miller A.C++AMP:Accelerated massive parallelism with microsoft visual C++ [M].O’Reilly Media,Inc,2012.
[10]WANG Wenqi,XU Xiangyi.Parallel search technology research based on multi-core processor[J].Journal of Zhongyuan University of Technology,2014,24 (3):54-57 (in Chinese). [王文奇,徐香義.基于多核處理器的文本并行搜索技術(shù)研究 [J].中原工學(xué)院學(xué)報(bào),2014,24 (3):54-57.]
[11]Jrvi J,F(xiàn)reeman J.C++lambda expressions and closures[J].Science of Computer Programming,2010,75 (9):762-772.