杨闰鹏
摘 要:Ext4是Linux操作系统的基本文件系统,用于存储和管理重要的文件信息,挖掘Ext4文件系统中的关键信息已成为当前数字取证的重要途径。该文设计了一种Ext4文件系统取证算法,阐述了Ext4文件系统的存储原理,并通过实验进一步介绍了Ext4文件系统文件信息的提取过程,为计算机取证技术在Linux上的应用提供了可靠的数据保证。
关键词:Ext4;数字取证;Linux文件系统
中图分类号:TP316 文献标志码:A
近年来,Linux操作系统发展迅速,凭借自身的高可靠性、高性能得到了广泛应用与支持,将数字取证技术应用于Linux系统已成为计算机取证的重要手段。Ext4文件系统作为Linux系统下的日志文件系统,具备强大的文件信息存储与管理功能,分析并提取其中的有用信息,对于数字取证的研究具有重要意义[1]。该文通过设计一种Ext4文件系统取证算法,解析文件信息提取流程及原理,为Linux系统中数字取证技术的应用提供依据。
1 数字取证
数字取证是指利用科学的手段对数字证据进行采集、存储、分析及呈现,通过数字取证能够掌握网络犯罪的时间、地点、内容、过程及涉及的相关人员等信息。数字证据可能保存在罪犯的电脑、手机或相机等设备中,并且可能随时消失,因此必须及时挖掘出有用的数字证据来侦破案件。当网络犯罪事件发生后,提取数字证据必须严格按照标准的流程及方法,主要包括4个阶段。
1.1 采集证据
该阶段主要辨识与犯罪事件相关的网络设备,手机、计算机或其他数字媒体中的内存与磁盘驱动器中,均可能存储着犯罪证据。现阶段,已有相关技术能够在设备关机后从内容中复原密钥资料。
1.2 保全证据
该阶段主要以可验证的形式来保存证据,包括哈希函数与文件说明的使用。由于数字证据中可能存在易挥发的数据,且存在无法完整保存的风险,因此必须文件说明保全的过程与技术。
1.3 分析证据
该阶段主要对与案件相关的证据进行分析。包括GPS定位、在线平台实时通信内容、手机短信、通信记录、照片隐藏的时间与地点、电子邮件内容、文件修改日期与创建用户等。
1.4 呈现证据
通常网络罪犯会利用一切手段来隐藏或销毁犯罪证据,甚至运用加密或反取证技术来保护证据,因此数字取证分析的结果具有一定的不确定性。证据分析后提取的数字证据也包含说明文件。
与传统犯罪行为相比,网络犯罪在数字取证的整个阶段中都与其存在较大差别。目前,网络媒体或数字媒体的存储容量逐渐扩大,网络数据庞大且传输速度快,传统人工的取证方式已无法满足当前的需求,必须利用数字取证技术才有可能挖掘出有用的证据。在传统犯罪案件的取证过程中,收集到的证据都是实物,而数字取证获得的证据都是以电磁记录的形式存在的。此外,数字证据具有可复制、来源不易证明、作者不易确定等特点,遭到破坏时能够利用技术手段进行复原,而传统实体证据一旦遭到损毁,则不可能再恢复原状。但数字证据的缺点在于,使用不同还原工具复原的数字证据可能会存在差异,降低数字证据的可靠性。因此,具备公信力的可靠取证方法与工具,决定了数字证据的可信度。正是因为数字证据存在这些特性,因此在数字取证时,必须确保证据不被改变或破坏,尽可能提取原始证据,保证对采集的数字证据在不被改变的情况下进行分析,确保证据的有效性。
2 Ext4文件系统及其在数字取证中的应用
文件系统是Linux操作系统最重要的组成部分之一,文件系统中的文件是数据的集合,包含文件的数据和文件系统的结构。Ext4文件系统是第四代扩展文件系统,与Ext3文件系统相比,Ext4文件系统更新文件存储的速度更快,并且能够完全兼容Ext3文件系统[2]。磁盘分区时便会自动创建文件系统,文件系统中的数据均保存在存储设备中,且以数据块的形式存在,按照文件形式、目录形式支持存储数据,组织数据的使用[3]。Ext4文件系统能够为系统提供通用日志层,可应用于文件系统,也可应用于其他设备。如果由于软硬件错误引发文件系统崩溃,Ext4文件系统能够运用e2fsck代码进行修复,能够有效避免数据丢失。在数字取证过程中,由于计算机日志记录中会保存文件碎片,因此会存在一些与案件相关的证据,为取证工作提供线索,同时还会记录文件的修改或删除情况,此时可通过Ext4文件系统恢复被删除的日志文件,并实现文件数据的交换,对于数字取证工作具有重要意义。
3 Ext4文件系统取证算法研究
3.1 算法设计
该文通过设计一种Ext4文件系统下的数字取证算法,对Ext4文件系统取证过程进行介绍。算法共有9个步骤。1)读取super block的关键信息。2)得到指定的绝对路径文件名,根据inode号(根目录“/”的inode默认为2)以及在super block 中获得的数据,计算得到这个文件(或子目录)的group_desc的地址。3)根据group_desc的地址来读取group_desc的数据,得到inode表的地址。4)根据inode表的数据结构和步骤(2)中的数据,得到指定inode所在inode表中的地址,并读取数据。5)根据inode结构中的i_block数组里面存储的指针,查找文件目录索引结构的位置,对标志变量s_feature_incompa进行分析,如果分析发现这个Ext4的文件目录索引的结构兼容Ext3系统的结构,则转步骤(6),如果不兼容,则转步骤(7)。6)兼容的情况下,对i_block[15]数组进行分析,采取直接寻址和间接寻址的方式找到文件的位置,转步骤(8)。7)不兼容的情况下,文件目录索引结构采取extent樹索引,从extent树结构的叶子结构中找到文件目录索引的结构,再在这个结构里面找到文件的位置,转步骤(8)。8)根据文件的存储结构,分析得到file_type数据和新的inode号。根据file_type数据,判断是子目录还是普通文件,如果是子目录则返回步骤(2),如果是普通文件则转步骤(9)。9)从文件结构中读取对应的文件信息。
3.2 算法实现
从绝对路径文件中提取文件信息的算法原理为获得绝对路径文件,从根目录出发,递归解析目录inode结构体ext4_dir_entry_2,直到最终得到普通文件的inode号,然后从文件结构中读取对应的文件信息。具体算法如下:
4 实验与结果分析
该文以/usr/video/video1.mp4为例,运用算法进行实验,进一步阐述手工分析与提取文件信息的原理及过程。实验数据均采用Little-Endian形式,实验环境为Linux操作系统,选择Ubuntu 18.04版本。具体实验内容如下。
4.1 读取super block数据分析
4.2 读取根目录“/”的inode结构体
根据子算法中的公式计算,“/”的inode为2,得到blk_grp_num=0,offset_num=1,group_desc_number=64,group_desc_num=0,group_desc_offset_num=1。
5 结语
该文提出了一种Ext4文件系统取证算法,在Linux系统环境中通过实验验证了该算法的有效性,能够为数字取证技术在Linux系统中的应用提供可靠的数据保证。
参考文献
[1]张良德.LINUX系统下的计算机取证技术研究[J].内蒙古科技与经济,2014(9):55-56.
[2]徐国天.基于EXT4文件系统的数据恢复方法研究[J].信息网络安全,2011(11):60-62.
[3]陆亚文.Linux EXT4文件系统分析[J].电脑知识与技术,2011(14):221-224,250.