APP下载

电子取证中AVI文件的文件雕复

2013-09-12黄婉镝汪中夏武振东

中国司法鉴定 2013年3期
关键词:结构特征字节间隙

黄婉镝,汪中夏,武振东

(1.北京信息科技大学 计算机学院,北京 100101;2.北京信息科技大学 数据恢复研究所,北京 100101)

1 引言

在电子取证工作中,恢复数字设备中被删除的数据是极为重要的工作之一,恢复数据又分依赖系统元信息的传统数据恢复技术和不依赖系统元信息的文件雕刻。文件雕刻思想是指,在自动或最小的人工干预的条件下,从一个数字“平面”上“雕刻”出某些文件的“形状”。这种思想的出现源于,当系统元信息不可信任或被损坏时,会导致数据区所有文件数据变得无差别以至于无法识别,只能采用基于文件的结构特征和内容特点的文件雕刻技术在这“无差别”数据区中“雕刻”出文件。由此,基于文件雕刻思想进行数据恢复的技术简称为文件雕复。

对视频AVI文件进行取证时,经常遇到即使在无覆盖风险的情况下,恢复出来的视频也是不完整的。原因在于传统的数据恢复技术通过系统元信息进行的数据恢复不具有数据侦测能力,一旦系统元信息不完整,即使数据仍保留在数字设备中,也无法恢复。没有了可依赖的系统元信息,我们唯一可以做的就是利用AVI文件的结构特征和内容特点,在“无差别”的数据区中侦测每个“未分配”的数据簇,判断它们是不是我们期望得到的视频碎片数据。

在一个忽视系统元信息的环境中,如何侦测到每个AVI文件碎片,并将它们有序衔接起来,这就是本文研究的重点。

2 文件雕复发展现状及相关技术简介

文件雕复是数据恢复技术的一个分支,可以在没有系统元信息,或是系统元信息不可信任的情况下,恢复数据。文件雕复的雏形很早就有了,在2006年和2007年后受到了更多的重视,这两年里DFRWS(Digital Forensics Research WorkShop)连续发布的文件雕复的难题[1],极大提高了文件雕复研究热度。国内的文件雕复刚刚开始,并迅速受到关注,但尚未形成完整的理论研究和实际应用技术,因此,研究文件雕复,对推动数据恢复技术研究,促进电子取证技术发展有重要意义。以下简单叙述文件雕复的相关技术。

文件雕复依赖文件的结构特征,最基础的结构特征就是文件头和文件尾的关键字[2],若是没有碎片,那么检测到文件头和文件尾的关键字后,两者之间就是整个文件的数据。关键字经常用来判断文件类型,不单指文件头和文件尾特征的关键字,如果某类型文件数据中会出现大量特定的字符,也可用来判断簇的文件类型,例如大量出现“href”的簇可被认为属于html类型文件。从关键字延伸出文件指纹的概念,指从某一种文件类型的大量文件中提取字节频率,试图寻找到某些特定字节的出现强度。这些出现强度高的字节也可认为是关键字,视为某类文件的“指纹”。实际应用中,会根据实际要求用一组指纹来判断,用来弥补字节频率的不稳定性和减少误报。但这种关键字匹配并不一定是完全准确的。

并行唯一路径[3],这是从Dijkstras单一源最短路径算法变化而来的思想,最初用于图像的碎片分析,但这种思想可以引申推广。并行,指多个不完整文件同时存在,那么剩余的簇将会与这些文件一一匹配,分配给最佳匹配文件。唯一,指一个簇只能分配给一个文件。

二分碎片间隙雕复是,利用快速对象验证技术[4]来恢复只有两个碎片的文件。二分碎片间隙雕复是这样的:详细寻找已确定的标识头和标识尾之间的所有簇的组合并且排除不是该文件的簇直到成功的解码或验证是可能的。假设文件头所在簇是head,文件尾所在簇是end,中间碎片间隙是gap,初始化时gap=1,尝试gap=1的所有组合,进行快速对象验证。如果没有通过,则尝试所有gap=2的组合。gap值会递增,直到找到能通过快速验证的簇的组合或全部失败停止。示例如图1所示:

图1 二分碎片间隙雕复示例

除此之外,还有计算簇的熵值、Oscar方法等文件雕复方法及文件雕复质量的评估方法,当然,这些大多是理论模型,文件雕复的实践仍要长时间的积累。

3 数字设备中文件存储情况

一个文件的存储可能出现三种情况,如图2所示:

图2 碎片出现的三种情景模式的模拟

遇到情况一时,按特征值找到文件头,再找到文件尾或是能从文件头信息中得知文件的长度,从头到尾顺序读取。遇到情况二时,利用文件的结构特征,有时也会用到特定文件格式的内容特点来侦测碎片,当我们找到这些碎片后,按顺序链接起来就成了一个完整的文件。最困难无疑是情况三,碎片无序,即使我们找到了所有碎片,却不得不对它们进行排序。庆幸的是,情况三远没有前两种情况常见。侦测碎片是有很多难点需要解决的,如簇的文件类型归类,某一数据块是属于AVI,或是JPEG,还是其它;判断簇具体属于哪个文件,例如某一块数据是AVI文件类型,而A和B都是AVI文件,那么如何判断该数据块是属于A还是B,等等诸多问题需要解决。

4 AVI文件的文件雕复

通常的做法是先将数字设备中的数据制作成镜像,然后分析AVI文件结构[5],对镜像进行文件雕复。AVI文件的文件头中可以读取文件的长度,当确定属于该文件的碎片的总大小正好是文件的长度时,这个文件的雕复就结束了。

4.1 文件头结构特征的提取

首先在镜像中检索AVI文件的文件头。文件头hex特征值“52 49 46 46”,即表示是一种RIFF格式文件。紧跟4个字节指文件的长度。然后4个字节表示文件类型,即AVI,其hex特征值“41 56 49 20”。这些特征应该出现在某簇的开始。某文件的文件头结构如图3所示:

图3 某文件的文件头部分结构

整个文件可视为由多个LIST子块构成,还会有JUNK填充块用来占位。主要有包含头信息的ID为hdrl的LIST,包含主要音视频数据的ID为movi的LIST,末尾有一个可选的索引块idxl。

可以用Winhex工具按文件头结构特征搜索和定位文件头所在簇号。文件头信息列表hdrl可视为是完整的,即实际上这部分一般不会出现碎片。文件的断裂处应该出现在主数据区列表movi中。

AVI文件是一种灵活复杂的音视频文件,所以结构特征是多样的。主数据区的结构可以是一系列单个视频帧;一个音频帧和一个视频帧交替出现;多个音频帧和多个视频帧交替出现;以一系列LIST子块为单位,多个音视频帧封装在这些子块中,等等。这些信息既可以从主数据区中观察出来,也可以从头信息中分析出来。

4.2 改进二分碎片间隙雕复侦测碎片

按文件头特征检索到文件头后,向下线性检测,寻找碎片点或文件尾。

先提供以下概念:碎片点,每个碎片的最后一个簇;碎片点帧,每个碎片的最后一个帧。

压缩视频帧为dc,未压缩的是db,音频帧为wb。常见压缩视频帧dc。

借鉴二分碎片雕复思想的两个核心,一是间隙gap递增形成各种组合,二是合适方法验证多种组合。修改后应用于本文的碎片侦测方法,间隙gap从侦测到的碎片点开始,从0递增。验证下一个碎片的起始簇位置不用解码器,而是帧长值、音视频帧交替结构特征和最近优先匹配相结合来验证。

4.2.1 利用帧长判断碎片点和侦测下一个碎片起始簇

分析帧的结构,来判断是否出现碎片。帧名占4个字节,例如是##wb,帧名后面的4个字节是帧长值。需要注意的是,长度不包括帧名的4个字节和表示长度占用的4个字节。读取它的字节长度,如果帧长值不是偶数应在末尾填充一个字节的00,保证帧长度值是偶数。跨越该长度的字节,应该紧跟另一个帧(也可能是LIST子块,这个结构特征应从第一个碎片中提取,这里为叙述简单,一致视为下一个就是帧)。这并不绝对,有时数据会“丢失”。虽然文件雕复依赖于文件的结构特征,但有时也需要模糊处理,以防只是损坏了一帧的数据却误以为出现了碎片。但帧的长度值仍然是我们分辨碎片点的依据。若帧的后面超出帧长度后仍未找到下一个帧,甚至附近都不再有帧存在,我们就认为出现碎片了。我们称这个帧为碎片点帧。

模拟情况,如图4所示。图中每一簇被分为八个单位,上图以每个小方格为一个单位,黑粗框表示一个簇。在第一个簇中,发现视频帧头,该视频帧长12个单位,向下取12个单位,没找到下一个帧,说明非连续存储;出现碎片,这个帧是碎片点帧,是这个碎片的最后一个帧。

图4 利用帧的长度来识别碎片点

第一次令gap=1,就是点1后要跳过一个簇,即图中点1和点2之间的簇,但跳过该簇后,按12个单位读取,仍未找到下一个帧。此时令gap=2,点1衔接点3的簇,正好在12个单位的长度后,遇到了下一个音频帧。

点1就是碎片点,点3是下一个碎片的起始簇,点1指向了点3,忽略中间的垃圾簇,完成了两个碎片的衔接。

间隙的长度大小gap的计算按下式:

其中,Gap指碎片间隙的大小,以簇为单位;N指碎片点帧所在簇和下一个碎片起始帧所在簇之间的长度大小,以簇为单位;n指该帧的长度,以字节为单位;H指碎片点帧所在簇已经包含的该帧的部分长度,以字节为单位;L指每一个簇包含的字节数。如此,(n-H)/L的下取整计算出的就是这个帧占据的完整簇的个数。

其实,我们还看到,有其它的组合满足这种依靠帧长值的判断法,例如将点2看做碎片点,和点4衔接起来,忽略中间的簇,也能满足帧的长度。这意味着有多组合满足利用帧长度判断的条件。

图4中,N=3,n=12,H=2,L=8,按公式1计算间隙大小Gap=2,即两个碎片之间的间隙是两个簇。按公式2计算出有2种可能的组合,即点1衔接点3,点2衔接点4。

评估哪种组合的正确性更高,可以用字节密度、字节强度、特定字节频率等排除法来做。

4.2.2 验证下一个碎片起始帧的正确性

寻找到的下一个碎片起始帧是否正确,还要通过音视频帧交替结构特征验证。根据第一个碎片中提取到的帧排列规律特征,推测下一个碎片的起始帧应该是视频帧、音频帧或是LIST子块。侦测到的下一个碎片起始帧应与规律特征吻合。

最近优先匹配是,将下一个碎片起始帧向前回查,如果和前面紧挨着的簇也是匹配的,那么这个帧应该是属于距离最近的文件。例如,有两个AVI文件A和B,侦测到了碎片C同时与A和B匹配,但与B是紧挨着的,那么C会优先分配给B。

最终的验证方法就是整个文件的大小。所有碎片加起来应该正好等于文件的大小,如果不吻合,那么意味着有碎片出错了,需要重新组合其它的碎片。

5 对AVI文件进行文件雕复的取证案例

2011年6月某小区发生了一起恶意毁车案件,监视器录制下的视频被人删除。用传统的数据恢复工具进行恢复,发现部分视频是破损的。经过推断,凌晨4点30分到4点45分的视频记录了案件发生过程,但大约15分钟的视频全部丢失。

使用Winhex工具恢复显示,4点30分至4点45分时间段的视频为0字节,完全无法播放。使用R-studio 6.0版本可以恢复4点30到4点35分04秒的视频,后续中断,无法播放。最后的画面如图5所示:

图5 视频损坏后的最后画面

图6 4点30至4点45监控视频文件头信息

按照本文上述的文件雕复思想,首先按结构特征定位文件头所在簇。这个镜像之中存在大量的监视器录制视频,不依赖系统元信息很难直接定位4点30分的视频,所幸工具R-studio 6.0版本可以恢复部分视频,从这里可以提取目标视频的结构特征,在镜像中检索后就准确定位了目标视频的文件头所在簇为8241737号簇,文件大小“29 E1 B1 05”,倒过来变十六进制数值“05B1E129”,转成十进制即95543593个字节。文件头信息如图6所示。

主数据区列表movi中的帧的排列结构特征是,只有视频帧00dc,一个紧挨一个,无音频帧。即监视器录像不录制声音。字节排列紧密,这是由于是压缩的视频帧,所以极少有“00”样式的字节,那么如果检测到数据稀疏的簇,那么基本可以认为是非AVI文件,可以排除掉。当然,也不应该出现大量的数字或其它文件的特定符号,这些都可以视为排除的依据。

自动雕复过程1:识别00dc,读取该帧理论长度,跨越该长度后,如果没有寻找到下一个帧,视为出现碎片,记录碎片点帧的位置。过程2:按照过程1得到的信息,侦测下一个碎片起始帧的位置,然后依据帧交替结构特征和最近优先匹配判断下一个碎片起始帧的正确与否。最后依靠Winhex工具拼接。

为了减少程序运行时间,本案例的碎片侦测过程并非对整个镜像,而是根据实际情况判断,在最有可能找到碎片的镜像局部进行侦测。

在本案例中,人工干预比较多,使用了Winhex和R-studio6.0,原因在于对AVI文件的文件雕复研究尚在初期,而且制作全自动雕复工具比较复杂。

文件雕复后的完整视频看到了嫌疑人的动作如图7所示:

图7 文件雕复后的完整视频中发现了嫌疑人

本次案例依据AVI文件的结构特征进行了文件雕复。工具、制作辅助程序和手工相结合,完成了文件雕复。尚未有专门针对AVI文件的全自动雕复工具,一些具有雕复功能的工具,如RecoverMyFiles、X-ways Forensics等,也并不能保证每次都能雕复成功。

6 结语

文件雕复技术虽力求自动化,但目前文件类型种类繁多,现有文件雕复工具不可能完成对所有文件的雕复工作,所以雕复工具往往具有针对性,只针对一种或几种文件类型进行雕复。更多情况下,需要取证人员有大量经验,工具和手工相配合,有时需要专门写一些程序来辅助文件雕复。AVI文件是一种广泛使用的视频文件,对其进行研究,具有实际意义,有助于国内文件雕复和电子取证技术的发展。

[1]B.Carrier,E.Casey,W.Venema.DFRWS 2006 Forensics Challenge Overview[EB/OL].http://www.dfrws.org/2006/challenge/index.shtml,2006.

[2]Anandabrata Pal,Nasir Memon.The Evolution of File Carving[J].IEEESIGNALPROCESSINGMAGAZINE,2009,(3):59-71.

[3]Anandabrata Pal,Husrev T.Sencar,Nasir Memon.Detecting file fragmentation point using sequential hypothesis testing[J].Digital Investigation,2008,(5):S2-S13.

[4]Simson L.Garfinkel.Carving contiguous and fragmented files with fast object validation[J].Digital Investigation,2007,(4S):S2-S12.

[5]黄东军,贺宏遵.AVI文件结构的实例分析[J].企业技术开发,2008,27(3):3-6.

猜你喜欢

结构特征字节间隙
论莫言小说的复线式结构特征
间隙
No.8 字节跳动将推出独立出口电商APP
药物与辅料相互作用差异与结构特征的相关性研究
飞行过载及安装间隙对主安装节推力测量的影响
论东巴文对称型字组的结构特征及音义功能
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击
给你
苦难的间隙