导语:在过去几年中,智能可穿戴设备的使用显著增加。2018年智能手表销量达1.41亿部,智能可穿戴设备销量同比增长近一倍。在激烈的市场竞争中,Apple Watch占据了主导地位,2018年可穿戴设备销量超过2250万台,占据了全球市场近一半的份额。
在过去几年中,智能可穿戴设备的使用显著增加。2018年智能手表销量达1.41亿部,智能可穿戴设备销量同比增长近一倍。在激烈的市场竞争中,Apple Watch占据了主导地位,2018年可穿戴设备销量超过2250万台,占据了全球市场近一半的份额。
从2015年开始,苹果总共生产了五种不同型号的WatchOS。WatchOS是一款基于iOS的可穿戴操作系统,专门为Apple Watch开发。
2015年,希瑟•马力克(Heather Mahalik)和萨拉•爱德华兹(Sarah Edwards)对Apple Watch进行了初步的创新研究,该演示文稿可以在Sarah Edwards的GitHub账户上找到(PDF)。
从那时起,就没有多少关于如何从这类设备中提取数据的研究。在过去的几个月里,我一直在研究如何提取和分析存储在Apple Watch内存中的数据。
在取证分析方面,正如在之前的文章所讨论的,我们有三个选择:
· 1.获取配对的iPhone的备份;
· 2.直接将Apple Watch连接到电脑上;
· 3.云(提取同步的健康数据);
分析配对iPhone的备份
iPhone的逻辑提取是众所周知的,你可以通过iTunes,或者使用你选择的取证工具(例如Elcomsoft iOS取证工具包) 备份iPhone。
一旦提取了iPhone备份,就可以对其进行分析,以获得配对的Apple Watch的信息。在本文中,我将使用两个很棒的工具,分别是Windows和MacOS都可用的iBackupBot和Windows的SQLite Expert,我们可以通过分析规格型号来开始调查Apple Watch。
在\HomeDomain\Library\DeviceRegistry.state文件夹中,我们可以找到以下四个文件:
· historySecureProperties.plist
· stateMachine-<GUID>.PLIST
· activestatemachine.plist
· history.plist
historySecureProperties.plist文件包含配对Apple Watch的序列号、UDID (UniqueDeviceIdentifier)、Wi-Fi Mac地址和BT Mac地址。
stateMachine- <GUID> .PLIST文件包含配对状态(通常包含值PairSuccess)、配对时安装在Apple Watch上的WatchOS版本和配对时间戳(以Apple Cocoa Core Data格式存储)。
activestatemachine.plist包含与stateMachine- <GUID> .PLIST类似的信息,并且在进行备份时添加了在设备上安装的WatchOS版本。
\ HomeDomain \ Library \ DeviceRegistry文件夹包含一个名为stateMachine- <GUID> .plist文件的GUID的子文件夹:此文件夹包含来自AppleWatch的备份数据。
在各种文件和文件夹中,以下是最感兴趣的文件和文件夹:
NanoAppRegistry文件夹,包含有关已安装应用程序的信息。在下图中,你可以找到有关Facebook应用程序的信息,以及绑定Bundle版本、显示名称、绑定Bundle标识符和绑定Bundle名称。
可以看出,NanoMail \ Registry.sqlite文件包含有关已同步的电子邮件帐户的信息。
在SYNCED_ACCOUNT表中,你可以找到设备上设置的每个电子邮件帐户的显示名称和电子邮件地址。
在MAILBOX表中,你可以在设备上设置的每个电子邮件帐户的文件夹和子文件夹中找到电子邮件的发件人。
NanoPasses \ nanopasses.sqlite3数据库包含AppleWatch钱包中可用的“通行证”列表。对于对于每个传递,你都可以找到Type_ID、组织名称、摄取日期(以Apple Cocoa Core Data格式存储)和描述。
一些传递还可以具有“编码传递”字段,这是一个二进制plist文件,包含关于传递的详细信息。二进制plist文件可以从数据库中被提取出来,并保存为一个单独的文件,并使用plist查看器(例如plist编辑器)打开。
在下面的截图中,你可以在Booking.com上查看与酒店预订相关的编码通行证,可以使用SQLiteExpert打开编码通行证并将其另存为单独的文件。
然后可以使用plist编辑器打开该文件,提取关于预订的特定信息,如酒店名称和地址、客人姓名、支付的价格、预订号码以及入住和退房日期。
NanoPreferencesSync文件夹包含与Apple Watch配置相关的各种文件,其中最有趣的子文件夹之一是\Backup\Files\,其中包含有关手表外观的信息,用户可以用iPhone同步的图片定制这些信息。在下面的截图中,你可以找到存储在其中的所有文件的详细信息。
每个文件都是一个zip文件:
该文件包含:
1.Face.json带有“Face”细节,包括创建日期(以Apple Cocoa Core Data格式存储);
2. Resources文件夹,包含JPG格式的面部图片和包含图片信息和元数据的plist文件;
从Apple Watch中提取数据
可以选择直接从Apple Watch中提取数据,不过目前还存在以下一些特定的要求和限制,对取证分析造成了一定的影响。
1.你需要一种方法把你的电脑和Apple Watch连接起来,如关于《Apple Watch和Apple TV 取证分析》的文章所述,Apple Watch S1、S2和S3可以使用适配器,我们对Apple Watch 4的适配器一无所知。
2.当连接到电脑时,Apple Watch必须配对才能允许访问数据。如果Apple Watch受密码保护且密码未知,则无法生成配对。
3.在WatchOS上没有运行备份服务,因此无法直接创建Apple Watch的备份。
4.最新版本的WatchOS还无法进行越狱;
考虑到这些限制,我们可以从连接的Apple Watch中获得三种不同类型的数据:
1.设备信息和已安装应用程序的列表;
2.通过AFC (Apple File Conduit)协议获取文件;
3.设备日志;
设备信息和已安装的应用程序列表
通过在连接到配对的Apple Watch的Windows或MacOS计算机上使用Elcomsoft iOS Forensic Toolkit,你可以使用“I”(信息)选项来提取设备信息。
这个命令会生成三个文件:
· Ideviceinfo.plist
· Applications.txt
· Applictions.plist
ideviceinfo.plist文件包含有关设备的详细信息,包括硬件型号、WatchOS版本、序列号、UDID、设备名称、Wi-Fi和蓝牙地址、时区和实际设置时间。
它还包含关于磁盘总容量、系统总容量、数据总容量、可用数据总容量和本地语言的信息。
Applications.txt文件包含已安装应用程序的列表,包括Bundle标识符、Bundle版本和Bundle显示名称。
Applications.plist文件包含有关已安装应用程序的详细信息,包括应用程序路径和容器文件夹。在下面的截图中,你可以找到一个Uber应用程序信息的例子。
通过AFC(Apple File Conduit)协议获取
通过在连接到配对Apple Watch的Windows或MacOS计算机上使用Elcomsoft iOS Forensic Toolkit,你可以使用“M”(媒体)选项提取通过AFC协议提供的媒体文件。
获取后,你就可以使用你喜欢的取证工具(在此示例中为X-Ways Forensics)分析数据。X-Ways Forensics是一款全球业界公认的计算机取证综合分析软件,具有功能齐全、性能卓越、界面简洁、操作灵活等技术特点。X-Ways Forensics已经成为众多电子数据取证调查人员喜爱的取证工具之一。
与原始图片相比,图片的大小进行了调整,但它们仍然可以包含有趣的元数据,如相机型号名称和原始采集时间戳。
iTunes_Control\iTunes文件夹包含一个名为MediaLibrary的文件。sqlitedb和相关的SHM(共享内存)和WAL(提前写日志)文件。这个SQLite文件包含一些有趣的信息,比如用户的iCloud帐户ID,以及用户从苹果商店获得的媒体(歌曲和电影)和电子书列表。此文件包含关于使用与同一iCloud帐户同步的所有用户设备进行购买的信息。
该数据库包含36个表,_MLDatabaseProperties表包含iCloud帐户ID。
要从数据库中提取有意义的数据,可以使用以下SQL查询:
该查询将提取关于用户进行的购买的详细信息,包括标题,媒体类型,文件大小,总时间(用于歌曲和电影),帐户ID,购买和购买历史ID的数据。对于存储在Apple Watch上的购买信息,你还可以找到文件名。
select ext.title AS "Title", ext.media_kind AS "Media Type", itep.format AS "File format", ext.location AS "File", ext.total_time_ms AS "Total time (ms)", ext.file_size AS "File size", ext.year AS "Year", alb.album AS "Album Name", alba.album_artist AS "Artist", com.composer AS "Composer", gen.genre AS "Genre", art.artwork_token AS "Artwork", itev.extended_content_rating AS "Content rating", itev.movie_info AS "Movie information", ext.description_long AS "Description", ite.track_number AS "Track number", sto.account_id AS "Account ID", strftime('%d/%m/%Y %H:%M:%S', datetime(sto.date_purchased + 978397200,'unixepoch'))date_purchased, sto.store_item_id AS "Item ID", sto.purchase_history_id AS "Purchase History ID", ext.copyright AS "Copyright" from item_extra ext join item_store sto using (item_pid) join item ite using (item_pid) join item_stats ites using (item_pid) join item_playback itep using (item_pid) join item_video itev using (item_pid) left join album alb on sto.item_pid=alb.representative_item_pid left join album_artist alba on sto.item_pid=alba.representative_item_pid left join composer com on sto.item_pid=com.representative_item_pid left join genre gen on sto.item_pid=gen.representative_item_pid left join item_artist itea on sto.item_pid=itea.representative_item_pid left join artwork_token art on sto.item_pid=art.entity_pid
相应的文件可以在通过AFC协议提取的购买文件夹中找到:
PhotoData文件夹包含与已同步照片相关的文件,你可以在这里找到最有趣的信息是Photos.sqlite数据库和Thumbnails文件夹。
Photos.sqlite文件包含有关存储在设备上的照片的信息,有关此文件结构的详细说明,请访问https://www.forensicmike1.com/2019/05/02/ios-photos-sqlite-forensics/,可以在https://github.com/kacos2000/queries/blob/master/Photos_sqlite.sql上找到解析此文件的SQL查询。
缩略图文件夹包含存储在Apple Watch上的图片的缩略图,你可以使用ITHMB转换器分析ITHMB文件,并可能找到已删除图片的缩略图。
提取设备日志
通过在连接到配对Apple Watch的Windows或MacOS计算机上使用Elcomsoft iOS Forensic Toolkit,可以使用“L”(Logs)选项提取这些信息。
在此,我强烈建议,你先阅读一下这篇文章《使用Apple的漏洞报告来进行取证》。
在本研究中,我们强调了使用sysdiagnose配置文件从苹果设备中提取数据的重要性。该方法也在Apple Watch上进行了测试,测试时,生成了一个包含许多有用信息的完整TAR文件。在下面的截图中,你可以找到从Apple Watch中提取的sysdiagnose日志。
我们还开发了各种脚本来解析sysdiagnose获取过程中可用的一些文件。这些脚本可以从GitHub获得。
你可以在sysdiagnose日志中找到一些相关的信息:
MobileActivation日志,包含关于安装构建版本的时间、硬件模型和产品类型的信息。它还详细介绍了操作系统的升级,在下面的截图中,你可以在Apple Watch的Mobile Activation日志中看到脚本的执行情况。
MobileContainerManager日志,包含有关应用程序卸载的信息,这些信息可能具有历史意义。在下面的截图中,你可以在Apple Watch的MobileContainerManager日志中看到脚本的执行情况。
MobileInstallation日志,包含关于已安装应用程序的历史信息。在下面的截图中,你可以看到Alexis Brignoni在Apple Watch的MobileInstallation日志上执行MIB解析器脚本。
PowerLog日志,包含有关用户与设备交互的信息,Sarah Edwards在她的演示文稿(PDF)和她的开源工具包APOLLO中已经研究和描述了该数据库的结构。在下面的截图中,你可以看到针对从Apple Watch提取的PowerLog是如何执行APOLLO的?
WiFi日志可以用来提取设备连接到的网络列表,最容易分析的文件是com.apple.wifi.plist。其中包含每个网络的详细信息,包括SSID、BSSID和最近加入日期,BSSID还可以通过使用像Wigle这样的服务来反向查找Wi-Fi网络的位置。
云取证分析
从iCloud获取数据是另一种对Apple Watch取证的方法,该方法对于提取Apple Watch和iPhone之间同步的健康数据尤其有用。在下面的截图中,你可以对从iCloud上存储的iPhone备份中提取的健康数据进行精细处理。
总结
对Apple Watch的取证分析目前还属于比较前沿的话题,考虑到全球可穿戴设备的销量不断增长,我们需要提前进行更多的研究和测试。