馮永旭,羅文華,司洪黎
(1.西藏警官高等??茖W(xué)校,西藏 拉薩 850003;2.中國刑事警察學(xué)院,遼寧 沈陽 110854)
基于內(nèi)存中的網(wǎng)絡(luò)傳輸數(shù)據(jù)結(jié)構(gòu)獲取電子數(shù)據(jù)
馮永旭1,羅文華2,司洪黎1
(1.西藏警官高等??茖W(xué)校,西藏 拉薩 850003;2.中國刑事警察學(xué)院,遼寧 沈陽 110854)
電子數(shù)據(jù)取證實踐中,獲取嫌疑人進(jìn)行網(wǎng)絡(luò)信息傳輸涉及的IP地址、端口號、MAC地址以及對應(yīng)進(jìn)程信息,有助于全面深入揭示嫌疑人網(wǎng)絡(luò)犯罪行為?;贗Pv4首部、sockaddr_in、_TCPT_OBJECT、Ethernet V2標(biāo)準(zhǔn)MAC幀等四種數(shù)據(jù)結(jié)構(gòu)于內(nèi)存中的具體格式,歸納總結(jié)用于定位相關(guān)結(jié)構(gòu)的特征關(guān)鍵字,同時通過實例說明提取網(wǎng)絡(luò)傳輸電子證據(jù)的方法,并對過程中涉及的具體技術(shù)與注意事項予以闡述。電子數(shù)據(jù)取證實踐證明,所述方法準(zhǔn)確高效。
內(nèi)存;數(shù)據(jù)結(jié)構(gòu);IPv4首部;sockaddr_in;_TCPT_OBJECT;MAC幀
電子數(shù)據(jù)的易失性決定了內(nèi)存信息調(diào)查的重要性。特別是反取證技術(shù)的出現(xiàn),使得針對磁盤介質(zhì)的取證分析效果大打折扣。特定情況下,內(nèi)存成為唯一可以找到證據(jù)與線索的區(qū)域[1]。通常,內(nèi)存取證可以分為在線調(diào)查與實驗室分析兩個方面。以獲取網(wǎng)絡(luò)傳輸信息為例,在線調(diào)查情況下可以使用netstat、ifconfig、IceSword等命令或軟件查看網(wǎng)絡(luò)連接狀態(tài),但是這些工具的最大缺陷在于只能顯示正在進(jìn)行的網(wǎng)絡(luò)連接信息,而對于已經(jīng)終止的連接則無能為力。而在實驗室針對內(nèi)存鏡像文件進(jìn)行取證分析,可利用的方法與工具較多,其取證效果大大優(yōu)于在線調(diào)查。
雖然目前各種應(yīng)用層協(xié)議層出不窮,其下層則基本基于TCP/IP協(xié)議族及其具體實現(xiàn)。實驗發(fā)現(xiàn)[2],執(zhí)行網(wǎng)絡(luò)操作時,相關(guān)協(xié)議所涉及的數(shù)據(jù)結(jié)構(gòu)會出現(xiàn)于內(nèi)存中。即使在網(wǎng)絡(luò)連接已經(jīng)終止的情況下,結(jié)構(gòu)信息依然會留存于內(nèi)存(除非被新信息所覆蓋)。此種情況下,歸納總結(jié)存在于相關(guān)數(shù)據(jù)結(jié)構(gòu)中的特征標(biāo)識,將其作為關(guān)鍵字在內(nèi)存鏡像中進(jìn)行匹配搜索,對于發(fā)現(xiàn)網(wǎng)絡(luò)操作中的電子證據(jù)信息具有積極而重要的意義。
圖1 IPv4首部格式
IP協(xié)議(見圖1)的版本號占4位,由于協(xié)議版本號是4,因此該字段值為4。IPv4首部長度占4位,指明首部包含32位bit的個數(shù)。IPv4首部的最小長度為20字節(jié),并且任選項很少被使用,因此普通IP數(shù)據(jù)報(沒有任何選擇項)中該字段值為5。標(biāo)志位占3位,目前只有兩位有意義。最低位記為MF(More Fragment),MF=1 表示還有“后續(xù)分片”,MF=0 表示已為最后一個分片;中間的一位記為 DF(Don’t Fragment),只有當(dāng)DF=0時才允許分片。TCP協(xié)議總是避免分片,一般只有UDP協(xié)議才會產(chǎn)生分片。廣泛使用的應(yīng)用層協(xié)議SMTP(簡單郵件傳送協(xié)議)、FTP(文件傳送協(xié)議)、Telnet(遠(yuǎn)程登錄協(xié)議)、HTTP(超文本傳送協(xié)議)、NNTP(網(wǎng)絡(luò)新聞傳送協(xié)議)均使用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,因此絕大多數(shù)情況下MF值為0。片偏移占13位,表示該片偏移原始數(shù)據(jù)報開始處的位置(未分片情況下,該字段值為0)。協(xié)議字段占8位,其中0x06表示TCP協(xié)議,0x11則表示UDP協(xié)議。
綜合以上分析,得到如圖2所示的用于搜索IPv4首部結(jié)構(gòu)的關(guān)鍵字。0x45表示IP協(xié)議版本號及首部長度;0x00表示允許分片,0x40則代表不允許分片;0x06與0x11則分別代表TCP協(xié)議及UDP協(xié)議。使用十六進(jìn)制編輯器結(jié)合上述關(guān)鍵字針對內(nèi)存鏡像文件進(jìn)行搜索,即有可能發(fā)現(xiàn)網(wǎng)絡(luò)傳輸使用的源與目的IP地址。值得注意的是生存時間(Time To Live,TTL)字段,該字段設(shè)置有數(shù)據(jù)報可以經(jīng)過的最多路由器數(shù)目,其初始值由源主機設(shè)置(Windows系統(tǒng)TTL初值通常為64或128),一旦經(jīng)過一個處理它的路由器,其值就減去1。雖然該字段不能作為有效關(guān)鍵字,但可以通過該字段判斷命中的數(shù)據(jù)報是由該主機產(chǎn)生,還是來至于其他主機。特別需要指出的是,內(nèi)存IP首部結(jié)構(gòu)中存儲的IP地址并不嚴(yán)格遵守“源地址在前,目的地址在后”的次序要求,實際工作時務(wù)必加以格外注意。
圖2 用于搜索IPv4首部結(jié)構(gòu)的關(guān)鍵字
實現(xiàn)IP協(xié)議的頭文件之一netinet/in.h(負(fù)責(zé)Internet地址定義)中定義有數(shù)據(jù)結(jié)構(gòu)sockaddr_in(見圖3),用于管理Internet環(huán)境下套接字的地址形式。其中sin_family指代協(xié)議族,通常取值為0x0200;sin_port表示16位端口號;sin_addr代表IP地址,緊跟其后的sin_zero則是為保證sockaddr與sockaddr_in兩個數(shù)據(jù)結(jié)構(gòu)大小相同而保留的空字節(jié)。
圖3 sockaddr_in數(shù)據(jù)結(jié)構(gòu)
圖4所示為總結(jié)得出的能夠用于搜索sockaddr_in結(jié)構(gòu)的關(guān)鍵字[4]。通過該關(guān)鍵字的搜索,在得到IP地址的同時,還可以獲知所用端口信息。由于該關(guān)鍵字較為籠統(tǒng),實際操作時命中數(shù)量可能較多,因此具體分析時要仔細(xì)甄別;也可在已獲知IP地址情況下,將IP地址與其作為組合關(guān)鍵字搜索,以發(fā)現(xiàn)端口信息。另外,實驗發(fā)現(xiàn)含有源IP地址與目標(biāo)IP地址的sockaddr_in結(jié)構(gòu)總是相鄰出現(xiàn),因此可以考慮使用該關(guān)鍵字的疊加結(jié)構(gòu)進(jìn)行搜索,以減少命中數(shù)量。
圖4 用于搜索sockaddr_in結(jié)構(gòu)的關(guān)鍵字
Windows操作系統(tǒng)使用_TCPT_OBJECT結(jié)構(gòu)描述TCP連接。該結(jié)構(gòu)中含有豐富的網(wǎng)絡(luò)連接信息(見圖5),如目標(biāo)IP地址、本地IP地址、遠(yuǎn)程端口號、本地端口號等[5]。值得一提的是,該結(jié)構(gòu)中還含有TCP連接對應(yīng)的進(jìn)程標(biāo)識符(Pid),通過Pid可以挖掘出更多與網(wǎng)絡(luò)連接相關(guān)的信息(如登錄用戶名與密碼等)。
圖5 _TCPT_OBJECT數(shù)據(jù)結(jié)構(gòu)
內(nèi)存中的_TCPT_OBJECT結(jié)構(gòu)前會出現(xiàn)特征標(biāo)識“TCPT”(0x54435054)(見圖 6),可利用其定位該數(shù)據(jù)結(jié)構(gòu)。該關(guān)鍵字雖然簡單,但卻較為明確,目前廣泛使用的內(nèi)存信息實驗室取證調(diào)查工具Volatility即通過搜索“TCPT”,定位_TCPT_OBJECT結(jié)構(gòu),以檢測TCP連接。
圖6 利用關(guān)鍵字“TCPT”搜索_TCPT_OBJECT結(jié)構(gòu)
Ethernet V2是最常見的以太網(wǎng)幀格式,也是當(dāng)今以太網(wǎng)的事實標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)的MAC幀較為簡單,由五個字段組成(見圖7)。前兩個字段分別為6字節(jié)長的目的MAC地址和源MAC地址字段;第三個字段是2字節(jié)的類型字段,用來標(biāo)志上一層使用協(xié)議的種類,以便把收到的MAC幀上交給上一層;第四個字段是數(shù)據(jù)字段,其長度在46到1500字節(jié)之間(最小長度64字節(jié)減去18字節(jié)的首尾部即得數(shù)據(jù)字段的最小長度46字節(jié));最后一個字段是4字節(jié)的幀校驗序列FCS(使用CRC校驗),該校驗由網(wǎng)卡自動計算、自動生成、自動添加[6]。
圖7 Ethernet V2以太網(wǎng)幀格式
在Ethernet V2標(biāo)準(zhǔn)中,當(dāng)類型字段值為0x0800時表示上層使用的是IP數(shù)據(jù)報,而IP協(xié)議版本號及首部長度通常值為0x45,因此可利用關(guān)鍵字“0x080045”搜索MAC地址信息(見圖8)。實際工作中,嫌疑人主機MAC地址的獲取相對容易,因此可利用已知MAC地址信息配合關(guān)鍵字對命中項進(jìn)行甄別。在獲取到的MAC地址中,除了可以提取局域網(wǎng)適配器廠家信息外,還可利用其確定具體主機(相關(guān)主機使用私有IP地址情況下)。
圖8 用于搜索Ethernet V2標(biāo)準(zhǔn)MAC幀結(jié)構(gòu)的關(guān)鍵字
2012年年初,XX省公安機關(guān)偵辦某有害信息傳播案件進(jìn)行現(xiàn)場勘查時,使用MoonSols DumpIt工具針對嫌疑人電腦主機內(nèi)存制作了轉(zhuǎn)儲文件(擴展名為DMP)。實驗室取證分析階段,取證人員利用2.1節(jié)所述關(guān)鍵字(圖9方框中所示信息)搜索到含有IP地址的內(nèi)存IP數(shù)據(jù)報。依據(jù)圖2所示格式,可知0x8941EF0 處存放的 “3D 99 16 86”(61.153.22.134)與 0x8941EF4 處存放的“C0 A8 01 66”(192.168.1.102)為所要尋找的IP地址。由于事先已獲知嫌疑人主機使用私有IP地址192.168.1.102,因此61.153.22.134即為嫌疑人試圖連接的網(wǎng)絡(luò)地址,查詢得知該地址對應(yīng)域名為ftp.52samsung.com。另外,通過TTL字段的值0x80(十進(jìn)制128)可進(jìn)一步確知該數(shù)據(jù)報由嫌疑人主機生成。同時,也可看出該數(shù)據(jù)報存儲的IP地址次序為“目的地址在前,源地址在后”,與IP首部格式中的IP地址次序相反。
圖9 內(nèi)存IP數(shù)據(jù)報中含有IP地址信息
接下來使用2.2所述關(guān)鍵字(圖10方框中所示信息)命中sockaddr_in結(jié)構(gòu)。通過IP地址“3D 99 16 86”前的端口信息0x0015(十進(jìn)制21),獲知嫌疑人使用FTP協(xié)議訪問ftp.52samsung.com網(wǎng)站,而自身使用的端口號則為0x096F(十進(jìn)制2415)。
圖10 內(nèi)存sockaddr_in結(jié)構(gòu)提供的端口信息
利用關(guān)鍵字“TCPT”定位 _TCPT_OBJECT結(jié)構(gòu)(圖11中陰影所示),除提取到目標(biāo)IP地址、本地IP地址、遠(yuǎn)程端口號、本地端口號外(與其他方法獲取的信息互相驗證),最重要的是從0x0765BE80處獲得了該網(wǎng)絡(luò)連接對應(yīng)的進(jìn)程ID0xAF0(小字節(jié)序)。
圖11 內(nèi)存_TCPT_OBJECT結(jié)構(gòu)中提供有對應(yīng)進(jìn)程ID信息
啟動WinDBG,在WinDBG命令區(qū)鍵入執(zhí)行“!process 0 0”,獲取進(jìn)程基本信息。從圖12發(fā)現(xiàn),進(jìn)程ftp.exe的ID為0af0(Cid字段),即為該網(wǎng)絡(luò)連接對應(yīng)進(jìn)程?;?PROCESS(0x87b347d8)、DirBase(2e83d000)等字段可深入挖掘出登錄用戶名及密碼等相關(guān)信息。
圖12 基于進(jìn)程ID獲取對應(yīng)進(jìn)程更多信息
通過2.4節(jié)所述關(guān)鍵字“0x080045”搜索到Ethernet V2標(biāo)準(zhǔn)MAC幀結(jié)構(gòu)(見圖13)。依據(jù)圖8所示格式,分析得出 MAC地址“74-EA-3A-43-3A-94”與“00-26-9E-9A-0B-14”。由于已知嫌疑人主機MAC地址為“00-26-9E-9A-0B-14”,因此“74-EA-3A-43-3A-94”極有可能為其網(wǎng)關(guān)MAC地址,可借此拓展線索來源,確定相關(guān)可疑主機,開展進(jìn)一步分析。
圖13 內(nèi)存Ethernet V2標(biāo)準(zhǔn)MAC幀結(jié)構(gòu)中包含的MAC地址信息
筆者還使用內(nèi)存實驗室取證工具Volatility(其中的 connections、connscan、connscan2 等命令可用于掃描網(wǎng)絡(luò)連接[7])對案例鏡像文件進(jìn)行了檢查,但是該工具并未檢測出任何網(wǎng)絡(luò)連接信息??梢妼嶋H工作中不可過分依賴工具的使用,特殊情況下需要在深入研究的基礎(chǔ)上手工進(jìn)行分析。另外,網(wǎng)絡(luò)傳輸時往往使用big endian字節(jié)序,與其他取證情況下經(jīng)常遇到的little endian字節(jié)序差異較大,具體操作時需格外注意。
本文所討論的網(wǎng)絡(luò)傳輸數(shù)據(jù)結(jié)構(gòu)主要基于IPv4技術(shù),課題組計劃未來針對IPv6進(jìn)行深入研究,歸納總結(jié)其特征關(guān)鍵字,以定位提取相關(guān)電子證據(jù)。同時也可將研究范圍擴展至無線網(wǎng)絡(luò)協(xié)議,實踐中會更有利于無線網(wǎng)絡(luò)設(shè)備的定位。另外,文中描述的是內(nèi)存信息的人工調(diào)查方法,如何實現(xiàn)分析過程自動化,也將是未來電子數(shù)據(jù)取證領(lǐng)域的主要研究方向。
[1]Carvey H.Windows forensic analysis[M].US:Syngress, 2008:256-371.
[2]Robert Beverly, Simson Garfinkel, Greg Cardwell.Forensic carving of network packets and associated data structures[J].Digital Investigation, 2011,(8):78-89.
[3]Hornig C.A standard for the transmission of IP datagrams over ethernet networks[Z].RFC 1042,1988.
[4]Dolan-Gavitt Brendan, Srivastava Abhinav, Traynor Patrick,et al.Robust signatures for kernel data structures.In:Proceedings of the 16th ACM conference on Computer and communications security[D].CCS’09, New York, USA,2009:566-577.
[5]Postel J.Internet protocol[Z].RFC 791.1981.
[6]謝希仁.計算機網(wǎng)絡(luò)[M].第五版.北京:電子工業(yè)出版社,2008:86-91.
[7]Walters A, Petroni N.Volatools: Integrating volatile memory forensics into the digital investigation process[J].In:Black Hat DC 2007:1-18.
Acquisition of Digital Evidence from the Data Structure of Network Transmission in RAM
Feng Yong-xu1, Luo Wen-hua2, Si Hong-li1
(1.Tibet Police College, Lasa 850003, China; 2.China Criminal Police University, Shenyang 110854, China)
In the practice of computer forensics, it is very helpful to acquire the information of IP address, port number, MAC address and PID for revealing network crimes.Based on the structures of head of IPv4, sockaddr_in, _TCPT_OBJECT and MAC frame in RAM,this paper concluded the characteristic signatures for locating the related structure in RAM,and illustrated the method for acquiring the digital evidence from network transmission by examples.The specific techniques and precautions were elaborated as well.The method is proved to be accurate and efficient in the real digital investigation.
RAM;data structure;head of IPv4;sockaddr_in;_TCPT_OBJECT;MAC frame
TP393
A
10.3969/j.issn.1671-2072.2013.02.018
1671-2072-(2013)02-0076-04
2012-07-06
作者介紹:馮永旭(1969—),男,副教授,主要從事刑事技術(shù)研究。 E-mail:fyx6575720@163.com。
施少培)
理論探索Theoretical Exploration