iOS版Evernote取证分析:日志、数据库与地理位置信息的挖掘

本文详细介绍了对iOS设备上Evernote应用进行取证分析的过程,包括如何提取和分析应用日志以及数据库文件,揭示了其中包含的用户名、设备信息、活动时间线以及敏感的地理位置数据。

概述

在移动设备的取证检查中,新的iOS应用程序不断出现。我发现我们通常用于获取和分析移动设备数据的商业工具,无法解析大多数第三方应用的数据。这是应用程序更新周期带来的固有问题。我们实在不能责怪那些商业产品或开发者,他们确实是在打一场徒劳的仗。

因此,在这项测试中,我使用了一些开源工具来备份运行iOS 12.1的iPhone 7。我使用Evernote已有数年,但奇怪的是,在调查过程中从未真正遇到过它。

最近,我一直在手机上使用Evernote应用程序来访问课程讲师创建的共享教学笔记本,并发现了一些与日志记录和位置相关的非常有趣的数据痕迹。

我不会过多深入介绍你可以从Evernote应用程序存储的plist和数据库文件中获取的信息,但以下是我认为一些更有趣的发现:

应用程序日志记录

Evernote保留了许多与iOS上应用程序使用相关的日志,这些日志包含一份关于其预期用途的声明,这相当方便: “活动日志包含Evernote应用程序执行的步骤的详细列表,以及关于您的帐户、设备和位置信息(如果启用)的信息。您的笔记标题、标签、笔记本名称以及偶尔的笔记内容也可能被包含在内。我们将您的活动日志数据视为机密,我们的隐私政策条款适用。如果将日志发送给Evernote,您可能希望先将文件通过电子邮件发送给自己,并编辑掉任何敏感信息。”

仅基于这份声明,作为一个有点日志癖的人,我显然会被这些日志吸引。

日志在iOS中的存储位置如下: iOS-Backup/Documents/Logs

从下面的日志名称中你可以看到,它们遵循标准的命名约定,快速查看文件名就为我们提供了一些有用的时间线信息。我并不经常使用这个应用,但下表中的日期,特别是与我之前提到的参加教学活动的日子相关。

1
2
3
4
5
6
7
com.evernote.iPhone.Evernote 2018-04-21--21-39-27-026.log
com.evernote.iPhone.Evernote 2018-05-04--02-28-25-844.log
com.evernote.iPhone.Evernote 2018-05-09--01-59-14-135.log
com.evernote.iPhone.Evernote 2018-05-17--07-12-09-464.log
com.evernote.iPhone.Evernote 2018-07-21--03-38-13-286.log
com.evernote.iPhone.Evernote 2018-08-23--07-51-43-715.log
com.evernote.iPhone.Evernote 2018-11-07--10-17-36-152.log

一个简单的cat命令遍历这些文件可以让我们聚合它们以进行批量搜索: cat /logs/*.log > /new-logs/All-evernotelogs.log

我们可以从这些日志中收集到的一些有用信息包括:

  • Evernote用户名
  • 创建日志时的硬件(iPhone型号)和iOS版本
  • 创建日志时使用的运营商
  • 笔记标题

这些日志中存储了许多时间戳,显然是与应用程序功能、用户活动以及目标可能使用过的先前设备相关的信息宝库。

我发现许多条目很有趣,这些行包含“Preview updated”文本。在大多数情况下,会出现笔记标题,但有些条目似乎是错误条目。

正如你所见,这里有一些重复,这就是为什么我认为这些日志条目直接关系到应用程序启动时向用户显示的笔记预览。这将有助于证明在特定时间点对笔记或设备使用的认知。

通过数据库文件对第三方进行地理位置定位

所以,当我开始这段旅程时,我预计我们可能会发现一些包含笔记以及其他诸如使用历史、内容等信息的数据库。我没料到会发现与公开共享笔记本的个体移动相关的非常具体的信息。

我提取了以下数据库进行检查: iOS-backup/Documents/pending/3*2*9*1-personal-www.evernote.com/LocalNoteStore.sqlite

这个数据库包含了大量可能具有取证价值的Evernote信息:

  • 时间戳:笔记创建、删除、最后查看、最后更新和共享日期
  • 笔记作者:通常是用于注册Evernote账户的电子邮件地址
  • 最后编辑笔记的Evernote用户:同上
  • 笔记标题
  • 笔记URL
  • 笔记创建时的纬度、经度和海拔高度:如果在创建笔记时启用了位置服务
  • 来源应用程序:iPhone、网页浏览器或Mac(这些是我测试过的方法,可能还有其他方法用于Android)

我写了一个快速的SQL查询,从包含所有相关笔记信息的ZENNOTE表中解析出一些相关信息:

1
2
3
4
5
6
7
8
9
Select DateTime(ZDATECREATED + 978307200, 'unixepoch') as 'Date Created (UTC)',
DateTime(ZDATEDELETED + 978307200, 'unixepoch') as 'Date Deleted (UTC)',
DateTime(ZDATELASTVIEWED + 978307200, 'unixepoch') as 'Date Last Viewed (UTC)'
DateTime(ZDATEUPDATED + 978307200, 'unixepoch') as 'Date Updated (UTC)',
ZAUTHOR as 'Note Author', ZTITLE as 'Note Title',
ZSOURCEURL as 'Note URL', ZLATITUDE as 'Latitiude',
ZLONGITUDE as 'Longitude', ZSOURCE as 'Source',
ZSOURCEAPPLICATION as 'Source Application'
from ZENNOTE

从上面的查询和下面的一些示例结果中你可以看到,我们可以确定与特定笔记相关的许多时间戳。我们还可以看到用于创建笔记的应用程序,无论是移动端还是桌面端(Source),作者的姓名(Note Author),笔记的源URL,以及最重要的地理位置信息。

我从中发现最有价值信息的那个Evernote共享笔记本,是由我参加的一个教学活动的讲师(Note Author)共享的。这似乎是最值得审查的。

我做的第一件事是查看共享笔记本中出现的一个位置,并将坐标输入谷歌地图以查看情况。

看起来这位笔记作者可能在2016年曾在华盛顿的杜邦环岛酒店待过一段时间。从地理位置信息来看,当时酒店似乎是移动的,并且正位于这位年轻人的头顶上。

我仔细查看了提取的数据库条目,并通过筛选Note Author列,迅速识别出笔记作者创建笔记或向其笔记本添加笔记的许多位置。有许多条目带有相关联的位置。这些地点范围从新加坡、伦敦到美国各地的多个地点。

这些位置大多数似乎是酒店,尽管一个住宅地址也出现了多次,我怀疑那是笔记作者的家庭住址。

应该注意的是,大部分地理位置信息似乎是通过使用Evernote桌面应用程序而非移动应用程序添加的,尽管两者都允许向笔记添加位置。位置服务的启用和笔记本的共享需要在安装和创建共享笔记本时进行特定的用户交互。

为什么这些信息有趣?

  • 许多不同的用户可以添加到共享的、可公开访问的笔记本中
  • 我们可以通过自己的iOS设备和Evernote账户跟踪他们随时间的活动

我们可以推断出什么?

  • 与设备/应用用户关联的电子邮件地址(Note Author)
  • 与个体相关的其他联系人(Last Edited By)
  • 与应用程序使用和特定笔记相关的活动(Note Title, Date Created, Date Deleted等)
  • 随时间变化的位置信息(Lat, Long, Alt)
  • 特定个体使用的设备(Source)

这可能如何被滥用?

试图查找某个个体或多个个体信息的恶意行为者,可能会找到方法抓取公开可访问的Evernote笔记本的URL。这可能使他们能够利用这些信息来了解移动轨迹、家庭住址(用于盗窃)等位置信息。

一旦恶意行为者使用其iOS设备上的账户订阅了这些笔记本,转储LocalNoteStore.sqlite文件并找出所有这些信息,包括工作地址和商业地址,将是轻而易举的事。

感谢阅读。

更新:我并没有在2018年底发布这些发现,而是联系了Evernote,他们随后已禁用公共笔记本中笔记位置的共享。Evernote非常友善地将我列入其2019年安全贡献者名单。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计