原文:
zh.annas-archive.org/md5/6EFD6E14F5596709CDC9A37A8F4A6218
译者:飞龙
前言
手机取证是在取证条件下从手机中检索数据的科学。这是我们成功的《实用移动取证》书籍的第四版,深入探讨了移动取证的概念及其在当今世界的重要性。
本书侧重于教授您在各种移动平台上调查移动设备的最新取证技术。您将学习多个操作系统版本的取证技术,包括 iOS 12、iOS 13、Android 9、Android 10 和 Windows 10。您将深入了解最新的开源和商业移动取证工具,使您能够有效地分析和检索数据。您将学习如何检查设备,从云中检索数据,并成功记录调查报告。您将探索应用程序的逆向工程和识别恶意软件的方法。您还将遇到解析流行的第三方应用程序,如 Facebook 和 WhatsApp。
通过本书,您将掌握各种移动取证技术,以便借助开源解决方案分析和提取移动设备中的数据。
本书的读者对象
本书适用于在移动取证或移动取证开源解决方案方面具有少量或基本经验的取证员。本书还对计算机安全专业人员、研究人员以及希望更深入了解移动内部机理的任何人都有用。对数字取证实践的一些了解将有所帮助。
本书涵盖的内容
第一章《移动取证简介》介绍了移动取证的概念、其核心价值和所涉及的挑战。本章还概述了执行移动取证所涉及的实际方法和最佳实践。
第二章《了解 iOS 设备的内部机理》提供了对 iOS 取证的洞察。您将了解文件系统布局、安全功能以及文件在 iOS 设备上的存储方式。
第三章《从 iOS 设备获取数据》讨论了将帮助您从 iOS 设备获取数据以进行取证检查的工具。并非所有工具都是平等的,因此了解完成工作的最佳工具非常重要。
第四章《从 iOS 备份中获取数据》详细讨论了 iOS 设备备份文件,包括用户、取证、加密和 iCloud 备份文件,以及进行取证检查的方法。
第五章《iOS 数据分析和恢复》进一步深入了取证调查,向取证员展示如何分析从备份文件中恢复的数据。将详细解释包含潜在证据价值数据的区域。
第六章《iOS 取证工具》为熟悉目的,介绍了一些商业工具的使用,例如 Elcomsoft iOS 取证工具包、Cellebrite(UFED4PC、Touch 和 Physical Analyzer)、BlackLight、Oxygen 取证侦探、AccessData MPE+、EnCase、Belkasoft 证据中心、MSAB XRY 等,这些工具可用于对 iOS 设备进行取证和分析。本章详细介绍了执行 iOS 设备取证和分析所需的流程。
第七章《了解 Android》介绍了 Android 平台的基本知识、内置安全功能和文件系统。本章建立了在接下来的章节中有用的基本取证知识。
第八章,Android 取证设置和数据提取前技术,告诉您在设置数字取证检查环境时要考虑什么。本章提供了有关对 Android 设备进行 root 和绕过屏幕锁定功能的逐步信息。
第九章,Android 数据提取技术,帮助您识别 Android 设备上的敏感位置,并解释了可以应用于设备以提取必要信息的各种逻辑和物理技术。
第十章,Android 数据分析和恢复,解释了如何从图像文件中提取相关数据,例如通话记录、短信和浏览历史。我们还将介绍数据恢复技术,通过这些技术,我们可以从设备中恢复已删除的数据。
第十一章,Android 应用程序分析、恶意软件和逆向工程,解释了虽然前几章讨论的数据提取和数据恢复技术提供了对有价值数据的访问,但本章中的应用程序分析帮助我们获取有关应用程序具体信息的权限和权限。
第十二章,Windows 手机取证,讨论了 Windows 手机,这些手机在移动市场上所占份额不多。因此,大多数取证从业人员对设备上存在的数据格式、嵌入式数据库和其他工件并不熟悉。本章概述了 Windows 手机取证,描述了在 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 Publishing 对您滥用本书中的任何信息不承担任何责任。本书中的信息只能在获得适当人员的书面授权的测试环境中使用。
第一章:移动取证简介
毫无疑问,移动设备已经成为我们生活的一部分,并彻底改变了我们进行大部分活动的方式。因此,移动设备现在是一个存储有关其所有者的敏感和个人信息的巨大存储库。这反过来导致了移动设备取证的兴起,这是数字取证的一个分支,涉及从移动设备中检索数据。本书将帮助您了解三个主要平台——Android、iOS 和 Windows 上的取证技术。我们将介绍可以用于从不同移动设备收集证据的各种方法。
在本章中,我们将涵盖以下主题:
-
移动取证的需求
-
了解移动取证
-
移动取证中的挑战
-
手机证据提取过程
-
实用的移动取证方法
-
手机上存储的潜在证据
-
检查和分析
-
证据规则
-
良好的取证实践
移动取证的需求
根据 Statista 报告(statista.com),到 2020 年,全球移动电话用户数量预计将超过 50 亿。世界正在目睹从台式机向移动电话的技术和用户迁移。移动市场的大部分增长可以归因于对智能手机的持续需求。
根据爱立信的报告,到 2022 年,全球移动数据流量将达到每月 71 艾字节,而 2017 年为 8.8 艾字节,复合年增长率为 42%。如今的智能手机,如苹果的 iPhone 和三星的 Galaxy 系列,是高性能、大存储和增强功能的计算机的紧凑形式。手机是用户访问的最个人化的电子设备。它们用于执行简单的通信任务,如打电话和发短信,同时还支持互联网浏览、电子邮件、拍照和录像、创建和存储文件、使用 GPS 服务识别位置以及管理业务任务。
随着新功能和应用程序被整合到手机中,设备上存储的信息量不断增加。
手机已成为便携式数据载体,跟踪您的所有活动。随着手机在人们日常生活和犯罪中的普及,从手机获取的数据已成为犯罪、民事甚至重大案件调查的宝贵证据来源。几乎没有进行数字取证调查而不包括手机的情况。手机通话记录和 GPS 数据曾被用于帮助解决 2010 年纽约时代广场的汽车炸弹袭击。
从手机中恢复数字证据背后的科学被称为移动取证,我们将在下一节中进行探讨。数字证据被定义为存储在电子设备上、接收到的或传输的信息和数据,用于调查。数字证据包括可以作为案件证据的任何和所有数字数据。
了解移动取证
数字取证是法庭科学的一个分支,专注于恢复和调查存储在电子或数字设备中的原始数据。该过程的目标是从数字设备中提取和恢复任何信息,而不改变设备上的数据。多年来,随着计算机和其他各种数字设备的快速增长,数字取证也在不断发展。根据涉及的数字设备类型,数字取证有各种分支,如计算机取证、网络取证和移动取证。
移动取证是数字取证的一个分支,涉及从移动设备中获取和恢复证据。在数字取证社区中,"取证合规"是一个广泛使用的术语,用来证明和证明特定的取证技术或方法的使用。驱动合规取证检查的核心原则之一是原始证据不能以任何形式被更改。这在移动设备上是非常困难的。一些取证工具需要与移动设备进行通信,因此在取证过程中标准的写保护将无法起作用。
其他取证方法可能涉及在提取数据进行取证检查之前,从移动设备上拆下芯片或安装自定义引导加载程序。在无法在不改变设备配置的情况下进行检查或数据获取的情况下,必须仔细测试和记录程序和更改以供以后参考。遵循正确的方法和指南在检查移动设备方面至关重要,因为这样做可以获得最有价值的数据。与任何证据收集一样,在检查过程中不遵循正确的程序可能导致证据的丢失或损坏,或者使其在法庭上不可接受。
移动取证过程分为三个主要类别——扣押、获取和检查/分析。在扣押移动设备作为证据来源时,取证员面临一些挑战。在犯罪现场,如果发现手机已经关闭,你作为检验员应该将设备放入法拉第袋中,以防止设备自动开机时发生变化。法拉第袋专门设计用于将手机与网络隔离。
如果发现手机已经开机,关闭它会引发很多问题。如果手机被 PIN 码或密码锁定,或者加密,你需要绕过锁定或确定 PIN 码才能访问设备。手机是网络设备,可以通过不同的来源发送和接收数据,比如电信系统、Wi-Fi 接入点和蓝牙。因此,如果手机处于开机状态,犯罪分子可以通过执行远程擦除命令安全地擦除手机上存储的数据。当手机开机时,应该放在法拉第袋中。如果可能的话,在将移动设备放入法拉第袋之前,你应该断开它与网络的连接,以启用飞行模式并禁用所有网络连接(Wi-Fi、GPS、热点等)来保护证据。这也将保护电池,因为在法拉第袋中电池会耗尽,并且防止法拉第袋泄漏。一旦移动设备被妥善扣押,检验员可能需要多种取证工具来获取和分析手机上存储的数据。
移动设备取证可以使用多种方法进行,这些方法将在后面进行定义。每种方法都会影响所需的分析量,这将在接下来的章节中进行更详细的讨论。如果一种方法失败,必须尝试另一种方法。可能需要多次尝试和工具才能从移动设备中获取最大量的数据。
手机是动态系统,对我们在提取和分析数字证据方面提出了许多挑战。不同制造商生产的各种手机数量的迅速增加使得很难开发出一个单一的过程或工具来检查所有类型的设备。手机不断发展,现有技术不断进步,新技术不断推出。此外,每部手机都设计有各种嵌入式操作系统。因此,取证专家需要特殊的知识和技能来获取和分析这些设备。
移动取证的挑战
在移动平台上最大的取证挑战之一是数据可以在多个设备之间访问、存储和同步。由于数据是易失性的,可以迅速转换或远程删除,因此需要更多的努力来保护这些数据。移动取证与计算机取证不同,并对取证人员提出了独特的挑战。
执法部门和取证人员经常在获取移动设备的数字证据方面遇到困难。以下是其中一些原因:
-
硬件差异:市场上充斥着来自不同制造商的不同型号的手机。取证人员可能会遇到不同类型的手机型号,这些型号在尺寸、硬件、功能和操作系统上有所不同。此外,由于产品开发周期较短,新型号经常出现。随着移动设备景观每天都在变化,对于您来说,适应所有挑战并保持对各种设备上的移动设备取证技术的更新至关重要。
-
移动操作系统:与个人计算机不同,Windows 多年来一直主导市场,移动设备广泛使用更多的操作系统,包括苹果的 iOS,谷歌的 Android,RIM 的黑莓 OS,微软的 Windows Phone OS,惠普的 webOS 等。即使在这些操作系统中,也有几个版本,这使得您的任务变得更加困难。
-
移动平台安全功能:现代移动平台包含内置的安全功能,用于保护用户数据和隐私。这些功能在取证获取和检查过程中起到了障碍作用。例如,现代移动设备从硬件层到软件层都配备了默认加密机制。您可能需要突破这些加密机制才能从设备中提取数据。FBI 与苹果的加密争端在这方面是一个分水岭时刻,苹果的安全实施阻止了 FBI 从圣贝纳迪诺案件中一名攻击者的 iPhone 中破解进入。
-
防止数据修改:取证的基本规则之一是确保设备上的数据不被修改。换句话说,从设备中提取数据的任何尝试都不应该改变该设备上的数据。但这在移动设备上实际上是不可能的,因为只要打开设备,就可能改变该设备上的数据。即使设备看起来处于关闭状态,后台进程可能仍在运行。例如,在大多数移动设备中,闹钟即使手机关闭也仍在工作。从一种状态突然转换到另一种状态可能导致数据的丢失或修改。
-
反取证技术:反取证技术,如数据隐藏、数据混淆、数据伪造和安全擦除,使数字媒体的调查变得更加困难。
-
密码恢复:如果设备受到密码保护,取证人员需要在不损坏设备上的数据的情况下访问设备。虽然有绕过屏幕锁定的技术,但它们可能并不总是适用于所有版本的操作系统。
-
资源匮乏:如前所述,随着手机数量的增加,取证人员所需的工具数量也在增加。取证获取配件,如不同手机的 USB 电缆、电池和充电器,必须得到维护以获取这些设备。
-
证据的动态性:数字证据可能会被故意或无意地轻易改变。例如,在手机上浏览应用程序可能会改变设备上由该应用程序存储的数据。
-
意外重置:手机提供了重置所有内容的功能。在检查设备时意外重置可能导致数据丢失。
-
设备更改:更改设备的可能方式可能从移动应用程序数据或重命名文件到修改制造商的操作系统。在这种情况下,应考虑嫌疑人的专业知识。
-
通信屏蔽:移动设备通过蜂窝网络、Wi-Fi 网络、蓝牙和红外线进行通信。由于设备通信可能会改变设备数据,因此在扣押设备后应排除进一步通信的可能性。
-
工具不可用:移动设备种类繁多。需要使用一系列工具的组合,因为单一工具可能不支持所有设备或执行所有必要的功能。因此,选择特定手机的合适工具可能会很困难。
-
恶意程序:设备可能包含恶意软件,如病毒或特洛伊木马。这些程序可能会尝试通过有线接口或无线接口传播到其他设备。
-
法律问题:移动设备可能涉及跨越地理边界的犯罪。为了解决这些跨辖区问题,法医检查员应熟悉犯罪的性质和地区法律。
让我们在下一节看看证据提取的过程。
移动电话证据提取过程
根据各种因素,证据提取和对不同移动设备的法医检查可能有所不同。然而,遵循一致的检查过程将有助于法医检查员确保从每部手机中收集的证据得到充分记录,并且结果可靠。移动取证没有成熟的标准流程。
然而,以下图表提供了从移动设备提取证据的过程考虑因素的概述。从移动设备提取数据时使用的所有方法都应经过测试、验证和充分记录:
移动电话证据提取过程
处理和处理移动设备的重要资源可以在digital-forensics.sans.org/media/mobile-device-fo
rensic-process-v3.pdf找到。
如前图所示,对移动设备的取证包括几个阶段,从证据收集阶段到归档阶段。以下各节将概述各个阶段的各种考虑因素。
证据收集阶段
证据收集阶段是起始阶段,涉及捕获所有权信息和移动设备涉及的事件类型的文件工作,并概述请求者正在寻找的数据类型。为每次检查制定具体目标是这个阶段的关键部分。它有助于澄清您的目标。在物理扣押过程开始之前,您应熟悉联邦、州和地方法律,涉及个人权利。如果不遵循正确的程序,调查可能在法庭上被视为非法。程序和合法性可能会根据您是政府代理还是私人方而有所不同。例如,在美国,第四修正案权利阻止政府代理在没有适当搜查令的情况下进行任何搜查或扣押。搜查令应明确授权扣押移动设备以及需要收集的数据类型。成功扣押后,应注意确保不仅为设备建立责任链,还为收集的数据建立责任链。
根据 NIST(https://csrc.nist.gov/)的说法,责任链是指通过记录每个处理证据的人员、收集或转移的日期/时间以及转移目的,跟踪证据在收集、保护和分析生命周期中的移动的过程。
此外,在扣押设备时,应注意不要修改设备上的任何数据。同时,不应错过任何帮助调查的机会。例如,在扣押设备时,如果设备已解锁,则尝试禁用密码。
识别阶段
法庭检验员应为每次对移动设备的检查确定以下细节:
-
法律权限
-
需要提取的数据
-
设备的制造商、型号和识别信息
-
数据存储介质
-
其他潜在证据来源
我们将在以下部分讨论每一项。
法律权限
对于法庭检验员来说,确定和记录获取和检查设备的法律权限以及在检查设备之前对媒体施加的任何限制是很重要的。例如,如果对设备的调查是基于搜查令进行的,搜索应该仅限于搜查令中定义的区域。简而言之,在扣押设备之前,您需要回答以下问题:
-
如果没有搜查令,设备所有者是否同意进行搜查?
-
如果存在搜查令,设备是否包括在原始搜查令中?
-
如果设备包括在搜查令中,是否还定义了可以收集哪些数据?
-
如果这是一项企业调查,设备是由个人还是雇主所有?
-
企业政策是否允许收集和随后分析?
需要提取的数据
您将根据所请求的数据确定检查的深度。检查的目标在选择检查手机的工具和技术方面产生重大影响,并增加了检查过程的效率。
设备的制造商、型号和识别信息
作为检查的一部分,识别手机的制造商和型号有助于确定哪些工具适用于该手机。建议在可能的情况下捕获被扣押设备的以下细节:
-
设备制造商
-
设备型号
-
移动设备序列号
-
设备的颜色
-
设备屏幕或锁屏壁纸上可见的壁纸
-
任何硬件组件的存在(如前置摄像头,耳机插孔等)
-
设备的任何特定细节描述(划痕,破损屏幕等)
接下来,让我们看看数据存储介质。
数据存储介质
许多手机提供使用可移动存储设备扩展内存的选项。在提交用于检查的移动电话中发现此类可移动介质的情况下,应将存储卡取出并使用传统数字取证技术进行处理。同时也应在移动设备中获取存储卡,以确保手持内存和存储卡上的数据链接,以便更容易进行分析。这将在接下来的章节中详细讨论。
其他潜在证据来源
移动电话是指纹和其他生物证据的良好来源。在检查移动电话之前,应收集这些证据,以避免污染问题,除非收集方法会损坏设备。检验员在处理证据时应戴手套。
准备阶段
一旦确定了手机型号,准备阶段涉及对特定手机进行研究,以及确定用于获取和检查的适当方法和工具。这通常是基于设备型号、底层操作系统、版本等进行的。此外,进行检查时需要使用的工具也必须根据所涉设备以及检查的范围和目标来确定。
隔离阶段
手机设计上是通过蜂窝电话网络、蓝牙、红外线和无线(Wi-Fi)网络功能进行通信。当手机连接到网络时,通过来电、短信和应用数据添加新数据到手机上,这会修改手机上的证据。
通过远程访问或远程擦除命令也可以完全销毁数据。因此,在获取和检查设备之前,将设备与通信源隔离是非常重要的。可以通过将手机放入射频屏蔽布中,然后将手机设置为飞行模式来进行网络隔离。飞行模式会禁用设备的通信通道,如蜂窝无线电、Wi-Fi 和蓝牙。但是,如果设备被屏幕锁定,则这是不可能的。此外,由于现在飞机上有 Wi-Fi,一些设备在飞行模式下也可以使用 Wi-Fi。
另一种解决方案是使用法拉第袋隔离手机,它可以阻断手机发出或接收的无线电信号。法拉第袋包含可以阻挡外部静电场(包括无线电波)的材料。因此,法拉第袋可以保护扣押的移动设备免受外部干扰,防止擦除和追踪。为了更方便地处理扣押的设备,还有法拉第帐篷和房间。
处理阶段
一旦手机与通信网络隔离,就开始对手机进行实际处理。在这个阶段你将面临的挑战之一是确定使用哪些工具,因为这受到多种因素的影响,如价格、易用性、适用性等。手机取证软件价格昂贵,与计算机取证不同,有时可能需要使用多种工具来访问数据。在选择工具时,确保它具有内置功能以保持取证完整性。保持取证完整性需要一个将收集的数据打包成可能不容易修改或更改的格式的工具。
手机应该使用经过测试的、可重复的、尽可能具有取证价值的方法进行获取。物理获取是首选方法,因为它可以提取原始内存数据,并且在获取过程中设备通常处于关闭状态。在大多数设备上,物理获取期间对设备的更改最少。如果无法进行物理获取或失败,应尝试获取移动设备的文件系统。始终应执行逻辑获取,因为它可能只包含解析后的数据,并提供指针来检查原始内存映像。这些获取方法将在后面的章节中详细讨论。
验证阶段
处理完手机后,需要验证从手机提取的数据的准确性,以确保数据未被修改。可以通过多种方式来验证提取的数据的准确性:
-
比较提取的数据与手机数据:检查从设备中提取的数据是否与设备显示的数据匹配(如果适用)。提取的数据可以与设备本身或逻辑报告进行比较,以首选为准。请记住,处理原始设备可能会对唯一的证据——设备本身进行更改。
-
使用多种工具并比较结果:为了确保准确性,使用多种工具提取数据并比较结果。
-
**使用哈希值:**获取后应对所有图像文件进行哈希处理,以确保数据保持不变。如果支持文件系统提取,可以提取文件系统,然后为提取的文件计算哈希值。稍后,计算并检查任何单独提取的文件哈希值,以验证其完整性。哈希值的任何差异必须能够解释(例如,设备已开机然后再次获取,因此哈希值不同)。
记录和报告阶段
法庭检查员需要在整个检查过程中记录与获取和检查相关的一切。一旦完成调查,结果必须经过某种形式的同行评审,以确保数据经过检查并且调查是完整的。你的笔记和文档可能包括以下信息:
-
检查开始日期和时间
-
手机的物理状况
-
手机和各个组件的照片
-
接收时手机状态-开机或关机
-
手机制造商和型号
-
用于获取的工具
-
用于检查的工具
-
检查期间发现的数据
-
同行评审的笔记
在调查过程中,确保从移动设备中提取和记录的信息可以清晰地呈现给任何其他检查员或法庭是非常重要的。文档是你最重要的技能之一。在获取和分析期间创建移动设备数据的法庭报告是很重要的。这可能包括纸质和电子格式的数据。
你的发现必须以一种方式记录和呈现,以便证据在法庭上自证其实。发现应该清晰、简洁和可重复。时间线和链接分析是许多商业移动取证工具提供的功能,将有助于报告和解释跨多个移动设备的发现。这些工具允许你将多个设备之间的通信方法联系在一起。
存档阶段
保留从移动电话中提取的数据是整个过程的重要部分。对于持续进行中的法庭程序、将来的参考、当前证据文件损坏时以及记录保存要求,保留数据的可用格式也很重要。法庭案件可能在最终判决之前持续多年,大多数司法管辖区要求数据保留很长时间以供上诉之用。随着领域和方法的进步,可能会出现从原始物理图像中提取数据的新方法,然后你可以通过从档案中提取副本来重新审视数据。
现在我们已经了解了证据提取过程的工作原理,我们将研究实际移动取证的不同方法。
实用的移动取证方法
与任何法医调查类似,可以使用几种方法来获取和分析移动电话数据。移动设备的类型、操作系统和安全设置通常决定了法庭程序的遵循。每项调查都有其独特的情况,因此不可能为所有情况设计一个确定的程序性方法。以下详细说明了从移动设备中提取数据所遵循的一般方法。
理解移动操作系统
手机数据获取和检查/分析的一个主要因素是操作系统。从低端手机到智能手机,移动操作系统在很多功能上已经发展了很长一段路。移动操作系统直接影响您如何访问移动设备。例如,安卓提供终端级访问,而 iOS 则没有这样的选项。
对移动平台的全面了解有助于取证人员做出明智的取证决策并进行彻底的调查。尽管智能手机设备种类繁多,但随着黑莓的消亡,目前市场上主要有两种操作系统占主导地位,即谷歌安卓和苹果 iOS(远远落后的是 Windows Phone)。更多信息可在www.idc.com/promo/smartphone-market-share/os
找到。本书涵盖了这三种移动平台的取证分析。我们将简要介绍主要的移动操作系统。
安卓
安卓是基于 Linux 的操作系统,是谷歌为手机开发的开源平台。安卓是世界上使用最广泛的智能手机操作系统。资料显示,苹果的 iOS 排名第二(www.idc.com/promo/smartphone-market-share/os
)。安卓由谷歌开发,作为硬件制造商和手机运营商的开放和免费选择。这使得安卓成为那些需要低成本、可定制、轻量级操作系统的公司的首选软件,而无需从头开始开发新的操作系统。
安卓的开放性进一步鼓励开发人员构建大量应用程序并将其上传到 Google Play。随后,最终用户可以从 Android Market 下载这些应用程序,这使得安卓成为一个强大的操作系统。据估计,截至撰写本书时,Google Play 商店有 330 万款应用程序。有关安卓的更多详细信息,请参阅第七章《了解安卓》。
iOS
iOS,以前被称为 iPhone 操作系统,是由苹果公司独家开发和分发的移动操作系统。iOS 正在演变成苹果所有移动设备的通用操作系统,如 iPad、iPod Touch 和 iPhone。iOS 源自 macOS,因此基于类 Unix 操作系统。iOS 管理设备硬件。iOS 还提供了实现本地应用程序所需的技术。它还附带各种系统应用程序,如邮件和 Safari,为用户提供标准的系统服务。iOS 本地应用程序通过 App Store 分发,该商店受到苹果的严格监控。有关 iOS 的更多详细信息,请参阅第二章《了解 iOS 设备的内部》。
Windows Phone
Windows Phone 是由微软为智能手机和口袋 PC 开发的专有移动操作系统。它是 Windows Mobile 的继任者,主要面向消费市场而不是企业市场。Windows Phone 操作系统类似于 Windows 桌面操作系统,但它经过优化,适用于存储空间较小的设备。在《Windows Phone 取证》第十二章中讨论了 Windows Phone 的基础知识和取证技术。
移动取证工具分级系统
手机取证获取和分析需要手动操作和使用自动化工具。有各种工具可用于进行手机取证。所有工具都有其优缺点,重要的是要理解没有单一工具能够满足所有目的。因此,了解各种类型的手机取证工具对取证人员至关重要。
在确定用于移动电话取证获取和分析的适当工具时,Sam Brothers 开发的移动设备取证工具分类系统(如下图所示)对检查员非常有用:
手机工具分级金字塔(Sam Brothers,2009)
移动设备取证工具分类系统的目标是使检查员能够根据工具的检查方法对取证工具进行分类。当您从金字塔底部向顶部移动时,用于分析的方法和工具通常变得更加技术和复杂,并需要更长的分析时间。在每个层面使用的不同技术的优缺点。在应用特定技术之前,取证员应该意识到这些问题。如果给定的方法或工具未正确使用,证据可能会被完全销毁。随着金字塔的上升,这种风险会增加。因此,需要适当的培训才能获得从移动设备中提取数据的最高成功率。
每个现有的移动取证工具都可以归类为五个级别中的一个或多个。以下各节包含了对每个级别的详细描述。
手动提取
手动提取方法只是通过浏览设备上的数据并直接通过设备的键盘或触摸屏查看手机上的数据。然后发现的信息被摄影记录下来。提取过程快速且易于使用,并且几乎适用于每部手机。这种方法容易出现人为错误,例如由于对界面不熟悉而错过某些数据。在这个级别,无法恢复已删除的信息并获取所有数据。
有一些工具,例如 Project-A-Phone,已经开发出来帮助检查员轻松记录手动提取。然而,这也可能导致数据的修改。例如,查看未读短信将标记为已读。
逻辑分析
逻辑分析涉及将移动设备通过 USB 电缆、RJ-45 电缆、红外线或蓝牙连接到取证硬件或取证工作站。连接后,计算机启动命令并将其发送到设备,然后由设备的处理器解释。接下来,请求的数据从设备的内存中接收并发送回取证工作站。稍后,您可以查看数据。
目前大多数可用的取证工具都在这个分类系统的这个级别上工作。提取过程快速且易于使用,对您来说需要很少的培训。另一方面,该过程可能会向移动设备写入数据,并可能改变证据的完整性。此外,使用此程序通常无法访问已删除的数据。
十六进制转储
十六进制转储,也称为物理提取,是通过将设备连接到取证工作站,并将未签名的代码或引导加载程序推送到手机,并指示手机将内存从手机转储到计算机来实现的。由于生成的原始图像是以二进制格式,需要技术专业知识来分析它。这个过程成本低廉,为检查员提供了更多的数据,并允许从大多数设备的未分配空间中恢复已删除的文件。
芯片取下
芯片脱焊是指直接从设备中的存储芯片获取数据。在这个级别,芯片被物理取出设备,并使用芯片读卡器或第二部手机来提取存储在其中的数据。这种方法在技术上更具挑战性,因为手机中使用了各种芯片类型。该过程昂贵且需要硬件级别的知识,因为它涉及对存储芯片的脱焊和加热。成功执行芯片脱焊需要培训。不当的程序可能损坏存储芯片并使所有数据无法挽救。在可能的情况下,建议在进行芯片脱焊之前尝试其他提取级别,因为这种方法具有破坏性。此外,从存储器中提取的信息是以原始格式呈现的,必须进行解析、解码和解释。芯片脱焊方法在需要精确保留存储器状态的情况下是首选。当设备损坏但存储芯片完好无损时,这也是唯一的选择。
设备上的芯片通常使用联合测试动作组(JTAG)方法进行读取。JTAG 方法涉及连接到设备上的测试访问端口(TAPs),并强制处理器传输存储在存储芯片上的原始数据。JTAG 方法通常与使用标准工具无法访问的操作设备一起使用。这两种技术即使在设备被屏幕锁定时也能工作。
微读取
微读取过程涉及手动查看和解释存储芯片上的数据。检查员使用电子显微镜分析芯片上的物理门,然后将门状态转换为 0 和 1 以确定生成的 ASCII 字符。整个过程耗时且昂贵,并且需要对存储器和文件系统有广泛的知识和培训。由于微读取涉及的极端技术性,只有在所有其他提取技术层次耗尽后才会尝试,相当于国家安全危机的重大案件。该过程很少进行,目前也没有很好的记录。此外,目前没有商业工具可用于执行微读取。
数据获取方法
数据获取是从数字设备和其他附加媒体中提取信息的过程。从手机中获取数据并不像标准硬盘取证那样简单。以下是对手机取证方法的三种类型:物理、逻辑和手动的详细描述。这些方法可能与移动取证工具分级系统中讨论的几个级别有一些重叠。可以收集的数据量和类型将取决于所使用的获取方法的类型。虽然我们将在接下来的章节中详细介绍这些方法,但以下是对它们的简要描述。
物理获取
移动设备的物理获取只是对物理存储的逐位复制。通过直接访问闪存,可以通过物理提取从设备中获取信息。闪存是非易失性存储器,主要用于存储卡和 USB 闪存驱动器作为固态存储。该过程创建了整个文件系统的逐位复制,类似于计算机取证调查中采取的方法。物理获取能够获取设备上的所有数据,包括已删除的数据,并访问大多数设备上的未分配空间。
逻辑获取
逻辑获取是指提取逻辑存储对象,例如文件和目录,这些对象驻留在文件系统上。使用设备制造商的应用程序编程接口来同步手机内容与计算机,可以执行手机的逻辑获取。许多取证工具可以执行逻辑获取。对于取证工具来说,通过逻辑获取提取的数据更容易组织和呈现。然而,取证分析师必须了解获取是如何进行的,以及在过程中手机是否被修改。根据手机和取证工具的不同,可能会获取全部或部分数据。逻辑获取很容易执行,只能恢复手机上的文件,而不能恢复未分配空间中的数据。
手动获取
对于手机,物理获取通常是最佳选择,逻辑获取是次佳选择。在进行手机取证获取时,手动提取应该是最后的选择。逻辑和手动获取都可以用来验证物理数据的发现。在手动获取期间,取证人员利用用户界面调查手机内存的内容。设备通过键盘或触摸屏和菜单导航正常使用,取证人员拍摄每个屏幕内容的照片。手动提取引入了更大程度的风险,即人为错误的形式,并且存在删除证据的可能性。手动获取很容易执行,只能获取手机上显示的数据。
接下来,让我们看看可以从手机中提取的信息量。
手机存储的潜在证据
手机可以获取的信息范围在本节中有详细介绍。手机上的数据可以在多个位置找到——例如 SIM 卡、外部存储卡和手机内存。此外,服务提供商还存储了与通信相关的信息。本书主要关注从手机内存中获取的数据。移动设备数据提取工具可以从手机内存中恢复数据。尽管在取证获取期间恢复的数据取决于手机型号,但通常以下数据在所有型号中都是常见的,并且作为证据很有用。请注意,以下大部分物件都包含时间戳:
-
地址簿:这包含了联系人姓名、电话号码、电子邮件地址等。
-
通话记录:这包含了拨出、接收和未接来电以及通话时长。
-
短信:这包含了发送和接收的短信。
-
MMS:这包含了发送和接收的照片和视频等媒体文件。
-
电子邮件:这包含了发送、草稿和接收的电子邮件消息。
-
网络浏览器历史:这包含了访问过的网站的历史记录。
-
照片:这包含了使用手机摄像头拍摄的照片,从互联网下载的照片以及从其他设备传输的照片。
-
视频:这包含了使用手机摄像头拍摄的视频,从互联网下载的视频以及从其他设备传输的视频。
-
音乐:这包含了从互联网下载的音乐文件以及从其他设备传输的音乐文件。
-
文档:这包含了使用设备应用程序创建的文档,从互联网下载的文档以及从其他设备传输的文档。
-
日历:这包含了日历条目和约会。
-
网络通信:这包含了 GPS 位置。
-
地图:这包含了用户访问过的地点、查找的方向以及搜索和下载的地图。
-
社交网络数据:这包含了 Facebook、Twitter、LinkedIn、Google+和 WhatsApp 等应用程序存储的数据。
-
已删除的数据:这包含了从手机中删除的信息。
接下来,我们将快速查看调查的最后一步:检查和分析。
检查和分析
这是调查的最终步骤,旨在揭示设备上存在的数据。检查是通过应用经过充分测试和科学的方法来得出结果。分析阶段侧重于从其余数据中分离相关数据,并探索对基础案件有价值的数据。检查过程始于使用先前描述的一些技术获取的证据副本,这将在接下来的章节中详细介绍。使用第三方工具进行检查和分析通常是通过将设备的内存转储导入到移动取证工具中,该工具将自动检索结果。了解案件对执行数据的有针对性分析也至关重要。例如,关于儿童色情的案件可能需要关注设备上的所有图像,而不是查看其他工件。
重要的是,您要对用于检查的法医工具的工作原理有一个公平的了解。熟练使用工具中可用的功能和选项将大大加快检查过程。有时,由于软件中的编程缺陷,工具可能无法识别或将位转换为您可以理解的格式。因此,您必须具备识别这种情况并使用替代工具或软件构建结果的必要技能。在某些情况下,个人可能会故意篡改设备信息或删除/隐藏一些关键数据。法医分析人员应了解其工具的局限性,并有时需要补偿这些局限性以获得最佳结果。
证据规则
法庭越来越依赖手机内部的信息作为重要证据。法庭上的主要证据需要对证据规则有很好的理解。移动取证是一个相对较新的学科,规定证据有效性的法律并不广为人知,而且在国家之间也有所不同。然而,数字取证有五条普遍的证据规则,需要遵循以使证据有用。忽视这些规则会使证据不可采纳,您的案件可能会被驳回。这五条规则是可采纳,真实,完整,可靠和可信。
-
可采纳:这是最基本的规则,也是证据有效性和重要性的衡量标准。证据必须以一种能够在法庭或其他地方使用的方式被保留和收集。可能会出现许多错误,这些错误可能导致法官裁定某些证据不可采纳。例如,使用非法方法收集的证据通常被裁定为不可采纳。
-
真实:证据必须以相关方式与事件联系起来以证明某事。法医检查人员必须对证据的来源负责。
-
完整:当提出证据时,必须清晰完整,并应反映整个故事。收集仅显示事件一个角度的证据是不够的。呈现不完整的证据比根本不提供任何证据更危险,因为它可能导致不同的判断。
-
可靠:从设备收集的证据必须是可靠的。这取决于所使用的工具和方法。使用的技术和收集的证据不得对证据的真实性产生怀疑。如果您使用了一些无法复制的技术,除非那些考虑证据的人,如法官和陪审团,被指示这样做,否则不认为证据有效。这可能包括可能具有破坏性的方法,如芯片脱落提取。
-
可信度:取证人员必须能够清晰简洁地解释他们使用了哪些过程以及如何保持了证据的完整性。您提出的证据必须清晰、易于理解,并且陪审团必须相信。
现在让我们看看最佳实践。
良好的取证实践
良好的取证实践适用于证据的收集和保留。缺乏健全的取证实践甚至可能使法庭上收集的证据变得无用。证据的修改,无论是故意的还是意外的,都可能影响案件。因此,了解最佳实践对于取证人员至关重要。
保护证据
随着查找我的 iPhone和远程擦除等先进的智能手机功能,以一种无法远程擦除的方式保护手机非常重要。此外,当手机开机并具有服务时,它会不断接收新数据。为了保护证据,使用正确的设备和技术将手机与所有网络隔离开来。通过隔离,手机将被阻止接收任何可能导致删除活动数据的新数据。根据案件的不同,可能需要采用其他取证技术,如指纹匹配,以建立设备与所有者之间的联系。如果设备未经安全处理,物理证据可能会在无意中被篡改,并可能变得无用。
还重要的是收集现场发现的任何外围设备、相关媒体、电缆、电源适配器和其他附件。在调查现场,如果发现设备连接到个人计算机,直接拔出会停止数据传输。相反,建议在拔出设备之前捕获个人计算机的内存,因为在许多情况下,这包含重要细节。
保留证据
在收集证据时,必须将其保存在法庭可接受的状态。直接在原始证据副本上工作可能会改变它。因此,一旦您恢复了原始磁盘映像或文件,就创建一个只读主副本并进行复制。为了使证据被接受,必须有一种科学方法来验证提交的证据与原始收集的证据完全相同。这可以通过创建图像的取证哈希值来实现。
取证哈希用于通过计算图像/数据的密码强度和不可逆转的值来确保获取的完整性。
在复制原始磁盘映像或文件后,计算并验证原始副本的哈希值,以确保证据的完整性得到维护。任何哈希值的更改都应该被记录下来并加以解释。所有进一步的处理或检查都应该在证据的副本上进行。对设备的任何使用都可能改变存储在手机上的信息。因此,只执行绝对必要的任务。
记录证据和更改
在可能的情况下,应创建所有可见数据的记录。建议拍摄移动设备以及发现的任何其他媒体,如电缆、外围设备等。如果以后关于环境出现问题,这将是有帮助的。在拍摄移动设备时不要触摸或放手。确保记录用于收集和提取证据的所有方法和工具。详细记录您的笔记,以便另一名取证人员可以重现它们。您的工作必须是可重现的;如果不是,法官可能会裁定其不可接受。重要的是记录整个恢复过程,包括获取和检查过程中所做的所有更改。例如,如果用于数据提取的取证工具切割了磁盘映像以存储它,这必须被记录下来。应在案件记录中记录移动设备的所有更改,包括开关机和同步等。
报告
报告是准备审查过程中所采取的所有步骤和结论的详细摘要的过程。报告应包括您执行的所有重要操作的详细信息,获取结果以及从结果中得出的任何推论。大多数取证工具都配备了内置的报告功能,可以自动生成报告,同时也提供了定制的空间。一般来说,报告可能包括以下细节:
-
报告机构的详细信息
-
案件标识符
-
取证调查员
-
提交者的身份
-
证据接收日期
-
用于审查的设备的详细信息,包括序列号、制造商和型号
-
审查中使用的设备和工具的详细信息
-
审查过程中所采取的步骤描述
-
责任链文件
-
发现或识别的问题的详细信息
-
在审查过程中收集的证据,包括聊天消息、浏览器历史记录、通话记录、已删除消息等
-
审查过程中捕获的任何图像
-
审查和分析信息
-
报告结论
摘要
现代移动设备存储着各种信息,如短信、通话记录、浏览器历史记录、聊天消息、位置详情等。因此,它们经常是几起刑事案件、事件重建、公司和法律案件等的关键因素。移动设备取证也面临着传统数字取证范围之外的挑战和概念。在处理设备时,从证据收集阶段到存档阶段都需要极度小心。负责移动设备的审查人员必须了解不同的获取方法以及在分析过程中处理数据的复杂性。从移动设备中提取数据只是战斗的一半。操作系统、安全功能和智能手机类型将决定您对数据的访问权限。在调查过程中,遵循良好的取证实践并确保证据在调查过程中未被篡改是非常重要的。
下一章将深入介绍 iOS 取证。您将了解文件系统布局、安全功能以及 iOS 设备上文件存储的方式。
第一部分:iOS 取证
本节将为您提供 iOS 设备(如 iPhone 和 iPad)的概述,以及它们运行的操作系统和文件系统的概述。您将了解不同类型的取证获取方法,包括逻辑获取和文件系统获取,越狱的过程,对最常见的证据来源进行取证分析,以及如何使用流行的移动取证软件。
本节将包括以下章节:
-
第二章,了解 iOS 设备的内部结构
-
第三章,从 iOS 设备中获取数据
-
第四章,从 iOS 备份中获取数据
-
第五章,iOS 数据分析和恢复
-
第六章,iOS 取证工具
第二章:了解 iOS 设备的内部
根据苹果公司的说法,2019 年有 14 亿活跃的苹果设备,其中 9 亿台设备运行的是 iOS。尽管 iOS 是全球平板电脑的领先操作系统(OS),但安卓仍然是智能手机的领先操作系统。无论统计数据如何,如果您是取证人员,您很可能需要对 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 XR、XS、XS Max、11 和 11 Pro 在处理文件系统取证方法时可能会具有挑战性。与自 iPhone 5 以来发布的设备一样,除非它们被越狱,否则没有可用的方法或工具来从这些设备中物理恢复数据。但是,如果 iPhone 已解锁,则可以进行逻辑获取。数据提取的获取方法可用,并将在第三章和第四章中进行讨论。现在,让我们学习如何确定正确的硬件型号。
确定正确的硬件型号
在检查 iPhone 之前,有必要确定设备上安装的正确硬件型号和固件版本。了解 iPhone 的详细信息有助于您了解从 iPhone 获取证据的关键性和可能性。例如,在许多情况下,需要设备密码才能获取逻辑图像。根据 iOS 版本、设备型号和密码复杂性,可能可以使用暴力攻击获取设备密码。
有各种方法可以识别设备的硬件。识别某些设备的硬件的最简单方法是观察设备背面显示的型号号码。为了使这项任务更加简单,您可以使用苹果的知识库文章。有关 iPhone 型号的更多信息,请访问support.apple.com/en-in/HT201296
。
可以通过访问设置选项,然后导航到常规|关于|软件版本来找到 iPhone 的固件版本,如下面的屏幕截图所示。固件的目的是启用某些功能,并协助设备的一般运行:
iPhone 关于屏幕,显示软件版本 13.2
另外,可以使用libimobiledevice
软件库(www.libimobiledevice.org/
)中提供的ideviceinfo
命令行工具来识别 iPhone 的型号和其 iOS 版本。
要在 Windows 10 工作站上获取 iPhone 型号和其 iOS 版本信息,请按照以下步骤操作:
-
从以下链接下载最新的二进制文件:
dev.azure.com/libimobiledevice-win32/imobiledevice-net/_build/results?buildId=419
(点击 Artifacts | Binaries 开始下载)。 -
解压包含 x86 或 x64 二进制文件的存档,具体取决于您工作站的版本。
-
打开命令提示符,并将目录更改为包含二进制文件的目录(使用
cd
命令进行此操作)。 -
使用通用串行总线(USB)电缆将 iPhone 连接到您的工作站(对于最新的 iOS 版本,还需要输入密码),并使用
ideviceinfo
命令和-s
选项运行,如下面的代码所示:
$ ideviceinfo -s
ideviceinfo
命令的输出显示了 iPhone 的标识符、内部名称和 iOS 版本,如下面的屏幕截图所示:
ideviceinfo 显示固件版本 13.2 的输出
其他工具,如 iExplorer,也将提供访问类似的 iOS 设备信息,如下面的屏幕截图所示。恢复 iPhone 设备信息的方法也适用于 iPad 设备。在这里,iExplorer 被用来从 iPhone 获取设备信息:
iExplorer 显示设备信息
每一款 iPhone 的发布都带来了改进或新增的功能。正如本章前面所述,了解 iPhone 的细节有助于您理解从中获取证据的重要性和可能性。您必须知道设备的型号,以确保正在使用的工具和方法支持特定的 iPhone。此外,必须确定 iPhone 的内部存储大小,以确保证据容器足够大,可以容纳整个取证镜像。大多数工具在证据驱动器上的磁盘空间不足时不会提醒您,直到空间用完。这将浪费时间,并迫使您再次获取设备。最后,还必须注意设备的网络功能,以便您可以正确地隔离设备,防止在检查过程中进行远程访问或擦除。这将在第三章中进一步讨论,从 iOS 设备获取数据。
再次强调,对 iPhone 设备硬件的了解将有助于您确定在取证调查期间如何处理设备。某些型号强制执行全盘加密,而旧型号则没有。加密设备在获取期间需要额外的步骤——如果访问甚至可能。您必须为在取证和分析阶段可能需要克服的所有障碍做好准备。除此之外,了解 iPhone 的功能和初始和当前的 iOS 版本对您能够从设备中恢复的数据有影响。苹果在不同的 iOS 版本中并不一致的数据存储位置。因此,您必须知道手机首次使用时安装的原始版本,以确保取证工具不会忽略可能有助于调查的数据。
有关识别 iPhone 型号的更多信息可以在support.apple.com/en-us/HT201296
找到。
了解 iPhone 硬件
iPhone 是来自不同制造商的模块、芯片和电子元件的集合。由于 iPhone 的复杂性,硬件组件的列表很长,每个设备的内部组件都应该进行研究。
例如,iPhone 11 配备了 A13 仿生处理器;64GB、128GB 或 256GB 存储;4GB 的 RAM;6.1 英寸的 Liquid Retina 液晶显示屏;以及双镜头 1200 万像素后置摄像头阵列。
所有 iPhone 的内部图像都可以在www.ifixit.com/Device/iPhone
的拆解部分找到。
iPad 型号和硬件
苹果 iPhone 改变了手机的生产和使用方式。同样,iPad 是 2010 年 1 月推出的平板电脑版本,打击了笔记本电脑的销售。通过 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 位值来寻址分配块,这限制了分配块的数量为 65535。为了克服磁盘空间的低效分配和 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-Tree 结构。这是一种允许数据被高效搜索,查看,修改或删除的数据结构。 HFS Plus 卷结构如下图所示:
HFS Plus 卷结构
卷结构描述如下:
-
保留(1024 字节):这是用于引导加载程序信息的保留空间。
-
卷头:这存储卷信息,例如分配块的大小,卷创建时间戳以及有关五个特殊文件的元数据。
-
分配文件:此文件用于跟踪系统正在使用的分配块。文件格式由每个分配块的 1 位组成。如果设置了该位,则该块正在使用中。如果未设置,则该块为空闲。
-
范围溢出文件:此文件记录分配块,当文件大小超过八个块时分配,这有助于在引用时定位实际数据。坏块也记录在文件中。
-
目录文件:此文件包含有关文件和文件夹层次结构的信息,用于在卷内定位任何文件和文件夹。
-
属性文件:此文件包含内联数据属性记录,分叉数据属性记录和扩展属性记录。
-
启动文件:此文件包含启动没有 HFS Plus 支持的系统所需的信息。
-
备用卷头:这是卷头的备份,主要用于磁盘修复。
-
保留(512 字节):这是由苹果公司保留使用的,用于制造过程中。
接下来,让我们看看 APFS 文件系统。
APFS 文件系统
APFS 是 iOS,macOS,tvOS 和 watchOS 的新文件系统。这是一个 64 位文件系统,支持单个卷上的超过 9 万亿文件。以下是其主要特点列表:
-
克隆:这些是文件或目录的瞬时副本。修改被写入其他位置,并继续共享未修改的块;更改保存为克隆文件的增量。
-
快照:文件系统的时间点(PIT)只读实例。
-
空间共享:这允许多个文件系统共享物理卷上相同的底层空闲空间。
-
加密:有三种模式,如下:
-
无加密
-
单密钥加密
-
使用每个文件数据的文件密钥和敏感元数据的单独密钥进行多密钥加密
根据硬件,使用基于高级加密标准-XEX 的调整码本模式与密文窃取(AES-XTS)或高级加密标准-密码块链接(AES-CBC)加密模式。
-
崩溃保护:这是一种新颖的写时复制元数据方案;用于确保文件系统更新受到崩溃保护。
-
稀疏文件:这允许文件的逻辑大小大于它们在磁盘上占用的物理空间。
-
快速目录大小计算:这可以快速计算目录层次结构使用的总空间,允许在层次结构发展时进行更新。
APFS 结构
因此,APFS 结构是以单个容器结构的形式呈现的,该容器可能包含一个或多个卷。APFS 结构如下图所示:
APFS 结构概述
APFS 中的每个文件系统结构都以块头开头。块头以整个块的校验和(使用 Fletcher 的校验和算法)开头,并包含块的写入版本、块 ID 和块类型。
APFS 结构可以解释如下:
-
容器超级块包含有关块大小、块数和指向此任务的空间管理器的指针、所有卷的块 ID 以及指向块映射 B-Tree 的指针(其中包含每个卷的条目,以及其 ID 和偏移量)。
-
节点用于存储不同类型的条目。它们可以是 B-Tree 的一部分,也可以独立存在,并且可以包含灵活大小或固定大小的条目。
-
空间管理器管理 APFS 容器中分配的块,并存储空闲块数和指向分配信息文件的指针。
-
分配信息文件存储分配文件的长度、版本和偏移量。
-
B-Tree管理多个节点,并包含根节点的偏移量。
-
卷超级块包含卷的名称、ID 和时间戳。
至于分配文件,它们是简单的位图,没有块头和类型 ID。
磁盘布局
默认情况下,文件系统配置为两个逻辑磁盘分区:系统(根或固件)分区和用户数据分区。
系统分区包含 iPhone 使用的操作系统和所有预装的应用程序。系统分区被挂载为只读,除非正在进行操作系统升级或设备已越狱。只有在设备上进行固件升级时,分区才会更新。在此过程中,iTunes 会对整个分区进行格式化,而不会影响任何用户数据。系统分区只占用很小的存储空间,通常在 0.8GB 到 4GB 之间,取决于 NAND 驱动器的大小。由于系统分区设计为在 iPhone 的整个生命周期内保持工厂状态,因此通常很少有有用的证据信息可以从中获取。如果 iOS 设备已越狱,则包含有关越狱和用户数据的文件可能驻留在系统分区上。越狱 iOS 设备允许用户对设备进行根访问,但会使制造商保修失效。越狱将在本章后面讨论。
用户数据分区包含所有用户创建的数据,从音乐和联系人到第三方应用程序数据。用户数据分区占用大部分 NAND 存储器,并挂载到设备上的/private/var
目录。大部分证据信息可以在此分区中找到。在文件系统获取期间,应捕获并保存用户数据分区内容为.tar
文件。获取的数据可以轻松地通过大多数商用移动取证工具进行提取和解析。
iPhone OS
iOS 是苹果最先进和功能丰富的专有移动操作系统。它是随第一代 iPhone 一起发布的。刚开始时,它被称为 iPhone OS,后来改名为 iOS,以反映驱动所有苹果 iOS 设备(如 iPhone、iPod touch、iPad 和 Apple TV)的操作系统的统一性质。iOS 源自核心 OS X 技术,经过精简,使其紧凑高效,适用于移动设备。
它利用多点触摸界面,使用简单的手势来操作和控制设备,比如在屏幕上滑动手指以移动到下一页,或者捏合手指来缩放。简而言之,iOS 协助设备的一般功能。
iOS 架构
iOS 是设备硬件组件和屏幕上的应用程序之间的中介。应用程序不直接与底层硬件交互。相反,它们通过一个明确定义的系统接口进行交互,以保护它们免受硬件更改的影响。这种抽象使得可以轻松构建适用于具有不同硬件功能的设备的应用程序。
iOS 架构由四个层次组成:Cocoa Touch 层、媒体层、核心服务层和核心 OS 层。每个层都包含几个框架,帮助构建应用程序,如下图所示:
iOS 层
这些层可以描述如下:
-
Cocoa Touch:该层包含开发 iOS 应用程序所需的关键框架。该层中的框架提供基本的应用程序基础设施,并支持关键技术,如基于触摸的输入、多任务处理和许多高级系统服务。
-
媒体:该层提供图形、音频和视频框架,以在移动设备上创建最佳的多媒体体验。该层中的技术帮助开发人员构建外观和声音出色的应用程序。
-
核心服务:该层提供应用程序所需的基本系统服务。虽然开发人员并非都使用这些服务,但系统的许多部分都是基于它们构建的。该层包含使位置服务、iCloud 和社交媒体得到支持的技术。
-
核心 OS:该层是基础层,直接位于设备硬件之上。该层处理低级功能,并提供诸如网络(伯克利软件发行(BSD)套接字)、内存管理、线程(可移植操作系统接口(POSIX)线程)、文件系统处理、外部配件访问和进程间通信(IPC)等服务。
既然我们已经了解了 iOS 架构,让我们来看看 iOS 安全。
iOS 安全
较新版本的 iOS 设计时将安全性作为核心。在最高层次上,iOS 安全架构如下:
iOS 安全架构
苹果 iOS 设备,如 iPhone、iPad 和 iPod Touch,设计有多层安全保障。低级硬件功能可防止恶意软件攻击,高级操作系统功能可防止未经授权的使用。iOS 安全功能的简要概述如下所示。
密码、Touch ID 和 Face ID
Passcodes 限制未经授权的设备访问。一旦设置了密码,每次打开或唤醒设备时,都会要求输入密码才能访问设备。iOS 设备支持简单和复杂的密码。iOS 9 发布了使用六位简单密码的选项,而不是传统的四位选项。iPhone 5S 及更高版本还支持 Touch ID 指纹作为密码,这些指纹可以与简单或复杂的密码一起使用。iPhone X 及更高版本支持一种新的生物识别方式来锁定设备——Face ID——用户可以使用他们的脸作为密码。而且它更安全,因为使用 Touch ID 解锁您的 iPhone 的陌生人的几率是 50,000 分之 1,但使用 Face ID 是 1,000,000 分之 1。
代码签名
代码签名防止用户在设备上下载和安装未经授权的应用程序。苹果对此的说法如下:
“代码签名是将您编译的 iOS 应用封存并标识为您自己的过程。此外,iOS 设备不会运行未经可信方签名的应用程序或加载库。为了确保所有应用程序来自已知和批准的来源,并且没有被篡改,iOS 要求所有可执行代码都使用由苹果签发的证书进行签名。”
沙箱
沙箱通过将应用程序置于严格受限的区域中来减轻代码执行后的利用。安装在 iOS 设备上的应用程序都被置于沙箱中,一个应用程序无法访问另一个应用程序存储的数据。基本上,沙箱是一种强制执行细粒度控制的机制,限制应用程序对文件、网络资源、硬件等的访问。
加密
在 iOS 设备上(从 iPhone 4 开始),整个文件系统都使用文件系统密钥进行加密,该密钥是从设备的唯一硬件密钥计算出来的。这个密钥存储在可消除存储器中,位于设备的操作系统和硬件级别之间。这就是为什么联合测试动作组(JTAG)和芯片取下方法不是有用的获取方法,因为整个数据转储将被加密。
数据保护
数据保护旨在保护静止数据并使离线攻击变得困难。它允许应用程序利用用户设备的密码,与设备硬件加密一起生成强加密密钥。稍后,强加密密钥用于加密存储在磁盘上的数据。这个密钥在设备锁定时保护数据免受未经授权的访问,因此即使设备被入侵,关键信息也是安全的。
地址空间布局随机化(ASLR)
ASLR 是 iOS 4.3 引入的一种漏洞缓解技术。ASLR 随机化应用程序对象在内存中的位置,使内存损坏漏洞难以利用。
特权分离
iOS 以最小权限原则(PoLP)运行。它包含两个用户角色:root 和 mobile。系统中最重要的进程以 root 用户权限运行。用户可以直接访问的所有其他应用程序(例如浏览器和第三方应用程序)都以 mobile 用户权限运行。
堆栈破坏保护
堆栈破坏保护是一种漏洞缓解机制。它通过在缓冲区和堆栈上的控制数据之间放置一个随机和已知值(称为堆栈哨兵)来保护设备免受缓冲区溢出攻击。
数据执行防护(DEP)
DEP 是一种通过处理器区分可执行代码和数据内存部分的漏洞缓解技术机制。例如,在代码注入攻击中,攻击者试图注入一个向量并执行它。但是 DEP 会阻止这种情况,因为它将注入部分识别为数据而不是代码。
数据擦除
iOS 提供“擦除所有内容和设置”选项来擦除 iPhone 上的数据。这种类型的数据擦除通过删除保护数据的加密密钥来擦除用户设置和信息。由于加密密钥从设备中擦除,因此无法恢复已删除的数据,即使在取证调查期间也是如此。还有其他覆盖设备内存中数据的擦除方法。有关擦除的更多信息,请访问support.apple.com/en-in/HT201274
。
激活锁
激活锁是 iOS 7 推出的一种防盗功能,通过利用“查找我的 iPhone”来起作用。当“查找我的 iPhone”启用时,它会启用激活锁,并且需要用户的 Apple ID 和密码才能关闭“查找我的 iPhone”,擦除设备并重新激活它。
App Store
App Store 是由苹果开发和维护的 iOS 应用分发平台。这是一个集中的在线商店,用户可以浏览和下载免费和付费应用。这些应用扩展了移动设备的功能。截至 2019 年第一季度,App Store 中有 220 万款应用。
App Store 中的应用通常由第三方开发人员编写。开发人员使用 Xcode 和 iOS 软件开发工具包(SDK)来开发应用程序。之后,他们将应用提交给苹果进行批准。苹果会对应用进行广泛的审查,以确保符合公司的指南。如果苹果批准了该应用,它将被发布到 App Store,用户可以下载或购买。严格的审查流程使 App Store 不太容易受到恶意软件的侵害,但并非 100%安全。
XcodeGhost 是苹果 App Store 中感染了 50 个应用程序的苹果恶意软件,于 2015 年 9 月被发现。这种恶意软件内置在 Xcode 中,使其更难以检测,并据报道影响了全球 5 亿多用户。一旦被发现,苹果立即删除了受感染的应用程序。
越狱
越狱是通过软件和硬件漏洞来消除苹果移动操作系统所施加的限制的过程。越狱允许未经签名的代码在操作系统上运行并获得根访问权限。越狱最常见的原因是扩展苹果 App Store 所施加的有限功能集,并安装未经批准的应用。越狱可以帮助进行取证获取,但会使用户的保修失效,可能会砖化设备,并且可能不支持恢复到出厂设置。
如果您越狱设备,最好假设它将永远被越狱,保修将不再有效。
许多公开可用的越狱工具会向设备添加一个非官方的应用安装程序,如 Cydia,允许用户从在线文件存储库安装许多第三方应用程序、工具、调整和应用。从 Cydia 下载的软件为非越狱设备打开了无限的可能性。最流行的越狱工具包括 Pangu、TaiG、Electra 和 Unc0ver。并非所有 iOS 版本都可以越狱。以下表格将帮助您根据您拥有的设备及其 iOS 版本选择适当的越狱工具:
版本 | 发布日期 | 工具 |
---|---|---|
iPhone OS 1.0 | 2007 年 6 月 29 日 | (无名称) |
iPhone OS 2.0 | 2008 年 7 月 11 日 | PwnageTool |
iPhone OS 3.0 | 2009 年 6 月 17 日 | PwnageTool |
iOS 4.0 | 2010 年 6 月 21 日 | PwnageTool |
iOS 5.0 | 2011 年 10 月 12 日 | redsn0w |
iOS 6.0 | 2012 年 9 月 19 日 | redsn0w |
iOS 7.0 - 7.0.6 | 2013 年 9 月 18 日 | evasi0n7 |
iOS 7.1 - 7.1.2 | 2014 年 5 月 29 日 | Pangu |
iOS 8.0 - 8.1 | 2014 年 9 月 17 日 | Pangu8 |
iOS 8.1.1 - 8.4 | 2014 年 11 月 17 日 | TaiG, PP Jailbreak |
iOS 8.4.1 | 2015 年 8 月 13 日 | EtasonJB |
iOS 9.0 | 2015 年 9 月 16 日 | Pangu9 |
iOS 9.1 | 2015 年 10 月 21 日 | Pangu9 |
iOS 9.3.5 | 2016 年 8 月 25 日 | Phoenix |
iOS 10.0 - 10.1.1 | 2016 年 9 月 13 日 | Yalu |
iOS 11.0 - 11.1.2 | 2017 年 9 月 19 日 | LiberiOS |
iOS 11.0 - 11.1.2 | 2017 年 9 月 19 日 | Electra1112 |
iOS 11.0 - 11.4.1 | 2018 年 7 月 7 日 | Electra1131 |
iOS 11.0 - 11.4.1 | 2018 年 10 月 14 日 | Unc0ver |
iOS 12.0 - 12.2, 12.4 - 12.4.2 | 2019 年 9 月 17 日 | Chimera, Unc0ver |
iOS 12.3 - 13.2.3 | 2019 年 11 月 10 日 | checkra1n |
我们现在已经了解了越狱过程,并查看了当前可用的不同越狱工具。
总结
对 iOS 设备进行取证检查的第一步应该是识别设备型号。iOS 设备的型号可以帮助您作为检查员了解设备的基本组件和功能,从而驱动获取和检查的方法。不应忽视旧版 iOS 设备,因为它们可能会在调查中出现。您必须了解所有 iOS 设备,因为旧设备有时仍在使用,并可能与刑事调查有关。
下一章将提供工具,这些工具将有助于从 iOS 设备中获取数据,以便进行法庭取证检查。并非所有工具都是平等的,因此了解最佳工具以正确完成工作非常重要。
第三章:iOS 设备的数据采集
从犯罪现场找到的 iOS 设备可能是证据的丰富来源。想想智能手机对用户来说有多么私人化;没有其他数字设备能够与之相提并论。我们很少离开家或者在家附近走动时不离开我们的智能手机。它实际上是一个窥视人类最私人方面的东西,几乎就像我们日常活动的日记。根据几个新闻报道,奥斯卡·皮斯托里斯的 iPad 被一位移动专家检查,并在他的审判中展示,以展示他女友去世前几个小时的互联网活动。当 iOS 设备可以提供所谓的“关键证据”时,作为检查员,您必须确保自己知道如何正确处理、获取和分析设备。
有多种方法可以从 iOS 设备中获取取证数据。尽管每种方法都有其优势和劣势,但任何获取方法的基本原则是尽可能获取尽可能多的数据。
在本章中,我们将涵盖以下主题:
-
iOS 设备的操作模式
-
密码保护和潜在的绕过
-
逻辑采集
-
文件系统获取
iOS 设备的操作模式
在深入研究取证技术和获取方法之前,了解 iOS 设备的不同操作模式非常重要。许多取证工具和方法要求您将设备置于其中一个操作模式。了解 iOS 设备的操作模式是执行设备上的特定操作所必需的。
尽管大多数商业工具将演示将设备置于特定模式的正确步骤,但您必须了解该模式代表什么。iOS 设备能够以不同的操作模式运行:正常模式、恢复模式和设备固件更新(DFU)模式。一些取证工具要求您知道设备当前使用的模式。我们将在本节中定义每种模式。
请注意,当提到iPhone时,应理解该说法对所有 iOS 设备都适用。
正常模式
当 iPhone 打开时,它的操作系统被引导;这种模式称为正常模式。在 iPhone 上执行的大多数常规活动(通话、发短信等)都将在正常模式下运行。
当 iPhone 打开时,内部上,它会通过一个安全引导链,如下图所示。越狱设备不会发生这种情况。引导过程中的每个步骤都包含由苹果加密签名的软件组件,以确保完整性:
iPhone 在正常模式下的安全引导链
*引导 ROM 然后验证低级引导加载程序(LLB)是否由苹果签名并加载它。LLB 由引导 ROM 加载和验证,但这仅发生在 A9 或更早的 A 系列处理器设备上
引导 ROM,也称为安全 ROM,是只读存储器(ROM)的第一个重要代码片段,它在 iPhone 上运行(www.apple.com/business/docs/iOS_Security_Guide.pdf
)。iOS 设备的引导过程在以下步骤中定义:
-
引导 ROM 代码包含苹果根证书颁发机构(CA)公钥,用于在允许加载之前验证下一阶段的签名。
-
当 iPhone 启动时,应用处理器执行引导 ROM 的代码。
-
然后,引导 ROM 验证低级引导加载程序(LLB)是否由苹果签名并加载它。LLB 由引导 ROM 加载和验证,但这仅发生在 A9 或更早的 A 系列处理器设备上。
-
当 LLB 完成其任务时,它会验证并加载第二阶段引导加载程序(iBoot)。iBoot 验证并加载 iOS 内核。
-
iOS 内核然后验证并运行所有用户应用程序。
当 iOS 设备处于此状态时,可以通过取证获取用户可访问的部分。通常情况下,这包括逻辑获取,稍后将在本章中讨论。
恢复模式
在启动过程中,如果一步无法加载或验证下一步,则启动过程将停止,并且 iPhone 将显示以下截图中显示的屏幕:
iOS 设备恢复模式
此模式称为恢复模式,用于执行 iPhone 的升级或恢复。要进入恢复模式,请执行以下步骤:
-
关闭设备。
-
按住 iPhone 的 Home 按钮,并通过 USB 电缆将设备连接到计算机。设备应该会开机。
-
继续按住 Home 按钮,直到出现“连接到 iTunes”屏幕。然后,您可以释放 Home 按钮(在越狱的 iOS 设备上,此屏幕可能显示不同的图标)。大多数取证工具和提取方法都会提醒您关于 iOS 设备当前状态的信息。
-
要退出恢复模式,请重新启动 iPhone。在 iPhone 6s 及更早版本上,可以通过按住 Home 和睡眠/电源按钮直到出现苹果标志来完成此操作。在 iPhone 7 和 iPhone 7 Plus 上,可以通过同时按住侧面按钮和音量减小按钮来完成此操作。在 iPhone 8 及更高版本上,可以通过点击音量增大按钮,然后点击音量减小按钮,然后按住侧面按钮来完成此操作。
您可以在support.apple.com/en-in/HT201263
上阅读有关 iOS 设备恢复模式的更多信息。
通常,重新启动的过程将使 iPhone 从恢复模式返回到正常模式。这种方法也适用于 Apple Watch。您可能会遇到 iPhone 不断重新启动进入恢复模式的情况。这称为恢复循环。当用户或检查员尝试越狱 iOS 设备并出现错误时,可能会发生恢复循环。要使设备退出恢复循环,必须将设备连接到 iTunes,以便可以将备份恢复到设备上。
这会对证据进行更改,因此请确保在尝试在真实证据上使用方法之前,已经在测试设备上验证了您的获取方法。
DFU 模式
在启动过程中,如果引导 ROM 无法加载或验证 LLB 或 iBoot(在较新的设备上),iPhone 将进入设备固件升级(DFU)模式。DFU 模式是一种低级诊断模式,旨在为 iPhone 执行固件升级。
要进入 DFU 模式,请按照以下步骤进行 iPhone 8 及更高版本:
-
通过 USB 电缆将设备连接到您的工作站。
-
按下音量增大按钮并快速释放它。
-
按住音量减小按钮并快速释放它。
-
按住侧面按钮并再次按下音量减小按钮。
-
5 秒后,释放侧面按钮,但继续按住音量减小按钮,直到看到恢复屏幕。
按照以下步骤进行 iPhone 7:
-
通过 USB 电缆将设备连接到您的工作站。
-
同时按住侧面和音量减小按钮。
-
释放侧面按钮,但继续按住音量减小按钮,直到看到恢复屏幕。
按照以下步骤进行 iPhone 6s 及更早版本:
-
通过 USB 电缆将设备连接到您的工作站。
-
同时按住 Home 和顶部(或侧面)按钮。
-
释放顶部(或侧面)按钮,继续按住 Home 按钮。
在 iPhone 6s 及更早版本上,当设备处于 DFU 模式时,屏幕上不会显示任何内容。
要验证 iPhone 在 macOS 上是否处于 DFU 模式,请启动“系统报告”,然后转到 USB 选项。您应该会看到类似以下截图的内容:
MacBook 系统信息显示处于 DFU 模式的设备
接下来,我们将快速查看设置取证环境所需的工具。
设置取证环境
现在,我们有一些工具可以供移动取证人员使用,使用 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 的闪存芯片并克隆它来绕过密码输入限制。这种技术应该适用于 iPhone 6s Plus 及以下的任何 iOS 设备。
逻辑获取
逻辑获取捕获了用户可访问的部分内容;换句话说,就是包括在 iTunes 备份中的内容。这意味着我们无法获得任何已删除的文件,但由于 SQLite 数据库的空闲列表和未分配空间,我们可以恢复已删除的记录,包括短信和其他聊天记录,浏览历史等。我们将在《iOS 数据分析和恢复》第五章中讨论恢复 SQLite 数据和已删除的证据。
逻辑获取是确定设备是否解锁的最简单方法,因为它只是使用内置的备份机制。大多数支持 iOS 设备逻辑获取的工具和方法在设备被锁定时会失败。有些人认为,如果捕获了物理镜像,就几乎不需要逻辑获取。然而,并非所有数据都在物理镜像中解析,这就是为什么可以访问逻辑镜像,从而得到可读数据,这将帮助您深入挖掘物理镜像中的证据,以支持您的取证调查。
逻辑获取是获得存储在 iOS 设备上的数据的最快、最简单和最便宜的方法。有各种各样的工具,从商业到免费,都能够捕获逻辑镜像。其中大多数工具要求设备解锁,或者要求主机机器上的plist
文件可读。
使用 libimobiledevice 进行实际逻辑获取
掌握理论是好的,但将其付诸实践更好。让我们创建一个运行 iOS 13.2 的 iPhone 的逻辑镜像,使用libimobiledevice
,这应该已经安装在您的工作站上,因为我们在上一章中用它进行了设备信息收集。
好的,让我们开始:
- 首先,让我们加密我们的备份。将 iOS 设备连接到您的工作站并启动命令提示符。将目录更改为包含
libimobiledevice
的目录,并输入以下命令:
idevicebackup2.exe backup encryption on <your_password>
-
如果看到备份加密已成功启用,则您已经做对了,备份将被加密。这将帮助您,取证人员,获取有关用户密码、Safari 浏览历史等更多信息。
-
是时候创建备份了——我们的 iOS 设备逻辑镜像。要做到这一点,请输入以下命令:
idevicebackup2 backup --full <the_folder_you_want_the_image_to_be_saved>
就是这样。您可以在以下截图中看到逻辑成像过程:
使用 libimobiledevice 进行 iPhone 逻辑成像
接下来,让我们看一下使用 Belkasoft 获取工具进行逻辑获取。
使用 Belkasoft 获取工具进行实际逻辑获取
由于逻辑获取是现代 iOS 设备最常见的选项,我们将演示如何使用一些更多的免费工具。第一个是 Belkasoft 获取工具。这个工具不仅可以用于 iOS 设备获取,还可以用于硬盘甚至云数据。
让我们使用 Belkasoft 获取工具获取运行 iOS 13.2.3 的 iPhone:
- 启动 Belkasoft 获取工具并选择移动设备选项:
选择来源
- 在下一个窗口中,选择苹果选项:
选择移动类型
- 现在,选择获取方法和镜像路径:
选择获取方法
该工具能够在设备未越狱时创建 iTunes 备份,并在设备越狱时执行文件系统提取。
- 等待任务成功完成。您将在上一步中选择的文件夹中找到设备的逻辑镜像:
创建备份
备份可以被 Belkasoft 证据中心和许多其他移动取证工具分析。
使用 Magnet ACQUIRE 进行实际逻辑获取
另一个能够进行逻辑获取的免费工具是来自 Magnet Forensics 的ACQUIRE。让我们再次执行逻辑获取,这次使用运行 iOS 12.2 的设备:
- 启动 Magnet ACQUIRE 并从列表中选择要镜像的设备:
选择设备
- 选择要获取的镜像类型。我们想获取逻辑镜像,而我们的设备没有越狱,所以我们将选择快速选项:
选择图像类型
- 如果需要,您可以添加证据来源的描述,并选择要保存图像的文件夹:
选择目标文件夹、图像名称和图像信息
- 等待任务成功完成;您将看到获取过程的摘要:
创建图像
所有提取的数据将保存在 ZIP 存档中的目标文件夹中。此外,目标文件夹还将包含一个带有获取过程日志和图像信息的 TXT 文件。
下一节将指导您进行越狱和文件系统获取。
文件系统获取
安全区域给 iOS 取证人员带来了新的挑战。我们无法提取解密设备镜像所需的加密密钥,因此进行物理获取是无用的。但有文件系统获取。不幸的是,在大多数情况下,这需要 iOS 设备越狱。下一节将向您展示如何使用 Electra 越狱运行 iOS 11.4.1 的 iPhone,以及如何使用 Checkra1n 越狱运行 iOS 13.2 的 iPhone。
实际越狱
要执行文件系统获取,我们需要我们的 iOS 设备越狱。运行 iOS 11.4.1 的 iOS 设备越狱的步骤如下:
-
从
github.com/coolstar/electra-ipas/raw/master/Electra1141-1.3.2.ipa
下载Electra
。 -
下载
Cydia Impactor
(www.cydiaimpactor.com/
),运行它,并将设备连接到您的工作站:
运行 Cydia Impactor
-
将
Electra IPA
文件拖放到Cydia Impactor
窗口中。 -
在新窗口中输入任何 Apple ID(您可以为您检查的每个设备注册一个新的)。
-
使用此 Apple ID 登录
appleid.apple.com/
,并在安全部分生成一个特定于应用程序的密码。将此密码粘贴到下一个窗口中。等待过程完成。 -
在手机上,转到设置|通用|设备管理|Apple ID,并点击信任:
验证开发者
-
将手机设置为飞行模式,关闭 Siri,并重新启动设备。
-
在 Springboard 上点击 Electra 图标,然后选择 Jailbreak。如果过程成功完成,你会在 Springboard 上找到 Cydia 图标:
越狱设备
现在,手机已经越狱并准备好进行文件系统获取。
Checkra1n
基于 bootrom 漏洞和利用,并支持各种 iOS 设备,甚至是运行最新(撰写时)的 iOS 13.2 的设备。以下是运行 iOS 13.2 的 iOS 设备越狱的步骤:
-
从
checkra.in/
下载Checkra1n
。 -
运行应用程序。撰写时,
Checkra1n
仅适用于 macOS。 -
连接设备并将其放入 DFU 模式:
将设备放入 DFU 模式
- 等待利用过程完成:
利用过程
一旦设备重新启动,您将在 Springboard 上找到 checkra1n 图标 - 设备现在已经越狱并准备好进行文件系统获取。
有关更多越狱技术,请参阅《第二章》(acc4800c-2775-4ca6-9f5f-e447fa5ac0a8.xhtml)的“越狱”部分,《了解 iOS 设备的内部》。
使用免费工具进行实际文件系统获取
是时候进行文件系统获取了。我们只需要libimobiledevice
中的iproxy
:
- 打开命令提示符窗口,并使用以下参数运行
iproxy
:
- 打开另一个命令提示符窗口,将目录更改为您希望存储图像的目录,并运行以下命令:
ssh root@127.0.0.1 -p 4444 "tar -cf - /private/var/" > userdata.tar
要通过 SSH 连接,您将被提示输入必要的密码。SSH 的默认密码是alpine。
一旦过程完成,您将在更改为之前运行上述命令的目录中找到创建的文件系统镜像。它是一个 TAR 存档,可以用许多解档程序打开,比如 7-Zip:
文件系统镜像内容
接下来,让我们看看Elcomsoft iOS Forensic Toolkit。
使用 Elcomsoft iOS Forensic Toolkit 进行实际文件系统获取
当然,商业工具更加稳定可靠。其中一个能够进行文件系统获取的工具是 Elcomsoft iOS Forensic Toolkit。在这里,我们将获取一个运行 iOS 12.4.3 的越狱 iOS 设备。
这样做的步骤如下:
-
将设备连接到您的工作站并启动
Toolkit.cmd
。 -
选择用于 SSH 连接的端口(默认为
22
,但由于我们使用 checkra1n 进行越狱,端口改为44
),并输入密码(默认为alpine
):
- 要获取设备文件系统,请键入F:
- 选择图像名称并开始该过程。
一旦过程完成,我们将拥有一个准备好用我们选择的移动取证工具分析的文件系统镜像。
摘要
iOS 设备取证检查的第一步是从设备中获取数据。有几种不同的方法可以从 iOS 设备中获取数据。本章涵盖了逻辑和文件系统获取技术,以及越狱和绕过密码的方法。
虽然文件系统获取是从 iOS 设备中取得大部分数据的法医最佳方法,但备份文件可能存在或者是从设备中提取数据的唯一方法。
下一章将详细讨论 iOS 设备备份文件,包括用户、法医、加密和 iCloud 备份文件,以及您可以执行的取证检查方法。
第四章:从 iOS 备份中获取数据
在上一章中,我们介绍了从 iOS 设备中获取数据的技术,包括逻辑和文件系统获取。本章涵盖了使用苹果的同步协议将设备上的文件备份到计算机或 iCloud 的技术。
iOS 设备的物理获取在调查中提供了最多的数据,但您也可以在 iOS 备份中找到大量信息。iOS 设备用户有几种选项可以备份其设备上的数据。用户可以选择使用苹果 iTunes 软件将数据备份到计算机,或者备份到被称为 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 是苹果提供的免费实用程序,用于 iOS 设备和计算机之间的数据同步和管理。iTunes 使用苹果的专有同步协议将数据从 iOS 设备复制到计算机上。例如,可以使用电缆或 Wi-Fi 将 iPhone 与计算机同步。iTunes 提供加密备份选项,但默认情况下,每当 iPhone 同步时都会创建未加密的备份。破解加密备份可以提供对 iOS 设备存储数据的额外访问权限。这将在本章后面讨论。
用户经常创建备份文件以保护其数据,以防设备损坏或丢失。可以创建法证备份作为最佳证据,也可以从现有的 iOS 备份文件中提取数据以搜索旧信息。例如,如果您正在接受调查并删除文件或擦除 iPhone,您的 iCloud 和 Mac 上的备份文件仍然存在。根据使用 iTunes 还是 iCloud,同一设备可能存在多个备份。您将需要对每个备份进行法证分析,以揭示与调查相关的证据。
iTunes 被配置为一旦 iOS 设备连接到计算机就自动启动同步过程。为了避免 iOS 设备和计算机之间的意外数据交换,在连接证据到法证工作站之前,请禁用自动同步过程。以下过程的步骤 2截图显示了禁用 iTunes 版本 12.9.4.102 中的自动同步选项。
要在 iTunes 中禁用自动同步,请执行以下步骤:
-
导航到编辑|首选项|设备。
-
检查防止 iPods,iPhones 和 iPads 自动同步,并单击“确定”按钮,如下截图所示:
在 iTunes 中禁用自动同步
-
如前面的截图所示,系统上存在 iOS 备份文件。如果这是一台法证工作站,这些备份文件将不存在或将被永久删除以防止交叉污染。
-
验证同步设置后,使用通用串行总线(USB)电缆将 iOS 设备连接到计算机。如果连接的设备没有密码保护,或者最近已连接到计算机,iTunes 将立即识别设备;否则,您将需要输入密码。可以通过 iTunes 界面左侧显示的 iPhone 图标进行验证,如下截图所示:
iTunes 识别的 iPhone
- 在 iTunes 可以访问 iPhone 之前,您必须在计算机和手机之间启用信任。您将被提示在计算机上按“继续”(如下截图所示)并在 iPhone 上选择“信任”。对于 iOS 11,您还必须输入设备的密码:
iTunes 提示访问权限
- 一旦 iTunes 识别设备,单击 iPhone 图标即可显示 iPhone 摘要,包括 iPhone 的名称,容量,固件版本,序列号,剩余空间和电话号码。iPhone 摘要页面还显示了创建备份的选项。创建备份的过程将在下一节中讨论。
现在,我们准备开始备份设备。下一节将指导您完成此过程。
使用 iTunes 创建和分析备份
在本节中,我们将指导您使用 Apple iTunes 备份 iOS 设备。我们使用的是 iTunes 版本 12.10.2.3 和运行 iOS 版本 13.2 的 iPhone。执行以下步骤:
-
连接设备并单击 iTunes 界面左侧显示的 iPhone 图标。
-
转到“备份”部分,您可以选择备份目的地(本地计算机或 iCloud),以及是否加密,如下截图所示:
iTunes 备份部分
加密的 iTunes 备份包含非加密备份不包含的数据,包括密码,Wi-Fi 设置和浏览历史记录,因此请确保您为法证目的创建加密备份。
- 单击“立即备份”按钮,等待过程完成。完成后,最新的备份日期和时间将更改。
如果您想使用 iTunes 并将备份保存到外部驱动器,请遵循以下说明(我们使用的是 iTunes 版本 12.10.2.3 和 Windows 10):
-
重命名原始备份文件夹。
-
连接外部驱动器并在其中创建一个备份文件夹。
-
打开命令提示符并输入以下命令:
mklink /J "C:\Users\<username>\AppData\Roaming\Apple Computer\MobileSync\Backup" "f:\Backup"
- 现在,您可以创建一个常规的本地备份,并将其保存到外部驱动器上。
现在,我们已经准备好备份以进行进一步的分析。让我们打开来了解其结构。
了解备份结构
当 iPhone 备份到计算机时,备份文件存储在一个备份目录中,该目录是一个 40 个字符的十六进制字符串,对应于设备的唯一设备标识符(UDID)。最新的设备已更改了 UDID 格式,现在是一个 24 个字符的字符串,因此它们的备份相应地命名。备份过程可能需要相当长的时间,具体取决于第一次备份时 iPhone 上存储的数据大小。备份目录的位置取决于计算机的操作系统。以下表显示了常见操作系统和 iTunes 备份目录的默认位置:
操作系统 | 备份目录位置 |
---|---|
Windows XP | C:\Documents and Settings\<username>\Application Data\Apple Computer\MobileSync\Backup\ |
Windows Vista/7/8/10 | C:\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 备份可能会复制设备上的所有内容,包括联系人、短信、照片、日历、音乐、通话记录、配置文件、文档、钥匙串、网络设置、离线网络应用缓存、书签、cookies、应用程序数据(如果选择了)、等等。例如,如果备份未加密,则电子邮件和密码将不会被提取。备份还包含设备详细信息,如序列号、UDID、SIM 卡详细信息和电话号码。这些信息也可以用来证明备份与移动设备之间的关系。
备份目录包含四个标准文件,以及个别文件(iOS 9 及以下)或文件夹(iOS 10 及更新)。在 iOS 9 及以下版本中,这四个文件是info.plist
、manifest.plist
、status.plist
和manifest.mbdb
,但从 iOS 10 开始,我们有以下标准文件:
-
info.plist
-
manifest.plist
-
status.plist
-
manifest.db
这些文件存储了关于备份和来源设备的详细信息。
info.plist
info.plist
文件存储了关于备份设备的详细信息,通常包含以下信息:
-
应用程序
:这是设备上安装的应用程序列表。 -
构建版本
:这是 iOS 的构建版本号。 -
设备名称和显示名称
:这是设备的名称,通常包括所有者的姓名。 -
GUID
:这是设备的全局唯一标识符(GUID)。 -
ICCID
:这是集成电路卡标识符(ICCID),即 SIM 卡的序列号。 -
IMEI
:这是国际移动设备身份(IMEI),用于唯一标识手机。 -
已安装应用程序
:这是已安装应用程序的列表。 -
上次备份日期
:这是上次成功备份的时间戳。 -
MEID
:这是设备的移动设备标识符(MEID)。 -
电话号码
:这是备份时设备的电话号码。 -
产品名称
:这是设备的名称(例如,iPhone X)。 -
产品类型和产品版本
:这是设备的型号和固件版本。 -
序列号
:这是设备的序列号。 -
目标标识符和唯一标识符
:这是设备的 UDID。 -
iTunes 文件
:这包含有关照片、文件夹、语音备忘录和 iTunes 首选项的信息。 -
iTunes 设置
:这包含有关已删除应用程序和应用程序库的信息。 -
iTunes 版本
:这是用于创建备份的 iTunes 版本。
现在让我们来看一下manifest.plist
文件。
manifest.plist
manifest.plist
文件描述了备份的内容,并通常包含以下信息:
-
备份密钥包
:备份密钥包
包含一组与系统密钥包
中的密钥不同的数据保护类密钥,并且备份数据会使用新的类密钥重新加密。备份密钥包
中的密钥有助于以安全方式存储备份。 -
版本
:这是备份版本。 -
日期
:这是备份创建或上次更新的时间戳。 -
ManifestKey
:这是用于加密manifest.db
的密钥(使用保护类 4 进行包装)。 -
是否设置密码
:这标识设备上次同步时是否设置了密码。 -
锁定
:这包含设备详细信息、上次备份计算机的名称和其他远程同步配置文件。 -
应用程序
:这是备份设备上安装的第三方应用程序、它们的版本号和捆绑标识符的列表。 -
是否加密
:这标识备份是否加密。对于加密备份,值为True
;否则为False
。
接下来,我们将查看status.plist
文件。
status.plist
status.plist
文件存储有关备份状态的详细信息,并通常包含以下信息:
-
是否完整备份
:这标识备份是否是设备的完整备份。 -
UUID
:这是设备的 UUID。 -
日期
:这是上次备份修改的时间戳。 -
备份状态
:这标识备份是新备份还是已更新的备份。 -
快照状态
:这标识备份过程是否已成功完成。
现在,我们将查看manifest.db
文件。
manifest.db
manifest.db
是一个 SQLite 数据库,包含通过备份机制从 iPhone 提取的所有文件和文件夹的列表。数据库的Files
表包括以下列:
-
fileID
:这是域的安全哈希算法 1(SHA1)哈希值,加上-
符号和文件或文件夹的相对路径。例如,ae94e0607ca39a88c18aca095cb5b4f8471291a0
是CameraRollDomain-Media/PhotoData/Thumbnails/V2/DCIM/102APPLE
的 SHA1 哈希值。 -
域
:这是文件或文件夹所属的域(iOS 中的所有文件都分为多个域,例如CameraRollDomain
和HomeDomain
)。 -
相对路径
:这是文件(包括文件名)或文件夹的相对路径。 -
标志
:这些是文件标志。 -
文件
:这是一个嵌入的.plist
文件。这些.plist
文件包括以下重要信息,等等: -
上次修改时间
:这是文件的最后修改时间戳(Unix 格式)。 -
创建时间
:这是 Unix 格式的文件创建时间戳。字段显示在以下截图中:
manifest.db 内容
您可以轻松使用DB Browser for SQLite(DB4S)导出这个.plist
嵌入式二进制文件。要做到这一点,请遵循以下步骤:
-
使用“打开数据库”按钮打开
manifest.db
。 -
转到“浏览数据”选项卡。
-
点击“文件”列中的单元格。
-
在“编辑数据库单元格”窗格中,使用“导出”按钮将数据保存为
.plist
文件,如下截图所示:
使用 DB4S 导出嵌入的.plist 文件
自 iOS 10 以来,文件不再以 40 个字符的十六进制字符串命名。相反,您将看到以 2 个字符的十六进制字符串命名的文件夹列表,其中包含您在以前版本中看到的文件,如下截图所示:
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/
下载。
该工具期望备份位于默认位置,但您可以将其更改为您选择的位置,例如外部驱动器。
要提取备份,请遵循以下步骤:
- 如果要分析的备份未保存在默认位置,请在主屏幕上点击“首选项”超链接并选择正确的位置,如下截图所示:
选择备份位置
- 您将看到您选择的位置上可用的备份。点击您想要检查的备份。
您将看到可用的潜在证据来源,包括联系人、通话记录、短信、日历、备忘录、语音邮件和浏览历史,如下截图所示:
潜在的证据来源
- 重要的是要注意,您可以使用原始数据模式(上一个截图中的最后一个图标)浏览备份文件系统,如下截图所示:
原始数据模式
借助这个工具,您可以轻松查看和导出感兴趣的文件。当然,这并不是唯一能够解决这类任务的工具。让我们看看另一个工具——iExplorer。
iExplorer
iExplorer 的免费版本可在macroplant.com/iexplorer
上获得。该工具支持 Windows 和 macOS,并且能够浏览 iTunes 备份。以下是如何使用它:
-
启动 iExplorer 并点击浏览 iTunes 备份。
-
要从自定义位置添加备份,请点击“添加/修改备份位置”。
-
现在,点击“添加备份位置”按钮并选择路径,如下截图所示:
添加自定义路径
- 您自定义位置的备份现在应该是可用的。
此外,还有一个有趣的选项——iExplorer 可以为您收集 SQLite 数据库。要做到这一点,点击“原始数据库”按钮,将您带到以下屏幕(您将在下一章中了解更多关于 SQLite 取证的内容):
iExplorer 原始数据库选项
您还可以使用 iExplorer 的帮助以文件和文件夹列表的形式浏览备份;使用左窗格进行此操作。此外,您可以使用“备份浏览器”按钮,然后使用主窗格浏览备份。
如您所见,有足够的工具可以从 iTunes 备份中提取有价值的数据片段,即使它是加密的。当然,通常情况下,只要您知道密码,就可以做到。但是如果您不知道呢?您将在下一节中学习如何绕过它。
处理加密备份文件
对于加密备份,备份文件使用高级加密标准-256(AES-256)算法以密码块链接(CBC)模式进行加密,使用唯一密钥和空初始化向量(IV)。唯一的文件密钥受到来自备份密钥包
的一组类密钥的保护。备份密钥包
中的类密钥受到通过 10,000 次基于密码的密钥派生函数 2(PBKDF2)在 iTunes 中设置的密码派生的密钥的保护。在 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
。
要强制破解备份密码,请执行以下步骤:
- 启动 Elcomsoft Phone Breaker 工具,将显示工具的主屏幕,如下面的屏幕截图所示:
Elcomsoft Phone Breaker 的主屏幕
-
导航到“密码恢复向导”|“选择源”|“iOS 设备备份”。导航到要破解的备份文件,并选择
Manifest.plist
文件。 -
在“攻击”部分配置暴力破解模式,然后单击“开始”按钮开始暴力破解攻击,如下面的屏幕截图所示:
密码恢复过程
如果强制破解成功,工具将在主屏幕上显示密码。
如果您使用运行 iOS 11 或更高版本的 iPhone,并且知道其密码,您可以重置实际密码并使用新的已知密码进行备份。以下是如何操作:
-
在 iPhone 上,转到“设置”|“通用”|“重置”。
-
选择“重置所有设置”并输入设备的密码。重要的是要注意,不会删除任何数据。
-
设置重置后,您可以使用自己选择的密码创建新的备份。
如果设置了屏幕使用时间密码,则还需要它来重置备份密码。
使用 iCloud 备份工作
iCloud 是苹果公司推出的云存储和云计算服务,于 2011 年 10 月推出。该服务允许用户在多个兼容设备(运行 iOS 5 或更高版本的 iOS 设备;运行 macOS X 10.7.2 或更高版本的计算机;和 Microsoft Windows)之间同步数据,包括日历、联系人、提醒、照片、文档、书签、应用程序、备忘录等,使用一个集中的 iCloud 账户。该服务还允许用户无线自动地将他们的 iOS 设备备份到 iCloud。iCloud 还提供其他服务,如“查找我的 iPhone”(远程跟踪丢失的手机并擦除数据)和“查找我的朋友”(与朋友分享位置并在设备到达特定位置时通知用户)。
使用 iCloud 注册是免费的,并且使用 Apple ID 非常简单。当您注册 iCloud 时,苹果公司为您提供 5GB 的免费远程存储空间。如果您需要更多存储空间,可以购买升级计划。为了保护您的数据,苹果在用户创建用于 iCloud 的 Apple ID 时强制要求选择一个强密码。密码必须至少包含八个字符,包括一个数字、一个大写字母和一个小写字母。
运行 iOS 5 及更高版本的 iOS 设备允许用户将设备设置和数据备份到 iCloud。备份的数据包括照片、视频、文档、应用程序数据、设备设置、消息、联系人、日历、电子邮件和钥匙串,如下面的屏幕截图所示。您可以通过转到设置|密码和帐户|iCloud |iCloud 来在设备上启用 iCloud 备份:
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 获取工具,这是 Belkasoft 提供的免费工具,可以从以下网址下载:belkasoft.com/get
。
要提取 iCloud 数据,请执行以下步骤:
-
启动 Belkasoft 获取工具。
-
选择“云”选项。
-
选择 iCloud。
-
输入 Apple ID 登录名和密码,然后单击“下一步”。
-
选择要下载的工件以及要放置它们的目标文件夹,如下面的屏幕截图所示:
可用于下载的数据类型
-
输入验证码。
-
等待过程完成。您会在您选择的文件夹中找到文件。
如果您更喜欢完整备份,最好选择 Elcomsoft Phone Breaker。
要下载 iCloud 备份,请按照以下步骤操作:
-
启动 Elcomsoft Phone Breaker。
-
选择备份选项。
-
输入 Apple ID 和密码,或使用先前提取的令牌。
-
如果 Apple ID 受到双重认证(2FA)的保护,请在相应字段中输入代码。
-
选择您想要下载的备份,如下面的屏幕截图所示:
选择要下载的备份
下载完成后,您可以使用您选择的工具来分析备份文件,例如本章中讨论的工具之一。
摘要
iOS 设备备份包含可能是您唯一证据来源的重要信息。存储在 iOS 备份中的信息包括照片、视频、联系人、电子邮件、通话记录、用户帐户和密码、应用程序和设备设置。本章介绍了如何创建备份文件并从 iTunes 和 iCloud 备份中检索数据,包括加密备份文件,尽可能地。
下一章,第五章,iOS 数据分析和恢复,进一步深入了法证调查,向您展示如何分析从备份文件中恢复的数据。
第五章:iOS 数据分析和恢复
iOS 设备取证的一个关键方面是检查和分析获取的数据以解释证据。在前几章中,您学习了从 iOS 设备获取数据的各种技术。任何类型的获取图像都包含数百个数据文件,通常由前几章描述的工具解析。即使数据被取证工具解析,也可能需要进行手动分析以揭示额外的证据或简单验证您的发现。
本章将帮助您了解数据在 iOS 设备上的存储方式,并将引导您逐步检查每个调查中应该检查的关键证据,以尽可能多地恢复数据。
在本章中,我们将涵盖以下主题:
-
解释 iOS 时间戳
-
使用 SQLite 数据库
-
关键证据-重要的 iOS 数据库文件
-
属性列表
-
其他重要文件
-
恢复已删除的 SQLite 记录
解释 iOS 时间戳
在检查数据之前,了解 iOS 设备上使用的不同时间戳格式非常重要。在 iOS 设备上找到的时间戳通常以Unix 时间戳或Mac 绝对时间格式呈现。作为取证人员,您必须确保工具正确地转换时间戳。访问原始 SQLite 文件将允许您手动验证这些时间戳。您将在接下来的几节中学习如何解码每个时间戳格式。
Unix 时间戳
Unix 时间戳是自 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/
,如下面的屏幕截图所示:
使用 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://www.epochconverter.com/coredata 转换的 Mac 时间
当然,也有离线工具用于时间戳转换。我们将在下一节介绍其中之一。
WebKit/Chrome 时间
在分析 iOS 应用程序数据时,特别是对于诸如 Google Chrome、Safari 和 Opera 等网络浏览器,您可能会遇到另一种时间戳格式——WebKit/Chrome 时间。这是自 1601 年 1 月 1 日午夜以来的微秒数。这也有一个在线转换器:www.epochconverter.com/webkit
。
如果您不喜欢或不想出于某种原因使用在线转换器,您还可以使用免费工具:Digital Detective’s DCode。该工具可用于转换多种不同格式的时间戳,包括 Unix 时间(秒和毫秒)、Mac 绝对时间和 WebKit/Chrome 时间,如下面的屏幕截图所示:
使用 DCode 转换的 WebKit/Chrome 时间戳
许多商业移动取证套件将自动为您转换提取的时间戳,但在某些情况下,验证它非常重要,因此您必须清楚地了解时间戳格式。
使用 SQLite 数据库
SQLite 是一个开源的、进程内的库,实现了一个自包含、零配置和事务性的 SQL 数据库引擎。这是一个完整的数据库,包含多个表、触发器和视图,都包含在一个跨平台文件中。由于 SQLite 是便携、可靠和小巧,它是一个流行的数据库格式,在许多移动平台上都有出现。
与其他智能手机和平板电脑一样,Apple iOS 设备大量使用 SQLite 数据库进行数据存储。许多内置应用程序,如电话、短信、邮件、日历和备忘录,都将数据存储在 SQLite 数据库中。除此之外,设备上安装的第三方应用程序也利用 SQLite 数据库进行数据存储。
SQLite 数据库可以带有文件扩展名或不带文件扩展名。它们通常具有.sqlitedb
或.db
文件扩展名,但有些数据库也具有其他扩展名。
SQLite 文件中的数据被分成包含实际数据的表。要访问文件中存储的数据,您需要一个能够读取它的工具。大多数商业移动取证工具,如 Belkasoft Evidence Center、Magnet AXIOM 和 Cellebrite Universal Forensic Extraction Device (UFED) Physical Analyzer,都提供对 SQLite 数据库的检查支持。如果您没有这些工具中的任何一个,一些不错的免费工具如下:
-
DB Browser for SQLite (DB4S):可以从
sqlitebrowser.org/
下载。 -
SQLite 命令行客户端:可以从
www.sqlite.org/
下载。 -
SQLiteStudio (
sqlitestudio.pl
):这是一个免费的跨平台 SQLite 管理器,支持 Windows 9x/2k/XP/2003/Vista/7/8/10、macOS 和 Linux。 -
SQLiteSpy:这是一个免费的图形用户界面(GUI)工具,适用于 Windows。您可以从http😕/www.yunqa.de/delphi/doku.php/products/sqlitespy/index下载它。
macOS 默认包含 SQLite 命令行实用程序(sqlite3
)。此命令行实用程序可用于访问单个文件并对数据库运行 SQL 查询。在接下来的部分中,我们将使用sqlite3
命令行实用程序和其他 SQLite 工具和浏览器来从各种 SQLite 数据库中检索数据。在检索数据之前,您需要学习的基本命令在以下部分中有解释。
连接到数据库
可以使用免费工具手动检查 iOS SQLite 数据库文件。以下是使用终端中的本机 Mac 命令检查数据库的示例:
-
确保您的设备镜像被挂载为只读,以防止对原始证据进行更改。
-
要从命令行连接到 SQLite 数据库,请在终端中运行
sqlite3
命令,输入您的数据库文件。这将为您提供一个 SQL 提示,您可以在其中发出 SQL 查询,如下面的代码块所示:
$ sqlite3 sms.db
SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints.
- 要断开连接,请使用
.exit
命令。这将退出 SQLite 客户端并返回到终端。
下一节将带您了解使用sqlite3
内置命令分析数据库。
探索 SQLite 特殊命令
连接到数据库后,您可以使用许多内置的 SQLite 命令,这些命令被称为点命令,可用于从数据库文件中获取信息。
您可以通过在 SQLite 提示符中发出.help
命令来获取特殊命令的列表。这些是 SQLite 特定的命令,它们不需要在末尾加上分号。最常用的点命令包括以下内容:
.tables
: 这列出了数据库中的所有表。以下屏幕截图显示了在sms.db
数据库中找到的表的列表:
.schema table-name
: 这显示了用于构造表的SQL CREATE
语句。以下屏幕截图显示了sms.db
数据库中handle
表的模式:
.dump table-name
: 这将表的整个内容转储为 SQL 语句。以下屏幕截图中的示例显示了sms.db
数据库中找到的handle
表的转储:
-
.output file-name
: 将输出重定向到磁盘上的文件,而不是在屏幕上显示。 -
.headers on
: 每当您发出SELECT
语句时,这将显示列标题。 -
.help
: 这显示了可用的 SQLite 点命令列表。 -
.exit
: 这断开与数据库的连接并退出 SQLite 命令 shell。 -
.mode
: 这设置了输出模式;可以是.csv
、HTML、制表符等。
确保 SQLite 提示符和点命令之间没有空格;否则,整个命令将被忽略。
探索标准 SQL 查询
除了 SQLite 点命令之外,还可以在命令行上向 SQLite 数据库发出标准 SQL 查询,例如SELECT
、INSERT
、ALTER
和DELETE
。与 SQLite 点命令不同,标准 SQL 查询在命令的末尾需要一个分号。
您将检查的大多数数据库只包含合理数量的记录,因此可以发出SELECT *
语句,打印表中包含的所有数据。本章将对此进行详细介绍。
使用商业工具访问数据库
虽然可以使用免费工具手动检查 iOS SQLite 数据库文件,但大多数检查员在手动检查文件之前更喜欢商业支持。以下是使用包含在 Belkasoft Evidence Center 中的 SQLite 检查数据库的示例。
要打开和分析数据库,您只需要按照以下几个简单的步骤:
-
启动 Belkasoft Evidence Center 并导航到 View | SQLite Viewer,并选择要检查的数据库文件。
-
选择数据库后,它将立即在 SQLite Viewer 中打开,并准备好进行检查,如下屏幕截图所示:
使用 Belkasoft Evidence Center 的 SQLite Viewer 打开的 sms.db 数据库
为什么检查员需要使用这样的商业查看器而不是免费和开源的查看器?例如,这个特定的查看器甚至支持受损或部分覆盖的 SQLite 数据库。此外,该工具支持从 freelists、Write-Ahead Log(WAL)和未分配空间中提取数据,如下屏幕截图所示:
在 Belkasoft Evidence Center 的 SQLite Viewer 中看到的数据库未分配空间
当然,对于 SQLite 数据恢复,也有一些免费和开源的工具可用。您将在以下部分了解更多关于这些工具的信息。
关键证据-重要的 iOS 数据库文件
根据第三章*,从 iOS 设备获取数据和第四章,从 iOS 备份中获取数据*中的说明提取的文件系统和备份应包含以下可能对您的调查重要的 SQLite 数据库。如果未恢复这些文件,请确保您正确获取了 iOS 设备。以下部分显示的文件是通过从运行 iOS 的设备进行逻辑获取而提取的。随着苹果在每个 iOS 版本中为内置应用添加新功能,文件的格式可能会因不同的 iOS 版本而有所不同。
通讯录联系人
通讯录包含有关所有者个人联系人的丰富信息。除了第三方应用程序外,通讯录还包含设备上存储的所有联系人的联系人条目。通讯录数据库可以在/HomeDomain/Library/AddressBook.sqlitedb
找到。AddressBook.sqlitedb
文件包含几个表,其中以下三个特别重要:
-
ABPerson
:这包含每个联系人的姓名、组织、备注等信息。 -
ABMultiValue
:此表包含ABPerson
表中条目的电话号码、电子邮件地址、网站统一资源定位符(URL)等信息。ABMultiValue
表使用record_id
文件将联系信息与ABPerson
表中的ROWID
关联起来。 -
ABMultiValueLabel
:此表包含用于识别ABMultiValue
表中存储的信息类型的标签。
AddressBook.sqlitedb
文件中存储的一些数据可能来自第三方应用程序。您应手动检查应用程序文件夹,以确保所有联系人都得到了考虑和检查。
虽然所有以下命令都可以在 Mac 上本地运行,但我们将使用 DB4S 来检查 iOS 设备上最常见的数据库。这是一个免费工具,可以简化流程并为您提供数据的清晰视图。加载数据库后,您可以起草查询以检查对您最相关的数据,并将通讯簿导出为名为AddressBook.csv
的.csv
文件,如下面的屏幕截图所示:
DB4S 中的 AddressBook.sqlitedb 文件
在上述屏幕截图中,您可以看到建议的查询,以解析ABPerson
和ABMultiValue
表中的数据。
通讯录图片
除了通讯录的数据,每个联系人可能包含与之关联的图片。每当用户从特定联系人接收来电时,这些图片将显示在屏幕上。这些图片可以由具有对设备上联系人的访问权限的第三方应用程序创建。通常,联系人与第三方应用程序的个人资料照片相关联。通讯录图片数据库位于/HomeDomain/Library/AddressBook/AddressBookImages.sqlitedb
。
通讯录图片可以手动解析,但使用商业软件可以使这个过程更加实用。大多数免费和商业工具都将提供访问通讯录图片的权限。但是,有些工具可能无法建立图形和联系人之间的联系,这可能需要一些手动重建。有时,从 iOS 设备解析简单数据时,免费解决方案效果最佳。接下来,我们将在 iExplorer 中检查通讯录图片,该软件在第四章中介绍了从 iOS 备份中获取数据。
在以下屏幕截图中的示例中,iExplorer 自动匹配了联系人数据和图片:
在 iExplorer 中检查通讯录图片
在ABThumbnailImage
表的data
列中也可以找到相同的缩略图。您可以使用AddressBookImages.sqlitedb
的ABThumbnailImage
表的record_id
列和AddressBook.sqlitedb
的ABPerson
表的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
文件,如下面的屏幕截图所示:
在 DB4S 中检查 CallHistory.storedata
这次查询非常简单,因为感兴趣的所有列都在同一张表中。请注意,我们使用datetime
将 Mac 绝对时间戳转换为可读日期。
短信服务(SMS)消息
短信数据库包含从设备发送和接收的文本和多媒体消息,以及远程方的电话号码、日期和时间以及其他运营商信息。从 iOS 5 开始,iMessage 数据也存储在短信数据库中。iMessage 允许用户通过蜂窝网络或 Wi-Fi 向其他 iOS 或 macOS 用户发送短信和多媒体消息,从而提供了一种替代短信的方式。短信数据库位于/HomeDomain/Library/SMS/sms.db
。
您可以在 DB4S 中运行以下查询来解析短信消息。之后,您可以将其导出为.csv
文件,如下面的屏幕截图所示:
在 DB4S 中检查 sms.db
还有一个有趣的子目录可以在/HomeDomain/Library/SMS/
中找到——Drafts
。里面有更多的子文件夹,每个文件夹都包含一个message.plist
文件。每个文件都是一个包含用户开始输入但未发送的草稿消息的属性列表。您将在接下来的部分中了解更多关于属性列表的内容。
日历事件
用户手动创建或使用邮件应用程序或其他第三方应用程序同步的日历事件存储在Calendar
数据库中。Calendar
数据库位于/HomeDomain/Library/Calendar/Calendar.sqlitedb
。
Calendar.sqlitedb
文件中的CalendarItem
表包含日历事件摘要、描述、开始日期、结束日期等。您可以在 DB4S 中运行以下查询来解析日历,如下面的屏幕截图所示:
在 DB4S 中检查 calendar.sqlitedb
如您所见,CalendarItem
表以 Mac 绝对时间格式存储日期,因此我们添加了978307200
以显示实际时间戳,借助datetime
函数的帮助。
备注
Notes
数据库包含用户使用设备内置的Notes
应用程序创建的笔记。Notes
是最简单的应用程序,通常包含最敏感和机密的信息。Notes
数据库可以在/HomeDomain/Library/Notes/notes.sqlite
找到。
notes.sqlite
文件中的ZNOTE
和ZNOTEBODY
表包含每个笔记的标题、内容、创建日期、修改日期等信息。您可以运行以下查询来解析Notes
数据库:
在 DB4S 中检查笔记
这个查询合并了两个表的数据,所以我们使用ZOWNER
从ZNOTEBODY
,Z_PK
从ZNOTE
,以及一个WHERE
子句来完成它。
Safari 书签和历史记录
在 iOS 设备上使用的 Safari 浏览器允许用户收藏他们喜欢的网站。Bookmarks
数据库可以在/HomeDomain/Library/Safari/Bookmarks.db
找到。书签数据可以通过非常简单的查询提取,如下面的截图所示:
在 DB4S 中检查书签
浏览历史记录可以在History.db
中找到,位于/HomeDomain/Library/Safari/
。关于访问过的网站的最重要的信息可以从history_items
和history_visits
表中提取,如下面的截图所示:
在 DB4S 中检查历史记录
除了 Safari 之外,其他浏览器也可以用于在 iOS 设备上存储数据。因此,我们建议使用专门用于解析互联网历史记录的工具,以确保数据不会被忽视。解决这个任务的好的取证工具包括 Magnet Forensics 的 AXIOM,Cellebrite 的 Physical Analyzer 等。
语音信箱
Voicemail
数据库包含有关存储在设备上的每个语音信箱的元数据,包括发件人的电话号码、回拨号码、时间戳和消息持续时间等。语音信箱录音存储为Adaptive Multi-Rate (AMR)音频文件,可以由支持 AMR 编解码器(例如 QuickTime Player)的任何媒体播放器播放。Voicemail
数据库可以在/HomeDomain/Library/Voicemail/voicemail.db
下找到。
记录
Recordings
数据库包含有关存储在设备上的每个录音的元数据,包括时间戳、持续时间、在设备上的位置等。数据库可以在/MediaDomain/Media/Recordings
找到。可以通过下面截图中显示的查询提取元数据:
在 DB4S 中检查记录
正如您在前面的截图中所看到的,实际的录音文件存储在同一个目录中。
设备交互
有一个记录用户与不同应用程序交互的 SQLite 数据库。这个数据库称为interactionC.db
,位于/HomeDomain/Library/CoreDuet/People
。ZINTERACTIONS
表包含用户是否阅读消息、发送消息、进行电话等信息。您可以通过下面截图中显示的查询从表中提取这些信息:
在 DB4S 中检查交互
此外,请确保检查ZCONTACTS
表——如果适用,它包含与用户与设备的交互有关的联系人信息。
电话号码
您可以通过分析位于/WirelessDomain/Library/Databases
的CellularUsage.db
文件来获取用户使用的所有电话号码的信息,即使他们更换了手机并从备份中恢复。提取这些数据的查询如下截图所示:
提取电话号码
正如您所看到的,不仅有电话号码可用,还有Subscriber Identity Module (SIM)卡的Integrated Circuit Card Identifier (ICCID)。
属性列表
属性列表,通常称为plist
,是一种结构化数据格式,用于在 iOS 设备和 macOS 设备上存储、组织和访问各种类型的数据。plist
文件是二进制格式的,可以使用属性列表编辑器查看或转换为美国信息交换标准代码(ASCII)格式。
Plist
文件可能有也可能没有.plist
文件扩展名。要访问这些文件中存储的数据,您需要一个可以读取它们的工具。一些很好的免费工具包括以下内容:
-
可以从
www.icopybot.com/plist-editor.htm
下载的 plist Editor Pro。 -
macOS 上的
plutil
命令行实用程序。
您可以使用 Xcode 查看plist
文件。macOS 默认包含plutil
命令行实用程序。这个命令行实用程序可以轻松地将二进制格式的文件转换为人类可读的文件。除此之外,大多数商业取证工具都包括对解析plist
文件的良好支持。
以下屏幕截图显示了com.apple.mobile.ldbackup.plist
文件:
在 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 的电子邮件地址以及用户通过 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)数据。可以使用从sno.phy.queensu.ca/~phil/exiftool/
下载的ExifTool
提取照片中存储的EXIF
数据。如果用户在 iOS 设备上启用了位置权限,并且对照片进行了地理标记,那么EXIF
数据可能包含地理信息。
缩略图
与照片相关的重要工件的另一个来源是ithmb
文件。您可以在/CameraRollDomain/Media/PhotoData/Thumbnails
找到这些文件。这些文件不仅包含设备上实际照片的缩略图,还包括已删除照片的缩略图。当然,还有一个用于解析此类文件的工具,即iThmb Converter
,可以从www.ithmbconverter.com/en/download/
下载,并在以下截图中显示:
使用 iThmb Converter 检查 3304.ithmb
由于这些文件可能包含已删除照片的缩略图,因此法医检查员不应忽视它们。而且,其中一些文件包含相当大的缩略图,因此清楚地显示了照片内容。
壁纸
可以从/HomeDomain/Library/SpringBoard
中找到的LockBackgroundThumbnail.jpg
和LockBackgroundThumbnaildark.jpg
文件中恢复 iOS 设备的当前背景壁纸设置。
壁纸图片可能包含有关用户的身份信息,这些信息可能有助于寻找失踪人员或者可以在从盗窃调查中恢复的 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/FrontBoard
的applicationState.db
数据库中收集。这是另一个 SQLite 数据库,可以使用审查人员选择的适当查看器进行分析。
恢复已删除的 SQLite 记录
SQLite 数据库将已删除的记录存储在数据库本身内部,因此可以通过解析相应的 SQLite 数据库来恢复已删除的数据,例如联系人、短信、日历、便签、电子邮件、语音邮件等。如果对 SQLite 数据库进行了清理或碎片整理,则恢复已删除数据的可能性很小。这些数据库需要进行的清理程度在很大程度上取决于 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 页面上。
另一个可以用来恢复已删除的 SQLite 记录的开源工具是 Undark。您可以在这里下载它: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。