冯永旭,罗文华,司洪黎
(1.西藏警官高等专科学校,西藏 拉萨 850003;2.中国刑事警察学院,辽宁 沈阳 110854)
基于内存中的网络传输数据结构获取电子数据
冯永旭1,罗文华2,司洪黎1
(1.西藏警官高等专科学校,西藏 拉萨 850003;2.中国刑事警察学院,辽宁 沈阳 110854)
电子数据取证实践中,获取嫌疑人进行网络信息传输涉及的IP地址、端口号、MAC地址以及对应进程信息,有助于全面深入揭示嫌疑人网络犯罪行为。基于IPv4首部、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