首页
社区
课程
招聘
[分享]CVE-2015-8950 漏洞分析及美国UC Riverside钱志云老师2018年度招生启事
发表于: 2017-8-23 04:53 6327

[分享]CVE-2015-8950 漏洞分析及美国UC Riverside钱志云老师2018年度招生启事

2017-8-23 04:53
6327

看雪论坛的各位朋友们大家好,我们是来自于美国加州大学河滨分校(University of California, Riverside)的钱志云老师安全研究小组,去年我们曾在论坛上发表了题为“安卓一键Root软件揭秘和海外留学机会”的帖子(http://bbs.pediy.com/thread-212575.htm),分享了我们2015年的CCS论文,并且表达了我们希望看雪论坛上有志于从事安全研究的各位朋友能够加入我们研究小组的愿望。去年的帖子发出后,得到了论坛管理员的大力支持和大家的热情回应,钱老师也先后收到了许多朋友的联络邮件,我们慎重地结合多方面因素进行考虑,最终成功地通过看雪论坛招收到了一名优秀的同学加入我们。在此我们对大家的积极支持和参与表示诚挚的感谢!

 

鉴于去年的成功经验,今年我们决定继续效仿去年的做法,首先分享一个我们在2016年挖掘到的高危Android信息泄露漏洞(CVE-2015-8950,允许一个不需要任何权限的普通App读取其他用户进程的内存,从而窃取各类敏感信息,如电子邮件内容,银行账户信息,浏览页面及历史,该漏洞影响当时市场上大部分Android机型,包括Nexus 6P),同时附上钱老师2018年度的招生启事,我们的各项条件待遇均保持不变,对于加入我们研究小组的同学,钱老师提供美国五年博士期间的全额奖学金(包含所有学杂费以及每月近2000美元的生活费,足以cover求学期间的一切开销)。关于钱志云老师本人以及我们研究组的介绍,大家可以参看我们去年的帖子(http://bbs.pediy.com/thread-212575.htm),帖子中的各种信息、大家提出的问题以及我们的回应也均适用于2018年度的情况。

 

好了,言归正传,我们首先介绍CVE-2015-8950漏洞的原理和利用,漏洞的CVE页面如下:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8950


在介绍这个漏洞之前,我们首先需要了解一些必要的背景知识,可能会有些多,但是一旦清楚了背景,就会很容易地理解漏洞的原理。

 

背景0x0 Android ION内存管理系统

AndroidION内存管理系统(https://lwn.net/Articles/480055/),不同于我们常用的malloc虚拟内存分配函数,ION内存分配机制的目标在于满足一些硬件设备的特殊需求,比如有些硬件设备需要分配物理连续的内存,而有些设备可能要求内存具有某些特殊的cache属性,为了满足这些特殊的需求,ION维护了一些内存堆(heap),每个堆都可以提供不同属性的内存bufferION为这些不同的内存堆提供了一个统一的接口,用户只需要提供堆ID以及所需buffer长度等信息,通过ION接口就可以在相应的堆中分配内存。这里需要注意的是,ION接口(/dev/ion,可通过ioctl进行通信)是同时开放给内核以及用户空间的,之所以开放给用户空间,是因为很多时候用户空间的库也需要分配一些特殊的buffer并且与内核空间共享buffer中的内容(如需要同时进行软件和硬件渲染的图形buffer),这就意味着,一个普通的Android App也可以无阻碍地利用ION分配内存以及访问其内容。

 

背景 0x1 CMA机制

我们要介绍的漏洞存在于一个ION所管理的内存堆-CMA堆上。CMA的全称是Contiguous Memory Area (连续内存区域)(https://lwn.net/Articles/486301/),这个区域是一片被系统保留的连续的物理内存,其存在目的是为了给有需要的硬件设备提供连续的物理内存,这样一来,在硬件设备需要时,系统就不必费力地从所有可用内存中寻找物理地址连续的区域,而只需要简单地从CMA区域中划分出一块即可。听起来很有效率,但是这其中还有一个问题,那就是并非在系统运行的所有时间都会有硬件设备需要大量的物理连续内存的,很有可能在很多时间段内,CMA区域处于不被需要的空闲状态。这样的话,假如我们从一开始就将CMA区域划分为保留区(只接受硬件设备的内存请求,而不对一般的用户进程开放),那么显然这将是一种内存资源的浪费(硬件设备不需要使用,一般用户进程又无法使用)。为了解决这个问题,CMA机制被设计为在空闲时刻也允许一般的用户进程使用,但是一旦硬件设备有需求,则硬件设备具有高优先级,可以抢占式地分配CMA内存,而此时CMA区域中正在使用的属于用户进程的物理页面内容则会被系统复制到其他CMA区域之外的物理页面上(整个过程对用户进程是透明的,因为在物理页面复制后系统只需要简单地更改页表映射关系,用户进程看到的虚拟地址保持不变)。因为这样的特性(用户进程在CMA区域的物理页面有可能会在某个时刻被复制出去),所以一般而言,系统不会轻易为用户进程分配来自CMA区域的内存(因为稍后可能的页面复制会带来额外的开销),而只有当其他正常内存区域的空闲内存不太够的时候才会考虑CMA区域。

 

有了上述的背景知识,我们再来谈一谈CVE-2015-8950所依赖的Bug

 

Bug 0x0 系统在复制物理页面时不会对原始页面清零

在介绍CMA的时候我们提到,CMA区域也可以被一般用户进程所使用,但是当硬件设备有需求时用户的物理页面会被复制到其他地方。问题在于,系统在做复制的时候并不会对留在CMA区域里的原始页面清零,而这些页面上可能承载着用户进程产生的各类敏感信息。严格地说来,这应该不能被算作是Bug,因为系统很可能是从性能角度出发才决定不对原始页面清零的,而且反正原始页面很快就会被硬件设备覆盖掉。

 

Bug 0x1 CMA堆在执行内存分配时不会对页面清零

在背景0x0中我们提到用户可以利用ION提供的接口在各类内存堆中分配内存,而当我们从CMA堆中分配内存时,分配函数却不会对返回的内存buffer做清零操作。

 

行文至此,相信有很多聪明的朋友已经可以勾勒出漏洞利用的全貌。我们在此描述该漏洞利用的流程:

 

Step 0x0 消耗系统可用内存

首先我们利用malloc/mmap反复分配尽可能多的系统内存,并且保持对这些内存的读写操作,这样一来,系统将会出现内存告急的状况。

 

Step 0x1 启动目标App

在系统内存紧张的情况下,我们启动目标App(即我们想从中获取敏感信息的App,如Gmail),这时,因为正常的内存区域都已被我们在Step 0x0中占据,系统无奈之下只好从CMA区域调取内存以供目标App使用,此时如果我们正常操作App,则许多运行过程中产生的敏感信息都会被写到CMA区域的物理页面上。

 

Step 0x2 通过ION接口从CMA区域中分配内存

当我们通过IONCMA区域中分配内存时,系统会认为该请求源于硬件设备,具有优先级。根据我们在背景 0x1中的介绍,此时系统将会把目标AppCMA区域中的页面复制到其他地方,同时将CMA区域的页面分配给我们。我们在Bug 0x0 0x1中描述过,目标App的残留页面不会被清零,而CMA分配函数在进行分配时同样不会清零,最终结果就是,攻击者取得了目标App的运行时内存,而其中可能包含大量敏感信息。


以上是对CVE-2015-8950漏洞原理和利用的介绍,该漏洞是我们在研究Android ION系统时发现的一个主要漏洞,而实际上ION系统在设计和实现上还存在着其他很多问题(如拒绝服务漏洞),在深入研究ION内存管理系统的基础上,我们将这些发现汇集在一篇论文中(Android ION Hazard: the Curse of Customizable Memory Management System),并发表在2016CCS会议上,我们将论文附在帖子之后,感兴趣的朋友可以下载阅读,如有任何问题也欢迎和我们交流。

 

技术分享部分之后,我们循例附上钱志云老师2018年度的招生启事:


Dr. Zhiyun Qian at the Computer Science and Engineering department in University of California Riverside is hiring multiple motivated PhD students in the area of system and network security. Qian's work has led to security flaws discovered in Android, Linux, Mac, and firewall vendors such as Check Point. The projects are not only published in top-tier security conferences but also frequently covered by major tech news. More details can be found in his webpage is at http://www.cs.ucr.edu/~zhiyunq/

 

Any students with strong background on the system and/or networking knowledge, or with good programming or reverse engineering skills are encouraged to apply. Security background, static or dynamic program analysis, or formal verification experiences are not required but big pluses. If you are interested in practical security problems and enjoy hacking, the position would be an excellent fit. Students with Bachelor or Master degrees are both welcome to apply. All applications need to be submitted through the official admission website. However, if you have questions or are really interested in the research topics and want to introduce yourself, you can drop your CV and transcript (unofficial is fine) at zhiyunq@cs.ucr.edu.


根据安全领域四大顶级会议的发文数量统计,钱志云老师的研究组已经被列为世界顶级的安全研究小组之一 (http://s3.eurecom.fr/~balzarot/notes/top4/),如下图所示,其中每一个节点代表一个Group Leader:


在过去的一年中,钱志云老师又获得了权威的NSF Career Award,用以支持他在安全方面的研究,目前手里还有众多funding和有趣的课题,可以说是机会多多,前途无量,我们诚挚地邀请有志于系统和网络安全研究的朋友联系我们!

 

PS1:对于考虑2018年度申请的朋友们还有一个好消息,那就是钱老师将于今年9月中旬回国访问,届时将去往包括北京,上海在内的几个主要城市(具体行程待定),感兴趣的朋友们将有机会和钱老师面对面交流。大家可以直接通过邮件联系钱老师(zhiyunq@cs.ucr.edu)以确定会面的具体细节。

 

PS2:我们去年的帖子中(http://bbs.pediy.com/thread-212575.htm)也有很多有用的信息可供参考,如有任何问题,都欢迎大家和我们联系。

去年还有朋友通过论坛私信提了一些具体问题,可是由于我们账号的等级限制,私信交流多有不便,所以如果大家有一些私人的问题需要咨询,可以给我们发邮件(cpumask@gmail.com)或者直接联系钱老师(zhiyunq@cs.ucr.edu),我们将尽快回复。


再次感谢大家的支持!



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费
支持
分享
最新回复 (6)
雪    币: 194
活跃值: (5394)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wsc
2
看雪峰会:http://bbs.pediy.com/thread-220614.htm  欢迎您赞助。
2017-8-23 12:44
0
雪    币: 186
活跃值: (589)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
赞,这个paper之前读过,角度很刁钻啊~
2017-8-29 14:56
0
雪    币: 196
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不知道高中生可以申请不?我有个朋友,能力足够,但是现在刚高考完毕。
2017-9-5 11:41
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
cmzy 不知道高中生可以申请不?我有个朋友,能力足够,但是现在刚高考完毕。
这个不好意思,因为我们的培养目标是博士,所以申请者应至少具有大学本科学历。高中毕业生可以申请到包括UCR在内的海外高校读本科,如有机会在本科期间也可以参与一些研究工作,但本科期间学费可能需要自己承担了。
2017-9-5 15:03
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你好!请问能加你微信或者邮箱联系吗?有比较多的想法!那个如果是冬季入学  还有奖学金的吗?因为我现在大四  托福和GRE没有成绩  在准备时间非常紧张。非常感谢!
2017-11-16 10:24
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你好!请问能加你微信或者邮箱联系吗?有比较多的想法!那个如果是冬季入学    还有奖学金的吗?因为我现在大四    托福和GRE没有成绩    在准备时间非常紧张。非常感谢!
2017-11-16 11:29
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册