[手机取证] Apple Watch取证初探
转载文章请注明出处
1. 关于Apple Watch
苹果公司在2015年3月正式发布了智能手表Apple Watch,包括Apple Watch、Apple Watch Sport以及Apple Watch Edition三种版本。

图 1 Apple Watch的三个版本
Apple Watch采用Apple S1处理器,内置512MB RAM和8GB Flash存储,通过Wi-Fi和蓝牙与iPhone进行同步,与其同步的iPhone必须使用iOS 8.2及以上版本。
2. Apple Watch取证思路
目前,Apple Watch使用Watch OS 1.0系统,手表中所有App均来源于与之配对的iPhone手机,开发者可将自己的App进行Apple Watch适配并发布在App Store,在iOS安装后,可在iPhone手机上的Apple Watch应用中选择推送安装至Apple Watch,这是目前Apple Watch唯一的应用安装方式;Apple Watch系统的升级和还原也仅能通过配对的iPhone手机进行,现在市面发售的Apple Watch仅有的一个物理接口是未公开的调试接口,无法进行利用。
另一方面,Apple Watch应用程序的数据多数来源于iPhone手机上对应的程序,且这些程序的通信和数据存储都依赖于配对的iPhone手机(iMessage例外,Apple Watch上的iMessage服务可脱离iPhone独立连接Wi-Fi进行通信),Apple Watch内部存储主要用于保存手机同步的数据。
结合上述特点,我们可以初步确定对Apple Watch的取证思路:与多数智能可穿戴设备取证类似,对Apple Watch的取证工作实际上还是要基于对应的iPhone手机,而目前iPhone手机的取证依赖于iTunes备份进行,故此次研究也将主要利用iPhone的备份进行分析。
3. 取证方式
a) 将Apple Watch与iPhone手机进行配对,并安装支持的应用程序,本次测试选取的是Apple Watch 标准版42mm,使用运行iOS 8.3的iPhone 6进行配对。
b) 使用iTunes为配对的iPhone进行备份,将备份文件导出。
c) 使用取证软件对备份文件进行解析。需要注意的是,如果备份进行了加密,还应先进行解密操作。
4. 结论
Apple Watch的基本信息:
- Apple Watch信息:所有人,版本,区域和语言信息:

图 2 Apple Watch的基本信息
- 配对时间:使用NSDate存储,转换后需按照时区增加8小时,即2015年6月30日16:20:12。

图 3 Apple Watch与iPhone的配对时间
- Apple Watch的配对手机的版本,此处8.2.1指iOS 8.3.

图 4 Apple Watch配对iPhone的版本信息
- Apple Watch数据在iPhone备份中的存储位置

图 5 Apple Watch备份数据的存储位置
- Apple Watch序列号、UDID、Wi-Fi适配器MAC地址、蓝牙MAC地址及存储容量信息

图 6 Apple Watch序列号等信息
Apple Watch所同步的手机数据
- 通讯录和个人收藏联系人
Apple Watch数据文件夹中映射手机AddressBook数据库中的guid字段,但并不直接存储通讯录信息;Apple Watch按下按钮调出的个人收藏联系人也被同步到了手表之中

图 7 Apple Watch中存储的联系人对应guid

图 8 Apple Watch中的“个人收藏”联系人
- iPhone中所有App列表

图 9 Apple Watch所配对iPhone的应用程序列表
- Apple Watch中已安装的App列表

图 10 Apple Watch已安装应用程序列表
- Apple Watch中同步的Passbook信息

图 11 Apple Watch上的Passbook信息,图像等数据采用BLOB存储
- Apple Watch中同步的邮件账户和邮件id

图 12 邮件账户及对应ID

图 13 Apple Watch上所保存的邮件ID
Apple Watch App数据
目前市面上使用WatchKit开发的程序,在Apple Watch上安装后,配对的iPhone手机中均会生成独立的文件夹,并单独保存数据,除非程序额外定义存储位置。
以微信为例,使用Apple Watch的用户在收到微信消息后,iPhone端保存数据并推送给Apple Watch,在Apple Watch对应的数据文件夹下也会保存所有Apple Watch上使用过的表情、语音信息和文本聊天记录,乃至所发送的位置信息。

图 14 Apple Watch版微信好友列表

图 15 Apple Watch版微信聊天记录
5. 后续研究
- 由于Apple Watch上的iMessage可脱离所配对的iPhone手机使用,说明iPhone中已认证的Wi-Fi网络鉴权信息也存储在Apple Watch上,猜测甚至部分keychain信息也被同步到Apple Watch,在有条件的情况下,可以通过Apple Watch提取Wi-Fi鉴权信息。
- Apple Watch上的“信息”应用与iPhone手机上的“信息”进行同步,但就目前的研究来看并非实时同步,iPhone手机删除的部分信息仍存在于Apple Watch中,同时,存储在服务器的iMessage信息即使在iPhone删除后仍然保留在Apple Watch上或由苹果服务器推送至Apple Watch;如能实现针对Apple Watch的完整提取将可以找到较多手机中已被删除的有价值数据。
- 部分Apple Watch上安装的第三方App所保存的数据,在iPhone端删除后并不会在Apple Watch上同步删除,可以作为iPhone App数据删除恢复的来源。
(完)
[手机取证] Apple Watch取证初探的更多相关文章
- [手机取证] Apple正在行动起来封堵后门?
在被爆出“后门”事件后,苹果似乎已经开始了自己的行动,在最新发布的iOS 8 Beta5版本中,iOS取证专家Zdziarski提及的众多后台服务中的packet sniffer服务已经被禁用,体现出 ...
- The Art of Memory Forensics-Windows取证(Virut样本取证)
1.前言 The Art of Memory Forensics真是一本很棒的书籍,其中使用volatility对内存进行分析的描述可以辅助我们对更高级类的木马进行分析和取证,这里对书中的命令进行了笔 ...
- kali linux之取证
取证简介: CSI:物理取证 指纹.DNA.弹道.血迹 无力取证的理论基础是物质交换原则 数字取证/计算机取证 智能设备.计算机.手机平板.loT.有线及无线信道.数据存储 事件响应调查------黑 ...
- CTF取证方法大汇总,建议收藏!
站在巨人的肩头才会看见更远的世界,这是一篇来自技术牛人的神总结,运用多年实战经验总结的CTF取证方法,全面细致,通俗易懂,掌握了这个技能定会让你在CTF路上少走很多弯路,不看真的会后悔! 本篇文章大约 ...
- 内存取证工具-volatility、foremost
内存取证 1. 内存取证工具volatility 猜测dump文件的profile值 root@kali:~/CTF# volatility -f mem.vmem imageinfo Volatil ...
- iPhone手机安全指南
摘要:iPhone手机安全指南 - 1.iPhone解锁使用指纹:2.启用“查找我的iPhone”功能:3.Apple ID启用两步验证:4.修改SIM卡PIN码.5.iPhone被盗或丢失后,登录i ...
- iOS中远程推送实现—在Apple的生产环境上测试Push Notifications功能
1.在“Provisioning Profiles”中点击“Add”按钮. 2.在“What type of provisioning profile do you need?”页面中选择“Distr ...
- Keli Linux与网络安全(2)——初探Keli
Kali是BackTrack的升级换代产品,按照官方网站的定义,Kali Linux是一个高级渗透测试和安全审计Linux发行版.作为使用者,我简单的把它理解为,一个特殊的Linux发行版,集成了精心 ...
- 装B技能GET起来!Apple Pay你会用了吗?
科技圈儿有一个自带光环的品牌 它每次一有任何动静 不用宣传 也不用刻意营销 消息还是能传天下 2月18日 你敢说你的朋友圈儿没有被下面这个词儿刷屏? Apple Pay 这不,我就跟着凑凑热闹,开个小 ...
随机推荐
- 集成ShareSDK,分享成功后QQ和空间回调不执行的可能原因
AndroidMainifest.xml中的如箭头所示的id与assets下ShareSDK.xml中配置的QQ的AppId一定要相同.
- servlet/jsp详解
首先谈servlet的简单定义,servlet其实就是一门web服务器端编程的技术. servlet它分两种,一种是servlet容器,所有的servlet对象都要放在servlet容器中才能被调用执 ...
- Tomcat编码配置解疑
环境:tomcat6.0.23 jdk 1.6 相关参考: http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html http://wiki.ap ...
- oracle更新语句merge和update
update: update语句更新需要根据索引或者数据列遍历所有行 语句举例: update table1 a set column1=(select column from table2 b w ...
- MFC编程 | tab control控件的使用
因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // tab control控件的使用 // 建立一个Cluster窗口,通过tab可以切换成C-Means和Fuzzy C- ...
- bash while/until循环学习
while循环:条件满足,则循环:失败,则退出 如何退出? 必须有时刻,条件测试不成功 ? :条件控制变量 while 条件测试:do 循环体 done until循环:条件不满足,则循环:否则,退出 ...
- 详解wait和waitpid函数
#include <sys/types.h> /* 提供类型pid_t的定义 */ #include <sys/wait.h> pid_t wait(int *status) ...
- openstack cloudinit 遇坑记
我们在工作中经常会遇到创建云主机的情况,但是很少遇到给云主机改主机名的情况. 一台云主机的 hostname 一旦确定可能会涉及到很多东西,有些应用是依赖hostname的. 今天devops组的同 ...
- Java-适配器
对于Java程序来说,如果一个类要实现一个接口,则必须要覆写此接口中的全部抽象方法,那么如果此时一个接口中定义了抽象方法过多,但是在子类中有用不到这么多的抽象方法,则肯定很麻烦,所以此时需要一个中间的 ...
- Java 使用Memcache
使用spymemcached.jar public class MemcachedJava { public static void main(String[] args) { try { // 连接 ...