Android 调试器爆漏洞,可获取设备内存数据

简介:

本月中旬,谷歌推出了针对查找安卓系统漏洞的“安卓安全奖励”计划,发现一次漏洞最少可获500美元奖励。不过半月,真的有人发现了安卓系统漏洞。趋势科技(Trend Micro)近日发现了存在于Android调试器Debuggerd中的漏洞,该漏洞可以获取设备内存中的数据,包括Android 4.0 Ice Cream Sandwich(冰淇淋三明治)到Lollipop(棒棒糖)等系统均受到影响。


ec296a5ab3960243854dfac4dc8531a6df5cfa24


ff5366f83a7e12671676dfaa800f4914de908ec9

Debuggerd 是android的一个daemon进程,负责在进程异常出错时,将进程的运行时信息dump出来供分析。Debuggerd生成的coredump数据 是以文本形式呈现,被保存在 /data/tombstone/ 目录下,共可保存10个文件,当超过10个时,会覆盖重写最早生成的文件。从4.2版本开始,Debuggerd同时也是一个实用工具:可以在不中断进程 执行的情况下打印当前进程的native堆栈。这可以协助分析进程执行行为,但最最有用的地方是:它可以非常简单的定位到native进程中锁死或错误逻 辑引起的死循环的代码位置。

然而一个构造精巧的ELF(Executable and Linkable Format)文件可以导致调试器崩溃,然后通过tombstone文件和对应的logd日志文件暴露内存内容。此文件可用于拒绝服务攻击,以及帮助绕过 ASLR执行恶意代码。导致漏洞的原因是在执行字符串复制命令时,Debuggerd会使用sym->st_name作为offset,而不进行错 误检查。这个值可以轻易被恶意的ELF文件控制,它可以将offset值指向不可读取的内存,从而导致Debuggerd崩溃。如果反复崩溃就会造成拒绝 服务攻击,也无法再连接Debuggerd了。如果精心构造offset就会使Debuggerd暴露相应的内存内容,Debuggerd会将它们存入 dump和log文件中。不过仅仅利用该漏洞是无法进行代码执行的,而通过该漏洞暴漏的信息则可以和其他漏洞结合从而用于代码执行。

该 漏洞可被恶意或重新打包的应用程序利用。不过因为不能直接通过代码执行,能造成的影响会相对有限。目前受到漏洞影响的系统版本包括Android 4.0 (Ice Cream Sandwich)到Lollipop(5.x),而在最新版本Android M中该漏洞已经得到了修复。

据 悉,趋势科技已经在今年4月27日向谷歌提交了漏洞报告,谷歌承认了该问题的存在,并将其判定为低等级漏洞。在今年5月15日的Android Open Source Project (AOSP,Android 开放源代码项目) 大会上,谷歌更新了一个针对该漏洞的补丁。
文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
25天前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
1天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
4 0
|
3天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
6天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
10天前
|
存储 C语言
数据在内存中的存储2
数据在内存中的存储2
|
10天前
|
存储 编译器
数据在内存中的存储1
数据在内存中的存储
|
21天前
|
存储 编译器 程序员
【C语言】整形数据和浮点型数据在内存中的存储
【C语言】整形数据和浮点型数据在内存中的存储
12 0
|
26天前
|
缓存 移动开发 Java
构建高效Android应用:内存优化实战指南
在移动开发领域,性能优化是提升用户体验的关键因素之一。特别是对于Android应用而言,由于设备和版本的多样性,内存管理成为开发者面临的一大挑战。本文将深入探讨Android内存优化的策略和技术,包括内存泄漏的诊断与解决、合理的数据结构选择、以及有效的资源释放机制。通过实际案例分析,我们旨在为开发者提供一套实用的内存优化工具和方法,以构建更加流畅和高效的Android应用。
|
29天前
|
监控 Java Android开发
构建高效Android应用:从内存管理到性能优化
【2月更文挑战第30天】 在移动开发领域,打造一个流畅且响应迅速的Android应用是每个开发者追求的目标。本文将深入探讨如何通过有效的内存管理和细致的性能调优来提升应用效率。我们将从分析内存泄露的根本原因出发,讨论垃圾回收机制,并探索多种内存优化策略。接着,文中将介绍多线程编程的最佳实践和UI渲染的关键技巧。最后,我们将通过一系列实用的性能测试工具和方法,帮助开发者监控、定位并解决性能瓶颈。这些技术的综合运用,将指导读者构建出更快速、更稳定、用户体验更佳的Android应用。
|
1月前
|
缓存 监控 API
构建高效的Android应用:从内存优化到电池寿命
【2月更文挑战第27天】 在移动开发领域,构建一个既高效又省电的Android应用是每个开发者的梦想。本文深入探讨了Android应用性能优化的关键策略,包括内存管理和电池使用效率。我们将分析常见的内存泄漏问题,并提供解决方案,同时介绍最新的Android电池优化技术。通过实例和最佳实践,读者将学会如何打造一个更加流畅、响应迅速且电池友好的Android应用。