跳到主要内容
Reincubate

Technology, security analysis

借助 SQLite 数据恢复进行 iOS 取证:深入剖析与对比

Aidan Fitzpatrick发布于 2018年6月1日更新于 2020年2月17日
本页内容
Cover image for: 借助 SQLite 数据恢复进行 iOS 取证:深入剖析与对比

在帮助人们通过我们的产品恢复数据时,我们会用到许多技术,而过去十年里我们打造的许多巧妙之处都隐藏在表面之下。今天,我们来深入看看恢复已删除信息所用的方法之一:对 SQLite 数据进行取证恢复。

iPhone 究竟是如何存储数据的?

简单来说,许多应用把数据存储在数据库中,其中大多数使用 SQLite 格式。SQLite 是一种小巧精致的无服务器数据库格式,非常适合 Apple 和应用厂商的需求。由于 SQLite 无需单独的数据库服务器即可运行,它与其他数据库有几点不同。特别是,为了保证访问速度,它在使用过程中无法定期进行自我维护。比如,用户不希望应用在数据库执行清理索引之类的例行维护时变慢。

SQLite 也可以执行这些清理或优化操作,但它们往往很少运行。对用户来说,这是恰当的平衡:你的 iPhone 会相当流畅,你的数据也会很稳固。而且,一旦有需要,由于这类维护很少进行,你恢复已删除 iOS 数据的几率会高于平均水平。

不必讲得太技术化,这个过程其实很简单。把这些数据库想象成大号的文件柜:

  • 需要向其中添加信息时,你会放进一份文件,并贴上整齐的标签,说明文件里有什么,你的手机就是这样工作的。
  • 但在删除数据时,手机并不会把文件从文件柜里取出来,而只是把标签撕掉。所以旧数据并没有被移除,只是没有了标签(用技术术语来说,叫作“孤立”)。这意味着,删除数据时,手机不需要经历相对缓慢的释放文件柜空间的过程。它只是说一声“嗯,忘了这个吧”,然后继续往下走。
  • 需要添加更多数据时,如果还有空间,手机就会添加新的文件。如果没有空间了,它会看看有没有那些无标签的文件还留在那里,如果有,就会根据需要丢弃其中的某些部分来腾出空间。

由此你或许能得出这样的结论:在手机上删除数据很快,添加数据也相当快,前提是有空间。而且,违反直觉的是,真正导致旧信息被清除的,恰恰是添加新数据的过程。

在 iOS 上从 SQLite 中恢复已删除的信息

假设你已经用了几个月手机。手机上的数据库就像我们前面描述的文件柜。里面有不少文件,而你删除过数据的地方,这些文件依然在那里,但有两点需要注意:它们可能已被部分或全部覆盖,而且没有标签。

那么,恢复技术基本上就是你所预期的样子:找到这些孤立的文件(无论是否完整),尝试找出它们应该放在哪里,以及剩余的数据是否足以说得通。正如你所料,这一切相当繁琐,还可能冒出许多其他技术问题,让事情变得困难。尤其是体积超过几兆字节的数据库,以及其中含有二进制数据的数据库,会让这个过程困难得多。

话虽如此,找回一部分数据并不太难,这也是市面上有不少工具声称能做到这一点的原因。总体而言,可以把这些工具分为三类:

  • 好的。它们采用了许多不同的技术,这些技术经过数千个不同的删除或损坏案例的构建与测试。
  • 差的。它们只恢复格式完好、并带有若干线索可以判断其归属的剩余内容。
  • 丑的。它们会扫描孤立的内容,把任何看起来可能契合上下文的旧垃圾都标记出来,前提是你眯着眼睛看。“NSMutableArray”,这会是你丢失的联系人记录的名称吗?嗯……

真实环境中从 iOS 进行 SQLite 恢复与反删除

我们已经简单讲了这是怎么回事,接下来看看它在真实环境中的效果如何。毕竟,我们希望让普通用户无需成为专家也能找回自己的数据。我们做到了吗?我们将用 iPhone Backup Extractor 与四款领先的 SQLite 恢复工具进行基准测试。在撰写本文时,这些工具的最新版本如下:

名称版本与发布日期平台价格
Reincubate iPhone Backup Extractor7.6.1.2201,2018 年 5 月Windows 和 macOS$34.95
SQLabs 的 SQLite Doctor1.3.0,2013 年 8 月Windows 和 macOS$49
SysTools 的 Sqlite Database Recovery1.2,未显示发布日期仅限 Windows$149
Stellar Data Recovery 的 Stellar Phoenic Repair For Sqlite 1.0,未显示发布日期仅限 Windows$599
GetData 的 Forensic Explorer (FEX)4.3.5.7364,2018 年 5 月仅限 Windows$1,695
Acquire Forensics 的 Sqlite Forensics Explorer2.0,未显示发布日期仅限 Windows$149

为了搭建这个测试,我们将使用一个很大的数据库,里面装满了真实环境中的数据。这次用的是一个 169 MB 的“信息”数据库,取自一台运行 iOS 11 的 iPhone。我们来看一下:下面的命令显示了它的文件大小,以及一次统计其中信息数量的查询结果。

$ ls -l sms.db
-rw------- 1 afitzpatrick 177565696 Oct  2  2017 sms.db

$ sqlite3 sms.db
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> SELECT COUNT(*) FROM message;
220261

可见,这里有超过 220,000 条信息。它们都是没有被删除的。但是,恢复工具能找到多少已删除的信息呢?

iOS 的 SQLite 数据恢复:结果出炉

我们在同一个文件上运行了上面列出的所有工具,并把结果记录在下表中。我们本来很想用 Mac,但由于并非所有工具都支持 macOS,我们使用了一台配有 16 GB 内存、运行 Windows 10 Pro(版本 1803,内部版本 17134.48)的 PC。

ReincubateAcquire ForensicsSQLabsSysToolsStellar Data RecoveryGetData
恢复数量34256(但大多是垃圾数据)00(经过长时间扫描,它找到了 220,261 条,这与已有的有效记录数量完全相同!)0(每次运行,它都会数到 37 条已删除的信息,但在完成之前就因错误 0x40000015 而崩溃。无法导出或保存任何内容。)0 (We reached out multiple times to purchase a license, but never heard back.)
恢复出“垃圾数据”了吗?没有;看起来全是有效的已恢复信息。表情符号、日期、时间以及发件人 / 收件人号码均已恢复。恢复出的内容大部分是垃圾数据我们需要多次手动输入 ROWID 的最大值,尝试不同的参数。任何时候都没有恢复出任何内容。只找到了原本就存在的信息。每次都崩溃,所以无法判断。Wasn’t possible to get it running.
每条恢复信息的实际成本(以本例计)$0.10$2.66>$49>$149>$599>$1,695

好吧,这有点出乎意料,因为我们原本以为它们至少都能恢复出一些数据。结果是,我们这款不起眼的工具在 SQLite 数据恢复方面领先市场,尽管它并不是专门的 SQLite 数据恢复工具。(如果你好奇的话,这也是我们向其他公司授权我们的技术的原因。这件事并不容易。)

不同 iOS 版本上的 SQLite 数据恢复

每次发布新版 iOS,Apple 都有机会改变操作系统处理 SQLite 数据库的方式。这包括优化清理和其他维护操作的执行频率以及触发时机。

随着设备性能越来越强,这些操作对用户体验的影响变小,因此可以更自由地使用。所以,每一代新设备上的 SQLite 数据库都可能被更频繁地清理,这样做的好处是让数据库在日常操作中运行得更快。这与 Apple 加强用户数据保护和隐私的目标一致,因为设备上不会残留任何不需要的数据。然而,这样做也有一个弊端:通过 SQLite 方法恢复数据将变得不可能。

在 iOS 11 中,我们开始看到短信和 iMessage 的数据库清理活动有所增加。恢复仍然可行,对于随后被删除的较新信息可能性更大,但并不能保证。

在 iOS 12 中,短信和 iMessage 数据库的清理频率大幅提高。由于这个版本被宣传为重点关注维护和速度方面的改进,这一变化是合理的,因为它很可能让更常见的操作运行得更流畅。

恢复 iOS 数据时,我需要怎么做才能利用这一点?

这也许是最棒的部分:这项技术已集成在 Reincubate iPhone Backup Extractor 中,从早期起就是如此。使用该应用时,它会在预览或导出你的信息和其他多种数据类型时应用这项技术。根据你查看的数据以及查看方式,应用会标明哪些数据是被恢复出来的,哪些不是。这一切都已包含在内。


关于作者

Aidan Fitzpatrick

创始人兼首席执行官

Aidan 于 2008 年创立了 Reincubate,此前他打造出了全球首款 iOS 数据恢复工具。自此,他带领公司成长为全球顶尖的独立软件开发商之一,与 AMD、Qualcomm、HP 等公司合作,率先为视频软件打造出具有重要意义的机器学习功能,其中以 Camo 应用生态系统最为突出。在 Aidan 的领导下,Reincubate 四次荣获英国商业界的最高荣誉,入选《星期日泰晤士报》百强科技企业榜单,并凭借 Apple Design Award 与 App Store 提名获得业界认可。他的研究成果与方法常被移动取证领域的学术论文引用,他还曾受邀在 Google、Microsoft、Snap 等公司举办的活动上发表演讲。


评论 (1)

jon 2019年5月22日

I have a question. When apple release new ios , do they provide any information about schema change? or we can get them from ios backup. Thanks in advance.

Reincubate 支持团队的回复 2019年5月22日

Hey Jon. Apple don't, and it's not just them changing things: any time a third-party app gets updates things can change. We have a set of tools and a team testing these things every day.


相关内容


热门文章

King's Award for Enterprise 标志

King's Award for Enterprise:Reincubate 已四次荣获英国最高官方商业荣誉,最近一次是表彰公司过去三年的卓越增长。

我们与用户和合作伙伴的关系是我们价值观和所创造产品的核心。查看 用户评价,听听他们对我们的评价。

通过 Centre for Assessment 的 ISO 27001 认证,获 UKAS 认可

© 2008-2026 Reincubate Ltd. 保留所有权利。在英格兰和威尔士注册,公司编号 5189175,增值税号 GB151788978。Camo®、Streamlight® 和 Reincubate® 是注册商标。专利申请中。

帮助