面向Hadoop的大数据取证研究
2020-05-15周国民刘昱成陈光宣陈光笑
周国民, 刘昱成, 陈光宣, 吴 荻, 陈光笑, 张 雷
(1.浙江警察学院, 浙江杭州 310053; 2.中国人民公安大学公安政治工作与管理学院, 北京 100038;3.杭州市人民检察院, 浙江杭州 310008; 4.温州市公安局, 浙江温州 325000;5.国防大学联合勤务学院, 北京 100858)
0 引言
电子数据取证从诞生到广泛运用,一直是执法部门、律师、企业调查人员、学者以及专业取证人员的一个重要课题。在过去的二十多年里,电子数据取证在各类案件的调查中发挥了重要的作用,尤其在一些大案要案中,电子数据证据经常是案件调查的关键因素。从刑事案件、民事案件以及各类组织发起的内部调查,电子数据取证使得数据变成证据,且往往是最重要的证据,从而解决了许多不同类型的案件。在法庭科学领域,专注于大数据解决方案的取证,称为大数据取证[1]。大数据解决方案中的数据系统在规模上、存储方式上与传统的架构截然不同,从而也使得传统的电子数据取证手段在实践过程中受到了很大的限制。电子数据取证领域已经从处理台式计算机和服务器扩展到包括平板电脑、移动设备、汽车、大规模数据系统等各式各样的电子设备和系统。
近年来,随着大数据解决方案(如Hadoop)的广泛运用,部署大数据解决方案的政府部门、组织、企业等的数量与日俱增,这些系统存储了海量的数据,其中包含了很多不同类型案件的关键证据信息,调查取证人员需要懂得如何处理这些复杂的解决方案带来的新的电子数据取证问题,以及需要采用一些新的取证手段去获取有效的证据信息。Hadoop是目前最流行的大数据解决方案之一,其高扩容能力、高可靠性、高效率、低成本、成熟的生态圈等优点使其广受用户欢迎。然而,其分布式架构、海量数据存储能力、内存数据存储等特点也给针对Hadoop的电子数据取证带来了巨大的挑战。因此,取证调查人员亟需学会运用新技术、新工具、新软件等去采集、保存和分析电子数据证据,从而跟上信息大爆炸的时代步伐。
1 电子数据取证概述
1.1 电子数据证据
当前,在证据信息化的趋势下,电子数据证据作为一种新形态证据越来越多地出现在各国的司法实践中,在各类刑事案件、民事案件、行政案件、内部审计、网络对抗、商业间谍调查、反欺诈调查等中发挥了举足轻重的作用。2012~2014年,我国的民事诉讼法、刑事诉讼法、行政诉讼法将电子数据证据正式作为独立的诉讼证据之一。最高法、最高检、公安部、司法部等正式认可电子数据证据[2]。
电子数据证据来源于多种形式的数据,如各类文档、图片、电子邮件、数据库、文件系统、智能手机数据等,可以是文件、记录和其他逻辑数据容器中包含的信息。当然,电子数据证据也包括相关的元数据(metadata)。元数据,又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能[3-5]。元数据包含关于文件系统、内容管理系统或其他容器存储的数据的任何信息,它对建立数据生命周期信息(如作者和最后修改日期)非常有用。元数据可以与具体数据结合起来,形成关于该数据的“谁,什么,为什么,何时,何地以及如何”的完整信息表。证据信息还可以从已删除文件、文件片段以及内存中数据中提取。
1.2 电子数据取证
电子数据取证以证据为中心,证据是事实的证明。在法庭上,可以通过证据来证明或者反驳某项诉求。证据有很多类型,如我国《刑事诉讼法》第四十八条规定:可以用于证明案件事实的材料,都是证据,如物证,书证,证人证言,被害人陈述,犯罪嫌疑人、被告人供述和辩解,鉴定意见,勘验、检查、辨认、侦查实验等笔录,视听资料、电子数据等。从广义上讲,电子数据证据是数据的信息内容,完全可以在法庭上展示。
在法庭科学领域,电子数据取证是涉及电子数据证据的识别、收集、分析和呈现的全过程[1],其目标包括:
(1)正确地找到所有相关数据;
(2)以合理的方式收集数据;
(3)生成能准确描述事件的分析报告;
(4)清楚地展示调查取证结果。
电子数据取证属于技术性领域,实践过程中需要深入理解和掌握各类工具和技术的使用。基于法庭科学的范畴,电子数据取证也可能涉及法律方面的考虑,如证据破坏、如何在法庭上提供证据等问题。
为了使证据能够被法院或他人接受,必须首先对数据进行正确识别、收集、保存、记录、处理和分析。尽管证据本身是最重要的,但正确识别、收集和分析数据的过程对于证明数据没有以任何方式被改变也至关重要,该过程应遵循法定标准并以技术标准为后盾。分析和展示过程还必须遵守证据可采纳性和可理解性的最佳实践。最后,必须维护整个过程的文档,并可以将其按需呈现出来,以清楚地演示所执行的所有步骤:从识别到收集,再到分析。
1.3 取证流程
电子数据取证过程涉及4个阶段:识别、收集、分析和展示。 每个阶段都按顺序执行。 出于以下原因,取证过程可能是迭代的[1]:
需要其他数据源;
需要执行其他分析;
需要识别阶段的更深入的文档;
根据需要的其他情况。
图1显示了一个基本的电子数据取证过程。
图1 一个基本的电子数据取证流程
1.4 取证模型概述
电子数据取证领域发展至今,国内外涌现出了几十种取证模型,其中法庭科学领域较为常用的就有20余种[7-10],如表1所示。
这些取证模型大致可以分为线性取证模型、考虑空间转换的取证模型和考虑犯罪模式的取证模型3类。线性取证模型最初只有4个阶段,且各个阶段都比较简单。随着现场调查过程和抽象过程的发展,线性取证模型也扩充细化为线性相连、彼此承接的9个阶段。但是在实践过程中,线性工作模式看似严谨,但是过于理想化。考虑空间转换的取证模型在改进线性模型太理想化的基础上,更加突出符合侦查实践的需求,如集成的数字取证模型中引入了Locard交换定理来指导侦查取证实践活动。考虑犯罪行为模式的取证模型则更加充分考虑数字犯罪的行为模式,主要包括基于目标的分层取证模型、基于需求的数字取证模型和多维取证模型等,各自具备不同的特点,但又有共性的特征,即取证过程更加规划化,更贴近司法取证过程实践[7]。这些取证模型在实践中能规范取证行为,同时为取证过程的实施提供了程序性指引。随着信息技术的飞速发展,这些取证模型也面临着巨大的挑战,在实践过程中会逐步演化或者淘汰,尤其是在大数据时代,需要适应大数据取证的方法、技术和模型。
表1 常见取证模型
2 大数据取证
2.1 大数据架构概述
不同大数据解决方案的架构差别很大,但是绝大部分都共享几个核心理念。从大量数据源收集的数据接入到大数据解决方案中,这些方案能够处理各种类型和格式的数据,并将它们存储在一起。数据在被接入存储系统之前,首先会进行转换和清洗。对于海量数据来说,分布式存储极其关键。因为没有一个设备能够存储所有的数据,或者能够保证设备或其上的一块硬盘不出现故障。同样,对有实时性需求的大规模数据集分析计算来说,分布式计算也至关重要。通常,大数据解决方案会执行一个master/worker机制,如MapReduce。这里,一个master计算系统分配各个计算任务给worker计算系统。而master系统协调和管理各个计算任务并确保worker计算系统能够正常完成任务[11]。图2展示了一个典型的大数据架构。
图2 典型的大数据架构
大数据通常包含结构化、半结构化以及非结构化的数据,其解决方案需要能够跨多种类型的文件执行分析计算。大数据解决方案可以运用关系式数据库和非关系式数据库系统。大数据解决方案的另外两个重要概念是文本分析和机器学习。文本分析主要是对非结构化的文本数据集进行分析。随着社交媒体内容和电子邮件等的激增,这一领域的愈发显得重要。通过设计各种算法,针对文本数据可以进行客户情绪分析、买方行为预测分析、安全监控和经济指标分析等。文本分析很大程度上是通过机器学习来实现的。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科[12-13]。
2.2 面向大数据的取证
大数据解决方案的出现彻底改变了电子数据取证的要求。传统的电子数据取证的核心步骤包括从包含潜在证据源的计算机中移除硬盘驱动器等存储设备,计算MD5/SHA- 1校验、为获取所有元数据而进行物理收集等[1]。然而,现实中的大数据系统大大限制了取证人员运用传统的技术在其上面开展取证实践。
任何类型的法庭科学调查活动的一个重要目标就是尽可能地可靠地收集相关的证据。电子数据取证调查中的证据指的就是存储在系统中的与案件相关的各种数据。这些数据可能是文件、元数据、已删除文件、内存数据、硬盘闲置空间等的内容。电子数据取证技术旨在获取这些数据里的所有相关信息。在某些情况下,尤其是当认为潜在的证据被删除时,则应该运用物理收集的方式把整个文件系统里的每一个位都提取出来。在其他一些情况下,只有源文件系统的信息内容或者应用系统的内容才有价值。比如,当只有结构化数据系统(如传统的数据库)包含潜在证据,且元数据、硬盘闲置空间与收集目标不相关时。两种收集方法都很重要,都要考虑所需的证据内容和类型以及实际的取证环境等因素。
大数据取证是对大数据系统中的电子数据证据的识别、收集、分析和展示,其目标是尽可能地从大数据部署分案中的分布式系统、大规模数据数据库以及相关的应用程序里收集数据。大数据取证与传统取证有很多相似之处,但是对其差异性的理解更加重要。
2.2.1 元数据保存
元数据,也称描述数据的数据,主要是描述文件、数据容器、应用程序数据等数据的属性信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。当涉及文件是如何创建、修改和删除等问题时,元数据能提供一些非常有价值的信息,如谁修改了文件、何时修改了文件、哪个系统或者应用程序产生了这些文件等。在分析某个文件的生命周期时,尤其是在电子数据调查分析过程中,这些信息至关重要。
当然,在大数据调查分析中,元数据并不总是至关重要。当数据涌入以及通过大数据系统时,元数据经常会被改变或者丢失。数据接入与馈送引擎在接入数据时而不保留元数据。因此,将无法通过元数据去上游数据源分析谁创建了数据、最后修改的时间等信息。在这种情况下,调查取证的数据采集操作就无法达到目的。此时,可以尝试收集一些上游信息(如数据是如何接收的细节信息)作为参考。
对大数据系统的调查分析可以取决于数据中的信息,而非元数据。与结构化数据系统一样,当电子数据调查完全基于数据内容时,数据内容本身就能回答定量和定性的问题。只要数据收集过程合理且不存在谁在大数据系统中导入或者更改了数据等问题,元数据对调查分析就不起作用,系统内的数据是唯一的信息来源。
2.2.2 收集方法与完整性验证
大数据系统是具有业务需求的大型复杂系统,通常都是实时运作以保障各项业务的正常开展,因此不大可能进行脱机取证。在传统的电子数据取证中,一般都可以对计算机系统进行脱机数据采集,硬盘驱动器被卸下来进行源数据备份。在大数据调查中,可能会涉及到系统中成千上万块硬盘驱动器,而且当系统关机时,数据也可能会丢失。此外,由于业务需求,系统可能需要一直保持开机在线状态。大数据电子数据采集需要有针对性的合乎逻辑的方法,如逻辑文件取证备份、基于查询的收集等。
传统的电子数据取证通常依赖MD5和SHA- 1来验证所收集数据的完整性。但是,运用散列算法来验证所收集的大数据电子数据集不总是奏效[1]。在收集和验证源证据的完整性过程中,运用MD5或者SHA- 1来计算数据集的散列值花费了绝大部分时间。当数据集大到TB级以上时,MD5和SHA- 1并不一定奏效。可以通过收集日志以及其他描述性信息来辅助验证和固定。
3 Hadoop取证
3.1 Hadoop简介
作为Apache基金会框架解决方案,Hadoop是目前使用最广泛的大数据平台之一, 无数次作为大数据解决方案在企业系统中开发和测试过。Hadoop实际上是大数据的代名词,已经成为行业中事实上的标准,它能为取证提供多样化的应用和数据源生态系统[14]。了解Hadoop的工作方式以及如何在Hadoop上进行电子数据取证,能使取证人员和研究人员可以将相同的理解应用于其他大数据解决方案,如PyTables等[15]。
进行Hadoop大数据取证调查首先需要了解Hadoop的内部体系结构。正如了解NTFS、FAT32文件系统的工作方式对于在Windows中执行取证至关重要一样,了解Hadoop解决方案中的各层架构对于正确地识别,收集和分析Hadoop中的证据至关重要。 此外,Hadoop自身也一直在迅速演化(如定期添加和更新软件包),对Hadoop的体系结构及其功能有基础的认识,将使取证人员和研究人员有能力对不断发展的Hadoop进行取证。
3.2 Hadoop架构
Hadoop是一个可靠的系统,具有丰富的大数据分层解决方案和工具生态系统。它基于分布式存储和计算的概念而建立,是一个基于Java的跨平台解决方案。由于Java语言的与平台无关性特点,Hadoop可以运行在各种不同的操作系统上(如Linux和Windows等)。Hadoop本身是位于主机操作系统之上的一层,其核心功能内置于Java中,可以作为单独的进程运行[1]。Hadoop作为自身的抽象平台层,拥有自己的文件系统和一组核心功能,几乎可以独立于主机操作系统进行访问和运行。图3展示了一个典型的Hadoop分层架构。
图3 典型的Hadoop分层架构
Hadoop分层是各种组件的组织方式以及与组件之间关系的抽象。以下是各个Hadoop层。
操作系统层:第一层是主机上的操作系统,Hadoop安装并运行在操作系统之上(如Windows或Linux)。
Hadoop层:这是Hadoop的基础安装层,包括HDFS文件系统和MapReduce组件。
DBMS层:在Hadoop之上,安装了各种Hadoop DBMS和相关应用程序。通常,Hadoop安装包括数据仓库或数据库包,如Hive或HBase。
应用程序层:最顶层是应用程序层,其中包括一些数据管理、数据分析和其他功能的工具。某些工具(如Pig)可以直接与操作系统和Hadoop层进行交互,其他工具仅能与数据库层或其他应用程序层工具交互。
3.3 Hadoop取证生态系统
法庭上是讲证据的,对于电子调查而言,证据就是数据。对于Hadoop,证据就是存储在磁盘和内存中的信息,并非所有存储在Hadoop中的信息都是相关的,这取决于调查的性质。与某项调查相关的证据可能与另一项调查不相关。 这里,总结了各种证据来源和Hadoop电子数据取证生态系统。
标准Hadoop进程或系统生成的诊断信息不一定与电子数据调查有关。如安装的非自定义的Hadoop群集,该群集仅存储和分析Web日志数据,可能不需要所有文件和过程数据的集合。实际上,可以在某些情况下有针对性地收集Web日志数据和配置文件。
Hadoop中的电子数据证据主要分为3类。
支持信息:这是有助于识别电子数据证据或者提供有关Hadoop集群的操作或配置信息的上下文数据。
记录证据:这是在Hadoop中分析的任何数据,如HBase数据,MapReduce作业的文本文件,Pig输出等。
用户和应用程序证据:包括日志和配置文件,分析脚本,MapReduce逻辑数据,元数据以及对数据起作用的其他形式的自定义和逻辑数据。 当需要了解这些数据是如何产生、如何分析时,这种形式的数据对调查就很有用。
表2列出了每种电子数据证据最常见的数据形式。
表2 Hadoop电子数据证据的常见数据形式
面对Hadoop之类的大数据系统,调查取证人员面临的最大困难是如何应对海量的数据及其跨结点存储方式,不能简单地期望从某个硬盘获取系统的所有数据。实际上,取证人员首先要从Hadoop中识别相关数据,然后进行收集工作。某些形式的数据,如日志和配置文件,能有助于识别证据的存储位置以及判定是否存在数据档案等,还能描绘出Hadoop集群是如何工作的,这种类型的证据归类为支持信息,在整个调查过程中非常有价值。
记录证据是Hadoop调查取证中最常见的证据形式。在非大数据调查中,用户的文件、E-mail等可能是最有价值的证据形式。但是,大多数用户与Hadoop交互并不多,Hadoop更多由专门的IT员工和数据分析人员管理和运营。Hadoop的价值在于Hadoop中存储和分析的数据,即存储在Hadoop中用于分析的事务性数据和非结构化数据,以及分析的输出结果数据。这些结构化和非结构化数据是记录证据的主要形式。Hadoop取证调查中最具挑战性的工作是确定记录证据的所有相关的潜在来源,因为记录证据可以以多种形式存在于Hadoop中的多个应用程序中。
用户和应用程序证据指与记录证据相关,能显示系统运行方式或者分析逻辑方式的任何类型的证据。在一些调查中,经常会出现这样的问题:对某数据都做了什么操作?这些操作是如何执行的?有时可以通过分析记录证据解答这些问题。用户和应用程序证据则提供了一种更简单、更强大的方式来解答此类问题。用户和应用程序证据包括用于导入和分析数据的脚本,Hadoop中的配置文件和日志文件等。
4 结语
电子数据取证领域很大,且还在不断飞速发展,其名称从最初作为计算机取证的同义词,已扩展到涵盖对所有能够存储电子数据的设备的调查取证,衍生出了许多分支和方向,如计算机取证、移动设备取证、网络取证、数据库取证、电子数据分析、云取证等[16-17]。大数据是数据存储和管理方式的范式转换,对于大数据的调查取证也是如此。大数据技术的不断发展推动了电子数据调查工具和技术的变化和发展。Hadoop是目前最为流行的大数据平台之一,弄清Hadoop的基础架构以及Hadoop取证的基本流程、方法和工具对理解和大数据取证有重要的理论和实践意义。