移动取证实践指南第四版(一)

原文:annas-archive.org/md5/6efd6e14f5596709cdc9a37a8f4a6218

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

手机取证是指在法医学条件下从手机中提取数据的科学。这是我们成功出版的*《实用移动取证》*一书的第四版,深入探讨了移动取证的概念及其在当今世界的重要性。

本书重点教授你在各种移动平台上进行移动设备调查时的最新取证技术。你将学习多种操作系统版本的取证技巧,包括 iOS 12、iOS 13、Android 9、Android 10 以及 Windows 10。你将深入了解最新的开源和商业移动取证工具,帮助你有效地分析和提取数据。你将学习如何检查设备,如何从云端获取数据,并成功地记录调查报告。你还将探索应用程序的逆向工程和识别恶意软件的方法。你还将接触到流行的第三方应用程序解析,例如 Facebook 和 WhatsApp。

在阅读完本书后,你将掌握各种移动取证技术,利用开源解决方案分析和提取手机设备中的数据。

本书适用对象

本书适合那些在移动取证或开源解决方案方面经验较少或只有基础经验的法医检查员。本书对计算机安全专业人士、研究人员以及任何希望深入了解移动设备内部结构的人也会有帮助。对数字取证实践有一定了解会更为有益。

本书内容

第一章,移动取证概述,为你介绍了移动取证的概念、核心价值以及相关挑战。本章还概述了执行移动取证时的实际方法和最佳实践。

第二章,了解 iOS 设备的内部结构,为你提供了 iOS 取证的洞察。你将了解文件系统的布局、安全特性以及 iOS 设备上文件的存储方式。

第三章,从 iOS 设备获取数据,讨论了帮助你从 iOS 设备获取数据并进行法医检查的工具。并非所有工具都是平等的,因此了解哪些工具最适合完成工作非常重要。

第四章,从 iOS 备份中获取数据,详细讨论了 iOS 设备的备份文件,包括用户备份、法医备份、加密备份和 iCloud 备份文件,以及进行法医检查的方法。

第五章,iOS 数据分析与恢复,通过展示如何分析从备份文件中恢复的数据,进一步深入到法医调查中。具有潜在证据价值的数据区域将详细解释。

第六章,iOS 取证工具,为便于了解,本章介绍了多种商业工具的使用,例如 Elcomsoft iOS Forensic Toolkit、Cellebrite(UFED4PC、Touch 和 Physical Analyzer)、BlackLight、Oxygen Forensic Detective、AccessData MPE+、EnCase、Belkasoft Evidence Center、MSAB XRY 等,这些工具可用于 iOS 设备的取证采集和分析。本章详细介绍了执行 iOS 设备采集与分析所需的流程。

第七章,理解 Android,介绍了 Android 平台的基础知识、内置的安全功能以及其文件系统。本章建立了基本的取证知识,为后续章节提供了帮助。

第八章,Android 取证环境设置与数据提取前技术,告诉你在设置数字取证检查环境时需要考虑的事项。本章提供了关于如何 root 一台 Android 设备并绕过屏幕锁功能的逐步信息。

第九章,Android 数据提取技术,帮助你识别 Android 设备上的敏感位置,并解释了可以应用于该设备的各种逻辑和物理技术,以提取所需信息。

第十章,Android 数据分析与恢复,解释了如何从镜像文件中提取相关数据,如通话记录、短信和浏览历史。我们还将介绍数据恢复技术,帮助我们恢复设备上被删除的数据。

第十一章,Android 应用分析、恶意软件与逆向工程,解释了尽管早期章节讨论的数据提取与恢复技术提供了获取宝贵数据的途径,但本章中的应用分析帮助我们获取有关应用程序的具体信息,如偏好设置和权限。

第十二章,Windows Phone 取证,讨论了 Windows Phone,尽管它在移动市场中占比不大,因此大多数取证人员对设备上的数据格式、嵌入式数据库及其他证据不太熟悉。本章概述了 Windows Phone 取证,描述了获取和检查 Windows 移动设备数据的各种方法。

第十三章,解析第三方应用程序文件,将向你介绍在 Android 设备、iOS 设备和 Windows 手机上看到的各种应用程序。每个应用程序会因版本和设备不同而有所不同,但它们的基本结构是相似的。我们将研究数据如何存储,以及为什么首选项文件对你的调查很重要。

为了最大限度地利用本书

确保你有一个测试用的移动设备,用来实验本书中解释的技术。不要在个人手机上尝试这些技术。

本书中解释的一些技术,如设备 root 操作,特定于设备品牌和运行的操作系统。在尝试这些技术之前,确保你已经进行充分的研究并收集了足够的信息。

如果你使用的是本书的数字版本,建议你自己输入命令。这样做可以帮助你避免因复制和粘贴代码而产生的潜在错误。

下载彩色图像

我们还提供了一个 PDF 文件,包含了本书中使用的带颜色的截图/图表。你可以在这里下载:www.packtpub.com/sites/default/files/downloads/9781838647520_ColorImages.pdf

使用的约定

本书中使用了一些文本约定。

CodeInText:表示文本中的代码单词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 用户名。以下是一个例子:“将下载的WebStorm-10*.dmg磁盘映像文件作为另一个磁盘挂载到你的系统中。”

代码块如下所示:

html, body, #map {
 height: 100%; 
 margin: 0;
 padding: 0
}

当我们希望引起你对代码块中特定部分的注意时,相关的行或项目会使用粗体显示:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

任何命令行输入或输出都以如下形式写出:

$ mkdir css
$ cd css

粗体:表示一个新术语、一个重要词汇或你在屏幕上看到的单词。例如,菜单或对话框中的词汇在文本中会以这种形式出现。以下是一个例子:“从管理面板中选择系统信息。”

警告或重要提示以这种形式出现。

提示和技巧以如下形式出现。

免责声明

本书中的信息仅用于道德方式使用。如果没有设备所有者的书面许可,不得使用本书中的任何信息。如果进行非法操作,你可能会被逮捕并依法起诉。Packt 出版公司对你误用书中任何信息不承担责任。本书中的信息仅应在获得相关负责人书面授权的测试环境中使用。

联系我们

我们始终欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并通过 customercare@packtpub.com 与我们联系。

勘误:虽然我们已尽最大努力确保内容的准确性,但错误仍然可能发生。如果您在本书中发现错误,我们将不胜感激,如果您能向我们报告。请访问 www.packtpub.com/support/errata,选择您的书籍,点击“勘误提交表单”链接,并填写详细信息。

盗版:如果您在互联网上发现任何形式的我们作品的非法复制品,我们将非常感激您提供该材料的位置信息或网站名称。请通过电子邮件联系我们,地址为 copyright@packt.com,并附上相关链接。

如果您有兴趣成为作者:如果您在某个领域有专业知识,并且有兴趣写作或参与编写书籍,请访问 authors.packtpub.com

评论

请留下您的评论。阅读并使用本书后,为什么不在您购买本书的网站上留下评论呢?潜在的读者可以看到并参考您的公正意见,以便做出购买决策,Packt 也能了解您对我们产品的看法,而我们的作者也可以看到您对他们书籍的反馈。谢谢!

如需了解更多有关 Packt 的信息,请访问 packt.com

第一章:移动取证简介

毋庸置疑,移动设备已经成为我们生活的一部分,并彻底改变了我们进行大多数活动的方式。因此,移动设备现在已经成为一个庞大的存储库,保存着关于其拥有者的敏感和个人信息。这反过来促进了移动设备取证学的发展,取证学是数字取证的一个分支,专门处理从移动设备中提取数据。本书将帮助你了解在三个主要平台上进行取证的技术——Android、iOS 和 Windows。我们将介绍可以用来收集不同移动设备证据的各种方法。

本章将覆盖以下主题:

  • 移动取证的需求

  • 了解移动取证

  • 移动取证的挑战

  • 手机证据提取过程

  • 实用的移动取证方法

  • 手机中存储的潜在证据

  • 检查与分析

  • 证据规则

  • 良好的取证实践

移动取证的需求

根据 Statista 的报告(statista.com),全球手机用户数预计在 2020 年将超过 50 亿。世界正见证技术和用户从桌面电脑迁移到手机的过程。移动市场的大部分增长可以归因于智能手机需求的持续增加。

根据爱立信的一份报告,到 2022 年,全球移动数据流量将达到每月 71 艾字节(exabytes),相比 2017 年的 8.8 艾字节,年复合增长率为 42%。如今的智能手机,如苹果的 iPhone 和三星的 Galaxy 系列,是具有高性能、大容量存储和增强功能的紧凑型计算机。手机是用户访问的最具个人性的电子设备。它们用于执行简单的通信任务,如拨打电话和发短信,同时也支持浏览互联网、收发电子邮件、拍照和录像、创建和存储文档、通过 GPS 服务定位以及管理商业事务。

随着新功能和应用程序的不断加入,手机上存储的信息量也在不断增长。

手机已经成为便携的数据载体,跟踪你所有的活动。随着手机在日常生活和犯罪中的普及,从手机中获取的数据已经成为与刑事、民事甚至高调案件相关的调查中不可或缺的证据来源。很少有数字取证调查不包括手机。2010 年,纽约时代广场的未遂炸弹袭击案件中,手机通话记录和 GPS 数据被用来帮助破案。

案件的详细信息可以在www.forensicon.com/forensics-blotter/cell-phone-email-forensics-investigation-cracks-nyc-times-square-car-bombing-case/找到。

从手机中恢复数字证据的科学被称为手机取证,我们将在下一节讨论它。数字证据被定义为存储在电子设备上、由电子设备接收或传输的信息和数据,这些数据可用于调查。数字证据包括所有可以作为案件证据使用的数字数据。

了解手机取证

数字取证是法医学的一个分支,专注于恢复和调查存储在电子或数字设备中的原始数据。该过程的目标是在不改变设备上现有数据的情况下,提取并恢复数字设备中的任何信息。随着计算机和各种其他数字设备的快速发展,数字取证也与时俱进。根据涉及的数字设备类型,数字取证有多个分支,如计算机取证、网络取证和手机取证。

手机取证是数字取证的一个分支,专门处理从移动设备中获取和恢复证据的问题。取证有效性是数字取证领域中广泛使用的术语,用来确认和证明某一特定取证技术或方法的使用。确保取证过程不改变原始证据是有效取证检查的核心原则之一,而这对于移动设备来说是极其困难的。有些取证工具需要与移动设备进行通信,因此标准的写保护在取证过程中无法有效工作。

其他取证获取方法可能涉及在提取数据进行取证检查之前,从移动设备上拆卸芯片或安装自定义引导程序。在无法在不改变设备配置的情况下进行检查或数据获取的情况下,必须仔细测试并记录程序及更改,以供以后参考。遵循正确的方法和指南对于检查移动设备至关重要,因为这样可以获得最有价值的数据。与任何证据收集一样,不按照正确的程序进行检查可能会导致证据丢失或损坏,或者使其在法庭上无法作为有效证据。

移动取证过程分为三个主要类别——扣押获取检查/分析。在扣押手机作为证据来源时,取证员面临一些挑战。在犯罪现场,如果发现手机已关机,你作为检查员应将设备放入法拉第袋中,以防设备自动开机后发生变化。法拉第袋专门设计用来隔离手机与网络的连接。

如果手机被发现开机,关机的操作涉及很多需要考虑的问题。如果手机被 PIN 码或密码锁定,或经过加密,你需要绕过锁定或确定 PIN 码才能访问设备。手机是联网设备,可以通过不同的方式发送和接收数据,例如电信系统、Wi-Fi 接入点和蓝牙。因此,如果手机处于开机状态,犯罪分子可能通过执行远程擦除命令来安全地清除手机上存储的数据。当手机开机时,应将其放入法拉第袋中。如果可能,在将移动设备放入法拉第袋之前,你应断开它与网络的连接,通过开启飞行模式并禁用所有网络连接(Wi-Fi、GPS、热点等)来保护证据。这还可以延长电池寿命,因为电池在法拉第袋中会消耗电量,并防止法拉第袋出现泄漏。一旦移动设备被正确扣押,检查员可能需要几种取证工具来获取和分析存储在手机上的数据。

移动设备取证获取可以通过多种方法进行,具体方法将在后面定义。这些方法会影响所需的分析量,具体内容将在后续章节中详细讨论。如果某种方法失败,必须尝试另一种方法。可能需要多次尝试和不同的工具,以便从移动设备中获取最大量的数据。

手机是动态系统,在提取和分析数字证据时给我们带来了很多挑战。不同制造商的不同类型手机数量的快速增长使得开发单一的流程或工具来检查所有类型的设备变得困难。随着现有技术的进步和新技术的引入,手机不断发展。此外,每部手机都设计有多种嵌入式操作系统。因此,取证专家需要特别的知识和技能来获取和分析这些设备。

移动取证中的挑战

当涉及移动平台时,最大的取证挑战之一是数据可以在多个设备之间访问、存储和同步。由于数据易变且可以迅速在远程进行转换或删除,需要更多的努力来保留这些数据。移动取证与计算机取证不同,并对取证人员提出独特挑战。

执法部门和取证人员经常难以从移动设备中获取数字证据。以下是其中一些原因:

  • 硬件差异:市场上充斥着来自不同制造商的不同型号的手机。取证人员可能会遇到不同尺寸、硬件、功能和操作系统不同的手机型号。此外,由于产品开发周期短,新型号经常出现。随着移动设备领域每天都在发生变化,对于您来说,适应所有挑战并保持对各种设备上的移动设备取证技术的更新至关重要。

  • 移动操作系统:与个人计算机不同,Windows 多年来一直主导市场,移动设备广泛使用更多操作系统,包括苹果的 iOS、谷歌的 Android、RIM 的 BlackBerry OS、微软的 Windows Phone OS、惠普的 webOS 等。即使在这些操作系统中,也有几个版本,这使得您的任务变得更加困难。

  • 移动平台安全功能:现代移动平台包含内置的安全功能,用于保护用户数据和隐私。这些功能在取证获取和检查过程中起到障碍作用。例如,现代移动设备从硬件层到软件层都配备了默认加密机制。您可能需要突破这些加密机制才能从设备中提取数据。FBI 与苹果之间的加密争端在这方面是一个分水岭时刻,苹果的安全实施阻止了 FBI 破解从圣贝纳迪诺案件中袭击者手中夺取的 iPhone。

  • 防止数据修改:取证中的一个基本规则是确保设备上的数据不被修改。换句话说,从设备中提取数据的任何尝试都不应更改该设备上的数据。但这在移动设备上实际上是不可能的,因为只需打开设备就可能改变该设备上的数据。即使设备看起来处于关闭状态,后台进程仍可能在运行。例如,在大多数手机中,闹钟即使手机关闭也仍在工作。从一个状态突然转变到另一个状态可能导致数据的丢失或修改。

  • 反取证技术:反取证技术,如数据隐藏、数据混淆、数据伪造和安全擦除,使数字媒体的调查变得更加困难。

  • 密码恢复:如果设备受到密码保护,取证专家需要在不损坏设备数据的情况下访问设备。虽然有一些技术可以绕过屏幕锁定,但它们可能并不适用于所有版本的操作系统。

  • 资源不足:如前所述,随着手机数量的增加,取证专家所需的工具数量也在增加。为了获取这些设备,必须维护取证配件,如用于不同手机的 USB 数据线、电池和充电器。

  • 证据的动态性质:数字证据可能会被轻易修改,无论是有意还是无意。例如,在手机上浏览某个应用程序可能会改变该应用程序在设备上存储的数据。

  • 意外重置:手机提供了重置所有内容的功能。在检查过程中如果不小心重置设备,可能会导致数据丢失。

  • 设备修改:设备修改的方式可能包括移动应用数据、重命名文件或修改制造商的操作系统。在这种情况下,应考虑嫌疑人的专业技能。

  • 通信屏蔽:手机设备通过蜂窝网络、Wi-Fi 网络、蓝牙和红外进行通信。由于设备通信可能会改变设备数据,因此在获取设备后,应消除进一步通信的可能性。

  • 工具不可用:手机设备种类繁多。需要使用多种工具组合,因为单一工具可能无法支持所有设备或执行所有必要功能。因此,选择适合特定手机的工具可能很困难。

  • 恶意程序:设备可能包含恶意软件,如病毒或木马。这些程序可能尝试通过有线或无线接口传播到其他设备。

  • 法律问题:手机设备可能涉及跨越地理边界的犯罪。为了处理这些跨辖区问题,取证专家应熟悉犯罪的性质和地区法律。

接下来,让我们看看证据提取的过程。

手机证据提取过程

证据提取和不同手机设备的取证检查可能会因多种因素而有所不同。然而,遵循一致的检查流程将帮助取证专家确保从每部手机中获取的证据有良好的记录,并且结果可靠。对于手机取证,目前没有公认的标准流程。

然而,以下图示提供了从手机设备提取证据时的一些过程考虑。所有提取数据的方法都应经过测试、验证并详细记录:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/0ddcffa5-13ae-43c6-bc56-675914931a98.png

移动电话证据提取过程

处理和处理移动设备的一个重要资源可以在digital-forensics.sans.org/media/mobile-device-forensic-process-v3.pdf中找到。

如前面图示所示,移动设备的取证包括几个阶段,从证据接收阶段到归档阶段。以下各节提供了各个阶段中需要考虑的各种事项的概述。

证据接收阶段

证据接收阶段是开始阶段,涉及记录业主信息和移动设备涉及的事件类型的文书工作,并概述请求者所寻求的数据类型。为每个检查制定具体目标是此阶段的关键部分。这有助于明确你的目标。在开始物理扣押过程之前,你应熟悉与个人权利相关的联邦、州和地方法律。如果未按照正确程序进行,调查可能会在法庭上被认为是非法的。程序和合法性可能根据你是政府代理人还是私人方有所不同。例如,在美国,第四修正案权利禁止政府代理人在没有适当搜查令的情况下进行任何搜查或扣押。搜查令应明确授权扣押移动设备以及需要收集的数据类型。成功扣押后,应注意确保建立设备和数据收集的链条证据。

根据 NIST(csrc.nist.gov/),链条证据是指通过记录每个处理证据的人、收集或转移的日期/时间以及转移目的,跟踪证据在收集、保护和分析生命周期中的移动过程。

此外,在扣押设备时,应小心不要修改设备上存在的任何数据。同时,任何有助于调查的机会都不应错过。例如,在扣押设备时,如果设备没有锁定,可以尝试禁用密码。

标识阶段

取证检查员应为每次对移动设备的检查识别以下详细信息:

  • 法律授权

  • 需要提取的数据

  • 设备的制造商、型号和标识信息

  • 数据存储介质

  • 其他潜在证据来源

我们将在接下来的各节中讨论这些内容。

法律授权

对于法医检查员而言,确定并记录获取和检查设备的合法授权非常重要,还需要了解在设备检查之前对媒体的任何限制。例如,如果设备的调查是基于搜查令进行的,则搜索应仅限于搜查令中定义的区域。简而言之,在扣押设备之前,你需要回答以下问题:

  • 如果没有搜查令,设备所有者是否同意进行搜查?

  • 如果有搜查令,设备是否包含在原始搜查令中?

  • 如果设备包含在搜查令中,是否也定义了可以收集的数据?

  • 如果是企业调查,设备是个人所有还是属于其雇主?

  • 企业政策是否允许收集和后续分析?

需要提取的数据

你将根据所请求的数据确定检查的深度。检查的目标在选择检查手机的工具和技术时具有重要影响,并提高检查过程的效率。

设备的制造商、型号和识别信息

在检查过程中,确定手机的制造商和型号有助于判断哪些工具可以与手机配合使用。若有可能,建议记录被扣押设备的以下细节:

  • 设备制造商

  • 设备型号

  • 移动设备的序列号

  • 设备的颜色

  • 设备屏幕或锁屏壁纸

  • 设备是否具有任何硬件组件(如前置摄像头、耳机插孔等)

  • 设备的任何特定细节描述(如划痕、破损的屏幕等)

接下来,我们来看一下数据存储介质。

数据存储介质

许多移动电话提供使用可拆卸存储设备扩展内存的选项。如果在提交检查的移动电话中发现了这类可拆卸介质,存储卡应当移除,并使用传统的数字取证技术进行处理。最好在移动设备中获取存储卡,以确保手机内存和存储卡上的数据能够关联,便于分析。相关内容将在接下来的章节中详细讨论。

其他潜在证据来源

移动电话是良好的指纹和其他生物证据来源。在检查移动电话之前,应该先收集此类证据,以避免污染问题,除非收集方法会损坏设备。检查员在处理证据时应佩戴手套。

准备阶段

一旦确定了手机型号,准备阶段就包括对要检查的特定手机及其获取和检查所需的适当方法和工具进行研究。通常,这基于设备型号、底层操作系统及其版本等信息进行。这时,需要使用哪些工具也要根据设备以及检查的范围和目标来决定。

隔离阶段

移动电话的设计目的是通过蜂窝电话网络、蓝牙、红外和无线(Wi-Fi)网络功能进行通信。当电话连接到网络时,新的数据通过来电、短信和应用程序数据传入手机,这些数据会修改手机上的证据。

数据的完全销毁也可以通过远程访问或远程擦除命令实现。因此,在获取和检查设备之前,将设备与通信源隔离是非常重要的。网络隔离可以通过将手机放入射频屏蔽布中,然后将手机设置为飞行模式来完成。飞行模式会禁用设备的通信渠道,如蜂窝网络、Wi-Fi 和蓝牙。然而,如果设备已锁屏,这种方法就不可行。此外,由于现在飞机上可以提供 Wi-Fi 服务,一些设备在飞行模式下也能够启用 Wi-Fi 访问。

另一种解决方案是通过使用法拉第袋隔离手机,这些袋子可以阻挡手机的信号收发。法拉第袋包含能够屏蔽外部静电场(包括无线电波)的材料。因此,法拉第袋可以屏蔽被扣押的移动设备免受外部干扰,防止数据擦除和定位追踪。为了更方便地处理扣押的设备,法拉第帐篷和房间也已出现。

处理阶段

一旦手机与通信网络隔离,手机的实际处理工作就开始了。你将在这一阶段面临的挑战之一是确定使用哪些工具,因为这受多种因素的影响,例如价格、易用性、适用性等。移动取证软件价格昂贵,而且与计算机取证不同,有时你需要使用多个工具来访问数据。在选择工具时,请确保它具有内建功能以保持取证完整性。保持取证完整性需要一个能够以一种可能难以轻易修改或篡改的格式打包收集数据的工具。

手机应通过一种经过验证的、可重复的方法获取,并且尽可能具有法医有效性。物理获取是首选方法,因为它可以提取原始内存数据,并且在获取过程中设备通常是关闭的。在大多数设备上,物理获取过程中设备发生的变化最少。如果物理获取不可行或失败,应尝试获取移动设备的文件系统。逻辑获取应始终执行,因为它可能只包含已解析的数据,并提供检查原始内存映像的线索。这些获取方法将在后续章节中详细讨论。

验证阶段

处理完手机后,需要验证从手机中提取的数据的准确性,以确保数据未被修改。提取数据的验证可以通过多种方式完成:

  • 将提取的数据与手机数据进行比较:检查从设备提取的数据是否与设备显示的数据一致(如果适用)。提取的数据可以与设备本身的数据或逻辑报告进行比较,具体取决于偏好。请记住,处理原始设备可能会对唯一证据——设备本身,造成更改。

  • 使用多个工具并比较结果:为了确保准确性,使用多个工具提取数据并比较结果。

  • **使用哈希值:**所有映像文件在获取后都应进行哈希计算,以确保数据保持不变。如果支持文件系统提取,您可以提取文件系统,然后计算提取文件的哈希值。之后,可以计算并检查任何单独提取文件的哈希值与原始值的匹配情况,以验证其完整性。哈希值出现任何不一致必须有解释(例如,设备开机后再次获取,因此哈希值不同)。

文档编制和报告阶段

法医检查员需要在整个检查过程中记录所有与获取和检查过程中所做的工作相关的内容。一旦完成调查,结果必须经过某种形式的同行评审,以确保数据已被检查且调查完成。您的笔记和文档可能包含以下信息:

  • 检查开始的日期和时间

  • 手机的物理状态

  • 手机和单个组件的照片

  • 收到时手机的状态——是开机还是关机

  • 手机品牌和型号

  • 用于获取的工具

  • 用于检查的工具

  • 在检查过程中发现的数据

  • 同行评审记录

在整个调查过程中,确保从移动设备提取和记录的信息能够清晰地呈现给其他检查员或法庭是非常重要的。文档记录是你最重要的技能之一。在获取和分析过程中,从移动设备提取的数据的取证报告非常重要。这可能包括纸质和电子格式的数据。

你的发现必须以一种能让证据在法庭上自行说明的方式进行文档记录和呈现。发现应该清晰、简洁且可重复。许多商业移动取证工具提供的时间线和链接分析功能,将有助于跨多个移动设备报告和解释发现。这些工具可以帮助你将多个设备的通信方式联系在一起。

存档阶段

保留从移动电话提取的数据是整体过程中的一个重要环节。同样重要的是,数据必须以可用格式保留,以便在持续的法庭过程中使用,以防当前的证据文件损坏,以及为记录保存的需要。法院案件可能会持续多年,直到最终裁决做出,大多数司法管辖区要求为了上诉的目的长时间保留数据。随着该领域和方法的进展,可能会出现从原始物理镜像中提取数据的新方法,到时候你可以通过从档案中提取副本来重新审视数据。

现在我们已经了解了证据提取过程的工作原理,我们将研究实际移动取证中的不同方法。

实际移动取证方法

类似于任何法医调查,获取和检查/分析来自手机的数据可以使用几种不同的方法。移动设备的类型、操作系统和安全设置通常决定了法医过程中的程序。每个调查都有其独特的情况,因此不可能为所有案件设计一种确定的程序方法。以下细节概述了提取移动设备数据时的一般方法。

理解移动操作系统

移动电话的数据获取和检查/分析的主要因素之一是操作系统。从低端手机到智能手机,移动操作系统已经发展了很多,具有许多功能。移动操作系统直接影响你如何访问移动设备。例如,Android 提供终端级访问权限,而 iOS 则没有此选项。

对移动平台的全面理解帮助法医检查员做出合理的法医决策并进行有结论的调查。尽管智能移动设备种类繁多,但随着黑莓的没落,目前市场上主要由两大操作系统主导,分别是谷歌的 Android 和苹果的 iOS(其次是遥不可及的 Windows Phone)。更多信息请参见www.idc.com/promo/smartphone-market-share/os。本书涵盖了这三种移动平台的法医分析。我们将简要概述领先的移动操作系统。

Android

Android 是一个基于 Linux 的操作系统,是谷歌为手机提供的开源平台。Android 是全球使用最广泛的智能手机操作系统。数据显示,苹果的 iOS 排名第二(www.idc.com/promo/smartphone-market-share/os)。Android 由谷歌开发,作为硬件制造商和手机运营商的开放免费选择。这使得 Android 成为那些需要低成本、可定制、轻量化操作系统的公司首选,且不必从头开始开发新操作系统。

Android 的开放性进一步鼓励开发者构建大量应用并将其上传到 Google Play。之后,最终用户可以从 Android Market 下载这些应用,这使得 Android 成为一个强大的操作系统。据估计,在本书撰写时,Google Play 商店中有 330 万个应用程序。关于 Android 的更多细节请见第七章,理解 Android

iOS

iOS,前身为 iPhone 操作系统,是由苹果公司开发和分发的唯一移动操作系统。iOS 正逐步发展为所有苹果移动设备的通用操作系统,例如 iPad、iPod Touch 和 iPhone。iOS 源自 macOS,因此基于类似 Unix 的操作系统。iOS 管理设备硬件,所需的本地应用程序实现技术也由 iOS 提供。iOS 还附带了各种系统应用,如 Mail 和 Safari,提供标准的系统服务。iOS 本地应用程序通过 App Store 分发,并由苹果公司进行严格监管。有关 iOS 的更多细节请见第二章,理解 iOS 设备内部结构

Windows Phone

Windows Phone 是微软为智能手机和口袋电脑开发的专有移动操作系统。它是 Windows Mobile 的继任者,主要面向消费者市场,而非企业市场。Windows Phone 操作系统类似于 Windows 桌面操作系统,但它针对存储空间较小的设备进行了优化。第十二章中讨论了 Windows Phone 的基本知识和取证技术,Windows Phone 取证

移动取证工具分级系统

移动电话取证获取和分析涉及手动操作和自动化工具的使用。有多种工具可供执行移动取证。所有工具都有其优缺点,理解没有单一工具适用于所有目的这一基本原则非常重要。因此,了解各种类型的移动取证工具对取证检查员来说至关重要。

在确定适合进行手机取证获取和分析的工具时,由 Sam Brothers 开发的移动设备取证工具分类系统(如下图所示)对于检查员非常有用:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/229e3426-5007-4106-bd1e-a0fd32d5626c.png

手机工具分级金字塔(Sam Brothers,2009)

移动设备取证工具分类系统的目标是使检查员能够根据工具的检查方法对取证工具进行分类。从金字塔底部到顶部,分析方法和工具通常变得更加技术化和复杂,并且需要更长的分析时间。每一层使用的不同技术都有优缺点。取证检查员在应用特定技术之前,应当意识到这些问题。如果给定的方法或工具没有得到正确使用,证据可能会被完全销毁。随着金字塔向上移动,这种风险会增加。因此,为了从移动设备中获取数据并取得最高成功率,必须进行适当的培训。

每个现有的手机取证工具都可以归类为一个或多个五个级别中的某一类。以下部分包含了每个级别的详细描述。

手动提取

手动提取方法仅仅通过滚动设备上的数据并直接通过设备的键盘或触摸屏查看手机上的数据。然后,发现的信息会通过拍照进行记录。提取过程快速且易于使用,几乎适用于所有手机。此方法容易出现人为错误,例如由于不熟悉界面而遗漏某些数据。在这个级别上,无法恢复已删除的信息或提取所有数据。

有些工具,如 Project-A-Phone,已被开发出来帮助检查员轻松记录手动提取过程。然而,这也可能导致数据的修改。例如,查看未读的短信会将其标记为已读。

逻辑分析

逻辑分析涉及通过 USB 电缆、RJ-45 电缆、红外线或蓝牙将移动设备连接到取证硬件或取证工作站。连接后,计算机会发送指令到设备,设备的处理器将解释该指令。接着,从设备内存中接收请求的数据并发送回取证工作站。之后,你可以查看数据。

当前大多数可用的取证工具都在此分类系统层级工作。该提取过程快速且易于使用,且对用户的培训要求较低。但另一方面,这个过程可能会向手机写入数据,从而可能改变证据的完整性。此外,使用此过程通常无法访问已删除的数据。

十六进制转储

十六进制转储,也称为物理提取,是通过将设备连接到取证工作站,将未签名的代码或引导加载程序推送到手机,并指示手机将内存数据从手机转储到计算机来实现的。由于生成的原始图像是二进制格式,因此需要技术专长来分析它。该过程成本较低,提供更多的数据供检查员使用,并且允许从大多数设备的未分配空间恢复已删除的文件。

芯片提取

芯片提取指的是直接从设备中的内存芯片获取数据。在这个层级,芯片被物理地从设备中移除,并使用芯片读取器或第二部手机来提取其存储的数据。这个方法在技术上具有更大的挑战性,因为手机中使用了各种不同类型的芯片。该过程费用较高,并且需要硬件层面的知识,因为它涉及到内存芯片的去焊接和加热。执行芯片提取需要经过培训。若操作不当,可能会损坏内存芯片并使所有数据无法恢复。在可能的情况下,建议在进行芯片提取之前先尝试其他层级的提取方法,因为该方法具有破坏性。此外,从内存中提取出的信息是原始格式,需要解析、解码和解释。芯片提取方法在需要精确保留设备内存状态的情况下优先使用。当设备损坏但内存芯片完好时,它也是唯一可行的选项。

设备上的芯片通常通过联合测试行动小组JTAG)方法读取。JTAG 方法涉及连接到设备上的测试接入端口TAPs),并强制处理器传输存储在内存芯片上的原始数据。JTAG 方法通常用于那些操作正常但无法通过标准工具访问的设备。这两种技术即使在设备屏幕被锁定时也能工作。

微观读取

微观读取过程涉及手动查看和解释存储在内存芯片上的数据。检查员使用电子显微镜,分析芯片上的物理门,然后将门的状态转换为 0 和 1,以确定结果的 ASCII 字符。整个过程既耗时又昂贵,需要对内存和文件系统有广泛的知识和训练。由于微观读取涉及极其复杂的技术,它通常只在所有其他提取技术都已用尽后,针对类似国家安全危机的高调案件进行尝试。该过程很少执行,目前也没有充分的文档记录。此外,目前没有商业工具可用来执行微观读取。

数据采集方法

数据采集是指从数字设备及其他附加介质中成像或以其他方式提取信息的过程。从手机中获取数据并不像标准硬盘法医采集那样简单。以下几点细分了针对手机的三种法医采集方法:物理采集、逻辑采集和手动采集。这些方法可能与移动法医工具分级系统中讨论的某些级别有些重叠。可收集的数据量和类型将根据所使用的采集方法而有所不同。虽然我们将在接下来的章节中详细介绍这些方法,但以下是它们的简要描述。

物理采集

移动设备的物理采集仅仅是对物理存储的逐位复制。通过直接访问闪存,可以通过物理提取从设备中获取信息。闪存是非易失性存储器,主要用于存储卡和 USB 闪存驱动器作为固态存储。该过程创建了整个文件系统的逐位复制,类似于计算机法医调查中采取的方法。物理采集能够获取设备上所有的数据,包括已删除的数据,并且可以访问大多数设备上的未分配空间。

逻辑采集

逻辑获取是指从文件系统中提取逻辑存储对象,如文件和目录。手机的逻辑获取是通过设备制造商的应用程序接口来完成的,目的是将手机的内容与计算机同步。许多取证工具可以执行逻辑获取。对于取证工具来说,通过逻辑获取提取的数据更容易进行组织和呈现。然而,取证分析师必须了解获取过程是如何进行的,并且是否在过程中手机有被修改。根据手机和所使用的取证工具,可能会获取全部或部分数据。逻辑获取容易执行,只能恢复手机中的文件,无法恢复未分配空间中的数据。

手动获取

对于手机来说,物理获取通常是最佳选择,逻辑获取是第二选择。手动提取应该是执行手机取证获取时的最后选择。逻辑和手动获取都可以用来验证物理数据中的发现。在手动获取过程中,检查员使用用户界面来调查手机内存中的内容。设备通过按键或触摸屏和菜单导航正常使用,检查员拍摄每个屏幕内容的照片。手动提取带来更高的风险,容易出现人为错误,并且有可能删除证据。手动获取易于执行,仅获取手机上显示的数据。

接下来,我们来看一下可以从手机中提取的信息量。

存储在手机上的潜在证据

本节详细介绍了从手机中可以获取的信息范围。手机中的数据可以在多个位置找到——例如 SIM 卡、外部存储卡和手机内存。此外,服务提供商还会存储与通信相关的信息。本书主要集中于从手机内存中获取的数据。移动设备数据提取工具从手机内存中恢复数据。尽管在取证获取过程中恢复的数据取决于手机型号,但一般来说,以下数据在所有型号中都是常见的,并且有助于作为证据。请注意,以下大部分数据项都包含时间戳:

  • 通讯录:包含联系人姓名、电话号码、电子邮件地址等信息。

  • 通话历史:包含拨打、接听和未接来电及通话时长。

  • 短信 (SMS):包含发送和接收的文本信息。

  • 彩信 (MMS):包含发送和接收的照片和视频等媒体文件。

  • 电子邮件 (E-mail):包含发送、草稿和接收的电子邮件。

  • 网页浏览历史:包含已访问网站的历史记录。

  • 照片:这包含使用手机摄像头拍摄的照片、从互联网下载的照片以及从其他设备转移过来的照片。

  • 视频:这包含使用手机摄像头拍摄的视频、从互联网下载的视频以及从其他设备转移过来的视频。

  • 音乐:这包含从互联网下载的音乐文件和从其他设备转移过来的音乐文件。

  • 文档:这包含使用设备应用程序创建的文档、从互联网下载的文档以及从其他设备转移过来的文档。

  • 日历:这包含日历条目和约会。

  • 网络通信:这包含 GPS 位置。

  • 地图:这包含用户访问过的地点、查找的方向以及搜索和下载的地图。

  • 社交网络数据:这包含应用程序存储的数据,如 Facebook、Twitter、LinkedIn、Google+ 和 WhatsApp。

  • 删除的数据:这包含从手机中删除的信息。

接下来,我们将快速了解调查的最后一步:检查与分析。

检查与分析

这是调查的最终步骤,旨在揭示设备中存在的数据。检查通过应用经过验证的科学方法来确定结果,而分析阶段则专注于从其他数据中分离出相关数据,并深入探查与案件相关的数据。检查过程始于对之前使用某些技术获得的证据副本,这些技术将在接下来的章节中详细介绍。使用第三方工具进行的检查和分析通常是通过将设备的内存转储导入到移动设备取证工具中,这些工具将自动检索结果。了解案件的背景也对执行有针对性的数据分析至关重要。例如,涉及儿童色情的案件可能需要专注于设备上所有的图像,而不是查看其他数据。

了解你所使用的取证工具如何运作非常重要。熟练使用工具中的功能和选项将大大加快检查过程。有时,由于软件中的编程缺陷,工具可能无法识别或将数据转换为你能够理解的格式。因此,你需要具备必要的技能来识别这些情况,并使用替代工具或软件来构建结果。在某些情况下,个人可能故意篡改设备信息或删除/隐藏一些关键数据。取证分析师应该理解自己工具的局限性,并有时补偿这些局限,以获得最佳结果。

证据规则

法庭越来越依赖手机中的信息作为重要证据。法庭上有效证据的存在需要对证据规则有深入的理解。移动取证是一个相对较新的学科,关于证据有效性的法律并不广为人知,而且这些法律在不同国家之间有所不同。然而,有五条适用于数字取证的通用证据规则,必须遵循这些规则,证据才能在法庭上被采纳。忽视这些规则会导致证据不可接受,案件可能因此被驳回。这五条规则是可接受真实完整可靠可信

  • 可接受:这是最基本的规则,也是衡量证据有效性和重要性的标准。证据必须以一种可以在法庭或其他地方使用的方式被保存和收集。许多错误可能会导致法官裁定某一证据不可接受。例如,使用非法手段收集的证据通常会被判定为不可接受。

  • 真实:证据必须以相关的方式与事件联系在一起,以证明某个事实。取证专家必须对证据的来源负责。

  • 完整:当证据被呈现时,必须清晰、完整,并且能够反映出整个事件的经过。仅仅收集显示事件某一方面的证据是不够的。呈现不完整的证据比不提供任何证据更危险,因为这可能导致不同的裁决。

  • 可靠:从设备上收集的证据必须是可靠的。这取决于所使用的工具和方法。所使用的技术和收集的证据不能对证据的真实性产生怀疑。如果使用了无法重复的技术,除非相关人员,如法官和陪审团,明确指示,否则该证据不被视为有效。这包括可能破坏证据的提取方法,例如芯片提取。

  • 可信:取证专家必须能够清晰简洁地解释他们使用了哪些过程,以及如何保持证据的完整性。你所提供的证据必须清晰、易于理解,并且让陪审团相信。

现在让我们看看最佳实践。

良好的取证实践

良好的取证实践适用于证据的收集和保存。缺乏健全的取证实践甚至可能导致收集的证据在法庭上无效。无论是故意还是意外修改证据,都可能影响案件。因此,理解最佳实践对取证专家至关重要。

保护证据

随着智能手机功能的不断升级,比如查找我的 iPhone和远程擦除,确保手机的安全,使其无法被远程擦除变得尤为重要。此外,当手机开机并且有服务时,它会不断接收新的数据。为了确保证据的安全,应使用合适的设备和技术将手机与所有网络隔离。通过隔离,可以防止手机接收任何新数据,这些新数据可能会导致活动数据被删除。根据案件的需要,可能还需要使用其他取证技术,如指纹匹配,来建立设备与其所有者之间的关联。如果设备处理不当,物理证据可能会被无意篡改,从而失去其效力。

同时,收集现场存在的任何外设、相关媒体、数据线、电源适配器及其他配件也很重要。在调查现场,如果发现设备已连接到个人计算机,直接拔掉设备会停止数据传输。建议在拔掉设备之前先捕获个人计算机的内存,因为在很多情况下,这其中包含了重要的细节。

保存证据

随着证据的收集,必须以可接受的方式保存,以便法庭使用。直接操作原始证据可能会改变证据。因此,一旦恢复了原始磁盘镜像或文件,应该创建只读的主副本并进行复制。为了使证据具有可接受性,必须有科学的方法验证提交的证据与收集的原始证据完全一致。这可以通过生成图像的取证哈希值来实现。

取证哈希值用于确保收集的图像/数据的完整性,通过计算图像/数据的加密强哈希值,该值是不可逆的。

在复制原始磁盘镜像或文件后,计算并验证原始副本和复制品的哈希值,以确保证据的完整性得到维护。任何哈希值的变化都应记录并进行说明。所有后续处理或检查都应在证据的副本上进行。任何对设备的使用都可能改变手机上存储的信息。因此,只应执行绝对必要的任务。

记录证据和变化

在可能的情况下,应该创建所有可见数据的记录。建议拍摄手机设备及其周围的其他媒体,如电缆、外设等。这在以后如果对环境产生疑问时会有所帮助。拍照时请勿触摸或接触手机设备。确保记录下收集和提取证据时使用的所有方法和工具。详细记录您的笔记,以便其他检查员能够复现它们。您的工作必须是可复现的;如果不可复现,法官可能会裁定其不可采纳。记录整个取证过程,包括在采集和检查过程中所做的所有更改,非常重要。例如,如果用于数据提取的取证工具将磁盘镜像切割并存储,那么必须记录这一点。对手机设备的所有更改,包括电源循环和同步,都应该在案件记录中进行记录。

报告

报告是准备对所有步骤和结论进行详细总结的过程,作为检查的一部分。报告应包括您所执行的所有重要操作的详细信息、采集结果以及从结果中得出的任何推论。大多数取证工具都带有内置的报告功能,可以自动生成报告,同时提供定制的空间。一般来说,报告可能包含以下详细信息:

  • 报告机构的详细信息

  • 案件标识符

  • 法医调查员

  • 提交者的身份

  • 证据接收日期

  • 被查扣设备的详细信息,包括序列号、品牌和型号

  • 检查过程中使用的设备和工具的详细信息

  • 检查过程中采取的步骤的描述

  • 保管链文档

  • 发现或识别出的问题的详细信息

  • 在检查过程中恢复的证据,涵盖聊天消息、浏览历史、通话记录到已删除消息等

  • 检查过程中拍摄的任何图像

  • 检查和分析信息

  • 报告结论

总结

现代移动设备存储着各种各样的信息,如短信、通话记录、浏览器历史、聊天消息、位置信息等。因此,它们往往是许多刑事案件、事件重建、企业和法律案件中的关键因素。移动设备取证也面临着一些独特的挑战和概念,这些问题超出了传统数字取证的范围。在处理设备时,从证据采集阶段到归档阶段,都需要格外小心。负责移动设备检查的人员必须了解不同的获取方法,并理解在分析过程中处理数据的复杂性。从移动设备提取数据只是战斗的一半。操作系统、安全特性和智能手机类型将决定你对数据的访问程度。在调查过程中,遵循合理的取证实践并确保证据不被篡改是非常重要的。

下一章将深入探讨 iOS 取证。你将了解 iOS 设备的文件系统布局、安全特性以及文件存储的方式。

第二章:Section 1: iOS 取证

本节将为您提供 iOS 设备(如 iPhone 和 iPad)的概述,以及它们运行的操作系统和文件系统的概述。您将了解不同类型的取证方法,包括逻辑取证和文件系统取证,越狱的过程,对常见的取证证据来源进行取证分析的过程,以及如何使用流行的移动取证软件。

本节将包括以下章节:

  • 第二章,理解 iOS 设备的内部结构

  • 第三章,从 iOS 设备获取数据

  • 第四章,从 iOS 备份获取数据

  • 第五章,iOS 数据分析与恢复

  • 第六章,iOS 取证工具

第三章:理解 iOS 设备的内部结构

根据苹果公司数据,2019 年活跃的苹果设备达到 14 亿部,其中 9 亿部运行 iOS。尽管 iOS 是全球平板电脑的主要操作系统OS),但 Android 依然是智能手机的主导操作系统。不论统计数据如何,如果你是一名法医检查员,你很可能需要对 iOS 设备进行检查。

为了执行 iOS 设备的法医检查,作为检查员,你必须了解该设备的内部组件和内部工作原理。了解移动设备的基础组件将有助于你理解法医过程中的关键要素,包括可以获取哪些数据、数据存储的位置以及如何使用方法从该设备中访问数据。因此,在我们深入研究 iOS 设备检查之前,了解现有的不同型号及其内部组件是非常必要的。在本书中,我们将对 iOS 设备进行法医数据获取和分析,包括 iPhone、iPad 和 Apple Watch。

本章的目标是向你介绍 iOS 设备技术。我们将讨论一些常常被忽视的细节,但这些细节会在你的法医调查中提供帮助。在成功提取数据之前,你必须了解不同的 iOS 设备及其数据存储方式。

在本章中,我们将详细介绍以下主题:

  • iPhone 型号与硬件

  • iPad 型号与硬件

  • 分层文件系统HFS)Plus 和 苹果文件系统APFS)文件系统

  • iPhone 操作系统

iPhone 型号与硬件

iPhone 是市场上最受欢迎的智能手机之一。苹果公司于 2007 年 6 月发布了第一代 iPhone。自首次发布以来,iPhone 因其许多开创性的功能和易用性而变得极为流行。iPhone 的推出重新定义了整个移动计算世界。消费者开始寻求更快、更高效的手机。目前有多款 iPhone 型号,具备不同的功能和存储能力,以满足消费者的需求。

《实用移动取证》第三版 发布以来的 iPhone 型号——iPhone XR、XS、XS Max、11 和 11 Pro——在处理文件系统取证采集方法时可能会比较困难。就像自 iPhone 5 发布以来的设备一样,除非设备越狱,否则没有可用的方法或工具可以从这些设备中物理恢复数据。然而,如果 iPhone 已解锁,则可以进行逻辑采集。数据提取的采集方法将在 第三章 iOS 设备的数据采集 和 第四章 iOS 备份的数据采集 中讨论。现在,让我们学习如何识别正确的硬件型号。

识别正确的硬件型号

在检查 iPhone 之前,必须识别设备的正确硬件型号和安装的固件版本。了解 iPhone 的详细信息有助于你理解从 iPhone 获取证据的关键点和可能性。例如,在许多情况下,获取逻辑镜像需要设备的解锁密码。根据 iOS 版本、设备型号和密码复杂性,可能可以使用暴力破解攻击来获取设备的解锁密码。

有多种方法可以识别设备的硬件。识别某些设备硬件的最简单方法是观察设备背面的型号。为了让这项任务更简单,你可以使用 Apple 的知识库文章。有关 iPhone 型号的更多信息,请访问 support.apple.com/en-in/HT201296

iPhone 的固件版本可以通过访问“设置”选项,然后依次进入“通用 | 关于本机 | 软件版本”找到,如下图所示。固件的目的是启用某些功能并协助设备的正常运行:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/bc3b21fd-b272-4a8a-8982-08baade4747f.png

显示软件版本 13.2 的 iPhone 关于本机页面

另外,可以使用 libimobiledevice 软件库中提供的 ideviceinfo 命令行工具(www.libimobiledevice.org/)来识别 iPhone 型号及其 iOS 版本。

在 Windows 10 工作站上获取 iPhone 型号及其 iOS 版本信息,请按照以下步骤操作:

  1. 从以下链接下载最新的二进制文件:dev.azure.com/libimobiledevice-win32/imobiledevice-net/_build/results?buildId=419(点击“Artifacts | Binaries”开始下载)。

  2. 解压包含 x86 或 x64 二进制文件的归档,具体取决于工作站的版本。

  3. 打开命令提示符并将目录切换到包含二进制文件的目录(使用 cd 命令)。

  4. 使用 Universal Serial Bus (USB) 数据线将 iPhone 连接到你的工作站(对于最新的 iOS 版本,还需要输入密码),然后运行带有 -s 选项的 ideviceinfo 命令,如下所示:

$ ideviceinfo -s

ideviceinfo 命令的输出显示了 iPhone 的标识符、内部名称以及 iOS 版本,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/8642f4eb-7700-451f-ace7-986d9a784c55.png

ideviceinfo 输出显示固件版本 13.2

一些其他工具,如 iExplorer,也可以提供类似的 iOS 设备信息,如下图所示。恢复 iPhone 设备信息的方法也适用于 iPad 设备。在这里,iExplorer 被用来从 iPhone 获取设备信息:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/cf7c4110-5f8a-40c6-b0ad-efe2a81a3b9d.png

iExplorer 显示设备信息

每一次 iPhone 的发布都带来了改进或新增的功能。正如本章前面所述,了解 iPhone 的详细信息有助于你理解如何从中获取证据的关键性和可能性。你必须知道设备的型号,以确保所部署的工具和方法支持该特定型号的 iPhone。此外,必须确定 iPhone 的内部存储大小,以确保证据容器足够大,可以存放整个取证镜像。大多数工具在证据驱动器没有足够的磁盘空间时,不会提醒你,直到空间用完为止。这将浪费时间并迫使你重新获取设备。最后,还必须注意设备的网络功能,以便你能够正确隔离设备,防止在检查过程中远程访问或清除数据。更多内容将在第三章,iOS 设备数据获取中进一步讨论。

再次强调,对 iPhone 设备硬件的基本了解将有助于你在进行取证调查时判断如何处理该设备。某些型号启用了全盘加密,而较旧的型号则没有。加密设备在获取过程中需要额外的步骤——即使能够访问的话。你必须为获取和分析阶段可能遇到的所有障碍做好准备。此外,了解 iPhone 的功能——包括初始和当前的 iOS 版本——会对你能够从设备恢复的数据产生影响。苹果在不同的 iOS 版本中存储数据的位置并不一致。因此,你必须知道设备首次使用时安装的原始版本,以确保取证工具不会忽视可能有助于调查的数据。

有关识别 iPhone 型号的更多信息,请访问 support.apple.com/en-us/HT201296

理解 iPhone 硬件

iPhone 是由来自不同制造商的模块、芯片和电子组件组成的。由于 iPhone 的复杂性,硬件组件的列表非常庞大,每个设备都应研究其内部组件。

例如,iPhone 11 配备了 A13 仿生处理器;64 GB、128 GB 或 256 GB 存储;4 GB 内存;6.1 英寸液态视网膜液晶显示屏LCD);以及一个双镜头 12 MP 后置相机阵列。

所有 iPhone 的内部图像可以在www.ifixit.com/Device/iPhone的拆解部分找到。

iPad 型号与硬件

苹果 iPhone 改变了手机的生产和使用方式。同样,2010 年 1 月推出的 iPad——一种平板电脑版本——打击了笔记本电脑的销售。使用 iPad,个人可以拍摄视频、拍照、播放音乐、阅读书籍、浏览互联网以及做更多的事情。目前存在各种 iPad 型号——例如,iPad Air 3 和 iPad Pro——具有不同的功能和存储能力。有关如何识别 iPad 型号的更多信息,请访问support.apple.com/en-in/HT201471

与 iPhone 一样,并非所有版本的 iPad 都支持文件系统获取。此外,苹果在 iOS 版本中改变了数据存储位置,这也影响了 iPad 设备。你必须了解不同的型号、发布和当前安装的 iOS 版本、存储能力、网络访问路径等。

理解 iPad 硬件

苹果 iOS 设备成功的关键因素之一是正确选择其硬件组件。就像 iPhone 一样,iPad 也是由来自不同厂商的模块、芯片和电子组件组成。所有 iPad 的内部图像可以在www.ifixit.com/Device/iPad的拆解部分找到。

HFS Plus 和 APFS 文件系统

为了更好地理解 iOS 设备的取证过程,了解所使用的文件系统非常有用。最初,iPhone 和其他苹果 iOS 设备使用的文件系统是 HFSX。这是 HFS Plus 的一种变体,主要区别在于 HFSX 区分大小写,而 HFS Plus 则不区分大小写。其他差异将在本章稍后讨论。APFS 于 2016 年 6 月推出,作为 HFS Plus 的替代品,并在 iOS 10.3 发布时成为 iOS 设备的默认文件系统,macOS 10.13 发布时成为 macOS 设备的默认文件系统。

HFS Plus 文件系统

1996 年,苹果公司开发了一个新的文件系统 HFS,以适应大数据集的存储。在 HFS 文件系统中,存储介质被表示为卷。HFS 卷被划分为 512 字节的逻辑块。逻辑块在给定卷上从第一个到最后一个编号,并且保持与物理块相同的大小——即 512 字节。这些逻辑块被分组为分配块,HFS 文件系统通过这些分配块来更高效地跟踪数据。HFS 使用 16 位的值来定位分配块,这使得分配块的数量限制为 65,535。为了克服磁盘空间分配效率低下以及 HFS 的一些限制,苹果公司推出了 HFS Plus 文件系统(dubeiko.com/development/FileSystems/HFSPLUS/tn1150.html)。

HFS Plus 文件系统的设计旨在支持更大的文件大小。HFS 卷上的扇区通常为 512 字节。这些扇区组成了分配块。分配块的数量取决于卷的大小。HFS Plus 使用 32 位的块地址来定位分配块。HFS Plus 默认启用 日志记录 功能。日志记录是将每个事务写入磁盘的过程,这有助于防止文件系统损坏。HFS Plus 文件系统的主要特点包括以下几点:高效利用磁盘空间、支持文件名的 Unicode 编码、支持名称分叉、文件压缩、日志记录、动态调整大小、动态碎片整理,以及能够在 macOS 之外的操作系统上启动。

HFS Plus 卷

HFS Plus 卷包含多个内部结构,用于管理数据的组织方式。这些结构包括头部、备用头部以及五个特殊文件:分配文件、扩展溢出文件、目录文件、属性文件和启动文件。在这五个文件中,三个文件(扩展溢出文件、目录文件和属性文件)使用 B 树结构。这是一种数据结构,允许数据高效地搜索、查看、修改或删除。HFS Plus 卷结构如以下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/e433c31a-7e4d-40b6-a58a-756e53a09081.png

HFS Plus 卷结构

卷结构描述如下:

  • 保留区(1024 字节):此区域保留给引导加载程序信息。

  • 卷头部:存储卷的信息,如分配块的大小、卷创建时的时间戳以及关于每个五个特殊文件的元数据。

  • 分配文件:此文件用于跟踪系统中哪些分配块正在使用。文件格式为每个分配块占 1 位。如果该位被设置,则该块正在使用;如果未设置,则该块为空闲。

  • 扩展溢出文件:该文件记录了在文件大小超过八个块时分配的分配块,帮助定位在引用时的实际数据。坏块也会在文件中记录。

  • 目录文件:该文件包含关于文件和文件夹层次结构的信息,用于定位卷中的任何文件和文件夹。

  • 属性文件:该文件包含内联数据属性记录、分支数据属性记录和扩展属性记录。

  • 启动文件:该文件包含协助引导不支持 HFS Plus 的系统所需的信息。

  • 替代卷头:这是卷头的备份,主要用于磁盘修复。

  • 保留(512 字节):这部分为 Apple 保留,在制造过程中使用。

接下来,让我们来看一下 APFS 文件系统。

APFS 文件系统

APFS 是一个用于 iOS、macOS、tvOS 和 watchOS 的新文件系统。它是一个 64 位文件系统,支持在单个卷上存储超过 9 quintillion 个文件。以下是其主要功能列表:

  • 克隆:这些是文件或目录的即时副本。修改内容会写入其他位置,并继续共享未修改的块;更改会作为克隆文件的增量进行保存。

  • 快照时间点PIT)只读实例的文件系统。

  • 空间共享:这允许多个文件系统共享物理卷上的相同底层空闲空间。

  • 加密:有三种模式,具体如下:

    • 无加密

    • 单密钥加密

    • 使用每个文件的密钥进行的多密钥加密,并为敏感元数据提供单独的密钥。

根据硬件的不同,使用 基于 AES-XTS 的高级加密标准 XEX 调整后的密码本模式,带有密文窃取AES-XTS)或 高级加密标准-密码块链AES-CBC)加密模式。

  • 崩溃保护:这是一种新颖的写时复制元数据方案;用于确保文件系统更新的崩溃保护。

  • 稀疏文件:这些文件允许文件的逻辑大小大于它们在磁盘上占用的物理空间。

  • 快速目录大小计算:它快速计算目录层次结构所占用的总空间,允许随着层次结构的发展进行更新。

APFS 结构

因此,APFS 结构是在一个单一容器中,容器内可以包含一个或多个卷。以下图示展示了 APFS 结构:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/99f50f83-528f-4476-b8d0-6a5291f5f114.png

APFS 结构概述

每个 APFS 文件系统结构都以一个块头开始。块头从一个校验和(使用 Fletcher 校验和算法)开始,用于整个块,并且还包含块的写时复制版本、块 ID 和块类型。

APFS 结构可以解释如下:

  • 容器超级块包含块大小、块数量以及指向任务空间管理器的指针、所有卷的块 ID 和指向块映射 B 树的指针(B 树包含每个卷的条目以及其 ID 和偏移量)。

  • 节点用于存储不同类型的条目。它们可以是 B 树的一部分,也可以独立存在,并且可以包含灵活大小或固定大小的条目。

  • 空间管理器(Space Manager)管理 APFS 容器中已分配的块,存储空闲块的数量和指向分配信息文件的指针。

  • 分配信息文件存储分配文件的长度、版本和偏移量。

  • B 树管理多个节点并包含根节点的偏移量。

  • 卷超级块包含卷的名称、其 ID 和时间戳。

至于分配文件,它们是简单的位图,并没有块头和类型 ID。

磁盘布局

默认情况下,文件系统配置为两个逻辑磁盘分区:系统(根或固件)分区和用户数据分区。

系统分区包含操作系统及所有预加载的 iPhone 应用程序。系统分区在操作系统升级进行时或设备越狱时才会挂载为只读状态。该分区仅在设备进行固件升级时才会更新。在此过程中,iTunes 会格式化整个分区,但不会影响任何用户数据。系统分区仅占用少量存储空间,通常介于 0.8 GB 和 4 GB 之间,具体取决于 NAND 驱动器的大小。由于系统分区被设计为在 iPhone 的整个生命周期中保持在出厂状态,因此通常很少能从中获取有用的证据性信息。如果 iOS 设备被越狱,则可能有包含越狱和用户数据的信息文件驻留在系统分区中。越狱 iOS 设备允许用户获取 root 权限,但会使制造商的保修失效。本章后续将讨论越狱。

用户数据分区包含所有用户创建的数据,从音乐和联系人到第三方应用程序数据。用户数据分区占用了大部分 NAND 内存,并挂载到设备的/private/var目录。大多数证据性信息可以在此分区中找到。在文件系统获取过程中,应该捕获并保存用户数据分区的内容为.tar文件。获取的数据可以通过大多数商业移动取证工具轻松提取和解析。

iPhone 操作系统

iOS 是苹果公司最先进、功能最丰富的专有移动操作系统。它随第一代 iPhone 发布。刚推出时,它被命名为 iPhone OS,后来为了反映所有苹果 iOS 设备(如 iPhone、iPod touch、iPad 和 Apple TV)统一的操作系统特点,改名为 iOS。iOS 源自核心的 OS X 技术,并经过简化,旨在为移动设备提供紧凑且高效的操作系统。

它利用多点触控界面,通过简单的手势来操作和控制设备,比如用手指在屏幕上滑动翻页,或者用捏合手势来缩放。简单来说,iOS 协助设备的基本功能运作。

iOS 架构

iOS 是设备硬件组件和屏幕上的应用程序之间的中介。应用程序不会直接与底层硬件交互,而是通过一个明确的系统接口来与硬件交互,这样可以保护应用程序免受硬件变动的影响。这种抽象化使得在不同硬件能力的设备上构建应用变得更加容易。

iOS 架构由四层组成:Cocoa Touch 层、媒体层、核心服务层和核心操作系统层。每一层由多个框架构成,帮助构建应用程序,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/ea1ddfbe-6b37-485c-ac05-f340e04262a9.png

iOS 层次

这些层可以描述如下:

  • Cocoa Touch:这一层包含开发 iOS 应用视觉界面所需的关键框架。该层的框架提供了基本的应用基础设施,并支持一些关键技术,如基于触摸的输入、多任务处理以及许多高级系统服务。

  • 媒体:这一层提供图形、音频和视频框架,旨在创造出在移动设备上最优质的多媒体体验。该层的技术帮助开发者构建外观和声音俱佳的应用程序。

  • 核心服务:这一层提供应用程序所需的基本系统服务。并非所有这些服务都会被开发者使用,虽然系统的许多部分都建立在这些服务之上。该层包含支持位置服务、iCloud 和社交媒体等技术。

  • 核心操作系统:这一层是基础层,直接位于设备硬件之上。它处理低级功能,并提供如网络(伯克利软件分发BSD)套接字)、内存管理、线程(可移植操作系统接口POSIX)线程)、文件系统处理、外部配件访问和进程间通信IPC)等服务。

现在我们已经了解了 iOS 架构,接下来让我们看看 iOS 安全性。

iOS 安全

更新版的 iOS 已将安全性作为其核心设计。在最高层次,iOS 安全架构如下:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c38cd4a8-438d-4f8d-9ebb-602e4b1483c9.png

iOS 安全架构

苹果的 iOS 设备如 iPhone、iPad 和 iPod Touch 设计时就考虑了多层次的安全性。低级硬件特性可以防范恶意软件攻击,高级操作系统特性则防止未经授权的使用。接下来的章节将简要概述 iOS 安全功能。

密码、Touch ID 和 Face ID

密码限制未经授权的设备访问。一旦设置密码,每次打开或唤醒设备时,系统都会要求输入密码才能访问设备。iOS 设备支持简单和复杂密码。iOS 9 发布了使用六位数简单密码的选项,替代了传统的四位数密码选项。iPhone 5S 及以后的设备还支持 Touch ID 指纹作为密码,且可通过简单或复杂密码进行备份。iPhone X 及以后的设备支持一种新的生物识别锁定方式——Face ID,用户可以使用自己的面部特征作为密码。它甚至更安全,因为使用 Touch ID 解锁你的 iPhone 的概率是 1/50,000,而使用 Face ID 的概率是 1/1,000,000。

代码签名

代码签名防止用户下载和安装未经授权的应用程序。苹果公司对此做出了如下说明:

“代码签名是您编译的 iOS 应用程序被密封并标识为您所有的过程。此外,iOS 设备不会运行未经过受信方签名的应用程序或加载库。为了确保所有应用来自已知且经过批准的来源且未被篡改,iOS 要求所有可执行代码必须使用苹果发布的证书进行签名。”

沙盒

沙盒技术通过将应用程序放入一个严格限制的区域,减轻了代码执行后的利用风险。安装在 iOS 设备上的应用程序都处于沙盒环境中,一个应用程序不能访问另一个应用程序存储的数据。本质上,沙盒是一种强制实施精细控制的机制,限制应用程序对文件、网络资源、硬件等的访问。

加密

在 iOS 设备(从 iPhone 4 开始)上,整个文件系统使用一个由设备唯一硬件密钥计算得到的文件系统密钥进行加密。这个密钥存储在可清除存储区域,该区域位于设备的操作系统和硬件层之间。这就是联合测试行动组JTAG)和芯片拆卸方法不适用于数据获取的原因,因为整个数据转储将被加密。

数据保护

数据保护旨在保护静态数据并使离线攻击变得困难。它允许应用程序利用用户的设备密码,并与设备硬件加密一起生成强加密密钥。之后,强加密密钥用于加密存储在磁盘上的数据。此密钥在设备锁定时保护数据免受未经授权的访问,因此即使设备被破解,关键信息也能得到保护。

地址空间布局随机化(ASLR)

地址空间布局随机化(ASLR)是一种在 iOS 4.3 中引入的漏洞缓解技术。ASLR 随机化应用程序对象在内存中的位置,使得利用内存损坏漏洞变得困难。

特权分离

iOS 运行时遵循最小权限原则PoLP)。它包含两个用户角色:rootmobile。系统中最重要的进程以 root 用户权限运行。所有其他用户可以直接访问的应用程序,如浏览器和第三方应用程序,均以 mobile 用户权限运行。

栈破坏保护

栈破坏保护是一种漏洞缓解机制。它通过在缓冲区和栈上的控制数据之间放置一个随机且已知的值(称为栈金丝雀),来保护设备免受缓冲区溢出攻击。

数据执行防护(DEP)

数据执行防护(DEP)是一种漏洞缓解机制,处理器可以通过它区分内存中可执行代码的部分和数据部分。例如,在代码注入攻击中,攻击者试图注入一个向量并执行它。但 DEP 防止了这种情况,因为它将注入的部分识别为数据而非代码。

数据擦除

iOS 提供了“抹掉所有内容和设置”选项来擦除 iPhone 上的数据。此类数据擦除通过删除保护数据的加密密钥来擦除用户设置和信息。由于加密密钥被从设备中删除,因此无法恢复已删除的数据,甚至在法证调查过程中也无法恢复。还有其他擦除方法,它们通过覆盖设备内存中的数据来进行数据擦除。关于擦除的更多信息,可以访问support.apple.com/en-in/HT201274

激活锁

激活锁,随着 iOS 7 的推出,是一种防盗机制,它通过利用“查找我的 iPhone”功能工作。当启用“查找我的 iPhone”时,它会启用激活锁,要求用户的 Apple ID 和密码才能关闭“查找我的 iPhone”、擦除设备以及重新激活设备。

应用商店

应用商店是 iOS 的一个应用程序分发平台,由 Apple 开发和维护。它是一个集中的在线商店,用户可以在其中浏览并下载免费和付费应用程序。这些应用程序扩展了移动设备的功能。截止到 2019 年第一季度,应用商店中已有 220 万个应用程序。

App Store 中的应用程序通常由第三方开发者编写。开发者使用 Xcode 和 iOS 软件开发工具包 (SDK) 来开发应用程序。之后,他们将应用程序提交给苹果进行审核。苹果会遵循一套严格的审核流程,检查应用是否符合公司的指南。如果苹果批准该应用,它将被发布到 App Store,用户可以下载或购买。严格的审核过程使得 App Store 不容易受到恶意软件的攻击,但并非 100%安全。

XcodeGhost,是一种感染了苹果 App Store 中 50 款应用程序的苹果恶意软件,首次在 2015 年 9 月被发现。这款恶意软件嵌入在 Xcode 中,使其更难被检测到,据报道已影响全球超过 5 亿用户。一旦被发现,苹果立即删除了这些感染的应用程序。

越狱

越狱是通过使用软件和硬件漏洞去除苹果移动操作系统(OS)所施加的限制的过程。越狱允许未签名的代码运行并获得操作系统的根权限。越狱的最常见原因是扩展苹果 App Store 所施加的有限功能集并安装未批准的应用程序。越狱有助于法医获取数据,但会使用户的保修失效,可能导致设备变砖,并且可能无法恢复到出厂设置。

如果你越狱了设备,最好假设它将永远处于越狱状态,并且保修不再有效。

许多公开的越狱工具会向设备添加一个非官方的应用程序安装器,例如 Cydia,它允许用户从在线文件库中安装许多第三方应用程序、工具、插件和应用。通过 Cydia 下载的软件为设备打开了无尽的可能性,而未越狱的设备则无法实现这些功能。最受欢迎的越狱工具包括 Pangu、TaiG、Electra 和 Unc0ver。并非所有 iOS 版本都可以越狱。下表将帮助您根据您的设备和 iOS 版本选择合适的越狱工具:

版本发布日期工具
iPhone OS 1.02007 年 6 月 29 日(无名称)
iPhone OS 2.02008 年 7 月 11 日PwnageTool
iPhone OS 3.02009 年 6 月 17 日PwnageTool
iOS 4.02010 年 6 月 21 日PwnageTool
iOS 5.02011 年 10 月 12 日redsn0w
iOS 6.02012 年 9 月 19 日redsn0w
iOS 7.0 - 7.0.62013 年 9 月 18 日evasi0n7
iOS 7.1 - 7.1.22014 年 5 月 29 日Pangu
iOS 8.0 - 8.12014 年 9 月 17 日Pangu8
iOS 8.1.1 - 8.42014 年 11 月 17 日TaiG, PP Jailbreak
iOS 8.4.12015 年 8 月 13 日EtasonJB
iOS 9.02015 年 9 月 16 日Pangu9
iOS 9.12015 年 10 月 21 日Pangu9
iOS 9.3.52016 年 8 月 25 日Phoenix
iOS 10.0 - 10.1.12016 年 9 月 13 日Yalu
iOS 11.0 - 11.1.22017 年 9 月 19 日LiberiOS
iOS 11.0 - 11.1.22017 年 9 月 19 日Electra1112
iOS 11.0 - 11.4.12018 年 7 月 7 日Electra1131
iOS 11.0 - 11.4.12018 年 10 月 14 日Unc0ver
iOS 12.0 - 12.2, 12.4 - 12.4.22019 年 9 月 17 日Chimera, Unc0ver
iOS 12.3 - 13.2.32019 年 11 月 10 日checkra1n

我们现在已经了解了越狱过程,并且查看了当前可用的不同越狱工具。

概述

对 iOS 设备进行取证检查的第一步应该是识别设备型号。iOS 设备的型号可以帮助检查员了解设备的底层组件和功能,这些信息有助于制定获取数据和进行检查的方法。旧版 iOS 设备不应被忽视,因为它们可能会成为调查的一部分。你必须了解所有 iOS 设备,因为旧设备有时仍在使用,且可能与刑事调查有关。

下一章将提供一些工具,帮助从 iOS 设备中获取数据,以便进行后续的取证检查。并非所有工具都相同,因此了解哪些工具能有效完成任务非常重要。

第四章:从 iOS 设备获取数据

从犯罪现场恢复的 iOS 设备可能是一个丰富的证据来源。想想看,智能手机对用户来说有多个人化;没有任何其他数字设备能比得上这一点。我们很少在离开家或者走出家门时没有将智能手机放在触手可及的地方。它几乎像是我们日常活动的日记,深入窥视人类最私密的方面。根据多个新闻报道,奥斯卡·皮斯托瑞斯的 iPad 被一名移动专家检查,并在他的审判中展示,显示他在女友去世前几小时的互联网活动。当 iOS 设备能够提供所谓的铁证时,作为检查员的你必须确保知道如何正确处理、采集和分析该设备。

有多种方法可以从 iOS 设备获取取证数据。尽管每种方法都有其优缺点,但任何采集方法的基本原则都是尽可能获取更多的数据。

本章将涵盖以下主题:

  • iOS 设备操作模式

  • 密码保护和潜在的绕过方法

  • 逻辑采集

  • 文件系统采集

iOS 设备的操作模式

在我们深入探讨取证技术和采集方法之前,了解 iOS 设备的不同操作模式非常重要。许多取证工具和方法要求将设备置于某一操作模式。理解 iOS 设备的操作模式是执行特定操作所必需的。

尽管大多数商业工具会演示如何将设备置于某种特定模式,你必须理解该模式代表的含义。iOS 设备能够运行在不同的操作模式下:正常模式、恢复模式和 设备固件更新 (DFU) 模式。一些取证工具要求你知道设备当前使用的是哪种模式。本节将定义每种模式。

请注意,当提到 iPhone 时,应理解该说法适用于所有 iOS 设备。

正常模式

当 iPhone 开机时,它的操作系统会启动;这种模式称为正常模式。大多数常规活动(如拨打电话、发短信等)都会在正常模式下进行。

当 iPhone 开机时,内部会通过一个安全启动链,如下图所示。这在越狱设备上不会发生。启动过程中的每个步骤都包含由 Apple 加密签名的软件组件,以确保完整性:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c0a280cd-095e-427c-997b-87d5fd796bd5.png

正常模式下 iPhone 的安全启动链

*启动 ROM 反过来验证低级引导加载程序(LLB)是否经过 Apple 签名,并将其加载。LLB 由启动 ROM 加载并验证,但这只在配备 A9 或更早版本 A 系列处理器的设备上发生。

启动 ROM,也叫 安全 ROM,是 只读内存ROM),是 iPhone 上运行的第一段重要代码(www.apple.com/business/docs/iOS_Security_Guide.pdf)。iOS 设备的启动过程定义在以下步骤中:

  1. 启动 ROM 代码包含 Apple 根 证书授权CA)公钥,用于验证下一阶段的签名,然后才允许其加载。

  2. 当 iPhone 启动时,应用处理器执行来自启动 ROM 的代码。

  3. 启动 ROM 会验证 低级引导加载程序LLB)是否由 Apple 签名并加载它。LLB 会被启动 ROM 加载并验证,但这只会在配备 A9 或更早 A 系列处理器的设备上发生。

  4. 当 LLB 完成其任务时,它会验证并加载第二阶段引导加载程序(iBoot)。iBoot 会验证并加载 iOS 内核。

  5. iOS 内核会验证并运行所有用户应用程序。

当 iOS 设备处于此状态时,可以通过取证获取用户可访问的一部分内容。最常见的包括逻辑获取,稍后将在本章中讨论。

恢复模式

在启动过程中,如果某一步无法加载或验证下一步,则启动会停止,iPhone 会显示以下屏幕:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/e76ee9a8-c570-4b6a-a1b4-b8bf3a0dba6d.png

iOS 设备恢复模式

此模式被称为恢复模式,并且在执行升级或恢复 iPhone 时是必需的。要进入恢复模式,请执行以下步骤:

  1. 关闭设备。

  2. 按住 iPhone Home 按钮,并通过 USB 数据线将设备连接到计算机。设备应该会开启。

  3. 持续按住 Home 按钮,直到出现连接到 iTunes 的屏幕。然后,可以释放 Home 按钮(在越狱的 iOS 设备上,此屏幕可能会显示不同的图标)。大多数取证工具和提取方法会提醒您当前 iOS 设备的状态。

  4. 要退出恢复模式,请重新启动 iPhone。在 iPhone 6s 及更早版本上,可以通过同时按住 Home 按钮和睡眠/电源按钮,直到出现 Apple 标志来完成。在 iPhone 7 和 iPhone 7 Plus 上,可以通过同时按住侧边按钮和音量下按钮来完成。对于 iPhone 8 及更新版本,您需要先按音量加按钮,再按音量减按钮,然后长按侧边按钮。

您可以在 support.apple.com/en-in/HT201263 阅读有关 iOS 设备恢复模式的更多信息。

通常,重启过程会将 iPhone 从恢复模式恢复到正常模式。相同的方法适用于 Apple Watch。你可能会遇到 iPhone 不断重启到恢复模式的情况,这被称为恢复循环。当用户或检查员尝试越狱 iOS 设备时,若发生错误,可能会出现恢复循环。要摆脱恢复循环,必须将设备连接到 iTunes,以便恢复备份到设备。

这会对证据造成更改,因此请确保在尝试使用这些方法处理真实证据之前,已在测试设备上验证过你的获取方法。

DFU 模式

在启动过程中,如果 Boot ROM 无法加载或验证 LLB 或 iBoot(在较新的设备上),iPhone 将进入设备固件升级DFU)模式。DFU 模式是一个低级诊断模式,旨在为 iPhone 执行固件升级。

要进入 DFU 模式,请按照以下步骤操作适用于 iPhone 8 及更高版本:

  1. 使用 USB 数据线将设备连接到工作站。

  2. 按下音量加大按钮并迅速释放。

  3. 按下音量减小按钮并迅速释放。

  4. 按住侧边按钮,再次按音量减小按钮。

  5. 5 秒后,释放侧边按钮,但继续按住音量减小按钮,直到你看到恢复模式屏幕。

按照以下步骤操作适用于 iPhone 7:

  1. 使用 USB 数据线将设备连接到工作站。

  2. 同时按住侧边和音量减小按钮。

  3. 释放侧边按钮,但继续按住音量减小按钮,直到你看到恢复模式屏幕。

按照以下步骤操作适用于 iPhone 6s 及更早版本:

  1. 使用 USB 数据线将设备连接到工作站。

  2. 同时按住主屏和顶部(或侧边)按钮。

  3. 释放顶部(或侧边)按钮并继续按住主屏按钮。

对于 iPhone 6s 及更早版本,当设备处于 DFU 模式时,屏幕上不会显示任何内容。

在 macOS 上验证 iPhone 是否处于 DFU 模式时,启动系统报告并转到 USB 选项。你应该能看到类似以下截图的内容:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/653124b3-6f3d-4e98-a6de-4888459f9038.png

显示 DFU 模式设备的 MacBook 系统信息

接下来,我们将快速浏览设置取证环境所需的工具。

设置取证环境

如今,我们有一些工具可以供移动取证检查员使用,帮助在 macOS 和 Windows 系统主机上获取和分析 iOS 设备。例如,Elcomsoft iOS Forensic Toolkit 有 macOS 和 Windows 版本;至于免费和开源工具,libimobiledevice 库可以使用——不仅在 macOS 和 Windows 的取证工作站上,甚至在 Linux 上也可以使用!

我们将在本章后面介绍这些工具的使用,包括实践中的逻辑和文件系统获取,甚至越狱。但是让我们先从密码保护和可能的绕过方法开始,因为没有密码,我们无法从现代 iOS 设备中提取任何数据。

密码保护和潜在绕过方法

我们先从坏消息开始:如果你正在检查运行 iOS 8 或更高版本的 iPhone,特别是如果是较新的设备,比如 iPhone 6s,那么解锁的机会几乎为零。

当然,也有一些硬件解决方案,比如 IP-BOX 3,但它们都只能偶尔奏效,使用这些工具甚至可能导致设备变砖。随着 iOS 11 的发布,这个问题变得更加严重——即使检查的设备没有密码保护,你仍然需要输入密码,因为必须输入密码来确认设备与工作站之间的信任关系。

那么,移动取证专家该怎么办呢?使用锁定文件!这些锁定文件以plist文件的形式存储在受信任的计算机上,允许你欺骗设备,让它认为在取证工作站上已被解锁或信任

锁定文件位于以下位置:

  • macOS 中的/var/db/lockdown

  • Windows 7 及更高版本中的C:\ProgramData\Apple\Lockdown

你必须知道,只有设备在上次重启后至少一次通过密码解锁,才能通过锁定文件解锁设备。

还有一些高级技术存在。包括通过指纹模具欺骗 Touch ID、通过面具欺骗 Face ID,以及通过 NAND 镜像绕过密码输入限制。

第一种技术最早由 Jason Chaikin 演示。他展示了如何通过用常见的模具材料(如牙科模具和橡皮泥)提取他人指纹,从而绕过 Touch ID。

第二种技术由越南网络安全公司 Bkav 作为概念验证进行了演示。他们创建了一种面具,利用三维打印、化妆和二维图像的组合,可以欺骗 Face ID 功能。

最后一种技术由剑桥计算机实验室安全小组的高级研究员 Sergei Skorobogatov 演示。这项技术通过焊接掉 iPhone 的闪存芯片并克隆它,绕过了密码输入限制。这项技术应该适用于任何 iOS 设备,直到 iPhone 6s Plus。

逻辑获取

逻辑获取捕获了用户可访问的部分内容;换句话说,就是包含在 iTunes 备份中的内容。这意味着我们无法获取任何已删除的文件,但得益于 SQLite 数据库的空闲列表和未分配空间,我们可以恢复已删除的记录,包括短信和其他聊天记录、浏览历史等。我们将在第五章中讨论恢复 SQLite 数据和已删除的证据,iOS 数据分析与恢复

逻辑获取是确认设备是否解锁的最简单方式,因为它只是使用内置的备份机制。大多数支持 iOS 设备逻辑获取的工具和方法,如果设备被锁定,都会失败。有些人认为,如果捕获了物理镜像,就几乎不需要进行逻辑获取。然而,并不是所有数据都会在物理镜像中解析出来,这就是为什么获取逻辑镜像、获得可读数据能帮助你深入物理镜像,从中提取支持法医调查的证据。

逻辑获取是最快、最简单、最便宜的方式来获取存储在 iOS 设备上的数据。有各种工具,从商业工具到免费的工具,都能够捕获逻辑镜像。大多数这些工具要求设备已解锁,或者主机机器上可以轻松访问 plist 文件。

使用 libimobiledevice 进行实际的逻辑获取

理论掌握好是好事,但将其付诸实践更为重要。让我们使用 libimobiledevice 创建一个运行 iOS 13.2 的 iPhone 的逻辑镜像,它应该已经安装在你的工作站上,因为我们在上一章中使用它来收集设备信息。

好的,让我们开始:

  1. 首先,让我们使备份加密。将 iOS 设备连接到工作站并启动命令提示符。将目录更改为包含 libimobiledevice 的目录,并输入以下命令:
idevicebackup2.exe backup encryption on <your_password>
  1. 如果你看到“备份加密已成功启用”,那么你已经做对了,备份将会被加密。这将帮助你,作为法医检查员,获取更多关于用户密码、Safari 浏览历史等信息。

  2. 现在是时候创建备份了——我们的 iOS 设备逻辑镜像。为此,请输入以下命令:

idevicebackup2 backup --full <the_folder_you_want_the_image_to_be_saved>

就是这样。你可以在下面的截图中看到逻辑成像的过程:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/8eb26ad2-4dd8-4db9-8f43-edc5f7f7ec0f.png

使用 libimobiledevice 进行 iPhone 逻辑成像

接下来,让我们看看如何使用 Belkasoft Acquisition Tool 进行逻辑获取。

使用 Belkasoft Acquisition Tool 进行实际的逻辑获取

由于逻辑获取是现代 iOS 设备最常见的选项,我们将演示如何使用更多免费的工具。第一个工具是 Belkasoft Acquisition Tool。这个工具不仅可以用于 iOS 设备获取,还可以用于硬盘,甚至是云数据。

让我们使用 Belkasoft Acquisition Tool 获取一台运行 iOS 13.2.3 的 iPhone:

  1. 启动 Belkasoft Acquisition Tool 并选择移动设备选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/ecc44deb-2c74-48a8-a99f-cd8f54f2b210.png

选择源

  1. 在下一个窗口中,选择 Apple 选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/155f47fb-e14f-495e-b7a0-15458c26170d.png

选择移动类型

  1. 现在,选择获取方法和图像路径:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/29aefeb1-0419-4b44-8286-768b480a10fa.png

选择获取方法

该工具能够在设备未越狱的情况下创建 iTunes 备份,在设备越狱的情况下执行文件系统提取。

  1. 等待任务成功完成。你将找到设备的逻辑镜像文件,保存在你在上一步中选择的文件夹里:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/db5d235f-d6a8-4255-8e6d-ac10d055f52e.png

创建备份

备份可以通过 Belkasoft Evidence Center 以及许多其他移动取证工具进行分析。

使用 Magnet ACQUIRE 进行实际的逻辑获取

另一个免费工具,Magnet Forensics 的ACQUIRE,也能进行逻辑获取。让我们再次进行逻辑获取,这次使用运行 iOS 12.2 的设备:

  1. 启动 Magnet ACQUIRE 并从列表中选择你想要获取镜像的设备:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/dd1fe238-1247-4534-9970-2ae71a92c6a0.png

选择设备

  1. 选择你想要获取的图像类型。我们想要获取逻辑图像,并且我们的设备没有越狱,所以我们将选择 Quick 选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d166b841-324a-4737-a783-b36cc82d6b66.png

选择图像类型

  1. 如果需要,你可以添加证据源的描述,并选择你希望保存图像的文件夹:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/3f8d9f8a-86c8-40ed-8bd2-df086b08afb5.png

选择目标文件夹、图像名称和图像信息

  1. 等待任务成功完成;你将看到获取过程的总结:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/11f2a674-f0b8-4a30-81f7-563be3b440f4.png

创建镜像

所有提取的数据将保存在目标文件夹中的 ZIP 归档文件中。此外,目标文件夹将包含一个 TXT 文件,其中包含获取过程的日志和图像信息。

下一部分将指导你如何进行越狱和文件系统获取。

文件系统获取

Secure Enclave 为 iOS 取证专家带来了新的挑战。我们无法提取解密设备镜像所需的加密密钥,因此执行物理获取是无效的。但仍有文件系统获取。遗憾的是,在大多数情况下,这需要 iOS 设备越狱。接下来的章节将向你展示如何使用 Electra 对运行 iOS 11.4.1 的 iPhone 进行越狱,并使用 Checkra1n 对运行 iOS 13.2 的 iPhone 进行越狱。

实际的越狱操作

要执行文件系统获取,我们需要将 iOS 设备进行越狱。以下是越狱 iOS 11.4.1 设备的步骤:

  1. 从以下链接下载Electragithub.com/coolstar/electra-ipas/raw/master/Electra1141-1.3.2.ipa

  2. 下载Cydia Impactorwww.cydiaimpactor.com/),运行它并将设备连接到你的工作站:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/3a5e89f6-befb-4614-b972-5a33885ecc2a.png

运行 Cydia Impactor

  1. Electra IPA文件拖放到Cydia Impactor窗口中。

  2. 在新窗口中输入任何 Apple ID(你可以为每个检查的设备注册一个新的 Apple ID)。

  3. 使用此 Apple ID 登录 appleid.apple.com/ 并在安全部分生成一个应用专用密码。将此密码粘贴到下一个窗口中。等待过程完成。

  4. 在手机上,进入 设置 | 通用 | 设备管理 | Apple ID 并点击信任:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d529bb5c-bf6f-4e21-8ad2-1946a8cd8648.png

验证开发者

  1. 将手机置于飞行模式,关闭 Siri,然后重启设备。

  2. 在主屏幕上点击 Electra 图标,然后选择越狱。如果过程成功完成,你将在主屏幕上看到 Cydia 图标:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/611a08f6-bede-4da9-b57b-06bca3b79384.png

越狱设备

现在,手机已经越狱,可以进行文件系统获取了。

Checkra1n基于 bootrom 漏洞和利用,支持广泛的 iOS 设备,甚至包括运行最新(截至写作时)的 iOS 13.2 的设备。以下是越狱运行 13.2 的 iOS 设备的步骤:

  1. checkra.in/ 下载 Checkra1n

  2. 运行应用程序。写作时,Checkra1n仅适用于 macOS。

  3. 连接设备并将其置于 DFU 模式:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/370be42e-f715-49dc-8ad7-06e0135ec1ec.png

将设备置于 DFU 模式

  1. 等待利用过程完成:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/e16ecd22-6179-4e31-a1aa-3c84fd7a289a.png

利用过程

一旦设备重新启动,你将在主屏幕上看到 checkra1n 图标——设备现在已经越狱,并准备好进行文件系统获取。

如需更多越狱技术,请参考第二章中的越狱部分,理解 iOS 设备的内部结构

使用免费工具进行实用的文件系统获取

现在是进行文件系统获取的时候了。我们只需要libimobiledevice中的iproxy

  1. 打开命令提示符窗口,并使用以下参数运行iproxy

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/8c762d32-cd21-496e-bbf8-773ff72e3413.png

  1. 打开另一个命令提示符窗口,切换到你希望存储镜像的目录,并运行以下命令:
ssh root@127.0.0.1 -p 4444 "tar -cf - /private/var/" > userdata.tar

通过 SSH 连接时,会提示输入必要的密码。SSH 的默认密码是 alpine

一旦过程完成,你将在之前切换的目录中找到创建的文件系统镜像。它是一个 TAR 压缩文件,可以使用许多压缩软件(如 7-Zip)打开。

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/f5ba6cb7-7d36-4f65-8ea7-bd0da366cb7e.png

文件系统镜像内容

接下来,我们来看一下Elcomsoft iOS 取证工具包

使用 Elcomsoft iOS Forensic Toolkit 进行实际的文件系统获取

当然,商业工具更加稳定和可靠。能够进行文件系统获取的工具之一是 Elcomsoft iOS Forensic Toolkit。在这里,我们将获取一台运行 iOS 12.4.3 的越狱 iOS 设备。

执行此操作的步骤如下:

  1. 将设备连接到工作站并启动 Toolkit.cmd

  2. 选择用于 SSH 连接的端口(默认是 22,但由于我们使用了 checkra1n 越狱,端口改为 44),然后输入密码(默认是 alpine):

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/a87928bc-2348-4f86-9cd2-36c9f4301088.png

  1. 要获取设备的文件系统,请输入 F

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/cdbd5f6d-d1da-4e92-8184-2f13d900bdca.png

  1. 选择镜像名称并启动该过程。

一旦过程完成,我们将拥有一个文件系统镜像,可以用我们选择的移动法医工具进行分析。

摘要

iOS 设备法医检查的第一步是从设备中获取数据。有几种不同的方法可以从 iOS 设备获取数据。本章涵盖了逻辑和文件系统获取技术,以及越狱和绕过密码的相关方法。

虽然文件系统获取是法医学上从 iOS 设备中获取大部分数据的最佳方法,但备份文件可能存在,或者可能是从设备提取数据的唯一方法。

下一章将详细讨论 iOS 设备的备份文件,包括用户、法医、加密和 iCloud 备份文件,以及您可以执行的法医学检查方法。

第五章:从 iOS 备份中获取数据

在上一章中,我们介绍了从 iOS 设备获取数据的技术,包括逻辑和文件系统获取。本章介绍了如何使用 Apple 的同步协议,将设备上的文件备份到计算机或 iCloud 的技术。

对 iOS 设备的物理获取在调查中提供了最多的数据,但你也可以在 iOS 备份中找到大量信息。iOS 设备用户有几种方式备份他们设备上的数据。用户可以选择将数据备份到他们的计算机,使用 Apple iTunes 软件,或备份到 Apple 的云存储服务 iCloud。每次 iPhone 与计算机或 iCloud 同步时,它都会通过复制设备中选择的文件来创建备份。用户可以确定备份中包含的内容,因此有些备份可能比其他备份更为全面。此外,用户还可以同时备份到计算机和 iCloud,每个位置的备份数据可能会有所不同。这通常是由于 iCloud 免费存储的限制。用户可能仅将照片和联系人备份到 iCloud,但可能会将所有数据的完整备份备份到计算机。如前所述,物理获取提供了对 iOS 设备上所有数据的最佳访问权限;然而,备份可能是唯一可用的数字证据来源,尤其是当我们处理最新的 iOS 设备时。

在本章中,我们将涵盖以下主题:

  • 使用 iTunes 备份

  • 创建并分析 iTunes 备份

  • 提取未加密的备份

  • 处理加密的备份文件

  • 使用 iCloud 备份

使用 iTunes 备份

在任何之前与 iOS 设备同步过的计算机上,都存储着大量信息。这些计算机通常被称为主机计算机,可能包含历史数据和密码绕过证书。在刑事调查中,可以通过搜索令状来扣押属于嫌疑人的计算机,从而访问备份和锁定证书。对于其他所有情况,需要获得同意或合法的访问权限。iOS 备份文件取证主要涉及分析由 iPhone 或 iPad 创建的离线备份。Apple Watch 的数据将包含在与其同步的 iPhone 备份中。

iTunes 备份方法在其他获取类型不可行的情况下也非常有用。在这种情况下,你实际上是创建了设备的 iTunes 备份,并使用取证软件进行分析。因此,了解备份过程和涉及的工具非常重要,以确保工具能够在不污染设备上其他现有数据的情况下创建取证备份。

可以使用 iTunes 软件创建 iPhone 备份文件,iTunes 适用于 macOS 和 Windows 平台。iTunes 是 Apple 提供的免费工具,用于在 iOS 设备和计算机之间同步和管理数据。iTunes 使用 Apple 的专有同步协议将数据从 iOS 设备复制到计算机。例如,可以使用数据线或 Wi-Fi 将 iPhone 与计算机同步。iTunes 提供了加密备份的选项,但默认情况下,每当 iPhone 同步时,它会创建一个未加密的备份。加密备份一旦破解,会提供对 iOS 设备上存储的数据的额外访问权限。此部分将在本章后面讨论。

用户通常会创建备份文件以保护数据,以防设备损坏或丢失。可以创建法医备份作为最佳证据,或者从现有的 iOS 备份文件中提取数据以搜索遗留信息。例如,如果你正在接受调查并删除了文件或擦除了 iPhone,你在 iCloud 和 Mac 上的备份文件依然存在。根据使用的是 iTunes 还是 iCloud,可能会有多个同一设备的备份。你必须对每个备份进行法医分析,以揭示与调查相关的痕迹。

iTunes 配置为在 iOS 设备连接到计算机后自动启动同步过程。为避免 iOS 设备与计算机之间发生无意的数据交换,请在将证据连接到法医工作站之前禁用自动同步功能。以下流程的第 2 步截图展示了在 iTunes 版本 12.9.4.102 中禁用自动同步的选项。

要禁用 iTunes 中的自动同步,请执行以下步骤:

  1. 转到 编辑 | 偏好设置 | 设备。

  2. 选中“防止 iPod、iPhone 和 iPad 自动同步”并点击确定按钮,如下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/cd4a3226-ceaa-48e8-8d6b-493c80029190.png

禁用 iTunes 中的自动同步

  1. 如前述截图所示,iOS 备份文件存在于系统中。如果这是一个法医工作站,这些备份文件将不会存在,或者会被永久删除,以防止交叉污染。

  2. 一旦验证同步设置,使用通用串行总线USB)数据线将 iOS 设备连接到计算机。如果连接的设备没有设置密码保护,或者它最近已连接到计算机,iTunes 会立即识别设备;否则,你将需要输入密码。这可以通过 iTunes 界面左侧显示的 iPhone 图标进行验证,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/745e839b-d893-42fd-93d4-a040087edd43.png

一个被 iTunes 识别的 iPhone

  1. 在 iTunes 可以访问 iPhone 之前,你必须启用计算机和手机之间的信任。系统会提示你在计算机上点击“继续”(如下面的截图所示),并在 iPhone 上选择“信任”。在 iOS 11 中,你还必须输入设备的密码:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/442913d1-f1ac-4726-a652-08f50317b151.png

iTunes 提示访问权限

  1. 一旦 iTunes 识别到设备,单击 iPhone 图标即可显示 iPhone 概要,包括 iPhone 的名称、容量、固件版本、序列号、可用空间和电话号码。iPhone 概要页面还显示了创建备份的选项。创建备份的过程将在以下部分进行讨论。

现在,我们准备开始备份设备。接下来的部分将引导你完成这个过程。

使用 iTunes 创建和分析备份

在这一部分,我们将引导你通过使用 Apple iTunes 来备份 iOS 设备。我们使用的是 iTunes 版本 12.10.2.3 和运行 iOS 13.2 版本的 iPhone。请执行以下步骤:

  1. 连接设备并点击 iTunes 界面左侧显示的 iPhone 图标。

  2. 进入备份部分,你可以选择备份目标(本地计算机或 iCloud),并选择是否加密,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/b8421d5d-0ef2-4c07-a5a5-5b5146fb406e.png

iTunes 备份部分

加密的 iTunes 备份包含未加密备份没有的数据,包括密码、Wi-Fi 设置和网页浏览历史,因此确保你创建了加密备份以供取证使用。

  1. 点击“立即备份”按钮并等待过程完成。完成后,最新的备份日期和时间将被更新。

如果你想使用 iTunes 并将备份保存到外部驱动器,按照以下说明操作(我们使用的是 iTunes 版本 12.10.2.3 和 Windows 10):

  1. 重命名原始备份文件夹。

  2. 连接外部驱动器并在其上创建一个备份文件夹。

  3. 打开命令提示符并输入以下命令:

mklink /J "C:\Users\<username>\AppData\Roaming\Apple Computer\MobileSync\Backup" "f:\Backup"
  1. 现在,你可以创建一个常规的本地备份,并将其保存到外部驱动器中。

现在,我们已经准备好备份进行进一步分析。让我们深入了解其结构。

理解备份结构

当 iPhone 备份到计算机时,备份文件会存储在备份目录中,该目录以 40 个字符的十六进制字符串存在,并与设备的唯一设备标识符UDID)对应。最新的设备已经更改了 UDID 格式——现在是 24 个字符的字符串,因此它们的备份名称也相应改变。备份过程可能需要相当长的时间,具体取决于第一次备份时 iPhone 上存储的数据大小。备份目录的位置取决于计算机的操作系统。以下表格列出了常见操作系统及其 iTunes 备份目录的默认位置:

操作系统备份目录位置
Windows XPC:\Documents and Settings\<username>\Application Data\Apple Computer\MobileSync\Backup\
Windows Vista/7/8/10C:\Users\<username>\AppData\Roaming\Apple Computer\MobileSync\Backup\
macOS~/Library/Application Support/MobileSync/Backup/~代表主文件夹)

在第一次同步时,iTunes 会创建一个备份目录并进行设备的完整备份。目前,在后续的同步中,iTunes 只会备份设备上修改的文件并更新现有的备份目录。过去并非如此,因为每次 iOS 设备备份时,都会创建一个新的备份。此外,当设备更新或恢复时,iTunes 会自动启动备份并执行增量备份。增量备份与备份目录具有相同的名称,但会附加一个破折号(-)、备份的国际标准化组织ISO)日期、另一个破折号(-),以及 24 小时格式带秒的时间([UDID]+ '-' + [Date]+'-'+[Time stamp])。

iTunes 备份可能会对设备上的所有内容进行备份,包括联系人、短消息服务SMS)消息、照片、日历、音乐、通话记录、配置文件、文档、钥匙串、网络设置、离线网页应用缓存、书签、cookies、应用数据(如果选中),以及更多内容。例如,如果备份未加密,则电子邮件和密码将不会被提取。备份还包含设备的详细信息,如序列号、UDID、订户身份模块SIM)信息和电话号码。这些信息也可以用来证明备份与移动设备之间的关联。

备份目录包含四个标准文件,以及独立文件(直到 iOS 9)或文件夹(iOS 10 及更高版本)。在 iOS 9 之前,这四个文件分别是info.plistmanifest.pliststatus.plistmanifest.mbdb,但从 iOS 10 开始,以下是标准文件:

  • info.plist

  • manifest.plist

  • status.plist

  • manifest.db

这些文件存储有关备份及其来源设备的详细信息。

info.plist

info.plist文件存储有关备份设备的详细信息,通常包含以下信息:

  • Applications:这是设备上安装的应用程序列表。

  • Build version:这是 iOS 的构建版本号。

  • Device name and display name:这是设备的名称,通常包括所有者的名字。

  • GUID:这是设备的全局唯一标识符GUID)。

  • ICCID:这是集成电路卡标识符ICCID),它是 SIM 卡的序列号。

  • IMEI:这是国际移动设备身份码IMEI),用于唯一标识移动电话。

  • Installed Applications:这是已安装应用程序的列表。

  • Last backup date:这是上次成功备份的时间戳。

  • MEID:这是设备的移动设备识别码MEID)。

  • Phone Number:这是备份时设备的电话号码。

  • Product Name:这是设备的名称(例如,iPhone X)。

  • Product type and product version:这是设备的型号和固件版本。

  • Serial Number:这是设备的序列号。

  • Target Identifier and Unique Identifier:这是设备的 UDID。

  • iTunes Files:此项包含有关照片、文件夹、语音备忘录和 iTunes 偏好的信息。

  • iTunes Settings:此项包含关于已删除应用程序和应用程序库的信息。

  • iTunes version:这是用于创建备份的 iTunes 版本。

现在我们来看一下manifest.plist文件。

manifest.plist

manifest.plist文件描述了备份的内容,通常包含以下信息:

  • Backup keybagBackup keybag包含一组数据保护类密钥,这些密钥不同于System keybag中的密钥,备份数据会使用新的类密钥进行重新加密。Backup keybag中的密钥有助于以安全的方式存储备份。

  • Version:这是备份的版本。

  • Date:这是创建或最后更新备份的时间戳。

  • ManifestKey:这是用于加密manifest.db的密钥(采用保护级别 4 进行包装)。

  • WasPasscodeSet:此项标识设备上次同步时是否设置了密码。

  • Lockdown:此项包含设备详细信息、上次备份计算机的名称及其他远程同步配置。

  • Applications:这是备份设备上安装的第三方应用程序列表,包括版本号和包标识符。

  • IsEncrypted:此项标识备份是否加密。对于加密备份,值为True;否则为False

接下来,我们将查看status.plist文件。

status.plist

status.plist文件存储有关备份状态的详细信息,通常包含以下信息:

  • IsFullBackup:此项标识备份是否为设备的完整备份。

  • UUID:这是设备的 UUID。

  • Date:这是备份最后一次修改的时间戳。

  • BackupState:这标识备份是新的还是已更新的备份。

  • SnapshotState:这标识备份过程是否已经成功完成。

现在,我们将查看manifest.db文件。

manifest.db

manifest.db是一个 SQLite 数据库,包含了通过备份机制从 iPhone 提取的所有文件和文件夹的列表。该数据库的Files表包括以下字段:

  • fileID:这是安全哈希算法 1SHA1)对域名的哈希值,再加上-符号和文件或文件夹的相对路径。例如,ae94e0607ca39a88c18aca095cb5b4f8471291a0CameraRollDomain-Media/PhotoData/Thumbnails/V2/DCIM/102APPLE的 SHA1 哈希值。

  • domain:这是文件或文件夹所属的域(iOS 中的所有文件被划分为多个域,例如CameraRollDomainHomeDomain)。

  • relativePath:这是文件(包括文件名)或文件夹的相对路径。

  • flags:这些是文件标志。

  • file:这是一个嵌入的.plist文件。这些.plist文件包含了许多重要信息,包括但不限于:

    • LastModified:这是文件的最后修改时间戳,采用 Unix 格式。

    • Birth:这是文件的创建时间戳,采用 Unix 格式。字段如下面的截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/2a09529d-3480-464c-8afb-0e7d014da7e5.png

manifest.db 内容

你可以使用例如DB Browser for SQLiteDB4S)这样的工具轻松导出这个嵌入的.plist二进制文件。操作步骤如下:

  1. 使用打开数据库按钮打开manifest.db

  2. 转到浏览数据标签页。

  3. 点击文件列中的一个单元格。

  4. 编辑数据库单元格面板中,使用导出按钮将数据保存为.plist文件,如下方截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/f332d4d6-18d8-4cb4-9e3d-a2179fa99a87.png

使用DB4S导出嵌入的.plist 文件

自 iOS 10 以来,文件不再以 40 字符的十六进制字符串命名。相反,你会看到一系列以 2 字符的十六进制字符串命名的文件夹,这些文件夹包含你在早期版本中看到的文件,如下面的截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/abd922f2-d27c-4c4b-9a20-55caa7dae694.png

iPhone 备份文件

现在你已经了解了备份结构,接下来我们学习如何从中提取有价值的数据。

提取未加密的备份

有许多免费的和商业的工具可以用来分析未加密备份中的数据。这些工具分析manifest.db数据库,恢复文件名,并创建用户在 iOS 设备上看到的文件结构。一些流行的工具包括 iBackup Viewer、iExplorer,以及商业取证工具,如 Belkasoft Evidence Center、Magnet AXIOM 和 UFED Physical Analyzer。

iBackup Viewer

iBackup Viewer 是一款免费的工具,支持 Windows 和 macOS,可以从 www.imactools.com/iphonebackupviewer/ 下载。

该工具默认期望备份位于默认位置,但您可以将其更改为您选择的位置——例如,外部硬盘。

要提取备份,请按照以下步骤操作:

  1. 如果您想分析的备份没有保存在默认位置,请点击主屏幕上的首选项超链接,并选择正确的位置,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/7d721288-26e8-4efc-8ba7-e9980bb11f08.png

选择备份位置

  1. 您将在您选择的位置看到可用的备份。点击您想要检查的备份。

您将看到可用的潜在证据源,包括联系人、通话历史记录、消息、日历、笔记、语音邮件和浏览历史,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/4557fd56-0717-4fc1-a19b-719d96b052e9.png

潜在证据源

  1. 需要注意的是,您可以使用原始数据模式(上一个截图中的最后一个图标)将备份浏览为文件系统,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/205a6416-096a-4760-8cc8-31c961d20547.png

原始数据模式

借助这个工具,您可以轻松查看和导出感兴趣的文件。当然,这不是唯一能解决此类任务的工具。让我们再看一个——iExplorer。

iExplorer

iExplorer 提供免费的版本,您可以从 macroplant.com/iexplorer 下载。此工具支持 Windows 和 macOS,也可以浏览 iTunes 备份。以下是如何使用它:

  1. 启动 iExplorer 并点击浏览 iTunes 备份。

  2. 若要从自定义位置添加备份,请点击添加/修改备份位置。

  3. 现在,点击添加备份位置按钮并选择路径,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/b71ea292-3321-478a-908f-53190c144262.png

添加自定义路径

  1. 现在,来自自定义位置的备份应该可用。

另外,还有一个有趣的选项——iExplorer 可以为您收集 SQLite 数据库。为此,请点击原始数据库按钮,进入以下屏幕(您将在接下来的章节中了解更多关于 SQLite 法医的数据):

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/76857736-da9b-4ba6-88a7-117ddc97edb9.png

iExplorer 原始数据库选项

您还可以通过 iExplorer 将备份浏览为文件和文件夹列表;为此,请使用左侧面板。您也可以使用备份浏览器按钮,然后使用主面板来浏览备份。

如您所见,有足够的工具可以从 iTunes 备份中提取有价值的数据,即使它是加密的。当然,通常如果您知道密码是可以的。但如果您不知道密码呢?您将在下一节中学习如何绕过它。

处理加密的备份文件

对于加密备份,备份文件使用 高级加密标准-256AES-256)算法在 密码块链模式CBC)下加密,并使用一个唯一的密钥和一个空的 初始化向量IV)。唯一的文件密钥由 Backup keybag 中的一组类密钥保护。Backup keybag 中的类密钥通过从 iTunes 中设置的密码生成的密钥保护,该过程通过 基于密码的密钥派生函数 2PBKDF2)进行 10,000 次迭代。在 iOS 10.2 中,该机制进行了升级,现在需要 10,000,000 次迭代。

许多免费的和商业的工具在知道密码的情况下支持加密备份文件的解析。不幸的是,这并非总是成立,因此有时法医检查员需要破解这些密码。下一部分将通过使用 Elcomsoft Phone Breaker 来引导你完成这个过程。

Elcomsoft Phone Breaker

Elcomsoft Phone Breaker 是一款由 Elcomsoft 开发的 图形处理单元GPU)加速的商业工具,适用于 Windows 平台。该工具可以在无法获取备份密码的情况下解密加密的备份文件。如果无法获得备份密码,工具提供了一种选项来启动密码暴力破解攻击。Elcomsoft Phone Breaker 通过字典和暴力破解攻击尝试恢复保护加密备份的明文密码。相对较短且简单的密码可以在合理的时间内恢复。然而,如果备份使用的是强大且复杂的密码,破解可能需要非常长的时间。

工具可在此处获得(包括免费试用版):www.elcomsoft.com/eppb.html

要暴力破解备份密码,请执行以下步骤:

  1. 启动 Elcomsoft Phone Breaker 工具,工具的主屏幕将出现,如下所示的截图:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/cd84841d-8b0d-4615-8c57-977ebfcde583.png

Elcomsoft Phone Breaker 的主屏幕

  1. 进入 密码恢复向导 | 选择源 | iOS 设备备份。导航到你想要破解的备份文件,并选择 Manifest.plist 文件。

  2. 在攻击部分配置暴力破解模式,然后点击开始按钮以启动暴力破解攻击,如下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/05e7ff98-bf10-4a8c-9504-19f447e30d9a.png

密码恢复过程

如果暴力破解攻击成功,工具将在主屏幕上显示密码。

如果你有一部运行 iOS 11 或更高版本的 iPhone,并且知道其密码,你可以重置实际密码并使用新的已知密码进行备份。下面是如何操作:

  1. 在 iPhone 上,进入 设置 | 通用 | 重置。

  2. 选择“重置所有设置”并输入设备的密码。需要注意的是,这样做不会删除任何数据。

  3. 重置设置后,你可以创建一个新的备份,并设置你选择的密码。

如果设置了屏幕使用时间密码,你在重置备份密码时也需要输入该密码。

使用 iCloud 备份

iCloud 是苹果公司推出的一项云存储和云计算服务,发布于 2011 年 10 月。该服务允许用户将日历、联系人、提醒事项、照片、文档、书签、应用程序、笔记等数据在多个兼容设备(运行 iOS 5 或更高版本的 iOS 设备;运行 macOS X 10.7.2 或更高版本的计算机;以及 Microsoft Windows)之间同步,使用一个集中管理的 iCloud 帐户。该服务还允许用户无线并自动将其 iOS 设备备份到 iCloud。iCloud 还提供其他服务,例如 查找我的 iPhone(跟踪丢失的手机并远程擦除数据)和 查找我的朋友(与朋友共享位置并在设备到达某个位置时通知用户)。

注册 iCloud 是免费的,并且只需使用 Apple ID 即可轻松完成。当你注册 iCloud 时,Apple 会为你提供 5 GB 的免费云存储空间。如果你需要更多存储空间,可以购买升级计划。为了确保数据安全,Apple 强制要求用户在创建 Apple ID 并与 iCloud 一起使用时选择一个强密码。密码必须至少包含八个字符,其中包括一个数字、一个大写字母和一个小写字母。

运行 iOS 5 及更高版本的 iOS 设备允许用户将设备设置和数据备份到 iCloud。备份的数据包括照片、视频、文档、应用程序数据、设备设置、消息、联系人、日历、电子邮件和钥匙串,如下图所示。你可以通过进入 设置 | 密码与帐户 | iCloud | iCloud 来启用设备上的 iCloud 备份:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/8642cddc-4b29-4b88-a86c-aa6eff0ce81c.png

iPhone 上的 iCloud 备份选项

当你的手机插入电源、锁定并连接到 Wi-Fi 时,iCloud 可以自动备份你的数据。也就是说,只要有足够的空间进行当前备份,iCloud 备份将代表设备上信息的新鲜副本,并且几乎是实时的。

你也可以通过将设备连接到 iTunes 并选择 iCloud 选项来从计算机发起 iCloud 备份。iCloud 备份是增量的;也就是说,一旦初始 iCloud 备份完成,所有后续的备份只会复制设备上已更改的文件。iCloud 通过加密传输中的数据、以加密格式存储数据以及使用安全令牌进行身份验证来保护你的数据安全。

苹果的内置应用(例如,邮件和联系人)使用安全令牌来访问 iCloud 服务。使用安全令牌进行身份验证可以避免在设备和计算机上存储 iCloud 密码。

提取 iCloud 备份

存储在 iCloud 上的在线备份通常在原始 iOS 设备损坏、升级或丢失时进行恢复。要从 iCloud 提取备份,你必须知道用户的 Apple ID 和密码。知道 Apple ID 和密码后,你可以登录 www.icloud.com/ 并访问联系人、备忘录、邮件、日历、照片、提醒事项等数据。你还可以使用法医工具从 iCloud 中提取数据。例如,你可以使用 Belkasoft Acquisition Tool,这是 Belkasoft 提供的一款免费工具,可以从以下网址下载:belkasoft.com/get

要提取 iCloud 数据,请执行以下步骤:

  1. 启动 Belkasoft Acquisition Tool。

  2. 选择“云端”选项。

  3. 选择 iCloud。

  4. 输入 Apple ID 登录和密码,然后点击“下一步”。

  5. 选择你要下载的工件及目标文件夹,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/39f11047-23d1-406a-be2f-7f7502db302d.png

可下载的数据类型

  1. 输入验证码。

  2. 等待过程完成。你会在所选文件夹中找到这些文件。

如果你更喜欢完整的备份,最佳选择是 Elcomsoft Phone Breaker。

要下载 iCloud 备份,请按照以下步骤操作:

  1. 启动 Elcomsoft Phone Breaker。

  2. 选择“备份”选项。

  3. 输入 Apple ID 和密码,或使用之前提取的令牌。

  4. 如果 Apple ID 启用了 双重身份验证 (2FA),请输入相应字段中的验证码。

  5. 选择你要下载的备份,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/166f5a2c-ef6d-41c2-a2bc-4322af253536.png

选择要下载的备份。

下载完成后,你可以使用你选择的工具分析备份文件——例如,本章讨论的某些工具。

总结

iOS 设备备份包含了可能是你唯一证据来源的重要信息。iOS 备份中存储的信息包括照片、视频、联系人、邮件、通话记录、用户账户和密码、应用程序以及设备设置。本章解释了如何创建备份文件并尽可能从 iTunes 和 iCloud 备份中恢复数据,包括加密的备份文件。

以下章节,第五章,iOS 数据分析与恢复,进一步深入法医调查,向你展示如何分析从备份文件中恢复的数据。

第六章:iOS 数据分析与恢复

iOS 设备取证的一个关键方面是检查和分析所获取的数据,以解读证据。在前面的章节中,你学习了从 iOS 设备获取数据的各种技巧。任何类型的获取的镜像都包含数百个数据文件,这些文件通常通过之前章节中描述的工具进行解析。即使数据已经通过取证工具进行解析,可能仍然需要手动分析以揭示更多的证据或仅仅是验证你的发现。

本章将帮助你理解 iOS 设备上数据的存储方式,并将指导你逐一检查在每次调查中应重点检查的关键证据,以尽可能多地恢复数据。

本章我们将涵盖以下主题:

  • 解读 iOS 时间戳

  • 操作 SQLite 数据库

  • 关键证据——重要的 iOS 数据库文件

  • 属性列表

  • 其他重要文件

  • 恢复已删除的 SQLite 记录

解读 iOS 时间戳

在检查数据之前,理解 iOS 设备上使用的不同时间戳格式非常重要。iOS 设备上的时间戳通常以Unix 时间戳Mac 绝对 时间格式呈现。你,作为检查员,必须确保工具能够正确转换这些时间戳。访问原始的 SQLite 文件将允许你手动验证这些时间戳。你将在接下来的几节中学到如何解码每种时间戳格式。

Unix 时间戳

Unix 时间戳是自 1970 年 1 月 1 日午夜以来经过的秒数。Unix 时间戳可以很容易地转换,可以使用 Mac 工作站上的date命令,或使用在线的 Unix 纪元转换工具,如www.epochconverter.com/

date命令在以下代码片段中展示:

$ date -r 1557479897
Fri May 10 12:18:17 MSK 2019

你可能会遇到以毫秒或纳秒格式表示的 Unix 时间戳。这并不是一个大问题;有许多在线转换工具,例如currentmillis.com/,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/3eefc99b-2294-439e-8675-d2e80c165d82.png

使用 http://currentmillis.com/转换的毫秒级 Unix 时间戳

Unix 纪元是 iOS 设备最常见的时间格式,但也有其他格式,包括 Mac 绝对时间和 WebKit/Chrome 时间。

Mac 绝对时间

iOS 设备自 iOS 5 开始采用了 Mac 绝对时间。Mac 绝对时间是自 Mac 纪元时间开始以来经过的秒数,Mac 纪元时间从 2001 年 1 月 1 日午夜开始。Unix 纪元时间和 Mac 时间之间的差异正好是 978,307,200 秒。这意味着你可以轻松地将 Mac 时间转换为 Unix 纪元时间,并使用相同的方法最终将其转换为人类可读的时间戳。当然,也有一些在线转换工具,如www.epochconverter.com/coredata,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/e52b9f80-162b-4bbb-a9cd-77c3312d6752.png

使用 https://www.epochconverter.com/coredata 转换的 Mac 时间戳

当然,也有离线工具可以进行时间戳转换。我们将在下一节介绍其中一种。

WebKit/Chrome 时间

在分析 iOS 应用数据时,尤其是对于 Google Chrome、Safari 和 Opera 等网页浏览器,你可能会遇到另一种时间戳格式——WebKit/Chrome 时间。这是自 1601 年 1 月 1 日午夜以来的微秒数。对于这一格式,也有一个在线转换器:www.epochconverter.com/webkit

如果你不喜欢或由于某种原因不想使用在线转换器,你还可以使用一个免费的工具:Digital Detective 的 DCode。该工具可以用于转换多种不同格式的时间戳,包括 Unix 时间(秒和毫秒)、Mac 绝对时间和 WebKit/Chrome 时间,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/da4ab0d6-d97d-49c2-a5a6-2df65bec31bb.png

使用 DCode 转换的 WebKit/Chrome 时间戳

许多商业移动取证套件能够轻松自动转换提取的时间戳,但在某些情况下,验证它是极其重要的,因此你必须清楚理解时间戳格式。

使用 SQLite 数据库

SQLite 是一个开源的进程内库,提供一个自包含、零配置和事务型的 SQL 数据库引擎。这是一个包含多个表、触发器和视图的完整数据库,所有内容都包含在一个跨平台的文件中。由于 SQLite 具有便携、可靠且小巧的特点,它成为了许多移动平台上流行的数据库格式。

与其他智能手机和平板电脑一样,Apple 的 iOS 设备大量使用 SQLite 数据库来存储数据。许多内置应用程序——如电话、信息、邮件、日历和笔记——都将数据存储在 SQLite 数据库中。除此之外,设备上安装的第三方应用程序也利用 SQLite 数据库进行数据存储。

SQLite 数据库可以有或没有文件扩展名。它们通常具有 .sqlitedb.db 文件扩展名,但也有些数据库使用其他扩展名。

SQLite 文件中的数据被拆分成包含实际数据的表。要访问存储在文件中的数据,你需要一个能够读取它的工具。大多数商业移动取证工具——如 Belkasoft Evidence Center、Magnet AXIOM 和 Cellebrite 通用取证提取设备 (UFED) Physical Analyzer——都支持对 SQLite 数据库的检查。如果你没有这些工具,以下是一些不错的免费工具:

macOS 默认包含 SQLite 命令行工具(sqlite3)。该命令行工具可以用来访问单个文件,并对数据库运行 SQL 查询。在接下来的部分中,我们将使用sqlite3命令行工具以及其他 SQLite 工具和浏览器来从各种 SQLite 数据库中检索数据。在检索数据之前,您需要学习的基本命令将在以下部分中进行说明。

连接到数据库

使用免费的工具,可以手动检查 iOS SQLite 数据库文件。以下是使用 Mac 本地命令在终端中检查数据库的示例:

  1. 确保您的设备镜像是只读挂载的,以防止对原始证据进行更改。

  2. 要通过命令行连接到 SQLite 数据库,请在终端中运行sqlite3命令并输入您的数据库文件。这将为您提供一个 SQL 提示符,您可以在其中执行 SQL 查询,如下所示的代码块所示:

$ sqlite3 sms.db
SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints. 
  1. 要断开连接,请使用.exit命令。这将退出 SQLite 客户端并返回终端。

下一部分将指导您使用sqlite3内置命令进行数据库分析。

探索 SQLite 特殊命令

连接到数据库后,您可以使用一些内置的 SQLite 命令,这些命令被称为点命令,可以用来从数据库文件中获取信息。

您可以通过在 SQLite 提示符下输入.help命令来获取特殊命令的列表。这些是 SQLite 特有的命令,不需要在末尾加分号。最常用的点命令包括以下几种:

  • .tables:此命令列出数据库中的所有表。以下截图显示了sms.db数据库中的表列表:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d27252c6-e75f-4035-8f34-9be14da66735.png

  • .schema table-name:此命令显示构建表所使用的SQL CREATE语句。以下截图显示了sms.db数据库中handle表的模式:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/6d00603a-79a1-44df-9c3b-2475eab6f5d9.png

  • .dump table-name:此命令将表的全部内容导出为 SQL 语句。以下截图显示了sms.db数据库中handle表的导出内容:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/3457bfe6-038b-4021-902c-452e24a4c31e.png

  • .output file-name:此命令将输出重定向到磁盘上的文件,而不是显示在屏幕上。

  • .headers on:此命令在发出SELECT语句时显示列标题。

  • .help:此命令显示可用 SQLite 点命令的列表。

  • .exit:此命令用于断开与数据库的连接并退出 SQLite 命令行界面。

  • .mode:此命令设置输出模式,可以是.csv、HTML、制表符等。

确保 SQLite 提示符和点命令之间没有空格;否则,整个命令将被忽略。

探索标准 SQL 查询

除了 SQLite 点命令之外,还可以在命令行中向 SQLite 数据库发出标准 SQL 查询,如SELECTINSERTALTERDELETE。与 SQLite 点命令不同,标准 SQL 查询需要在命令末尾加上分号。

大多数你将检查的数据库只会包含合理数量的记录,因此可以执行SELECT *语句,打印表中包含的所有数据。本章将详细介绍这一部分内容。

使用商业工具访问数据库

虽然可以使用免费工具手动检查 iOS SQLite 数据库文件,但大多数检查员更倾向于在手动深入文件进行检查之前,先使用商业支持。以下是使用 SQLite(它包含在 Belkasoft Evidence Center 中)检查数据库的示例。

要打开并分析数据库,只需遵循以下几个简单步骤:

  1. 启动 Belkasoft Evidence Center,进入视图 | SQLite Viewer,选择要检查的数据库文件。

  2. 一旦选择了数据库,它会立即在 SQLite Viewer 中打开,准备好进行检查,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/a9651922-7915-4392-87cf-313d624572e9.png

使用 Belkasoft Evidence Center 的 SQLite Viewer 打开的 sms.db 数据库

为什么检查员需要使用这些商业查看器,而不是免费的开源工具?例如,这个特定的查看器甚至支持损坏或部分覆盖的 SQLite 数据库。更重要的是,该工具支持从自由列表、预写日志WAL)和未分配空间中提取数据,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/edf93e65-d1c8-4d11-bb26-005c4afa01e6.png

在 Belkasoft Evidence Center 的 SQLite Viewer 中看到的数据库未分配空间

当然,也有一些免费的开源工具可用于 SQLite 数据恢复。你将在接下来的章节中了解更多这类工具。

关键证据 – 重要的 iOS 数据库文件

按照第三章iOS 设备的数据获取和第四章iOS 备份的数据获取中的说明提取的文件系统和备份应包含以下 SQLite 数据库,这些数据库可能对您的调查很重要。如果这些文件未恢复,请确保您正确获取了 iOS 设备。这些文件是在运行 iOS 的设备上通过逻辑获取提取的。由于 Apple 在每次 iOS 版本发布时都会为内置应用程序添加新功能,因此不同 iOS 版本中的文件格式可能会有所不同。

通讯录联系人

通讯录包含有关所有者个人联系人丰富的信息。除第三方应用程序外,通讯录包含设备上存储的所有联系人的联系人条目。通讯录数据库位于/HomeDomain/Library/AddressBook.sqlitedbAddressBook.sqlitedb文件包含多个表,其中以下三个表特别值得关注:

  • ABPerson:此表包含每个联系人的姓名、组织、备注等信息。

  • ABMultiValue:此表包含ABPerson表中条目的电话号码、电子邮件地址、网站统一资源定位符URLs)等信息。ABMultiValue表使用record_id文件将联系人信息与ABPerson表中的ROWID关联起来。

  • ABMultiValueLabel:此表包含用于标识存储在ABMultiValue表中的信息类型的标签。

存储在AddressBook.sqlitedb文件中的部分数据可能来自第三方应用程序。您应手动检查应用程序文件夹,以确保所有联系人都已被统计和检查。

虽然以下所有命令都可以在 Mac 上本地运行,但我们将使用 DB4S 来检查 iOS 设备上最常见的数据库。这是一个免费工具,简化了过程,并为您提供清晰的数据视图。一旦数据库加载完成,您可以起草查询来检查最相关的数据,并将通讯录导出为名为AddressBook.csv.csv文件,如下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/51361ad5-b90c-4a2a-9e91-8eee6bc2c0f6.png

DB4S 中的 AddressBook.sqlitedb 文件

在前面的截图中,您可以看到建议的查询,用于从ABPersonABMultiValue表中解析数据。

通讯录图片

除了通讯录数据外,每个联系人可能还包含与之关联的图像。每当用户接到某个特定联系人的来电时,图像会显示在屏幕上。这些图像可以由具有访问设备联系人权限的第三方应用程序创建。通常,联系人会与第三方应用程序的个人资料照片相关联。通讯录图像数据库可以在/HomeDomain/Library/AddressBook/AddressBookImages.sqlitedb中找到。

通讯录图像可以手动解析,但使用商业软件可以使这一过程变得更加实用。大多数免费和商业工具将提供访问通讯录图像的功能。然而,一些工具无法建立图像与联系人的关联,这可能需要一些手动重建。有时,免费解决方案在从 iOS 设备解析简单数据时效果最好。接下来,我们将检查在 iExplorer 中查看通讯录图像的过程,iOS 备份数据采集

在下面的截图示例中,iExplorer 自动将联系人数据与图像匹配:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c5991b98-0b58-44c4-8955-11c1d0a9f20e.png

在 iExplorer 中检查通讯录图像

相同的缩略图可以在ABThumbnailImage表的data列中找到。你可以手动将照片与联系人匹配,方法是使用AddressBookImages.sqlitedbABThumbnailImage表的record_id列和AddressBook.sqlitedbABPerson表的ROWID列。

通话记录

用户拨打、未接和接听的电话或 FaceTime 通话会与其他元数据(如通话时长、日期和时间)一起记录在通话历史中。通话历史数据库可以在/HomeDomain/Library/CallHistoryDB/CallHistory.storedata中找到。CallHistory.storedata文件是随着 iOS 8 引入的,目前在编写时使用的是(iOS 13.2)。

CallHistory.storedata数据库中的ZCALLRECORD表包含了通话记录。需要注意的是,只有有限数量的通话可能会存储在活动数据库中。由于数据库在需要空间时会删除最旧的记录,但这并不意味着数据被删除。它只是存储在 SQLite 数据库文件的空闲页面中,可以使用取证工具或手动恢复。ZCALLRECORD表中最重要的列如下:

  • ZDATE:此列包含通话的时间戳,采用 Mac 绝对时间格式。

  • ZDURATION:此列包含通话时长。

  • ZLOCATION:此列包含电话号码的位置。

  • ZADDRESS:此列包含电话号码。

  • ZSERVICE_PROVIDER:此列包含服务提供商——例如,电话、WhatsApp、Telegram 等。

你可以在 DB4S 中运行以下查询以解析通话历史。之后,你可以将其导出为.csv文件,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c9e15bf1-ab8e-4000-8456-29f227a1c52b.png

在 DB4S 中检查 CallHistory.storedata

这次查询非常简单,因为所有相关列都在同一张表中。请注意,我们使用了datetime将 Mac 的绝对时间戳转换为人类可读的日期。

短信服务(SMS)消息

SMS 数据库包含了从设备发送和接收的文本和多媒体消息,以及远程方的电话号码、日期和时间和其他运营商信息。从 iOS 5 开始,iMessage 数据也存储在 SMS 数据库中。iMessage 允许用户通过蜂窝或 Wi-Fi 网络向其他 iOS 或 macOS 用户发送 SMS 和多媒体消息服务MMS)消息,从而提供了一种替代 SMS 的方式。SMS 数据库可以在/HomeDomain/Library/SMS/sms.db找到。

你可以在 DB4S 中运行以下查询来解析短信消息。之后,你可以将其导出为.csv文件,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/7c2195ca-221a-478c-a224-c4811153eb62.png

在 DB4S 中检查 sms.db

还有一个有趣的子目录可以在/HomeDomain/Library/SMS/下找到——Drafts。在里面,有更多的子文件夹,每个文件夹包含一个message.plist文件。每个文件都是一个属性列表,存储了用户开始输入但未发送的草稿消息。你将在接下来的章节中了解更多关于属性列表的内容。

日历事件

用户手动创建或通过邮件应用或其他第三方应用同步的日历事件存储在Calendar数据库中。Calendar数据库可以在/HomeDomain/Library/Calendar/Calendar.sqlitedb找到。

Calendar.sqlitedb文件中的CalendarItem表包含日历事件的摘要、描述、开始日期、结束日期等。你可以在 DB4S 中运行以下查询来解析日历,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/2f1bdd85-49ca-4b3f-8a00-c8648c6697f3.png

在 DB4S 中检查 calendar.sqlitedb

如你所见,CalendarItem表以 Mac 的绝对时间格式存储日期,因此我们添加了978307200来揭示实际的时间戳,借助datetime函数。

笔记

Notes数据库包含用户通过设备内置的Notes应用创建的笔记。Notes是最简单的应用,通常包含最敏感和机密的信息。Notes数据库可以在/HomeDomain/Library/Notes/notes.sqlite找到。

notes.sqlite文件中的ZNOTEZNOTEBODY表包含每条笔记的标题、内容、创建日期、修改日期等。你可以运行以下查询来解析Notes数据库:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d2995cae-a0c5-4cba-8239-b274e77c4f25.png

在 DB4S 中检查笔记

这个查询合并了两个表的数据,所以我们使用了来自ZNOTEBODYZOWNER、来自ZNOTEZ_PK,以及一个WHERE子句来执行。

Safari 书签和历史记录

在 iOS 设备上使用的 Safari 浏览器允许用户书签他们喜爱的网页。Bookmarks数据库可以在/HomeDomain/Library/Safari/Bookmarks.db找到。书签数据可以通过一个非常简单的查询提取,如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/456f42eb-bf0b-418c-87a8-4bfee6e5c029.png

在 DB4S 中检查书签

浏览历史记录可以在History.db中找到,路径为/HomeDomain/Library/Safari/。可以从history_itemshistory_visits表中提取关于访问过的网站的最重要信息,如下图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/15dedc9e-25ed-4fae-aded-167b4bdbc601.png

在 DB4S 中检查历史记录

除了 Safari,其他浏览器也可以用来存储 iOS 设备上的数据。因此,我们建议使用专门解析互联网历史记录的工具,以确保不遗漏数据。解决此任务的好取证工具包括 Magnet Forensics 的 AXIOM、Cellebrite 的 Physical Analyzer 等。

语音邮件

Voicemail数据库包含关于存储在设备上的每个语音邮件的元数据,包括发件人的电话号码、回拨号码、时间戳和消息时长等。语音邮件录音以自适应多速率AMR)音频文件格式存储,可以通过任何支持 AMR 编解码器的媒体播放器播放(例如,QuickTime Player)。Voicemail数据库可以在/HomeDomain/Library/Voicemail/voicemail.db下找到。

录音

Recordings数据库包含关于存储在设备上的每个录音的元数据,包括时间戳、时长、存储位置等。该数据库可以在/MediaDomain/Media/Recordings找到。可以使用以下截图中显示的查询来提取元数据:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c34c37f3-762b-4675-ae9d-bdef7279306a.png

在 DB4S 中检查录音

如前面的截图所示,实际的录音文件存储在同一目录中。

设备交互

有一个 SQLite 数据库记录用户与不同应用程序的交互情况。该数据库名为interactionC.db,位于/HomeDomain/Library/CoreDuet/PeopleZINTERACTIONS表包含关于用户是否读取消息、发送消息、进行通话等信息。你可以通过以下截图中显示的查询从表中提取这些信息:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d4baf2f6-666d-4e8a-8256-d348057170a6.png

在 DB4S 中检查交互

同时,确保检查ZCONTACTS表——它包含关于用户与设备互动时涉及的联系人信息(如果适用)。

电话号码

通过分析位于/WirelessDomain/Library/DatabasesCellularUsage.db文件,你可以获取用户使用的所有电话号码的信息,即使他们更换了手机并从备份恢复。提取此数据的查询如以下截图所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/673b6637-286f-4d21-8fb0-910bdd31bf95.png

提取电话号码

如您所见,这里不仅有电话号码,还有用户身份模块SIM)卡的集成电路卡标识符ICCID)。

属性列表

属性列表,通常称为plist,是一种结构化数据格式,用于存储、组织和访问 iOS 设备以及 macOS 设备上的各种类型数据。plist文件是二进制格式的,可以使用属性列表编辑器查看,该编辑器能够读取或将二进制格式转换为美国信息交换标准代码ASCII)格式。

Plist文件可能带有或不带有.plist文件扩展名。要访问这些文件中存储的数据,您需要一个可以读取它们的工具。一些好的免费工具包括以下:

您可以使用 Xcode 查看plist文件。macOS 默认包含plutil命令行工具。此命令行工具可以轻松地将二进制格式的文件转换为人类可读的文件。此外,大多数商业取证工具都很好地支持解析plist文件。

以下截图显示了com.apple.mobile.ldbackup.plist文件:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/85fcf9cc-8be9-489f-850b-5cb264c83f30.png

plist Editor Pro 中的 com.apple.mobile.ldbackup.plist

如您所见,这个plist揭示了最后一次本地和云备份的日期(当然是 Mac 绝对时间),它创建时的时区,以及备份是否加密的事实。

重要的 plist 文件

在第三章《iOS 设备数据获取》和第四章《iOS 备份数据获取》中提到的原始磁盘镜像或提取的备份,应包含对调查至关重要的以下plist文件。显示的文件是从 iOS 13.2 设备备份中提取的。对于您的 iOS 版本,文件位置可能会有所不同。

以下是包含可能与您的调查相关数据的plist文件:

plist 文件描述
/HomeDomain/Library/Preferences/com.apple.commcenter.shared.plist包含正在使用的电话号码
/HomeDomain/Library/Preferences/com.apple.identityservices.idstatuscache.plist包含有关 Apple ID 使用的电子邮件地址和用户通过该 ID 与 FaceTime 或 iMessage 互动的人员的电话号码的信息
/HomeDomain/Library/Preferences/com.apple.mobile.ldbackup.plist包含最后一次 iTunes 和 iCloud 备份的时间戳、最后一次 iTunes 备份的时区,以及是否加密
/HomeDomain/Library/Preferences/com.apple.MobileBackup.DemotedApps.plist包含操作系统自动卸载的未使用应用程序列表
/HomeDomain/Library/Preferences/com.apple.mobilephone.speeddial.plist包含用户最喜爱的联系人列表,包括他们的姓名和电话号码
/HomeDomain/Library/Preferences/com.apple.preferences.datetime.plist包含用户设置的时区信息
/RootDomain/Library/Caches/locationd/clients.plist包含使用位置服务的应用程序列表
/RootDomain/Library/Preferences/com.apple.MobileBackup.plist包含有关从备份中恢复的最后信息,包括恢复开始日期、文件传输持续时间、传输的文件数量、源设备唯一设备标识符UDID)等
/SystemPreferencesDomain/SystemConfiguration/com.apple.mobilegestalt.plist包含用户分配的设备名称
/SystemPreferencesDomain/SystemConfiguration/com.apple.wifi.plist包含设备所有者使用的无线接入点信息
/WirelessDomain/Library/Preferences/com.apple.commcenter.plist包含设备电话号码、网络运营商、ICCID 和国际移动用户身份IMSI)信息

当然,plist文件不像 SQLite 数据库那样包含大量信息,但它们在您的取证检查中仍然可以是有用的。接下来,我们将查看一些可能也有用的其他文件。

其他重要文件

除了 SQLite 和plist文件外,还有其他一些位置可能包含对调查有价值的信息。

其他来源包括以下内容:

  • 本地字典

  • 照片

  • 缩略图

  • 壁纸

  • 已下载的第三方应用程序

让我们逐一看看这些文件。

本地字典

用户添加到字典中的单词列表存储在LocalDictionary纯文本文件中,文件位置为/KeyboardDomain/Library/Keyboard/。由于该文件是纯文本格式,您可以使用您喜欢的文本编辑器查看。

照片

照片存储在位于/CameraRollDomain/Media/DCIM的目录中,该目录包含使用设备内置相机拍摄的照片、截图、自拍、照片流、最近删除的照片以及相关的缩略图。一些第三方应用程序也会将拍摄的照片存储在该目录中。存储在DCIM文件夹中的每张照片都包含可交换图像文件格式EXIF)数据。可以使用ExifTool提取存储在照片中的EXIF数据,ExifTool可以从sno.phy.queensu.ca/~phil/exiftool/下载。当照片被标记为用户的地理位置时,如果用户在 iOS 设备上启用了位置权限,EXIF数据可能包含地理位置信息。

缩略图

另一个与照片相关的重要证据来源是ithmb文件。你可以在/CameraRollDomain/Media/PhotoData/Thumbnails找到这些文件。这些文件不仅包含设备上实际照片的缩略图,还有已删除照片的缩略图。当然,有一个工具可以解析这些文件——iThmb Converter,可以从www.ithmbconverter.com/en/download/下载,以下截图展示了该工具:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/30e58e68-ad94-4084-8b21-dae387321a59.png

使用 iThmb Converter 检查 3304.ithmb

由于这些文件可能包含已删除照片的缩略图,法医检查员不得忽视它们。更重要的是,其中一些文件包含相当大的缩略图,因此可以清楚地看出所拍摄的内容。

壁纸

当前设置为 iOS 设备的背景墙纸可以从/HomeDomain/Library/SpringBoard中的LockBackgroundThumbnail.jpgLockBackgroundThumbnaildark.jpg文件中恢复。

壁纸图片可能包含有关用户的身份信息,这些信息可能有助于失踪人员案件,或者可能在从盗窃调查中恢复的 iOS 设备上找到。

下载的第三方应用程序

从 App Store 下载并安装的第三方应用程序——包括 Facebook、WhatsApp、Viber、Threema、Tango、Skype 和 Gmail 等应用——包含大量对调查有用的信息。某些第三方应用程序使用 Base64 编码,需转换为可查看格式,此外还涉及加密。加密数据库文件的应用程序可能会阻止你访问表中存储的数据。加密方式根据应用程序和 iOS 版本的不同而有所差异。

/private/var/mobile/Containers/Data/Application目录中,为设备上安装的每个应用程序创建一个带有全局唯一标识符UUID)的子目录。应用程序目录中存储的大多数文件都是 SQLite 和plist格式。每个文件必须检查其相关性。我们建议在可能的情况下,使用 Belkasoft Evidence Center、Cellebrite UFED Physical Analyzer、Elcomsoft Phone Viewer 和 Magnet AXIOM 来快速提取这些证据,再回去手动运行查询并解析数据。

此外,关于已安装应用程序的信息可以从位于/HomeDomain/Library/FrontBoardapplicationState.db数据库中获取。这是另一个 SQLite 数据库,可以使用合适的查看器进行分析,具体选择由检查员决定。

恢复已删除的 SQLite 记录

SQLite 数据库将已删除的记录存储在数据库本身中,因此通过解析相应的 SQLite 数据库,可以恢复已删除的数据,如联系人、短信、日历、笔记、电子邮件、语音邮件等。如果 SQLite 数据库进行了 vacuum 或碎片整理,则恢复已删除数据的可能性非常小。这些数据库需要的清理量很大程度上取决于 iOS 版本、设备以及用户在设备上的设置。

一个 SQLite 数据库文件由一个或多个固定大小的页面组成,每个页面仅使用一次。SQLite 使用 B 树页面布局来存储索引和表内容。有关 B 树布局的详细信息,可以参考 github.com/NotionalLabs/SQLiteZer/blob/master/_resources/Sqlite_carving_extractAndroidData.pdf

商业取证工具提供对 SQLite 数据库文件的已删除数据恢复支持,但它们并不总是能恢复所有数据,也不支持从 iOS 设备上的所有数据库中提取数据。建议检查每个包含关键证据的数据库是否存在已删除数据。应使用免费的解析器、十六进制查看器,甚至是你的取证工具,检查本书中已讨论的关键证据或数据库,以确定用户是否删除了与调查相关的证据。

要提取 SQLite 数据库,你可以查看原始十六进制数据,或使用由 Mari DeGrazia 开发的免费 Python 脚本 sqliteparse.py。你可以从 github.com/mdegrazia/SQlite-Deleted-Records-Parser 下载该 Python 脚本。

以下示例从 notes.sqlitedb 文件中恢复已删除的记录,并将输出转储到 output.txt 文件中。这个脚本应适用于从 iOS 设备恢复的所有数据库文件。要验证脚本运行结果,只需在十六进制查看器中检查数据库,确保没有遗漏任何内容。代码可以在这里查看:

$python sqliteparse.py -f notes.sqlitedb -r -o output.txt

此外,对数据库文件执行 strings 转储也可以揭示已删除的记录,这些记录可能会被忽略,命令如下所示:

$strings notes.sqlitedb

如果你更喜欢图形界面,Mari DeGrazia 友好地创建了一个图形界面并将其发布在她的 GitHub 页面上。

你还可以使用另一个开源工具 Undark 来恢复已删除的 SQLite 记录。你可以在这里下载:pldaniels.com/undark/。使用该工具时,运行以下命令:

./undark -i sms.db > sms_database.csv

需要注意的是,Undark 不区分当前数据和已删除数据,因此你会得到完整的数据集,包括实际数据和已删除的数据。

概述

本章涵盖了各种数据分析技术,并指定了在 iOS 设备文件系统中常见工件的位置。在编写本章时,我们旨在涵盖大多数调查中涉及的最流行的工件。显然,不可能涵盖所有内容。我们希望一旦你学会如何从 SQLite 和plist文件中提取数据,直觉和毅力将帮助你解析那些未被覆盖的工件。

请记住,大多数开源和商业工具都能够从常见的数据库文件中提取活动数据和已删除数据,如联系人、通话记录、短信等,但它们通常忽略第三方应用程序的数据库文件。我们最好的建议是了解如何手动恢复数据,以防你需要验证你的发现或作证说明你的工具如何工作。

我们介绍了恢复已删除 SQLite 记录的技术,这在大多数 iOS 设备调查中非常有用。同样,获取方法、编码和加密方案会影响你在检查过程中可以恢复的数据量。

在下一章,iOS 取证工具中,我们将向你介绍最流行的移动取证工具——Cellebrite UFED Physical Analyzer、Magnet AXIOM、Elcomsoft Phone Viewer 和 Belkasoft Evidence Center。

第七章:iOS 取证工具

作为检查员,你不仅需要知道如何使用取证工具,还必须理解工具在调查中所采用的方法和获取技术。除了节省时间外,取证工具还使取证分析过程变得更加轻松。然而,每个工具都有其缺陷。你必须发现任何错误,并知道如何通过利用其他工具或技术来纠正它们。没有任何工具能支持所有设备。你需要学习并使用最佳的工具来完成工作。如我们在前面的章节中所讨论的,你必须理解 iOS 设备上的数据是如何存储的,以确保工具能够捕获所有可访问的数据。

当前,市面上有许多商业工具,如 Cellebrite UFED Physical Analyzer、BlackBag BlackLight、Oxygen Forensic Detective、Belkasoft Evidence Center、MSAB XRY、Magnet AXIOM 等,可用于 iOS 设备的取证获取和分析。本章将通过几个工具的使用,为你提供了解这些工具所需的步骤以及如何进行 iOS 设备的获取和分析的详细信息。

本章我们将涵盖以下主题:

  • 使用 Cellebrite UFED Physical Analyzer

  • 使用 Magnet AXIOM

  • 使用 Belkasoft Evidence Center

  • 使用 Elcomsoft Phone Viewer

使用 Cellebrite UFED Physical Analyzer

根据供应商的说法,Cellebrite Universal Forensic Extraction DeviceUFED)赋能执法机关、反恐和安全组织,从手机、智能手机、PDA 及各种便携手持设备中捕获关键的取证证据,包括针对新发布型号的更新。该工具通过法医数据提取、解码和分析技术,支持从不同移动设备中获取现有数据和已删除数据。截止 2019 年 2 月,UFED 已支持从近 28,000 种移动设备中提取数据。

Cellebrite UFED Physical Analyzer 的功能

以下是 Cellebrite UFED Physical Analyzer 的功能:

  • 支持不同类型的数据获取

  • 提取设备密钥,用于解密物理镜像和钥匙链项目

  • 解密物理镜像和钥匙链项目

  • 显示设备密码(并非所有锁定设备均可用)

  • 允许你使用已知密码打开加密的原始磁盘镜像文件

  • 支持密码恢复攻击

  • 支持对提取的应用数据进行高级分析和解码

  • 提供对在同一用户界面中提取的物理和逻辑数据的访问,使分析更加简便

  • 以几种流行格式生成报告,包括 Microsoft Excel、PDF 和 HTML

  • 转储原始文件系统分区,以便将其导入并在其他取证工具中进行检查

  • 除了 UFED 快捷文件外,还创建了一个二进制镜像文件,方便导入到其他取证工具进行验证

现在我们来看看高级逻辑采集与分析。

使用 Cellebrite UFED Physical Analyzer 进行高级逻辑采集与分析

正如我们之前提到的,Physical Analyzer 不仅可以用来解析从获取的镜像中提取的不同类型的取证证据,还可以执行来自 iOS 设备的逻辑、文件系统(甚至是物理提取,适用于老旧设备)等多种类型的提取。由于物理采集实际上仅适用于旧设备,最好的选择是高级逻辑采集。

我们将从运行 iOS 13.2.3 的 iPhone 获取并分析数据。开始吧:

  1. 通过适当的电缆将设备连接到工作站。确保它是可信的,并启动 Physical Analyzer。

  2. 转到 Extract | iOS 设备提取。iOS 设备数据提取向导窗口将弹出:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d760b426-7dc8-4a85-ab3c-de0df8d180bb.png

选择提取类型

  1. 由于我们正在处理一台现代的 iOS 设备,让我们选择高级逻辑提取。如果设备被识别,你将看到设备的名称、其 UDID 以及 iOS 版本:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/dece4869-de70-4a76-8ec5-c90ceb61be1e.png

连接设备

在我们的例子中,iPhone 的 iTunes 备份被已知密码保护,所以最好的方法是方法 1:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/8d6fed72-ad97-4294-80b6-d7636f0b2ce1.png

选择提取方法

  1. 如果你希望备份数据加密(推荐),可以在下一页选择此选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/343de65a-4131-4ca3-978d-64d2546687ae.png

选择备份是否加密

  1. 现在是选择数据保存位置的时候了;在我们的例子中,保存位置是D:\驱动器的根目录:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/57eb13be-1d34-46b3-a744-e73b3e7d5a93.png

选择保存提取数据的位置

  1. 现在,采集过程将开始。确保设备在整个过程中都保持连接:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/57e9cbfc-6be3-4c86-86c6-78ce1c699fbc.png

提取数据

一旦提取过程完成,提取的数据将通过强大的 Physical Analyzer 插件进行解析。最终,你将获得一组分成多个类别的证据:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/94edba14-72bb-4366-b38b-a151fa0c3acd.png

由 Physical Analyzer 提取和解析的手机数据

数据文件也可以做同样的处理:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/9aa33e2e-747a-4a7d-a73f-7e4d873bdf78.png

由 Physical Analyzer 提取的数据文件

如你所见,括号中的红色数字代表已删除记录,这些记录已经通过 Physical Analyzer 的插件恢复。正如你所知,从广泛使用于 iOS 的 SQLite 数据库中恢复已删除的数据并不是奇迹。

说到 SQLite 数据库,Physical Analyzer 还有另一个令人惊叹的功能,可能对为你的移动取证报告添加自定义证据以及解析未知应用数据非常有用——SQLite 向导。你可以在 Tools | SQLite 向导下找到它:

  1. 首先选择一个数据库,当然,最好选择一个物理分析器不会自动解析的应用。在我们的例子中,这款应用叫做 Scan:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/97bd5ad7-0eec-41fa-9531-025ab7a00a03.png

选择数据库

  1. 确保你已经选择了包括已删除行选项;这将帮助你自动恢复数据,但当然,这也会增加误报记录的数量:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/2824e656-f6df-40c1-8992-e17ba433ab04.png

启动 SQLite 向导

因此,我们的应用用于扫描二维码,并包含四个感兴趣的列——扫描日期和时间、纬度、经度和扫描结果。所有这些行都属于ZSCSCANEVENT

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/ac215964-177a-4951-bf26-97457a0e3838.png

选择数据库表和列

  1. 下一步是选择时间戳。你已经了解了 iOS 时间戳的知识,应该能认出ZTIMELESSCREATIONDATE中的格式,但即使你没有,SQLite 向导也会为你做这件事:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/09b0f770-2836-49f8-bd4c-1562252624ae.png

选择时间戳格式

  1. 通用模型适用于任何数据库,但也有一些现有的物理分析器模型可以用于典型内容,例如聊天联系人。在我们的例子中,我们使用的是通用模型:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/728b0766-f96b-475a-ab3e-7b9f93396684.png

选择模型

一旦你选择了列的模型和字段类型,你就可以运行查询并将新解析的工件添加到你的提取中,之后再添加到报告中。

使用 Magnet AXIOM

Magnet AXIOM 是市场上最有用的数字取证工具之一。它可以用于计算机和移动取证;该套件的最新版本引入了全新的功能——云取证。至于 iOS 取证,它既可以用于逻辑采集和文件系统采集,并支持所有 iOS 版本——从最旧的到最新的。当然,它也可以用于解析 iTunes 备份和由第三方工具如 Elcomsoft iOS 取证工具包创建的物理镜像。

Magnet AXIOM 的最佳功能之一是它能够实时开始处理提取数据,因此你无需等采集过程完成后才开始取证分析。

Magnet AXIOM的特点

以下是Magnet AXIOM的特点:

  • 支持逻辑和文件系统(针对越狱设备)采集

  • 支持加密和未加密的 iTunes 备份

  • 恢复超过 500 种工件类型

  • 与其他流行的移动取证工具兼容,如 Cellebrite UFED 和 XRY

  • 包含内置的 SQLite 和 plist 查看器

  • 创建所谓的可移植案件,以便你可以与团队成员和第三方共享整个数据集

  • 可以生成几种流行格式的报告,如 Microsoft Excel、PDF 和 HTML

使用 Magnet AXIOM 进行逻辑采集和分析

如你所知,现代 iOS 设备的最常见获取方式是逻辑类型。以下是使用 Magnet AXIOM 获取 iOS 设备的步骤:

  1. 首先创建一个新案件:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c5d1fbc9-8565-42dc-97e4-f002ab701a43.png

创建新案件

  1. 由于我们正在处理的是一台 iOS 设备,因此我们将选择 MOBILE 选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/9bb9de17-c30b-4b75-a713-0f6f43f6dfef.png

选择证据来源

  1. 有多个选项可供选择,但在我们的情况下,iOS 选项是正确的:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c8307714-3cc7-40d5-ae64-58c93c1b66e9.png

选择证据来源

  1. 获取证据有三种选项——我们可以选择已经获取的镜像(例如,iTunes 备份或由第三方工具获取的文件系统镜像)、从设备中提取数据,或使用 GrayKey 进行获取。我们选择第二种选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/1fdfa17f-8d00-4697-bf4b-6be439edad46.png

选择获取证据

  1. 设备已被识别并准备好成像。如果你没有看到设备,请使用 UNKNOWN 选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/35fa4cba-5cbc-45f9-96bd-b17d97bb7aa1.png

选择设备

  1. 有两种提取方式——快速和完整。完整选项仅在你要获取的设备已越狱时才会显示。在我们的案例中,它没有越狱:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/a266db5b-e1ca-440a-9e25-6dfc2339ae6f.png

选择镜像类型

  1. 系统会提示你输入备份的密码。如你所记,这样做能获得更多数据,因此强烈推荐使用:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/0dcfbb9c-16e0-4c0c-acf8-56af7da401ed.png

加密备份

  1. 在开始获取和处理之前,你可以选择感兴趣的关键字,使用 Magnet.AI 对聊天进行分类,或配置动态应用查找器:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/63f0434f-027a-4d98-b09a-e7be703234bc.png

处理详细信息

动态应用查找器是 Magnet IEF 和 AXIOM 的功能,能够在镜像中查找潜在的移动聊天应用数据库。你可以在以下链接中了解更多关于这个功能的内容:www.magnetforensics.com/mobile-forensics/using-dynamic-app-finder-to-recover-more-mobile-artifacts/

  1. 你可以从这里自定义 MOBILE ARTIFACTS。例如,如果你只关心聊天证据,最好只选择这些类型的证据,这样可以缩短处理时间:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/1914a8c3-221f-4921-a314-1d0360abb809.png

选择移动证据

  1. 点击 ANALYZE EVIDENCE 按钮将开始获取和分析过程:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/f047bee1-653a-4e57-aeee-fa0e8998083b.png

镜像证据来源

  1. Magnet AXIOM 有两个窗口——Process 和 Examine。第一个用于监控获取和处理证据来源的过程,第二个则用于分析已提取和解析的数据。如前所述,你可以在处理阶段结束之前开始分析。只需在 Magnet Examine 中点击 LOAD NEW RESULTS 即可:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d74dc9a1-a755-4aff-800c-386899e13f69.png

正在加载新结果

  1. 处理阶段结束后,您可以在 Magnet Examine 的移动设备部分找到已解析的数据:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/58e6b0ce-8ae5-44f5-95ad-2b3d51bb5c55.png

移动设备部分

当然,它不会包括所有内容;您还可以在其他有价值的部分找到从 iOS 设备提取的证据,例如 CHATMEDIADOCUMENTS

使用 Belkasoft Evidence Center

Belkasoft Evidence Center 是另一款流行的数字取证工具,能够执行 iOS 设备的获取和分析。像 AXIOM 一样,它可以用于计算机、移动设备和云端取证。

Belkasoft Evidence Center 最棒的功能之一是它能够处理损坏的 iTunes 备份。因此,如果您有一个没有任何工具能够处理的备份,尝试使用 Belkasoft Evidence Center;根据我们的经验,它会成功处理此备份。

Belkasoft Evidence Center 的功能

以下是 Belkasoft Evidence Center 的功能:

  • 支持逻辑和文件系统(对于越狱设备)获取

  • 支持加密和未加密的 iTunes 备份

  • 支持损坏的 iTunes 备份

  • 恢复超过 700 种证据类型

  • 与其他流行的移动取证工具兼容,如 Cellebrite UFED 和 XRY

  • 包含内置的 SQLite 和 plist 查看器

  • 包含免费的脚本模块 BelkaScript,允许检查员编写自己的脚本来自动化一些常见任务

  • 可以生成多种流行格式的报告,如 Microsoft Excel、PDF 和 HTML

使用 Belkasoft Evidence Center 进行逻辑获取和分析

由于备份处理和分析是 Belkasoft Evidence Center 最优秀的功能之一,我们将在此为您详细介绍该过程:

  1. 让我们开始创建一个新案件:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/6aa17baa-7801-4e41-8351-cf3b850eca3b.png

创建新案件

  1. 这里有多个选项——您可以处理先前获取的镜像文件,例如 iTunes 备份,或者选择先从设备提取数据。让我们从逻辑获取开始。选择“移动设备”选项:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/04537589-c3f3-4e2b-9ce7-0400d718b69d.png

选择数据源

  1. 由于我们正在处理 iOS 设备,请选择 Apple。您将看到一个可用设备列表:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/6ad8756b-1b6e-4695-b3c4-e3d684c01055.png

可用设备进行获取

  1. 由于我们的设备没有越狱,因此我们的选择是逻辑获取或 iTunes 备份:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/a1d86b0d-b0b9-4a32-9431-62d5b29e244d.png

选择获取方法

  1. 一旦获取完成,您可以选择感兴趣的证据。确保只选择与 iOS 相关的证据;这将减少处理时间:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/92b4563d-aa6c-4fdd-874d-7e6bf20cd3b0.png

选择数据类型

  1. 处理完成后,提取的证据将显示在概览标签中:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/4d94b99e-1797-4af6-9e31-2953dd0eb62a.png

概览标签

  1. 最后,如果你想浏览法医镜像的文件系统,请使用文件系统标签:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/9b1a69d4-7ec9-4435-93b9-f75ec3845539.png

文件系统标签

其他可用的标签也可能很有用——Dashboard 标签显示你当前正在处理的案件的所有可用信息,任务管理器标签允许你监控处理进度,搜索结果标签显示关键词搜索结果。

使用 Elcomsoft Phone Viewer

Elcomsoft Phone Viewer 是一款能够解析和查看从 iOS 设备、BlackBerry 10 和 Windows Phone 设备提取的数据的工具。它提供只读、法医可靠的访问权限,适用于逻辑图像、文件系统图像,以及从云端提取的数据。

Elcomsoft Phone Viewer 的功能

以下是 Elcomsoft Phone Viewer 的功能:

  • 分析在线活动,包括网页浏览历史、书签和打开的标签页。

  • 提供对同步数据、密码和用户数据的访问,包括信息、通话记录和联系人。

  • 它将多媒体文件分类,以便你更容易理解一张照片是通过信息接收的,还是通过手机的摄像头拍摄的。

  • 汇总来自不同来源的位置信息。

  • 支持逻辑图像、文件系统图像以及 iTunes 和 iCloud 备份。

使用 Elcomsoft Phone Viewer 进行文件系统分析

Elcomsoft Phone Viewer 不支持设备采集,但可以解析并帮助你查看通过 Elcomsoft iOS Forensic Toolkit、Elcomsoft Cloud eXtractor 或几乎任何其他能够进行 iOS 设备采集的工具提取的数据。

若要查看之前使用 Elcomsoft iOS Forensic Toolkit 创建的文件系统图像,请按照以下步骤操作:

  1. 启动 Elcomsoft Phone Viewer 并选择合适的数据源。在我们的案例中,这个数据源是 iOS 设备图像:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/4e3e89dc-52aa-4480-b1b3-2623253f9e8d.png

选择数据源

  1. 选择你想要导入的文件和要解析的证据:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/f5eb285a-2f96-4873-9400-b3da4f144885.png

选择数据类型

  1. 等待提取过程完成:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/35cb6e79-5408-457c-a6be-b6e5db7efbe4.png

提取过程

结果,你将获得设备的信息,以及按多个类别划分的解析证据:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/4cea1620-5a95-4f4f-8318-9b4166f643e8.png

解析的证据

现在,你可以轻松查看、筛选并导出任何可能对你的检查有用的数据——你只需要点击相应的图标。

总结

法医工具对检查员很有帮助,因为它们不仅节省了时间,还让过程变得更加简单。然而,并不是每个人都有足够大的预算来购买商业工具进行 iOS 采集。虽然有免费的采集工具,但支持可能有限,可能需要多次提取才能获得与商业工具相同数量的数据。

对于越狱设备,可以通过 SSH 将 iOS 设备连接到取证工作站进行实时检查,这也是一些工具获取必要数据的方法。然而,对于那些刚接触移动取证的人来说,这并不是一种推荐的方法。为了此目的,本章介绍了几种可用的 iOS 取证工具,并包括了你需要遵循的获取和分析步骤。

你应该采取进一步的措施来验证和理解可能作为调查一部分使用的每个工具。我们建议你使用已知数据的测试设备,以确保没有任何遗漏,证据没有被篡改,并且在可能的情况下,方法能够让你访问到感兴趣的数据。

下一章将介绍安卓取证,并涵盖安卓平台的基本概念。

第二部分:安卓取证

本节将涵盖关于安卓设备取证所需了解的一切内容。我们将从理解安卓平台及其文件系统开始,然后讨论设置、获取/提取和恢复等主题。我们还将讨论安卓恶意软件,并探讨如何使用开源工具对安卓应用进行逆向工程。

本章包含以下内容:

  • 第七章,了解安卓

  • 第八章,安卓取证设置与数据提取前技术

  • 第九章,安卓数据提取技术

  • 第十章,安卓数据分析与恢复

  • 第十一章,安卓应用分析、恶意软件与逆向工程

第八章:理解 Android

在前面的章节中,我们详细介绍了 iOS 设备的相关内容,包括文件系统结构、关键文件、备份文件以及获取和分析方法。从本章开始,我们将重点关注 Android 平台,以及如何对 Android 设备进行取证。对 Android 生态系统、安全限制、文件系统及其他特性的良好理解,将在取证调查中提供帮助。掌握这些基础知识将有助于取证专家在进行调查时做出明智的决策。

本章我们将涵盖以下主题:

  • Android 的演变

  • Android 架构

  • Android 安全性

  • Android 文件层级结构

  • Android 文件系统

Android 的演变

Android 是一款基于 Linux 的移动操作系统,专为触摸屏移动设备开发。它由一个名为 开放手机联盟OHA)的公司联盟开发,主要贡献者和商业推广者是 Google。自首次发布以来,Android 操作系统经历了显著的演变。Android 于 2008 年正式向公众推出,版本为 1.0。在 2009 年发布的 Android 1.5 杯形蛋糕版本中,Android 版本命名为糖果的传统正式诞生。接下来的十年中,版本名称按字母顺序发布。然而,在 2019 年,Google 宣布停止基于糖果的命名方式,未来版本将使用数字顺序命名。在最初的几年里,Android 版本每年更新超过两次,但近年来版本更新通常每年一次。最新的主要 Android 更新是 Android 11,它是 Android 操作系统的第十一大版本,于 2020 年 2 月 19 日由 Google 发布。

以下是截至本文写作时的 Android 版本历史概览:

版本版本名称发布日期
Android 1.0苹果派2008
Android 1.1香蕉面包2009
Android 1.5杯形蛋糕2009
Android 1.6甜甜圈2009
Android 2.0闪电2009
Android 2.2冰激凌三明治2010
Android 2.3姜饼2010
Android 3.0蜂巢2011
Android 4.0冰淇淋三明治2011
Android 4.1果冻豆2012
Android 4.4奇巧2013
Android 5.0糖果2014
Android 6.0棉花糖2015
Android 7.0牛轧糖2016
Android 8.0奥利奥2017
Android 9.0甜品派2018
Android 10.0Q2019
Android 11R2020

这一演变也大大影响了 Android 的安全性考虑以及取证技术的应用。例如,最初版本的 Android 并没有全盘加密FDE)机制,将数据以加密格式存储在设备内。因此,从设备中提取数据对取证调查员来说比现在容易得多。随着每个 Android 版本的更新,越来越多的安全功能,如应用权限、可信执行环境TEE)和安全内核,已经被添加到平台中,以提高整体安全性,但同时也使得数据提取的过程变得更加复杂。我们将在本章的其他部分详细讨论这些安全功能。

现在我们已经了解了 Android 的历史和版本,接下来我们将看一下 Android 的架构。

Android 架构

要有效理解在处理 Android 时的取证概念,你应该对 Android 架构有基本了解。就像一台计算机一样,任何与用户交互并执行复杂任务的计算系统都需要操作系统来有效处理任务。这个操作系统(无论是桌面操作系统还是移动操作系统)负责管理系统资源,为应用程序提供与硬件或物理组件交互的方式,以完成特定任务。Android 目前是最受欢迎的移动操作系统,旨在为移动设备提供支持。你可以在developer.android.com/about/android.html了解更多信息。

作为一个开源操作系统,Android 根据 Apache 许可证发布其代码,这是许多开源许可证之一。实际上,这意味着任何人(特别是设备制造商)都可以访问它,随意修改它,并根据任何设备的要求使用软件。这也是 Android 被广泛接受的主要原因之一。使用 Android 的知名厂商包括三星、HTC、索尼和 LG。

像任何其他平台一样,Android 由一层一层叠加在一起的各个层次组成。要理解 Android 生态系统,首先必须对这些层次及其作用有基本了解。

下图总结了 Android 软件栈中涉及的各个层次:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/6ee0ce43-84de-41ea-8a04-dec28c003cc9.png

Android 架构

此图像是基于由 Android 开源项目创建并共享的作品进行修改的: developer.android.com/guide/platform

许可证: creativecommons.org/licenses/by/4.0/

每一层执行多个操作,以支持特定的操作系统功能。每一层为其上方的层提供服务。让我们稍微详细了解一下它们。

Linux 内核层

Android 操作系统建立在 Linux 内核之上,并且谷歌对其进行了一些架构上的修改。选择 Linux 内核的原因有多个,其中最重要的是,Linux 是一个可移植的平台,可以在不同硬件上轻松编译。内核充当软件和硬件之间的抽象层。以相机为例,当你使用设备上的相机按钮拍照时,会发生什么呢?在某个时刻,硬件指令(按下按钮)必须转换为软件指令(拍照并将其存储在相册中)。内核包含驱动程序来促进这一过程。当用户按下按钮时,指令会传递到内核中相应的相机驱动程序,该驱动程序向相机硬件发送必要的命令,这类似于按下键盘上的按键时的情况。简而言之,内核中的驱动程序控制着底层硬件。如 Android 架构模型所示,内核包含与 Wi-Fi、蓝牙、通用串行总线USB)、音频、显示等相关的驱动程序。

Linux 内核负责管理 Android 的核心功能,例如进程管理、内存管理、安全性和网络连接。Linux 在安全性和进程管理方面是一个经过验证的平台。Android 利用了现有的 Linux 开源操作系统,为其生态系统构建了坚实的基础。每个版本的 Android 都有不同版本的 Linux 内核。Oreo 版本的 Android 使用的是 Linux 内核 3.18 或 4.9,而 Pie 版本使用的是 Linux 内核 4.4、4.9 或 4.14。Android Q 版本则针对的是 Linux 内核 4.9、4.14 或 4.19。实际的内核取决于具体的设备。

硬件抽象层

设备的硬件能力通过 硬件抽象层HAL)暴露给高层 Java 框架。HAL 由多个库模块组成,这些模块实现了特定类型硬件组件的接口。这使得硬件供应商能够在不更改高层系统的情况下实现功能。

Android 架构中的下一层由 Android 的原生库组成。这些库是用 C 或 C++ 编写的,帮助设备处理各种不同的数据。例如,SQLite 库对于从数据库中存储和检索数据非常有用。其他库包括媒体框架、WebKit、Surface Manager 和 安全套接字库SSL)。

媒体框架库作为主要接口,向其他底层库提供服务。WebKit 库在网页浏览器中提供网页,而 Surface Manager 库负责维护图形。在同一层中,我们有 Android RuntimeART)和核心库。ART 负责在 Android 设备上运行应用程序。运行时(runtime)一词指的是应用程序启动到关闭的这段时间。

Dalvik 虚拟机(DVM)

您在 Android 设备上安装的所有应用程序都是用 Java 编程语言编写的。当 Java 程序被编译时,我们会得到字节码。虚拟机VM)是一种作为操作系统运行的应用程序——也就是说,可以使用虚拟机在 Mac 上运行 Windows 操作系统,反之亦然。Java 虚拟机JVM)就是这样一种可以执行前面提到的字节码的虚拟机。但 Android 5.0 之前的版本使用的是一种叫做 DVM 的虚拟机来运行它们的应用程序。

DVM 运行 Dalvik 字节码,这是通过Dalvik 可执行文件DEX)编译器转换的 Java 字节码。因此,.class 文件通过 dx 工具转换为 dex 文件。与 Java 字节码相比,Dalvik 字节码更适合低内存和低处理能力的环境。另外,需要注意的是,JVM 的字节码由一个或多个 .class 文件组成,具体取决于应用程序中存在的 Java 文件数量,而 Dalvik 字节码仅由一个 dex 文件组成。每个 Android 应用程序都运行自己实例的 DVM。这是 Android 安全性的重要方面,将在第八章《Android 取证设置与数据提取前技术》中详细讨论。

下图提供了 Android 的 DVM 与 Java 的 JVM 的差异:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/ff51cea3-861f-42fb-b320-de90d9d3b12a.png

JVM 与 DVM

现在我们已经理解了 JVM 和 DVM 之间的基本差异,让我们快速看一下 ART。

ART

从 Android 5.0 Lollipop 版本开始,Dalvik 被 ART 替代。Android 早期版本使用 即时编译JIT)与 Dalvik(频繁执行的操作会被识别并动态编译成本地机器代码)。这种频繁使用字节码的本地执行,称为追踪(traces),提供了显著的性能提升。

与 Dalvik 不同,ART 使用提前编译AOT)技术,在应用安装时将整个应用程序编译成原生机器代码。这会自动增加应用的安装时间,但其主要优势是消除了 Dalvik 的解释和基于跟踪的 JIT 编译,从而提高了效率并减少了功耗。ART 使用名为 dex2oat 的工具,接受 DEX 文件作为输入,并为目标设备生成已编译的应用可执行文件。使用 ART 后,优化的 DEX.odex)文件已被 可执行和可链接格式ELF)的可执行文件取代。

Java API 框架层

应用框架是处理手机基本功能的层级,例如资源管理、处理电话等。通过这一层,安装在设备上的应用可以直接与设备进行交互。以下是应用框架层中的一些重要模块:

  • 电话管理器:此模块管理所有语音电话。

  • 内容提供者:此模块管理不同应用之间的数据共享。

  • 资源管理器:此模块管理应用中使用的各种资源。

最后一层是系统应用层,接下来将讨论这一层。

系统应用层

这是最顶层的层级,用户可以直接与设备进行交互。这里有两种类型的应用——预安装应用和用户安装应用。预安装应用——如拨号器、网页浏览器和联系人——是随设备一起提供的。用户安装的应用可以从不同的地方下载,例如 Google Play 商店、亚马逊市场等。你在手机上看到的所有内容(联系人、邮件、相机等)都是应用。

到目前为止,我们已经了解了 Android 架构和重要的构建模块。接下来,我们将深入探讨 Android 操作系统中的一些固有安全特性。

Android 安全

Android 的设计重点之一就是安全性。Android 作为一个平台,提供并执行某些功能,通过多层次的安全保护用户数据。平台有一些默认的安全设置可以保护用户,同时开发社区可以利用某些功能来构建安全的应用程序。作为一名取证调查员,了解 Android 安全的内部机制至关重要,因为这有助于识别在特定情境下应采用的最佳技术、某些技术的技术限制等。

接下来的几个章节将帮助我们更好地了解 Android 的安全特性和功能。

关于 Android 安全的详细解释可以在 source.android.com/security/ 找到。

安全内核

内核是任何操作系统安全性的核心。通过选择 Linux,作为一个经过多年来发展的可信平台,Android 建立了一个非常稳固的安全基础。Linux 内核固有的大多数安全功能都被 Android 自动采纳。例如,Linux 的基于用户的权限模型,实际上在 Android 中也运作良好。如前所述,Linux 内核中内置了大量特定代码。随着每个 Android 版本的发布,内核版本也发生了变化。以下表格显示了 Android 版本及其对应的内核版本:

Android 版本Linux 内核版本
12.6.25
1.52.6.27
1.62.6.29
2.22.6.32
2.32.6.35
3.02.6.36
4.03.0.1
4.13.0.31
4.23.4.0
4.23.4.39
4.43.8
5.03.16.1
6.03.18.1
7.04.4.1
8.04.10
9.04.4, 4.9 和 4.14
10.04.9, 4.14 和 4.19

Linux 内核自动将其一些固有的安全功能带到 Android 平台,包括以下内容:

  • 基于用户的权限模型

  • 运行进程的隔离(应用沙箱)

  • 安全的进程间通信IPC

现在我们来了解这些功能中的每一个。

权限模型

如下图所示,任何 Android 应用都必须获得用户的权限才能访问敏感功能——例如互联网、拨号器等。这为用户提供了一个机会,提前了解哪些设备功能正在被应用访问。简而言之,它需要用户的权限才能执行任何类型的恶意活动(窃取数据、破坏系统等)。

这种模型帮助用户防止攻击,但如果用户没有意识到并授予了很多权限,就会陷入麻烦(记住——在任何设备上安装恶意软件时,最弱的环节始终是用户)。

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/cd2f6a83-7870-4892-8d69-d73868619edd.png

Android 中的权限模型

在 Android 6.0 之前,用户需要在安装时授予权限。用户必须接受所有权限才能安装应用,或者选择不安装应用。但是,从 Android 6.0 开始,用户在应用运行时授予应用权限。这种新的权限系统还允许用户更好地控制应用的功能,通过允许用户授予选择性权限。例如,用户可以拒绝某个应用访问他们的位置,但可以提供对互联网的访问权限。用户可以随时通过进入应用的设置界面撤销权限。从取证的角度来看,这意味着可以从设备中提取的信息不仅取决于设备和已安装的应用程序,还取决于用户配置的权限。

应用沙箱

在 Linux 系统中,每个用户都会被分配一个唯一的用户标识符UID),并且用户之间是隔离的,一个用户不能访问另一个用户的数据。然而,某个特定用户下的所有应用程序都以相同的权限运行。类似地,在 Android 中,每个应用程序都作为一个独立的用户运行。换句话说,每个应用程序都会被分配一个 UID,并作为一个独立的进程运行。这一概念确保了内核级别的应用程序沙盒。内核通过利用现有的 Linux 概念,如 UID 和 组标识符GID),来管理应用程序之间的安全限制。如果一个应用程序试图做一些恶意操作——比如读取另一个应用程序的数据——这是不允许的,因为该应用程序没有用户权限。因此,操作系统会保护应用程序,避免其访问其他应用程序的数据。

安全的进程间通信(IPC)

Android 提供了安全的进程间通信(IPC),通过这种方式,应用程序中的一个活动可以向同一应用程序或不同应用程序中的另一个活动发送消息。为了实现这一点,Android 提供了 IPC 机制:意图(Intents)、服务(Services)、内容提供者(Content Providers)等。这对于为 Android 平台编写第三方应用程序的开发者来说尤为重要。在后台,取证工具利用这些概念中的一些来获取设备信息。

应用程序签名

所有安装的应用程序必须进行数字签名。开发者只能在签名应用程序后,将其上传到 Google Play 商店。签名应用程序所使用的私钥由开发者持有。通过相同的密钥,开发者可以为应用程序提供更新、在应用程序间共享数据等操作。未经签名的应用程序,如果尝试安装,将会被 Google Play 或 Android 设备上的包安装器拒绝。在 Android 8.0 及以上版本中,用户必须进入“安装未知应用”设置,才能运行未经签名的应用程序,如下所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/c0984e6e-5005-4e9e-ab00-3b83223b7431.png

Android 中的安装未知应用屏幕

现在我们已经了解了一些关于数字签名应用程序的基本知识,接下来让我们来看一下 Android 中的一个安全特性。

安全增强 Linux(SELinux)

SELinux 是一种安全功能,它在 Android 4.3 中引入,并在 Android 5.0 中完全强制执行。在此之前,Android 安全基于 自主访问控制 (DAC),即应用程序可以请求权限,用户可以授予或拒绝这些权限。因此,恶意软件可以通过获取这些权限来在手机上制造破坏。但 SE Android 使用 强制访问控制 (MAC),确保应用程序在隔离的环境中运行。因此,即使用户安装了恶意应用,恶意软件也无法访问操作系统并破坏设备。SELinux 用于对所有进程执行 MAC,包括那些以 root 权限运行的进程。在 SELinux 中,任何没有明确允许的操作,默认都会被拒绝。SELinux 可以在两种全局模式下运行:宽容模式,记录权限拒绝但不强制执行;以及 强制模式,记录并强制执行权限拒绝。有关 SELinux 的更多详细信息,请参阅 source.android.com/security/selinux/concepts

FDE

从 Android 6.0 Marshmallow 开始,谷歌要求大多数设备启用 FDE,只要硬件符合某些最低标准。加密是将数据通过一个秘密密钥转换成密文的过程。在 Android 设备中,FDE 指的是使用秘密密钥加密所有用户数据的过程。该密钥又由用户设置的 个人识别号码 (PIN) /图案/密码进行加密。一旦设备被加密,所有用户创建的数据会在写入磁盘前自动加密,所有读取操作则会在返回数据给调用进程前自动解密。Android 中的 FDE 仅适用于 嵌入式多媒体卡 (eMMC) 和类似的闪存设备,这些设备在内核中以块设备的形式呈现。

从 Android 7.x 开始,谷歌决定将加密功能从 FDE 转移到 基于文件的加密 (FBE) 中。在 FBE 中,不同的文件使用不同的密钥进行加密。通过这种方式,这些文件可以独立访问,而无需解密整个分区。因此,系统现在可以显示开放通知或访问与启动相关的文件,而无需等待用户解锁手机。

Android 密钥库

Android 密钥库用于保护敏感的加密密钥免受未授权访问。存储在密钥库中的密钥可以用于执行加密操作,但无法从密钥库中提取出来。硬件支持的密钥库提供了硬件级别的安全性——也就是说,即使操作系统被攻击,硬件模块中的密钥仍然安全。

TEE

TEE 是一个隔离区域(通常是一个独立的微处理器),旨在保证存储在其中的数据的安全性,同时确保代码的完整性执行。移动设备上的主处理器被认为是不可信的,不能用于存储机密数据(如加密密钥)。因此,TEE 专门用于执行这些操作,主处理器上运行的软件将任何需要使用机密数据的操作委托给 TEE 处理器。

验证启动

验证启动旨在确保在 Android 设备上执行的所有代码来自合法的来源,而非来自攻击者或欺诈行为。它建立了完整的信任链,并防止任何其他操作系统的侧加载。在设备启动过程中,每个阶段都会在交给下一个阶段执行之前,验证其完整性和真实性。

现在,我们将探讨 Android 设备上可用的各种分区和文件系统。

Android 文件层次结构

为了对任何系统(桌面或移动)进行取证分析,了解底层的文件层次结构非常重要。基本了解 Android 如何组织文件和文件夹中的数据,能够帮助取证分析师将研究范围缩小到特定问题。就像其他操作系统一样,Android 使用多个分区。本章提供了一些最重要分区及其存储内容的概述。

值得再次提到的是,Android 使用 Linux 内核。因此,如果你熟悉类 Unix 系统,你将会非常了解 Android 的文件层次结构。对于那些不太了解 Linux 模型的人,以下是一些基本信息:在 Linux 中,文件层次结构是一个单一的树形结构,树的顶部表示为 /(称为 根目录)。这与在驱动器中组织文件(如 Windows 系统)是不同的。无论文件系统是本地的还是远程的,都将位于根目录下。

Android 文件层次结构是现有 Linux 层次结构的定制版本。根据设备制造商和底层 Linux 版本,这一层次结构可能会有一些不显著的变化。以下是大多数 Android 设备常见的几个重要文件夹列表。列出的一些文件夹仅通过 root 权限可见。Rooting 是在 Android 设备上获得特权访问权限的过程。关于 rooting 和执行 adb 命令(下文列表中展示的命令)的更多详细信息,请参见第八章,Android 取证设置与数据提取前技巧

  • /boot:顾名思义,这个分区包含手机启动所需的信息和文件。它包含内核和随机存取存储器RAM)磁盘,因此没有这个分区,手机无法启动其进程。RAM 中的数据非常有价值,应该在取证采集时进行捕获。

  • /system:该分区包含与系统相关的文件,除了内核和 RAM 磁盘之外。这个文件夹绝不能删除,否则设备将无法启动。可以通过以下命令查看此分区的内容:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/d596a874-3308-425c-8db7-270b404755f3.png

/system 分区

    • /recovery:该分区用于备份目的,并允许设备进入恢复模式。在恢复模式下,您可以找到修复手机安装的工具。
  • /data:这是包含每个应用数据的分区。大多数属于用户的数据——如联系人、短信和拨打的号码——都存储在这个文件夹中。从取证角度来看,这个文件夹具有重要性,因为它保存着宝贵的数据。可以通过以下命令查看数据文件夹的内容:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/dbfb40c0-e007-4322-be05-327102e4b80c.png

/data 分区

    • /cache:这是用于存储频繁访问的数据和一些日志文件以便快速检索的文件夹。/cache 分区对于取证调查也很重要,因为这里的数据可能在 /data 分区中已经不存在。
    • /misc:顾名思义,这个文件夹包含杂项设置的信息。这些设置主要定义设备的状态——即开/关。关于硬件设置、USB 设置等信息可以从此文件夹中访问。
  • /sdcard:这是保存所有Secure DigitalSD)卡上信息的分区。它非常重要,因为它可以包含图片、视频、文件、文档等信息。

现在我们已经理解了 Android 文件层级结构,并查看了其中的重要文件夹,接下来我们将在下一部分看看文件系统。

Android 文件系统

理解文件系统是取证方法中的一个重要部分。了解文件系统的属性和结构对于取证分析非常有用。文件系统指的是从存储卷中存储、组织和检索数据的方式。基本安装可能基于一个卷,分成多个分区;在这里,每个分区都可以由不同的文件系统管理。正如 Linux 中的情况一样,Android 使用挂载点,而不是驱动器(即 C:E:)。

在 Linux 中,挂载是将一个额外的文件系统附加到计算机当前可访问的文件系统中的操作。Linux 中的文件系统不是通过驱动器名称访问的,而是组织成一个多级层次结构,最顶层是一个名为root的目录。每个新的文件系统在挂载时都会加入这个单一的文件系统树中。

无论文件系统是存在于本地设备上,还是远程设备上,都没有任何区别。所有内容都在一个从root开始的单一层次结构中。每个文件系统定义了自己的规则来管理卷中的文件。根据这些规则,每个文件系统在文件检索、速度、安全性、大小等方面提供不同的性能。Linux 使用多个文件系统,安卓也是如此。从法医角度来看,了解安卓使用的文件系统并识别与调查相关的文件系统是非常重要的。例如,存储用户数据的文件系统是我们关注的重点,而用于启动设备的文件系统则相对次要。

查看安卓设备上的文件系统

可以通过查看proc文件夹中的filesystems文件内容来确定安卓内核支持的文件系统。可以使用# cat /proc/filesystems命令查看该文件的内容:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/233ac818-3d93-4d98-8b96-8a364216653d.png

安卓设备上的文件系统

在前面的输出中,第一列告诉我们文件系统是否已挂载在设备上。具有nodev属性的文件系统未挂载在设备上。

第二列列出了设备上存在的所有文件系统。简单的mount命令会显示设备上可用的不同分区,如下所示:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/33438950-4399-4e5b-aa48-07cbeb9abf73.png

安卓设备上的分区

接下来,我们来看一下安卓上的常见文件系统。

安卓上的常见文件系统

安卓中的文件系统主要可以分为以下三类:

  • 闪存存储文件系统

  • 基于媒体的文件系统

  • 虚拟文件系统

让我们详细看看它们。

闪存存储文件系统

闪存存储是一种持续通电的非易失性存储器NVM),即在没有电源供应的情况下仍能保持数据。闪存可以在称为块的内存单元中被擦除和重新编程。虽然支持的文件系统根据设备和底层 Linux 内核的不同而有所变化,但常见的闪存存储文件系统如下:

  • 扩展文件分配表exFAT)是微软专有的文件系统,专门设计用于像 USB 闪存盘和 SD 卡这样的闪存驱动器。由于许可要求,它并不是标准 Linux 内核的一部分。但仍然有一些厂商为此文件系统提供支持。

  • 闪存友好文件系统F2FS)于 2013 年 2 月发布,用于支持运行 Linux 3.8 内核的三星设备。F2FS 采用基于日志的结构化方法,优化 NAND 闪存。该文件系统的离线支持功能是其亮点,尽管它仍在不断更新中,且处于过渡阶段。

  • 另一个闪存文件系统 2YAFFS2)是一个开源的单线程文件系统,发布于 2002 年。它主要设计用于处理 NAND 闪存时的高效性。YAFFS2 使用 带外OOB),但在取证过程中,这通常无法正确捕获或解码,这使得分析变得困难。我们将在第九章中进一步讨论,Android 数据提取技术。YAFFS2 曾是最受欢迎的版本,并且至今仍广泛应用于 Android 设备中。YAFFS2 是一个基于日志的文件系统,即使在突然断电的情况下,也能保证数据的完整性。2010 年曾宣布,在 Gingerbread 版本之后,设备将从 YAFFS2 转向 第四扩展文件系统EXT4)。目前,YAFFS2 不再被较新的内核版本支持,但某些移动厂商可能仍会继续支持它。

  • 健壮文件系统RFS)支持三星设备上的 NAND 闪存。RFS 可以总结为 文件分配表 16FAT16)或 FAT32 文件系统,其中启用了通过事务日志的日志记录。许多用户抱怨三星应坚持使用 EXT4。RFS 已知存在延迟问题,导致 Android 功能变慢。

接下来是基于媒体的文件系统。

基于媒体的文件系统

以下是一些 Android 设备支持的基于媒体的文件系统。

扩展文件系统EXT),1992 年专为 Linux 内核推出,是最早的文件系统之一,并且采用了虚拟文件系统。EXT2、EXT3 和 EXT4 是后续版本。EXT3 相较于 EXT2 的主要优点是日志记录功能。有了 EXT3,如果发生意外关机,就不需要验证文件系统。EXT4 文件系统在实现双核处理器的移动设备中变得越来越重要。已知 YAFFS2 文件系统在双核系统上存在瓶颈。随着 Android 的 Gingerbread 版本,YAFFS 文件系统被替换为 EXT4。

以下是三星 Galaxy 移动设备上使用 EXT4 的挂载点:

/dev/block/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0    0
/dev/block/mmcblk0p3 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered 0 0
/dev/block/mmcblk0p8 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered 0 0
/dev/block/mmcblk0p12 /data ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered,n oauto_da_alloc,discard 0 0  

虚拟文件分配表VFAT)是对 FAT16 和 FAT32 文件系统的扩展。微软的 FAT32 文件系统被大多数 Android 设备所支持,并且几乎所有主要操作系统(包括 Windows、Linux 和 macOS)都支持它。这使得这些系统可以轻松地读取、修改和删除 Android 设备上 FAT32 部分的文件。大多数外部 SD 卡都是使用 FAT32 文件系统格式化的。

请观察以下输出,显示了 /sdcard/secure/asec 挂载点使用 VFAT 文件系统:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/3d4cba12-e8f5-458a-af33-cce3f715f589.png

Android 中的 mount 命令输出

最后一类是假文件系统。

假文件系统

假文件系统,顾名思义,并非实际的文件,而是文件的逻辑分组。以下是 Android 中一些重要的假文件系统:

  • 根文件系统(rootfs)是 Android 的主要组件之一,包含了启动设备所需的所有信息。当设备开始启动过程时,需要访问许多核心文件,因此它会挂载根文件系统。如前所示的 mount 命令行输出所示,这个文件系统挂载在/root 文件夹)下。因此,这是所有其他文件系统逐步挂载的文件系统。如果这个文件系统损坏,设备将无法启动。

  • sysfs 文件系统挂载 /sys 文件夹,该文件夹包含有关设备配置的信息。以下输出显示了 Android 设备中 sys 目录下的各个文件夹:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/5539a170-e9b9-432a-b089-f9a0aaf70de5.png

Android 中 /sys 目录下的文件夹

由于这些文件夹中的数据大多数与配置相关,因此对于法医调查员来说通常意义不大。但在某些情况下,我们可能希望检查手机上某个特定设置是否已启用,在这种情况下,分析这个文件夹可能会有所帮助。

请注意,每个文件夹包含大量文件。通过法医采集捕获这些数据是确保数据在检查过程中未发生更改的最佳方法。

  • devpts 文件系统为 Android 设备上的终端会话提供接口。它挂载在 /dev/pts 下。每当建立一个终端连接时——例如,当 adb shell 连接到 Android 设备时——一个新的节点会在 /dev/pts 下创建。以下是当 adb shell 连接到设备时的输出:
shell@Android:/ $ ls -l /dev/pts ls -l /dev/pts
crw------- shell shell 136, 0 2013-10-26 16:56 0
  • cgroup 文件系统代表 控制组。Android 设备使用这个文件系统来跟踪它们的任务。它们负责聚合任务并进行跟踪。此数据在法医分析中通常不太有用。

  • proc 文件系统包含有关内核数据结构、进程以及其他系统相关信息,这些信息存储在 /proc 目录中。例如,/sys 目录包含与内核参数相关的文件。同样,/proc/filesystems 显示设备上可用的文件系统列表。以下命令显示设备的 中央处理单元 (CPU) 的所有信息:

https://github.com/OpenDocCN/freelearn-sec-pt3-zh/raw/master/docs/prac-mobi-frsc-4e/img/f84b90ee-5d42-419a-abf3-b9b5871a95e5.png

在 Android 设备上运行 cpuinfo 命令的输出

类似地,还有许多其他有用的文件,在你浏览它们时提供了宝贵的信息。

  • tmpfs 文件系统是设备上的一种临时存储设施,它将文件存储在 RAM(易失性内存)中。使用 RAM 的主要优点是访问和检索速度更快。但一旦设备重新启动或关闭,这些数据将无法再访问。因此,取证调查员必须在设备重启之前检查 RAM 中的数据,或通过 RAM 获取方法提取数据。

当今的取证工具可以轻松挂载这些文件系统,并在 图形用户界面 (GUI) 屏幕上显示其内容,从而使取证调查员能够轻松地浏览和解析这些文件。在 Android 取证的初期,调查员通常需要运行一系列 Linux 或 Windows 命令来格式化并查看这些文件系统。

总结

在本章中,我们介绍了 Android 操作系统的基础特性、文件系统以及在取证调查中有用的其他细节。我们了解了 Android 中内置的有趣安全功能。与 iOS 不同,Android 存在多个变种,因为许多设备运行 Android 操作系统,每个设备可能具有不同的文件系统和独特的功能。Android 是开放和可定制的,这也改变了数字取证的竞争格局。这些知识将有助于理解取证获取技术。

在下一章中,我们将讨论如何在执行分析之前设置取证工作站。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值