《iOS取证实战:调查、分析与移动安全》一1.3 取证审查方法

简介: 本节书摘来自华章出版社《iOS取证实战:调查、分析与移动安全》一书中的第1章,第1.3节,作者(美)Andrew Hoog Katie Strzempka,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.3 取证审查方法

与任何取证研究一样,这里提供几种方法用于信息获取和分析。无论用任何方式进行信息获取都不能修改源信息,这是信息获取的关键,也可以说是最重要的一点。如果在一些实时系统或移动设备上获取信息时无法避免要修改源信息,那么分析者必须说明修改的细节以及必须作此修改的原因。移动领域取证与传统的计算机取证不一样,传统的计算机取证,你可以拆下硬盘,连上数据恢复工具write blocker,然后映像数据,最后就可以对这些数据进行分析了。而在移动领域就没有这么简单了,由NAND的特性和主存储器结构决定,它们会在设备上保留下数据,而这部分数据对于取证分析具有很高的价值。
如之前所提到的,设备上任何的数据变化都必须让其他人彻底了解并有文档记录。例如,有些逻辑取证工具会在设备上收集其他应用程序的信息,并通过物理或无线连接将收集到的数据传输出去,这些工具为了安装自身软件就会在设备上写入少量数据。对于取证研究来说,我们必须详细记录设备上复制进了哪些程序或文件,以及它们存储在什么位置,这些都是非常重要的信息。
美国国家标准技术研究所(National Institute of Standards and Technology,NIST)设立了计算机取证工具测试项目,项目的目标是确保这些计算机取证工具具备科学的可靠性和有效性。许多取证工具在国际上广泛使用,并用来收集犯罪案件的电子证据。然而,如何评估这些工具和技术的准确性却没有任何标准,因此NIST决定定义一些具体要求和测试断言用于评估工具的准确性。在2008年,NIST测试并确认了几款移动设备取证工具。在第7章,我们将详细讨论这几款工具,以及它们是否通过了NIST的计算机取证工具测试项目的验证(NIST, 2010)。
除了NIST之外,viaForensics公司也在独立测试支持iPhone的各款工具,研究介绍了从iPhone 3G设备中恢复数据的技术和软件,涉及测试的内容包括安装进程分析、设备信息获取、报表能力,以及最终数据恢复的准确性。前面所列的大部分内容都在第7章中有所描述,该章主要讨论了商业工具测试的重要性。当然,除了本书提及的一些信息之外,在iPhone取证白皮书中还记录了工具的独立排名,可参考以下链接:http://viaforensics.com/education/white-papers/iphone-forensics/

1.3.1 iPhone取证技术分级

对于移动取证审查者来说,最重要的是了解各种类型的移动取证工具以及它们能够恢复的数据。2007年,Sam Brothers(十位计算机和移动取证审查者和研究人员)开发了移动设备取证工具分级系统,这个分级系统的目的是让审查者可根据工具的提取方法对移动电话和GPS取证工具进行分级。此分级系统提供了一个框架,并能够帮助审查者识别不同工具间的区别。
图1-6展示了这个分级系统。从下到上,方法和工具变得更加专业,更加具有侵入性,更加消耗时间,成本更大,但取证获取更完整(Brothers,2007)。第1级(人工提取)是任何用户都可以做到的一种传统方式,就是简单地通过屏幕查看数据。第2级(逻辑分析)是今天大多数研究者都在使用的级别,因为它涉及的技术比较简单,只要经过少量培训就可以掌握。第3级(十六进制转储)是最近2~3年许多取证审查者开始使用的方法,在取证社区中也得到了较快的普及。第4级(芯片拆解)对大多数审查者来说是比较前沿的技术,教授这种分析类型的正式培训课程也是刚刚才出现。最后,第5级(微码读取)因为需要非常高超的技术,非常消耗成本,并且需要花费大量的时间,所以目前应用得非常少且没有很多的文档记载。

image

需要注意的是,每个级别的分析都各有利弊。取证审查者应该意识到这些问题,并且审查者应该只在那些经过培训的取证级别中进行操作。因为如果没有合理利用给定的方法或者工具,将会导致证据永久性毁坏而无法恢复。我们必须了解,越是高级的取证技术,发生数据损坏的风险就越大。因此,为了在数据提取和设备取证分析中得到更高的成功率,适当的培训是非常关键的(Brothers, 2007)。
已有的移动取证工具都能被划分到这5个级别中的一个(或几个)中去。下面的内容包含了每个级别的详细描述,并概述了每个级别进行数据提取的方法(Brothers, 2007)。
第1级—人工提取:人工提取的方法是指通过操作设备的键盘来浏览屏幕,直接查看手机上的数据内容。发现的信息需要手工记录(通常用数码相机)。在这个级别,不可能恢复已经被删除的信息。也有一些工具帮助研究人员更容易地将手工获取的信息记录下来。这些工具捕获设备上展示的内容,然后进行数字化处理,以便以后查找和存储(Brothers, 2007)。
第2级—逻辑提取:一般通过电缆线将移动设备与装有特殊软件的取证硬件或者取证工作站连接起来。审查者也可以选择用蓝牙代替电缆线。一旦连接上后,软件工具通过调用命令去请求并提取设备上的已分配文件。如Brothers解释的那样,计算机启动命令并发送到设备上,设备的处理器会解释这个指令,然后即可在设备的内存中检索所要获取的数据并发回给取证工作站由审查者审查。当前,大多数iPhone取证工具都属于分级系统中的这个级别,在第7章会进一步探讨这些工具。值得一提的是,这些工具中的一些还能够将iPhone备份文件的分析结果保存到用户的电脑上(Brothers, 2007)。第5章将进一步探讨这种提取类型。
第3级—十六进制转储:十六进制转储通常称为“物理提取”,相比较前面两个级别来说,它提供了更多的数据给研究人员。执行这种类型的取证时,一般通过电缆线将设备和取证工作站连接起来。有时,也通过设备的数据端口JTAG(内部测试连接)或者Wi-Fi将设备连接到电脑上。这种类型不再通过电脑启动命令,而是将未签名的代码植入到设备上(通常是植入到内存中),命令手机将用户数据复制到电脑上。生成的数据被复制、传输,并且作为原始磁盘映像存储起来。因为生成的映像是二进制格式,此级别要求分析者拥有这方面的专业技能知识(Brothers, 2007)。我们将在第5章详细讨论目前在iPhone设备上进行此类取证的可用工具。
第4级—芯片拆解:芯片拆解是指从设备的内存芯片中直接获取数据(鉴于iPhone采用的是NAND闪存内存)。将芯片通过物理手段从设备中拆卸下来,并且利用芯片读取器提取存储的数据。Brothers指出,这种提取类型类似于用传统的硬盘映像技术从计算机或笔记本电脑中映像硬件驱动器。如金字塔模型中描述的那样,这种方法比起人工提取、逻辑提取或者十六进制转储获取技术更具技术挑战。在这个级别,对研究者的技能知识要求非常广,取证获取的时间也非常长。如此高要求的原因,主要由于以下几个方面:多样化的芯片类型、大量原始的二进制数据格式,以及提取过程中导致芯片物理损坏的风险(Brothers, 2007)。
第5级—微码读取:此方法涉及人工查看数据以及解释内存芯片上的数据。通过分析芯片上的物理电平门限值,审查者可以将0和1翻译为ASCII字符。这个方法要花费大量的时间和成本,并且要求分析者对闪存内存和文件系统的所有方面都了如指掌。目前还没有商用工具支持对Apple设备进行微码读取(Brothers, 2007)。

1.3.2 取证获取类型

下面的内容列出了Apple设备上最常用的获取技术。这些方法可能会与1.3.1节中讨论的部分内容重复,但是本节将讨论更多技术细节以及如何将这些技术与iPhone联系起来。

  1. 备份
    iPhone取证的一个常用方法是分析备份目录。同步iPhone和备份iPhone是有差异的。基本上,同步是将iPhone上的文件与计算机上的文件保持一致,并备份一些关键的信息。而备份是保存SMS、通话记录、联系人和其他应用数据的副本。备份信息对于取证分析者来说是非常重要的,尤其是当取证分析者不能直接访问iPhone设备的时候。

此类获取过程从iPhone的备份文件中读取文件,而这些备份文件是通过iTunes创建的(使用Apple的同步协议)。通过这种方法仅能获取通过协议精确同步的文件数据。但不管是什么原因,当你不能访问设备或者不能进行数据映像时,备份分析将是一个有效的方法。
通过这种方式,许多关键信息都能够恢复。常用数据存储在SQLite数据库和属性列表文件中,协议支持对SQLite数据库和属性列表文件的同步。大多数已分配数据,或者换句话说,仍然保留在设备上的数据,都可以通过备份分析来恢复。此外,其他一些数据(例如已被删除的SMS、通话记录和联系人)通常也能够通过直接查询SQLite数据库来恢复。

  1. 逻辑获取
    这种方法直接从iPhone中获取数据,并优先从与iPhone同步过的计算机中恢复文件。现有的许多商用工具可以直接完成逻辑获取。然而,取证分析者也必须清楚以下几点:获取是如何发生的;iPhone是否被修改过;这个过程不能获取什么。

使用逻辑方法能够恢复iPhone文件系统中的活动文件和目录。但是,不能恢复在未分配空间(或不活跃空间)的数据。通过逻辑获取可得到下列条目所包含的一些常用数据:SMS、通话记录、日历事件、联系人、照片、Web访问记录、同步的电子邮件账户等。只有未删除的数据才能从这些文件中完全恢复。而某些应用程序,有时也能通过查询SQLite数据库文件来提取那些已删除的数据。第3章将对SQLite数据库文件的数据存储进行介绍,第6章将向大家演示从数据库文件和其他文件中提取已删除数据的方法。

  1. 物理获取
    第三种方法是通过物理获取来映像iPhone。这个过程创建一个文件系统的逐位复制,类似于大多数计算机取证分析中所采用的方法。虽然这种方法有可能最大限度恢复数据(包括已删除文件),但是这个过程更加复杂,并且要求更加精细的分析工具和技术。通过此方法,设备中的任何类型的数据都能够被恢复。对所得到的磁盘映像文件进行高级数据分析,也有可能恢复GPS坐标、蜂窝发射塔位置,甚至是已删除的短信和彩信。

很多时候,将各种文件中提取的元数据拼接在一起也可能得到一些其他的分析结论。例如,通过比较照片恢复出来的时间戳和SMS记录中的时间戳,可以知道这张照片曾经被发送给了谁。虽然使用备份和逻辑获取也可以恢复此类型的信息,但使用物理映像技术有可能恢复更多数据。

  1. 非传统方法
    也有一些不太常见的、有争议的方法通过修改设备固件使设备许可更多功能,使得研究者可从Apple设备中提取那些用其他方法可能无法得到的数据。

越狱是这些技术中的一种。为了越狱一台设备,固件分区将被替换为一个黑客(hacked)版本。这个黑客固件分区包含了一个安装包,此安装包允许用户下载那些正常情况下无法通过App Store获得的工具和程序。Apple公司的立场是,这种技术将造成盗版的猖獗和公司技术支持费用的增加(Moren,2010)。因此,苹果公司不对任何越狱过的设备提供保修服务,实际上直到2010年初,越狱都是一种非法的行为。
说明:越狱
越狱将Apple设备的固件分区替换成黑客版本,允许用户下载那些不能通过App Store明确获得的软件。越狱也使制造商不对此设备进行保修。
数字千年版权法案(Digital Millennium Copyright Act,DMCA)通过一个包含反规避技术的来支持像Apple这样的公司。这个法案于1998年颁布,法案包含了“规避技术保护措施”条款。这一条款的一个部分声明禁止规避受版权保护的技术。因为越狱技术绕过标准固件分区并修改固件以许可设备获得更多功能),所以在出现之后的一些年里,它都被DMCA列入不被豁免的名单(美国版权局,1998)。每隔三年,DMCA被进行评估和审查以确定此法案是否仍然对某些特定的技术适用。根据最近的审查,美国国会图书馆宣布越狱技术已经被DMCA豁免。但这项裁决并没有强制Apple公司将越狱设备包含在保修范围内,而仅仅意味着以这种方式来修改自己设备的用户不再会被追究法律责任。此外,法案规定任何下载到设备上的软件都必须是通过合法途径获得的,因此,盗版软件依然属于非法范畴(Moren,2010)。
本书不会探讨任何类型Apple设备的越狱过程,但应该指出的是,市场上可以找到适用于任何型号和固件版本的越狱方法,Apple黑客社区也在持续开发新的工具和技术以允许使用者更好地控制设备。事实上,最新发布的一些应用程序甚至允许越狱Apple TV。通过这种方法,使用者甚至可以在他们的Apple TV上运行诸如XBox Media Center这样的应用。
作为审查者,基于测试目的使用已越狱设备来配合工作是非常有教育意义的。这里有一些可用的工具,例如Mobile Terminal和OpenSSH,允许你使用常见的命令(例如“ssh”或“ftp”)来远程连接设备。一旦连接上设备,审查者就能浏览整个文件系统,获悉设备中的文件种类。这个目录结构与通过物理获取技术得到的磁盘映像文件相似,但并不完全相同。使用这些方法,能够将个人文件甚至整个文件系统从设备复制到取证工作站上。第5章将指导审查者在已越狱的iPhone中获取原始磁盘映像。但遗憾的是,用这种方法在iPhone 3G(s)或iPhone 4上获取原始磁盘映像时,我们还要面临硬盘加密的问题。

1.3.3 使用Linux取证

尽管很多商业工具都是在Windows或Mac环境中开发的,但是Linux平台还是获得了自己的一席之地,因为Linux包含了非常强大的工具,这些工具对取证调查是有帮助的。各种各样的操作实践贯穿全书,这些实践给读者演示了某个程序或进程是如何运行的(例如,执行取证获取,以及通过命令提示符运行各种取证工具。)一些工具更适合在Mac工作站上运行,而另外一些工具在Linux机器上运行得更好。根据各种实践的特点,我们将在操作系统之间来回跳转,所以要注意后面的实践是优先采用哪种平台。如果你没有Linux或Mac工作站,可以考虑使用虚拟机来模拟环境(本节后面部分涵盖如何构建Linux虚拟机)。

  1. Linux简介
    为了更好地理解第6章中使用的Linux工具,掌握Linux操作系统知识和一些基本的命令是很重要的。Linux操作系统最初是由来自芬兰的年轻学生Linus Torvalds发明的。Linux 内核的第一个版本(V1.0)在1994年发布,最新的运行版本是2.6。Linux内核最令人感兴趣的一个方面是,它遵循GNU通用公共许可证开发,这就意味着它的源代码是公用且免费的。

在Linux系统中,所有的文件都在同一个根目录下,这与Windows环境不同,Windows中会进行分区(例如,C:/ 硬盘、D:/ CD-ROM 等)。如果用户连接硬盘和USB到Linux工作站,它们都将存储于同样的文件夹结构下,如下面文本中所展示的:

image
image

在上面的代码中,“/”符号是文件系统的根目录。下面描述根目录下的几个文件夹以及其中可能包含的文件类型。
/etc:下载并安装到系统上的软件的配置文件。
/home/:在home目录中,系统中的每个用户都会有一个文件夹,每个用户的文件都将存储在他的特定文件夹中。
/dev:在这里将列出连接到Linux工作站的外部设备。例如,用“/dev/sda”、“/dev/sdb”等列出任何通过USB或火线接口连接的SATA/SCSI设备。为了使这些设备能够正常连接到Linux工作站,它们被分配到不同的目录结点。
/var:系统日志文件存储在这里。
Linux工作站中每个文件夹或文件的权限分为三种不同类型:文件所有者权限,用户组权限、其他用户权限、权限有“r”(读)、“w”(写)、“x”(执行)。在下面的例子中,文件所有者有读和写权限,而用户组和其他用户只有只读权限。每一行最前面的符号“–”表示对象是文件。如果是目录,则以字符“d”表示;如果是文件或目录的链接,则以字符“l”表示。
image

有多种命令都能够用于修改文件或文件夹的权限。对于修改权限来说,掌握读、写、执行权限分配的数值(八进制值)是很重要的。权限基于以下的数值进行计算:
读=4
写=2
执行=1
因此,如果用户、用户组或其他用户被分配为“7”,则他们将拥有读、写、执行的权限。下面这一节介绍修改权限的命令以及一些相关的例子。

  1. 基本Linux命令
    以下各部分将一些常用的Linux命令作了分解,其中包括了命令的描述、通常的使用方法以及命令如何应用的示例。可以参见附录 X作为参考指南。

man说明:显示每个命令行的联机手册,详细描述命令及其作用(包括命令所有的选项或标志)。
image

在下面的例子中,第一个命令查询出了“mount”命令的相关信息,第二个命令查询出了所有包含“Zip”字符的联机手册信息。
image
image
image

help说明:显示所需查询的命令的相关信息,包括它的使用方法和示例,类似于“man”命令。一些命令用--help的格式,也有用-h 或 -help格式的。
image

cd说明:切换目录。在Linux系统中,特殊字符“~”代表当前用户的主目录。例如,用户kstrzempka在Linux系统上的主目录是 /home/kstrzempka,无论在文件系统的什么位置,都可以使用~跳转到/home/kstrzempka目录。这个符号比较适合在文档中使用,所以本书通篇用~来代表用户的主目录,可能你在操作时用户名与本书不一致,但是这个符号的效果是一样的,仍然代表你的用户主目录。
image

mkdir说明:此命令默认在当前位置建立目录,如果后面带有路径参数,则在该路径下建立目录。
image

rmdir/rm说明:根据指定的标记删除已有目录或文件。rmdir命令只能删除空文件夹,如果目录下有文件,那么在运行rmdir命令前需要先将目录下的文件删除。rm命令可以用来删除文件和目录,如果要删除的目录下有文件,会提示用户先删除文件。或者也可以在后面加上-f 选项,强制删除,但是请小心使用。
image

pico/nano说明:pico和nano都是创建和编辑文本文件的命令行界面文本编辑器。此命令必须在文件存储路径的目录中运行。下面的示例仅介绍了pico命令, nano的执行方式也是类似的。简单地输入这个命令就可创建一个文件。
image

输入pico命令将在命令行界面中打开文本编辑器,用户可以在此编辑器中录入任何他/她想输入的文本信息,如图1-4所示。
当文本录入完成后,按“Ctrl+X”键将保存文本并退出文本编辑器,如图1-7所示,这个示例文件另存为“Test”,从界面顶部的输入可以看到,这个文件保存到了用户当前目录下。
简单地输入下面的命令,可以对其中已存在的文件进行修改,如果文件在另外的目录下,则还需要接着输入全路径或文件名。
image

image

ls说明:此命令可列出文件和文件夹。若ls命令后面不带任何参数,则仅列出当前目录下的文件或文件夹名称。如果带上-lh参数,那么将列出每个文件的详细信息,包括权限、文件所有者、大小、日期和时间戳。
image

tree说明:以树状图列出指定目录内容。如果命令后不带任何参数,那么列出的将是当前目录下的树状图。在Linux系统中,当前目录也用符号“.”表示,上级目录就用两个点“..”表示。在下面的输出示例中,用的是当前目录,这个目录是当前用户的主目录。带上-L参数,用户可以指定想要查看的目录层级。下面的第一个例子显示了一层,而第二个例子显示了原目录和文件的二层。有一点请不要忘记,即所有命令的细节都可以通过手册页(man tree 命令)了解,或者在此命令后带上help参数(tree --help)也可以查看到具体的信息。
image
image

less说明:将指定的文本文件分页显示。此命令常与其他的命令联合使用,分页显示其他命令的输出。下面的命令将在窗口上分页显示“large-document.pdf”文件的内容。
image

一旦通过less命令进入显示窗口,就必须记住下面这些关键的命令:
h:进入帮助菜单
q:离开帮助菜单
空格键:显示下一屏/下一页
b:显示上一屏/上一页
/:查找内容
回车:下移一行
y:上移一行
对于这个强大的功能还有很多的命令和窍门,你可以查阅联机帮助说明和手册页,或者到因特网上搜索更多有用的小技巧。
cat说明:在屏幕上输出文件的内容,或将此文件的内容与其他指定文件合并后输出(不保留文件格式)。
image

这个命令还可将多个文件合并为一个(即分离取证映像)。这个方式通常也称为连接文件。
image

find说明:用于在目录树中查找文件。下面的命令将列出该指定用户桌面路径下的所有文件(带全路径信息):
image

find命令也可以和其他的命令一起使用。例如,下面的语句将要在find命令查找出的文件上执行md5sum命令:
image

在上面的例子中,这条语句命令计算机在当前目录(“.”)中查找指定类型(-type f)的文件,并且在所有查找到的文件上执行(-exec)字符串命令。“”符号是-exec命令的结束符。执行此命令的输出将被重定向(>)到用户主目录下的“md5.txt”文件中(Grundy, 2008)。
对于上面的语句,如果将匹配到大量的文件传递给exec执行,将会出问题。基于这个原因,我们应该通过文件输出管道去查找,能够实现此功能的命令是 xargs。
chmod说明:change mode的简写,如前面章节提到的,这个命令可修改文件或目录的访问权限。下面的讲解提供了好几个例子。需要注意的是,这些命令都必须在“textfile.txt”文件存储的路径下执行,或者在命令中必须带上文件的全路径信息。
image

“chmod”命令也能修改一批文件或一个文件夹的权限。
image
chown说明:修改指定文件的所有者或用户组。在下面的例子中,textfile.txt文件原来的所有者和用户组是kstrzempka。chown命令将文件所有者修改为root。这个命令会与sudo命令一起使用(详细内容可参见sudo命令的说明)。
image

sudo说明:在命令的前面加上sudo意味着提高执行这条命令的用户权限,允许以超级用户或其他用户身份执行这条命令。在执行一些特定的命令时都需要带上sudo,例如apt-get(安装软件)、chown(修改所有者),以及其他许多涉及文件处理的命令都需要sudo。要以其他用户身份来执行命令,只要简单地在此命令前面加上sudo,系统会要求提供此用户的密码。
image

apt-get说明:apt是apt-get命令(代表高级包装工具(APT))的一部分,用户可以通过这个命令安装、卸载、升级现有软件,甚至是执行操作系统的更新。为了成功执行该命令,也需要用sudo命令来提高执行权限。
image

grep说明:在文件或文件列表和文件夹中搜索特定的词组。类似于打开一个文档,通过“find”命令查找某词组。此搜索默认是区分大小写的,所以如果你不确定要搜索的词组是大写还是小写,必须在后面带上-i参数(不区分大小写)。这个操作可能会花费较长的时间,这取决于要搜索的文件的大小。通常的使用方法是:
image

下面是几个grep使用的例子:
image

下面的命令将在用户桌面目录下的所有文件中搜索unnecessary这个单词。搜索的结果表明,在textfile.txt文件中找到了这个单词,并且在“WXP-PRO-OEM.iso”文件中也有匹配的内容。因为这是一个二进制文件,所以要查看文件的内容将需要更深入的技术。
image

管道和重定向文件(/和>)说明:管道字符“|”(在大多数键盘上位于回车键的上方)可将命令行的输出发送到别的地方做进一步处理。用“>”可以将输出重定向到文件。
下面的命令获取cat file.txt的命令结果,并将其输出到less命令做进一步处理,以便用户可以分页查看此文件内容。
image

下面的命令在book.txt中搜索iPhone(使用grep命令),然后在搜索结果中再搜索iOS,最后通过管道传输给less命令,并分页显示搜索结果。
image

从命令中重定向输出也是非常有用的手段。下面的命令将book.txt的内容输出(用cat命令),并且复制输出到用户桌面上的文件“newdocument.txt”中。
image

在特定的文件或整个磁盘映像上执行“strings”命令时,重定向输出是非常有用的手段。第6章的6.2.3节刚好有这么个例子。
xxd说明:这个工具会生成指定文件或磁盘映像的十六进制转储数据。审查者可以阅读这些以十六进制显示的文件,还可以跳过指定的偏移量,甚至可以在文件中搜索特定的数据。虽然可以使用一些十六进制编辑器达到此目的,但在Linux版本中,xxd是符合标准的一款工具。下面是一些常见的使用方法:
image

下面的命令行展示了利用xxd命令从iPhone文件系统中读取的Photos.sqlite文件数据。在使用xxd命令时,会产生大量重要的数据,所以最好用管道命令将信息通过“less”命令输出以便在屏幕上分页查看,或者将输出重定向到其他文件中以方便查阅。
image

在磁盘映像、数据库或者其他文件类型的开始部分,通常有很多0(换句话说,就是没有数据),使用“-a”或自动跳过参数,将直接跳到文件中有真实数据的地方。
image
image

如果你是技术狂热分子,也可以用“-b”参数以二进制形式查看映像内容。
image

审查者若拥有了查看文件或者具有查看磁盘映像的能力,将会使取证工作的开展更顺利。第6章将深入探讨这些方法。

  1. 建立Linux虚拟机
    为了安装和运行前面章节列出的工具,审查者必须连接到一个Linux工作站。但是要接入这种类型的物理机并不是那么容易的事。因此,要说明一下,在虚拟环境中运行Linux系统是很重要的。本节将讨论建立Linux虚拟机(Virtual machine,VM)的过程。

在这个例子中,将使用VirtualBox工具,这个工具现属于Oracle公司,为学术研究和个人使用提供免费的许可证。但如果你要在商业项目中使用VirtualBox,首先,请确保你遵循了此公司的所有许可证授权准则。
对于多个操作系统,包括Microsoft Windows、Mac OS X和Linux(2.4和2.6版本),都可以下载VirtualBox工具(下载链接:http://www.virtualbox.org)。VirtualBox安装完成后,你可以看到Oracle VM VirtualBox的管理器,如图1-8所示,在这个界面上可以创建和管理新的虚拟机。
在创建新的虚拟机时,你需要确保有足够的硬盘空间(推荐至少20GB),并且预留足够多的内存。
通过VirtualBox管理器的图形化用户界面创建一个新的虚拟机是非常直接方便的。但是,如果你要创建64位的Ubuntu Linux工作站或服务器(此系统不能运行桌面应用程序)就不那么容易了,这里提供了一些步骤,你可以根据这些步骤建立、配置并且运行新的虚拟机(VirtualBox 3.2.10)。
当然,最好通过SSH会话来连接,并通过程序提供的屏幕来操作,这样即使与服务器的连接断开了,也能够保证虚拟机仍然处于激活状态。按照以下步骤进行:
image
image

image

此时,虚拟机将启动,你可以通过任何远程桌面协议(Remote Desktop Protocol,RDP)连接此虚拟机,例如Windows上的远程桌面连接,Linux系统上的rdesktop程序,或者Mac系统上的微软远程桌面连接客户端。要通过示例中的会话去连接,需要连接到<主服务器的IP地址:3392>。重启后,安装就完成了。
如果关机或重启中止了VBoxHeadless会话,你可以简单地再次发出命令去启动服务器备份。然后,通过远程连接再次连接到虚拟机上,安装openssh-server,以便我们能够用ssh连接虚拟机,而不再使用效率较低的RDP。
image

现在,运行ifconfig能够看到虚拟机的IP地址和eth0接口的“inet addr”。你可以用你喜欢的ssh程序(如果在Windows上,你可以尝试用Putty工具,它是比较好用的免费客户端)通过ssh协议连接到虚拟机。此时,你可以下载并安装之前章节中所列出的任何取证工具。如何安装和编译这些程序(例如,scalpel或timeline),将在第6章详细说明。

  1. Linux取证工具
    在取证审查过程中,可以使用一些免费、开源的Linux工具。在后续的章节中,更详细地对这些工具展开讨论,包括第5章和第6章。

说明:Linux取证工具
高级Linux取证分析工具的应用能够帮助审查者以更有效的方法定位关键证据。其中的部分工具是非常强大的,提供了快速索引、查询和提取某类型文件的能力。Linux Leo网站(http://linuxleo.com/)向执法人员和取证审查者介绍Linux系统的相关知识。它提供了详细的取证工具使用方法,这些工具在本书中也有所涉猎。
创建磁盘映像:“dd”命令需要在审查者以root身份登录的设备上使用(例如,已经越狱的iPhone或iPad)。这个工具通常用于取证,以获取硬盘驱动器、SD卡、U盘或其他设备的整个磁盘映像。第5章将描述在已越狱iPhone上使用“dd”程序的方法。
映像校验:在数字取证中,只有在绝对必要的时候才会使用原始存储介质进行审查。在大多数情况下,取证副本由设备组成,审查者只会去分析从设备复制过来的映像数据,这样就不会修改原始的存储介质。为了确认分析使用的复制数据和原始数据的一致性,比较好的做法是使用散列算法为原始数据和复制数据创建独一无二的签名,如果二者的散列值匹配,则表明取证映像数据等同于复制的原始数据。多数商用工具会给出MD5值或者SHA1散列值,这两种不同的算法都是用于同一目的。同时,也可以用Linux命令行来确定图片、文件上的MD5值或SHA1散列值。
挂载和卸载磁盘映像:为了观察移动设备中文件系统的目录,必须对映像进行挂载。挂载文件系统就是告知操作系统这些文件应该出现在设备目录树的什么位置。如果一个USB驱动器或其他外部设备连接到计算机上,计算机通常会自动挂载这些设备的文件系统,以便用户浏览文件。在取证中,审查者通常处理磁盘映像文件,而不与物理设备打交道。根据取证工作站使用的操作系统,可以使用不同的方法挂载这些映像并浏览文件。挂载一台iOS设备映像的相关细节见第6章。
文件雕复:为了恢复磁盘中的文件或文件片段,此过程通过扫描整个磁盘来获得特定文件签名(file signature)。因为这个过程关注文件内容而不是元数据,所以使用这种方法能够恢复已删除和未删除的文件。在取证审查中这是一种常见的技术,这种技术在恢复已删除的照片、电子邮件、短信和其他重要数据方面已取得了巨大的成功。文件雕复技术已经内置在一些取证分析工具中,然而,有一些开源的Linux工具也可以完成文件雕复工作。这些工具可以通过命令行运行,用来处理iPhone、iPad或者其他iOS设备映像,恢复重要的文件。
创建事件的时间线:目前针对磁盘映像有几种工具,这些工具能够列出文件系统中的每一个文件,包括已分配和未分配空间的文件。基于文件列表,这些工具创建了出现在设备中的事件的时间表。这个过程通常是针对磁盘驱动器运行的,但也能够用在iPhone、iPad或其他iOS的映像文件上。生成的时间线将显示文件名,还显示这些文件是否创建、修改和访问,以及创建、修改和访问的日期和时间,还有一些其他可能对调查有意义的信息。设备中有成千上万个文件,有时有成百上千个文件,按照时间顺序排列的能力是这个过程中重要的一步。特别是当调查者有一个特定的时间范围来缩小选择时,这种时间线是极有帮助的。有两个工具可以创建原始文件列表:Brian Carrier开发的Sleuth工具包中的fls工具和Kristinn Gudjonsson开发的log2timeline工具。然后使用另一个工具—Sleuch工具包的mactime,这个工具会利用此文件列表创建事件时间线。
搜索磁盘映像:一旦获得设备的物理映像,就可以使用不同的工具来进一步分析那些映像并搜索特殊的关键字或其他数据。方法之一是使用Linux系统的“strings”命令行。strings命令将提取至少4个字符长的可打印字符来处理一个文件(甚至是整个磁盘映像)。这个命令也可以用来处理个人数据库文件,以便有可能查看和恢复已删除数据。审查者可用来搜索数据的另外一个工具是十六进制编辑器。通过使用十六进制编辑器来查看磁盘映像,审查者能够跳转到映像的指定区域。例如,如果审查者唯一感兴趣的是一个特殊的电子邮件地址,那么就可以在整个磁盘映像中搜索该地址,然后还可以分析周边的内容。
除了以上列出的工具以外,在iPhone上使用的最常见的物理获取工具之一是由Jonathan Zdziarski开发的命令行自动化工具。这些自动化工具可以在Mac工作站或Linux机器上使用。第5章将列出基于Linux的工具,前面所讨论的Linux虚拟机也可以运行这些工具。
本节粗略介绍了目前在Linux环境中使用的取证方法。这里有个不错的资源:http://linuxleo.com/,此网站对那些想将Linux纳入到审查支撑范围的审查者很有帮助。网站上有规范、指南、文档和一些其他条目,这些资源将帮助你熟悉Linux环境,并掌握如何使用Linux环境进行审查(Grundy,2008)。

相关文章
|
1月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
175 4
|
1月前
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
3月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统无疑是主角。它们各自拥有独特的特点和优势,为开发者提供了不同的开发环境和工具。本文将深入浅出地探讨安卓和iOS开发环境的主要差异,包括开发工具、编程语言、用户界面设计、性能优化以及市场覆盖等方面,旨在帮助初学者更好地理解两大平台的开发特点,并为他们选择合适的开发路径提供参考。通过比较分析,我们将揭示不同环境下的开发实践,以及如何根据项目需求和目标受众来选择最合适的开发平台。
55 2
|
28天前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了这两个平台的开发环境,从编程语言、开发工具到用户界面设计等多个角度进行比较。通过实际案例分析和代码示例,我们旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和个人偏好做出明智的选择。无论你是初涉移动开发领域的新手,还是寻求跨平台解决方案的资深开发者,这篇文章都将为你提供宝贵的信息和启示。
30 8
|
1月前
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
40 1
|
4月前
|
语音技术 开发工具 图形学
Unity与IOS⭐一、百度语音IOS版Demo调试方法
Unity与IOS⭐一、百度语音IOS版Demo调试方法
|
1月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
33 2
|
1月前
|
监控 算法 iOS开发
深入探索iOS函数调用栈:符号化与性能调优实战
在iOS开发中,理解函数调用栈对于性能调优和问题排查至关重要。函数调用栈记录了程序执行过程中的函数调用顺序,通过分析调用栈,我们可以识别性能瓶颈和潜在的代码问题。本文将分享iOS函数调用栈的基本概念、符号化过程以及如何利用调用栈进行性能调优。
41 2
|
3月前
|
安全 Android开发 数据安全/隐私保护
探索安卓与iOS的安全性差异:技术深度分析与实践建议
本文旨在深入探讨并比较Android和iOS两大移动操作系统在安全性方面的不同之处。通过详细的技术分析,揭示两者在架构设计、权限管理、应用生态及更新机制等方面的安全特性。同时,针对这些差异提出针对性的实践建议,旨在为开发者和用户提供增强移动设备安全性的参考。
158 3
|
2月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境的差异性分析
【10月更文挑战第8天】 本文旨在探讨Android和iOS两大移动操作系统在开发环境上的不同,包括开发语言、工具、平台特性等方面。通过对这些差异性的分析,帮助开发者更好地理解两大平台,以便在项目开发中做出更合适的技术选择。