作者:360 Marvel Team 安全研究员唐青昊 (新浪微博:SunSky0101;微信:702108451)
自2015年 5月份毒液漏洞肆虐全球云平台之后,360 Marvel Team累计在kvm,xen,vmware平台上发现提交了高达22枚的高危安全0day漏洞,这些漏洞均会导致通用云系统被黑客攻破。目前云上已经存放着大量用户的个人隐私信息,企业数据信息,以及政府敏感信息,一旦云系统被攻破,就意味着这些重要的信息可能会被泄露。黑客利用虚拟化漏洞不但可以偷取到重要信息,甚至可以从一台虚拟机发起攻击控制宿主机,最终控制整个云环境的所有设备。
目前云虚拟化系统已经与PC安全,移动设备安全,智能设备安全并列成为最火热的安全研究方向。在安全领域最负盛名的PWN2OWN比赛中,今年新加入了Vmware Workstation的逃逸项目。在CanSecWest 2016(温哥华)和Syscan 2016(新加坡)会议中,360 Marvel Team团队也受邀分享了有关云虚拟化系统的漏洞挖掘和利用的前沿课题。相信世界范围内对云虚拟化系统的安全研究将会在2016走上一个新的高峰。
《360 Marvel Team虚拟化漏洞》系列文章,针对团队独立发现的云虚拟化系统软件中的高危0day漏洞进行深度分析,希望以此揭开虚拟化攻击技术的神秘面纱。360Marvel Team团队结合在漏洞挖掘和漏洞利用过程中的相关经验,针对云计算平台提供了完善的云虚拟化系统防护解决方案,持续保证云生态的安全。
本文为该系列的第五篇文章,将详细分析已经潜伏了编号CVE-2016-3710(英文名:Dark Portal,中文名:传送门)的越界读写内存漏洞的相关知识,该漏洞存在于xen和kvm系统的qemu模块中的vga显卡组件,黑客在一台虚拟机中利用该漏洞,就可以在宿主机中执行恶意命令。360 Marvel Team于 4月22日提交该漏洞,官方于5月5号公开了漏洞信息及修复补丁。
关于之前的四篇文章,链接如下:
http://www.freebuf.com/vuls/77834.html
http://blogs.360.cn/blog/360marvelteam虚拟化漏洞第二弹-cve-2015-5279-漏洞分析/
http://bobao.360.cn/learning/detail/2423.html
http://www.freebuf.com/vuls/91603.html
QEMU是一款存在于xen和kvm系统中的用以实现设备模拟的软件,它实现了在虚拟机中使用键盘,网络通信,磁盘存储等诸多需要硬件设备参与的功能,并且可模拟的硬件设备类型非常丰富,如它提供了10种以上类型设备的网卡设备模拟组件,包括pcnet,rtl8139,ne2000,eepro100,e1000等。
vga组件模拟了vga显示卡功能。vga模块是qemu中默认使用的显卡模块,在xen中则需要在video选项处进行选择:
DarK Portal漏洞是由于qemu/hw/display/vga.c文件的数组索引处理不当造成的。
首先看vga设备对应的读操作函数vga_mem_readb(),该函数会根据索引返回设备内存中的1个字节。但是由于对索引的边界值缺少判断,因此会导致越界读取内存。
那么能越界读到多少内存呢?根据下面的计算,在默认的配置中,正常的设备内存为16mb。
由于是通过 s->latch = ((uint32_t*)s->vram_ptr)[addr]; 这句代码进行读内存,因此可以越界读48MB的内存。
同样在vga设备的写操作函数vga_mem_writeb()中,也存在同样原因导致的越界写入内存。并且可以逐一字节写的内存也为48MB。
黑客可以利用DarK Portal漏洞在虚拟机中发动攻击,控制宿主机中的进程执行恶意代码。
DarK Portal漏洞和去年的“毒液漏洞”相似,毒液漏洞”可以实现堆缓冲区溢出,但是在实际利用过程中会遇到2个关键问题:
1.连续的堆内存覆盖,容易造成利用环境不稳定;
2.单一漏洞不能绕过aslr。
而DarK Portal漏洞本质上实现了内存越界读写,而且可以单字节读和写,从而有能力完成精准控制内存和信息泄露这两个关键步骤。
局限性方面,该漏洞受制于vga 设备内存之后48MB空间的内容,在我们的测试环境中,可以看到48M空间(图中黑色部分)包含了lib内存信息。而lib库内存信息的泄漏可以帮助黑客绕过aslr的限制。
4.23 发现漏洞,完成poc代码
4.25 将完整报告向官方安全团队披露
4.29 讨论披露时间
5.9 官方披露信息
漏洞评级:高危
http://www.openwall.com/lists/oss-security/2016/05/09/3
https://access.redhat.com/security/cve/cve-2016-3710
虚拟机授权用户利用该漏洞可以在kvm平台和xen平台的宿主机上执行任意代码.
1.云厂商可以使用打补丁的方式修补该漏洞。
2.使用”360云加固”等虚拟化漏洞防护产品自动免疫
补丁链接为:
http://www.openwall.com/lists/oss-security/2016/05/09/3
针对360 Marvel Team独立发现的虚拟化安全漏洞CVE-2016-3710(英文名:Dark Portal,中文名:传送门),本文完整分析了漏洞相关的原理,利用方案,危害说明,以及修复方案。希望此文可以引起更多使用公有云和私有云企业的关注,重视云虚拟化系统安全问题。
* 作者:360安全团队(公司账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)