揭密针对Android设备的物理取证方法(二)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

目前市面上流行着许多类型的Android设备提取方法,且有些公司或个人号称,他们的方法支持数以万计的运行环境。这给人一种印象,似乎只要你愿意,就有人能破解你的Android设备。

4d1cf818eaad7ddee2c7191fee6ea0b2388530a2

揭密针对Android设备的物理取证方法(一)中,我介绍物理取证方法的两种方法,今天我接着向大家介绍剩余的几种方法。

解密Bootloader

通过自定义Bootloader提取并解密设备,该方法不允许手机完全启动进入Android操作系统,这可能是对Android智能手机进行映像的最合理的方法。诸如Cellerbrite,Oxygen和Magnet等取证服务商已为各种平台开发了自定义版本的Bootloader。

通常,Android安全措施会阻止设备启动未签名的代码。不过这一保护机制仅针对的是高通的EDL模式,另外还有小米、OnePlus、诺基亚和其他一些设备。但是,通过针对不同制造商的手机中的漏洞(如高通EDL漏洞、三星工程启动映像等),可以开发一种通用方法,可以在没有安全启动的情况下绕过设备上的密码检查,也可以在安全启动的情况下对密码进行取证。

即使用“default_password”对数据进行加密,也需要对智能手机进行解密。这在很大程度上取决于用户手机供应商所采取的加密方式。例如,当用户更改密码时,一些供应商不会重新加密密钥(Key Encryption Key,KEK)。这样,取证人员就可以使用“default_password”对数据进行解密,而不用输入当前已存在的密码。如果在初始设置时,供应商选择在用户设置密码之前,就对手机进行加密,则取证方法是一样的。根据Oxygen服务商的说法,摩托罗拉智能手机上的取证方式就是如此,无论锁屏密码是什么,摩托罗拉智能手机里的内容都可以被提取和解密,但前提是没有发生安全启动。

对于没有发生安全启动的智能手机来说,在用户指定密码之前,取证人员是可以对数据分区进行加密,数据分区会在启动过程结束时实施挂接并解密,然后取证人员就可以使用该密码或模式解锁设备了。使用该方法后,取证人员可以使TEE在不启动进入系统的情况下解密设备的内容。不过,目前有一种方法涉及禁用dm-verity并通过EDL漏洞启动到自定义启动映像中。在这种情况下,自定义启动映像可以实施挂接并解密被加密的分区来访问数据。

Cellerbrite UFED通过解密Bootloader来取证的方法,目前已被广泛用于一系列手机中,包括由华为、摩托罗拉、小米、宏基、联想、中兴、阿尔卡特等特定型号。Oxygen为许多摩托罗拉和三星机型都采用了Bootloader的提取方法,包括支持离线Galaxy S5/S6/Note4设备的密码恢复。

三星紧急下载模式

即使在配备高通的手机(如美国销售的Galaxy Sx机型)中,对三星的取证也不使用高通的EDL访问模式。相反,三星有自己的专有取证编程协议——Odin。Odin不仅可以用来读取设备的加密的内容,而且也可以用来在设备上写入数据。

目前最新的是ODIN3.10版,支持三星安卓系统手机刷机;支持Windows XP、Windows 7、Windows 8等系统;支持最新三星Galaxy S5等机型。

对于许多三星机型来说,取证人员可以使用一个从三星泄露的工程启动映像或者它的一个服务设施。这些工程启动映像由三星公司自行开发,并进行了签名,这就允许取证人员完全无限制的访问设备的存储内容。

经过三星签名后,这样的启动映像就会被TEE验证并信任。因此,对于使用无需安全启动的FDE加密的设备来说,取证人员可以直接启动系统,完全绕过密码保护。使用这些工程启动映像还可以做其他事情,比如制作并启动专门用于提取和解密数据的自定义内核。详情请参看《iOS与Android:物理数据的提取和数据保护的比较研究》

不过,还有其他提取方法可用于对加密的三星智能手机进行取证。

利用解密Bootloader进行解密的优点

1.有现成的解决方案存在,比如Celebrite UFED;

2.在没有安全启动的情况下,可以绕过全盘加密。具体过程就是启动由三星签名的映像,然后被TEE信任;

3.如果手机启用了安全启动,则还能破解密码;

利用解密Bootloader进行解密的缺点

1.如果要切换到紧急编程模式,可能需要使用一根特殊的电线;

2.有时,必须拆解设备来寻找测试接口,这样是为了快速切换到紧急编程模式;

3.测试接口的准确位置会因手机的型号不同而异;

对中兴智能手机的取证

中兴通讯是一家大型的中国制造商,不仅在西方市场的销售量非常大,在国内市场也非常受欢迎。目前,我们在中兴智能手机取证方面的经验仅限于中兴通讯Axon 7,这是中兴公司2016年的旗舰产品,主打产品是Snapdragon 820,使用Android 6系统。一般来说,虽然中国制造商不是很关心安全问题,但是要完全破解智能手机上的加密数据,也不是很容易。尽管Axon 7通过了谷歌认证,但在通电后会立即要求进行指纹认证。

许多中兴智能手机,特别是配备Qualcomm 8916(Snapdragon 410)芯片组的老款手机,都存在这个漏洞。取证人员可以通过中兴通讯专有的DFU模式对数据进行映像。特别是,Cellebrite UFED使用此模式对兼容设备进行映像。

对LG智能手机的取证

LG没有采用有漏洞的Qualcomm EDL模式,而是选择使用自己的专有低层固件更新协议LG下载模式(LG Download Mode,LAF)。LAF协议可被用于将信息上传到取证设备。但是,无论芯片组是什么,取证人员都可以利用相同的协议从LG智能手机下载信息。如果是针对LG智能手机取证,Oxygen取证提取器会支持LAF取证。但是,这种低层访问模式只会返回设备存储芯片的二进制映像。全盘加密,可以有效地防止这种取证。所以说,目前还没有已知的取证方法。

综上所述,LAF模式取证具有以下好处和缺点。

利用LAF模式取证的优点

1.轻松提取未加密LG设备的内容;

2.与其他方法相比更强大和更可靠;

3.无论芯片组是Qualcomm还是MTK,该方法都适用于许多常用的LG机型;

4.无论采用何种密码保护措施,取证人员都可以提取未加密设备的数据;

5.支持所有不加密版本的Android;

利用LAF模式取证的缺点

1.即使没有密码,也不会绕过FDE加密;

2.不适用于加密设备;


原文发布时间为:2018-06-6

本文来自云栖社区合作伙伴“嘶吼网”,了解相关信息可以关注““嘶吼网”。

相关文章
|
5月前
|
Android开发 iOS开发 UED
探索未来:Android与iOS在智能穿戴设备上的较量
随着科技的飞速进步,智能穿戴设备已经成为我们日常生活中不可或缺的一部分。本文将深入探讨两大操作系统——Android和iOS——在智能穿戴领域的竞争与发展,分析它们各自的优势与挑战,并预测未来的发展趋势。通过比较两者在设计哲学、生态系统、用户体验及创新技术的应用等方面的差异,揭示这场较量对消费者选择和市场格局的影响。 【7月更文挑战第31天】
54 0
|
4月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
79 2
基于Android P,自定义Android开机动画的方法
|
4月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
190 2
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
60 15
Android 系统缓存扫描与清理方法分析
|
4月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
100 0
|
3月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
48 2
|
4月前
|
Android开发
Android在rootdir根目录创建自定义目录和挂载点的方法
本文介绍了在Android高通平台的根目录下创建自定义目录和挂载点的方法,通过修改Android.mk文件并使用`LOCAL_POST_INSTALL_CMD`变量在编译过程中添加目录,最终在ramdisk.img的系统根路径下成功创建了`/factory/bin`目录。
213 1
|
4月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
495 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
4月前
|
Android开发
基于Amlogic 安卓9.0, 驱动简说(四):Platform平台驱动,驱动与设备的分离
本文介绍了如何在基于Amlogic T972的Android 9.0系统上使用Platform平台驱动框架和设备树(DTS),实现设备与驱动的分离,并通过静态枚举在设备树中描述设备,自动触发驱动程序的加载和设备创建。
68 0
基于Amlogic 安卓9.0, 驱动简说(四):Platform平台驱动,驱动与设备的分离
|
4月前
|
Android开发 C语言
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备
这篇文章是关于如何在基于Amlogic T972的Android 9.0系统上,通过自动分配设备号和自动创建设备节点文件的方式,开发字符设备驱动程序的教程。
64 0
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备