馮永旭,羅文華,司洪黎
(1.西藏警官高等??茖W校,西藏 拉薩 850003;2.中國刑事警察學院,遼寧 沈陽 110854)
基于內存中的網絡傳輸數據結構獲取電子數據
馮永旭1,羅文華2,司洪黎1
(1.西藏警官高等??茖W校,西藏 拉薩 850003;2.中國刑事警察學院,遼寧 沈陽 110854)
電子數據取證實踐中,獲取嫌疑人進行網絡信息傳輸涉及的IP地址、端口號、MAC地址以及對應進程信息,有助于全面深入揭示嫌疑人網絡犯罪行為?;贗Pv4首部、sockaddr_in、_TCPT_OBJECT、Ethernet V2標準MAC幀等四種數據結構于內存中的具體格式,歸納總結用于定位相關結構的特征關鍵字,同時通過實例說明提取網絡傳輸電子證據的方法,并對過程中涉及的具體技術與注意事項予以闡述。電子數據取證實踐證明,所述方法準確高效。
內存;數據結構;IPv4首部;sockaddr_in;_TCPT_OBJECT;MAC幀
電子數據的易失性決定了內存信息調查的重要性。特別是反取證技術的出現,使得針對磁盤介質的取證分析效果大打折扣。特定情況下,內存成為唯一可以找到證據與線索的區域[1]。通常,內存取證可以分為在線調查與實驗室分析兩個方面。以獲取網絡傳輸信息為例,在線調查情況下可以使用netstat、ifconfig、IceSword等命令或軟件查看網絡連接狀態,但是這些工具的最大缺陷在于只能顯示正在進行的網絡連接信息,而對于已經終止的連接則無能為力。而在實驗室針對內存鏡像文件進行取證分析,可利用的方法與工具較多,其取證效果大大優于在線調查。
雖然目前各種應用層協議層出不窮,其下層則基本基于TCP/IP協議族及其具體實現。實驗發現[2],執行網絡操作時,相關協議所涉及的數據結構會出現于內存中。即使在網絡連接已經終止的情況下,結構信息依然會留存于內存(除非被新信息所覆蓋)。此種情況下,歸納總結存在于相關數據結構中的特征標識,將其作為關鍵字在內存鏡像中進行匹配搜索,對于發現網絡操作中的電子證據信息具有積極而重要的意義。

圖1 IPv4首部格式
IP協議(見圖1)的版本號占4位,由于協議版本號是4,因此該字段值為4。IPv4首部長度占4位,指明首部包含32位bit的個數。IPv4首部的最小長度為20字節,并且任選項很少被使用,因此普通IP數據報(沒有任何選擇項)中該字段值為5。標志位占3位,目前只有兩位有意義。最低位記為MF(More Fragment),MF=1 表示還有“后續分片”,MF=0 表示已為最后一個分片;中間的一位記為 DF(Don’t Fragment),只有當DF=0時才允許分片。TCP協議總是避免分片,一般只有UDP協議才會產生分片。廣泛使用的應用層協議SMTP(簡單郵件傳送協議)、FTP(文件傳送協議)、Telnet(遠程登錄協議)、HTTP(超文本傳送協議)、NNTP(網絡新聞傳送協議)均使用TCP協議進行數據傳輸,因此絕大多數情況下MF值為0。片偏移占13位,表示該片偏移原始數據報開始處的位置(未分片情況下,該字段值為0)。協議字段占8位,其中0x06表示TCP協議,0x11則表示UDP協議。
綜合以上分析,得到如圖2所示的用于搜索IPv4首部結構的關鍵字。0x45表示IP協議版本號及首部長度;0x00表示允許分片,0x40則代表不允許分片;0x06與0x11則分別代表TCP協議及UDP協議。使用十六進制編輯器結合上述關鍵字針對內存鏡像文件進行搜索,即有可能發現網絡傳輸使用的源與目的IP地址。值得注意的是生存時間(Time To Live,TTL)字段,該字段設置有數據報可以經過的最多路由器數目,其初始值由源主機設置(Windows系統TTL初值通常為64或128),一旦經過一個處理它的路由器,其值就減去1。雖然該字段不能作為有效關鍵字,但可以通過該字段判斷命中的數據報是由該主機產生,還是來至于其他主機。特別需要指出的是,內存IP首部結構中存儲的IP地址并不嚴格遵守“源地址在前,目的地址在后”的次序要求,實際工作時務必加以格外注意。

圖2 用于搜索IPv4首部結構的關鍵字
實現IP協議的頭文件之一netinet/in.h(負責Internet地址定義)中定義有數據結構sockaddr_in(見圖3),用于管理Internet環境下套接字的地址形式。其中sin_family指代協議族,通常取值為0x0200;sin_port表示16位端口號;sin_addr代表IP地址,緊跟其后的sin_zero則是為保證sockaddr與sockaddr_in兩個數據結構大小相同而保留的空字節。

圖3 sockaddr_in數據結構
圖4所示為總結得出的能夠用于搜索sockaddr_in結構的關鍵字[4]。通過該關鍵字的搜索,在得到IP地址的同時,還可以獲知所用端口信息。由于該關鍵字較為籠統,實際操作時命中數量可能較多,因此具體分析時要仔細甄別;也可在已獲知IP地址情況下,將IP地址與其作為組合關鍵字搜索,以發現端口信息。另外,實驗發現含有源IP地址與目標IP地址的sockaddr_in結構總是相鄰出現,因此可以考慮使用該關鍵字的疊加結構進行搜索,以減少命中數量。

圖4 用于搜索sockaddr_in結構的關鍵字
Windows操作系統使用_TCPT_OBJECT結構描述TCP連接。該結構中含有豐富的網絡連接信息(見圖5),如目標IP地址、本地IP地址、遠程端口號、本地端口號等[5]。值得一提的是,該結構中還含有TCP連接對應的進程標識符(Pid),通過Pid可以挖掘出更多與網絡連接相關的信息(如登錄用戶名與密碼等)。

圖5 _TCPT_OBJECT數據結構
內存中的_TCPT_OBJECT結構前會出現特征標識“TCPT”(0x54435054)(見圖 6),可利用其定位該數據結構。該關鍵字雖然簡單,但卻較為明確,目前廣泛使用的內存信息實驗室取證調查工具Volatility即通過搜索“TCPT”,定位_TCPT_OBJECT結構,以檢測TCP連接。

圖6 利用關鍵字“TCPT”搜索_TCPT_OBJECT結構
Ethernet V2是最常見的以太網幀格式,也是當今以太網的事實標準。該標準的MAC幀較為簡單,由五個字段組成(見圖7)。前兩個字段分別為6字節長的目的MAC地址和源MAC地址字段;第三個字段是2字節的類型字段,用來標志上一層使用協議的種類,以便把收到的MAC幀上交給上一層;第四個字段是數據字段,其長度在46到1500字節之間(最小長度64字節減去18字節的首尾部即得數據字段的最小長度46字節);最后一個字段是4字節的幀校驗序列FCS(使用CRC校驗),該校驗由網卡自動計算、自動生成、自動添加[6]。

圖7 Ethernet V2以太網幀格式
在Ethernet V2標準中,當類型字段值為0x0800時表示上層使用的是IP數據報,而IP協議版本號及首部長度通常值為0x45,因此可利用關鍵字“0x080045”搜索MAC地址信息(見圖8)。實際工作中,嫌疑人主機MAC地址的獲取相對容易,因此可利用已知MAC地址信息配合關鍵字對命中項進行甄別。在獲取到的MAC地址中,除了可以提取局域網適配器廠家信息外,還可利用其確定具體主機(相關主機使用私有IP地址情況下)。

圖8 用于搜索Ethernet V2標準MAC幀結構的關鍵字
2012年年初,XX省公安機關偵辦某有害信息傳播案件進行現場勘查時,使用MoonSols DumpIt工具針對嫌疑人電腦主機內存制作了轉儲文件(擴展名為DMP)。實驗室取證分析階段,取證人員利用2.1節所述關鍵字(圖9方框中所示信息)搜索到含有IP地址的內存IP數據報。依據圖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即為嫌疑人試圖連接的網絡地址,查詢得知該地址對應域名為ftp.52samsung.com。另外,通過TTL字段的值0x80(十進制128)可進一步確知該數據報由嫌疑人主機生成。同時,也可看出該數據報存儲的IP地址次序為“目的地址在前,源地址在后”,與IP首部格式中的IP地址次序相反。

圖9 內存IP數據報中含有IP地址信息
接下來使用2.2所述關鍵字(圖10方框中所示信息)命中sockaddr_in結構。通過IP地址“3D 99 16 86”前的端口信息0x0015(十進制21),獲知嫌疑人使用FTP協議訪問ftp.52samsung.com網站,而自身使用的端口號則為0x096F(十進制2415)。

圖10 內存sockaddr_in結構提供的端口信息
利用關鍵字“TCPT”定位 _TCPT_OBJECT結構(圖11中陰影所示),除提取到目標IP地址、本地IP地址、遠程端口號、本地端口號外(與其他方法獲取的信息互相驗證),最重要的是從0x0765BE80處獲得了該網絡連接對應的進程ID0xAF0(小字節序)。

圖11 內存_TCPT_OBJECT結構中提供有對應進程ID信息
啟動WinDBG,在WinDBG命令區鍵入執行“!process 0 0”,獲取進程基本信息。從圖12發現,進程ftp.exe的ID為0af0(Cid字段),即為該網絡連接對應進程?;?PROCESS(0x87b347d8)、DirBase(2e83d000)等字段可深入挖掘出登錄用戶名及密碼等相關信息。

圖12 基于進程ID獲取對應進程更多信息
通過2.4節所述關鍵字“0x080045”搜索到Ethernet V2標準MAC幀結構(見圖13)。依據圖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”極有可能為其網關MAC地址,可借此拓展線索來源,確定相關可疑主機,開展進一步分析。

圖13 內存Ethernet V2標準MAC幀結構中包含的MAC地址信息
筆者還使用內存實驗室取證工具Volatility(其中的 connections、connscan、connscan2 等命令可用于掃描網絡連接[7])對案例鏡像文件進行了檢查,但是該工具并未檢測出任何網絡連接信息。可見實際工作中不可過分依賴工具的使用,特殊情況下需要在深入研究的基礎上手工進行分析。另外,網絡傳輸時往往使用big endian字節序,與其他取證情況下經常遇到的little endian字節序差異較大,具體操作時需格外注意。
本文所討論的網絡傳輸數據結構主要基于IPv4技術,課題組計劃未來針對IPv6進行深入研究,歸納總結其特征關鍵字,以定位提取相關電子證據。同時也可將研究范圍擴展至無線網絡協議,實踐中會更有利于無線網絡設備的定位。另外,文中描述的是內存信息的人工調查方法,如何實現分析過程自動化,也將是未來電子數據取證領域的主要研究方向。
[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]謝希仁.計算機網絡[M].第五版.北京:電子工業出版社,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—),男,副教授,主要從事刑事技術研究。 E-mail:fyx6575720@163.com。
施少培)
理論探索Theoretical Exploration