基于卷积神经网络的文件碎片分类方法及系统与流程

文档序号:16918519发布日期:2019-02-19 19:09阅读:350来源:国知局
基于卷积神经网络的文件碎片分类方法及系统与流程

本发明属于计算机取证领域,涉及一种数据恢复技术,特别涉及一种文件碎片恢复的关键技术。



背景技术:

传统数据恢复方法,主要依赖于文件系统的结构恢复被删除的数据,例如文件分配表内容。大多数文件系统在删除文件过程不实际删除所在物理位置中的数据,只是标记该区域可以用于存储新的数据。删除结束后文件分配表中的文件条目以及删除文件与簇(即在存储介质中可寻址的最小存储单元)的链接信息依然存在,因此根据文件系统结构信息很容易恢复一个被删除的文件。除了解析处理磁盘上未分配空间的数据,通过访问文件系统结构还可以识别并快速提取所有未被删除的数据。

已有的数据恢复工具主要处理在介质上连续存储的文件数据。如何恢复碎片化的文件数据是目前数据恢复的一个难点。garfinkel指出与取证案件相关的文件更倾向于以碎片化形式存在,并给出高达58%的outlook电子邮件客户端数据是碎片化存储的统计数据。造成碎片化的主要原因包括以下几点:

(1)磁盘介质长时间使用并随机增加、删除将无法连续存储完整的文件;

(2)在现有文件附加数据,如果没有足够的未分配空间,文件系统将数据附加到其它位置;

(3)文件系统不支持按某种长度连续存储文件,例如unix文件系统。

当文件系统结构不存在、损坏以及被人为删除时,以上碎片化存储的文件将无法利用传统方法恢复。许多案例中,由于一些重要文件通常没有备份只能通过恢复技术来获得证据,因此碎片文件数据的恢复有助于案件的取证调查。基于文件雕刻(filecarving)的技术是被认为是恢复碎片文件数据的有效解决方案。文件雕刻是一种基于文件内容的恢复技术,与传统方法的区别是不依赖于指向文件内容的元数据。

此外文件雕刻技术还可用于恢复硬盘中未分配空间中的文件,未分配空间指的是不再保留任何文件系统结构中所示文件信息(例如文件分配表中的信息)的磁盘空间。在丢失、损坏文件系统结构时整个磁盘空间都是未分配空间,这种情况同样增加了取证调查的难度。

随着研究的深入,许多方法被引入到基于文件雕刻的数据恢复技术中。最早的实现是基于文件头/尾的雕刻方法,该方法根据基于文件签名的数据库识别已知文件类型的起点、终点,然后中间的连续介质存储空间进行恢复处理。该方法的局限性是未考虑文件数据碎片化存储的情况。在此基础上的改进包括:文件头/最大长度雕刻、基于文件结构雕刻、基于语义雕刻、碎片恢复雕刻等。

正确分类文件碎片类型对于成功雕刻文件碎片是一个重要环节。然而文件碎片分类是复杂的任务,文件类型包含大量不同的类别:从简单的原始类别(primitivetype),例如一段ascii码的text或jpeg文件;到复杂的包含其它类型文件的容器文件(例如pdf文件)、存档文件(例如rar、zip件)。分类检查的碎片数据包括:数据块,缺少魔数信息(例如文件签名)、文件扩展名、文件系统元数据、数据包头信息以及其它用于标识该类型文件特征的文件碎片。尽管现有商用软件(例如trid)及开源工具(例如unixfile)根据签名及其它魔数信息能够有效对不明类型数据正确区分,但是在文件系统元数据信息丢失、损坏或位置不明时分类效果不好。

基于内容的分析方法通常用于元数据信息不可用的情况。主要的分析方法包括以下几种:

(1)语义解析。该分析方法主要根据自然语言结构、语义的形式表达及数据结构和逻辑顺序。由于这类结构和表示在某些类型的文件和数据流中比较罕见,因此语义解析在文件和数据类型分类中作用有限。

(2)非语义解析。该分析方法涉及搜索在特定文件和数据类型中比较常见的字符串,例如识别pdf文件类型可以利用搜索“obj”、“stream”、“endstream”等字符串。非语义解析方法的问题是不是所有文件和数据类型带有典型的字符串,例如txt文件。

(3)机器学习。机器学习方法包括监督学习和非监督学习算法,通常采用基于统计的分类方法,因此可以有效地解决许多文件和数据类型的分类问题。



技术实现要素:

本发明提出了一种基于卷积神经网络的文件碎片分类方法及系统,能够高效、准确、自动完成对文件碎片的分类。

本发明采用的技术方案如下:

一种基于卷积神经网络的文件碎片分类方法,其步骤包括:

(1)提取文件碎片内容,将其转换成十六进制表示的字符序列;

(2)对文件碎片内容进行解析,将十六进制表示的字符序列转换为二进制向量化形式的字符向量;

(3)通过卷积神经网络对文件碎片的字符向量进行卷积、池化、分类的过程,实现对文件碎片的分类。

上述方法中,步骤(1)的十六进制是文件碎片内容的原始表示,步骤(2)进一步进行向量化的表示,每个十六进制的表示内容被表示成多维的二进制向量。例如,6a这种的十六进制字符被表示成一个300维的向量。

进一步地,步骤(1)将转换得到的十六进制表示的字符序列与文件原内容进行哈希md5计算,获得哈希校验值,以保证二者在内容上的一致性。

进一步地,步骤(2)将十六进制表示的字符串序列的每一个字符与预先形成的字典即预定义字典的索引相关联,预定义字典是一个随机初始化而成的低维的实数向量组,包含二进制向量,每一二进制向量对应一个字符,称为字符向量。

进一步地,步骤(3)包括:

训练卷积神经网络分类模型中的参数,通过一些具有典型的类型特征的文件碎片的训练,获得分类模型的内部各参数,包括w、b,其中w为卷积核加权矩阵,b为偏置量。

进一步地,步骤(3)还包括:

(a)在卷积神经网络分类模型的配置文件中设立模型的配置选项,批量数据大小、训练数据地址、核函数大小、dropout值;

(b)在卷积神经网络分类模型中输入接口位置信息、文件碎片位置信息、文件碎片大小信息等;

(c)在卷积神经网络分类模型的训练过程中更新关联的字符向量,使其具有一定的语义信息。

与上面方法对应地,本发明还提供一种基于卷积神经网络的文件碎片分类系统,其包括:

文件碎片内容提取模块,用于提取文件碎片内容,将其转换成十六进制表示的字符序列;

文件碎片内容解析模块,用于对文件碎片内容进行解析,将十六进制表示的字符序列转换为二进制向量化形式的字符向量;

文件碎片分类模块,用于通过卷积神经网络对文件碎片的字符向量进行卷积、池化、分类的过程,实现对文件碎片的分类。

与现有技术相比,本发明的有益效果如下:

传统的分类方法首先需要提取碎片中合适的特征用于分类算法的输入,通常提取n-gram或采用某种字节频率测量分析方法;然后对输入特征集进行降维处理;第三步根据设计的分类算法完成对碎片文件的分类。本发明通过卷积神经网络实现对文件碎片的分类,自动从碎片内容中学习特征表示,省略了人工设计、降维特征的步骤,因此能减少人为设计错误的发生。

附图说明

图1为本发明方法的总体架构图。

图2为基于卷积神经网络的文件碎片分类模型的示意图。

图3为不同分类算法的性能对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明中的技术方案进行清楚、完整地描述。

本发明的技术方法为,通过卷积神经网络提取文件碎片内容特征、分析碎片内容特点,将碎片文件归类到某个已知文件类型。

图1是本发明的总体架构图。本发明方法的步骤如下:

(1)提取碎片文件内容并转换成十六进制表示,将转换结果与文件原内容进行哈希md5计算验证以保证内容的一致性。

(2)cnn(卷积神经网络)的输入是词向量层,将十六进制表示的字符串序列的每一个字符与预先形成的字典即预定义字典的索引相关联,从而将十六进制表示的字符序列转换为二进制向量化形式的字符向量。

预定义字典是一个随机初始化而成的低维的实数向量组,包含二进制向量,每一二进制向量对应一个字符,称为字符向量,定义字符向量的维度为d。在cnn的算法训练过程中将更新关联的字符向量使其具有一定的语义信息。

(3)cnn的卷积层的目标是捕获文件碎片内容中字符向量的组合语义特征并压缩这些信息到特征图。

假设xi:j是文件碎片中连续的字节xixi+1…xj。卷积层中涉及对卷积核的操作,卷积核w∈rh×d是一个窗口函数应用到h个字节提取特征,其中r表示实数,例如特征ci的生成采用如下公式所示:

ci=f(w·xi:i+h-1+b)

其中,b为偏置量,f为非线性函数,例如双曲正切函数。卷积核的操作是在句子中按x1:hx2:h+1…xn-h+1:n顺序移动卷积核窗口函数产生一组碎片的组合语义特征c1c2…cn-h+1。通常在网络模型中采用多个卷积核来捕获不同的特征,假设应用m个卷积核w=w1w2…wm,则卷积操作可按如下公式进行:

cji=f(wj·xi:i+h-1+bj)

其中,j的范围是从1到m。每次卷积核操作生成一个特征图:

c=[c1,c2,…,cn-h+1]

其中c∈r(n-h+1),最终通过卷积运算获得一个特征矩阵c∈rm×(n-h+1)

(4)每个核函数生成的特征图维度随文件碎片大小和核函数的窗口大小变化。池化函数的作用是降低每个特征图的维度和待估计的参数。本实施例加入最大池化层逐元素计算求出卷积层各输出的特征向量第k维最大值作为池化层第k维的值。

(5)最终文件碎片的分类结果通过softmax函数产生。在softmax层采用“dropout”作为正则化的方法防止过拟合。

图2为本实施例采用的基于卷积神经网络的文件碎片分类模型的示意图。其中词向量矩阵即二进制向量化形式的字符向量;词向量查找是词向量层,将十六进制表示的字符串序列的词向量与预定义字典的索引相关联;全连接层作为输出网络的具体实现,用于连接所有的特征,将输出值送给softmax函数。

下面结合开源库tensorflow实现分类算法,说明本发明方法的实施过程,tensorboard为tensorflow中的可视化组件。

tensorflow是一个开源的机器学习资源库,包括tensorflow,tensorboard,tensorserving等。tensorflow可以高效地应用python语言实习机器学习算法,基于卷积神经网络的分类碎片算法过程分为preprocess(预处理)、embedding(向量表示)、convolution(卷积运算)、maxpooling(池化运算)、output(输出结果)五个阶段。

本实施例中,通过python语言编写,实现基于卷积神经网络文件碎片分类算法。实验中各参数选取如下,非线性函数选择relu,卷积核大小分别为:4、8、16,对应的每个特征图维度为100;dropout为0.5,l2范数为2。根据需求分别控制爬取深度与广度。

为了验证本发明方法的技术效果,本实验使用同一批文件碎片,分别分类不同大小的文件碎片,64,128,256,512,1024,2048,4096,并与不同的分类算法进行了对比,如图3所示,可以看出,本发明方法(cnn方法)的分类准确度优于现有的其它分类算法(xgboost、svm、knn)。

本发明另一实施例提供一种基于卷积神经网络的文件碎片分类系统,其包括:文件碎片内容提取模块,用于提取文件碎片内容,将其转换成十六进制表示的字符序列;文件碎片内容解析模块,用于对文件碎片内容进行解析,将十六进制表示的字符序列转换为二进制向量化形式的字符向量;文件碎片分类模块,用于通过卷积神经网络对文件碎片的字符向量进行卷积、池化、分类的过程,实现对文件碎片的分类。其中文件碎片内容提取模块还负责将转换得到的十六进制表示的字符序列与文件原内容进行哈希md5计算,获得哈希校验值,以保证二者在内容上的一致性;文件碎片内容解析模块将十六进制表示的字符串序列的每一个字符与预先形成的字典即预定义字典的索引相关联,预定义字典是一个随机初始化而成的低维的实数向量组,包含二进制向量,每一二进制向量对应一个字符,称为字符向量。文件碎片分类模块的具体工作过程可以参考上面实施例中对文件碎片分类方法的具体描述。

综上所述,传统的分类方法首先需要提取碎片中合适的特征用于分类算法的输入,通常提取n-gram或采用某种字节频率测量分析方法;然后对输入特征集进行降维处理;最后根据设计的分类算法完成对碎片文件的分类。本发明通过卷积神经网络实现对文件碎片的分类,自动从碎片内容中学习特征表示,省略了人工设计、降维特征的步骤,因此能减少人为设计错误的发生。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1