G.O.S.S.I.P阅读推荐2025-12-24平安夜CVM惊魂

admin 2025-12-25 03:12:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍CCS2025论文BadAML,指出ACPI接口可导致机密虚拟机崩溃。由于CVM不验证动态ACPI表,攻击者可利用内核AML解释器读写物理内存的能力,注入代码绕过AMD-SEV等加密,在Windows和Linux上实现内核提权。建议加强对遗留固件接口的安全验证。 综合评分: 85 文章分类: 云安全,漏洞分析


cover_image

G.O.S.S.I.P 阅读推荐 2025-12-24 平安夜CVM惊魂

原创

G.O.S.S.I.P

安全研究GoSSIP

2025年12月24日 21:03 上海

Jingle bells jingle bells Jingle all the way

祝大家圣诞节快乐,今天我们要为大家介绍的是敌国的一篇获得2025年反动学术会议CCS杰出论文奖的研究论文BadAML: Exploiting Legacy Firmware Interfaces to Compromise Confidential Virtual Machines

这篇论文其实就关注了一个核心内容——ACPI,研究了它对虚拟机加密(CVM)的影响。ACPI是什么呢?喜欢调计算机BIOS的玩家都应该比较熟悉了,ACPI就是Advanced Configuration and Power Interface也就是高级配置与电源接口这样一个底层的硬件接口,能够给上层的软件提供各种硬件运行的信息,也允许上层的软件去更改底层硬件的运行时参数(比如调整CPU风扇转速)。实际上ACPI这个规范可能比我们的很多读者年纪都要大:

  • 1997 年,由英特尔、微软、东芝公司共同提出、制定了 ACPI 1.0 规范。
  • 2000 年 8 月,康柏(Compaq)和凤凰科技(老玩家都知道那个Phoenix BIOS吧)加入,推出 ACPI 2.0 规范。
  • 2004 年 9 月,惠普取代康柏,推出 ACPI 3.0 规范。
  • 2009 年 6 月 16 日,推出 ACPI 4.0 规范。
  • 2011 年 11 月 23 日,推出 ACPI 5.0 规范。

目前ACPI规范已经是6.4版本了,Intel有一个介绍ACPI的文档写得蛮不错的(下面的URL指向的网页上面有个PDF),里面的一些细节也和我们今天要介绍的论文高度相关:

https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/overview.html

上图这个ACPI子系统位于底层的系统固件和上层的操作系统之间,而如果考虑到虚拟化,ACPI子系统同样也是在虚拟机的边界之外,而且在ACPI子系统里面有一个非常非常重要的特性——ACPI Source Language(ASL),这是一种ACPI子系统的编程语言,先不管它的实现细节,我们只需要知道这种语言在实际应用中是由一个AML解释器(ACPI Machine Language Interpreter)翻译成特定的字节码然后执行的。

https://wiki.osdev.org/AML

然而正是因为这个AML解释器的存在,导致了现代安全虚拟化执行的大溃败……我们看下面这幅图:在大部分的OS内核中,通过ACPI可以获取相关的硬件信息(例如CPU核数、内存的容量),但是同一台主机上的虚拟化环境(比如好几个不同的VM实例)分配到的硬件信息是不一样的,为了让每个不同的VM实例看到不同的ACPI信息,现代的ACPI接口允许动态生成一个的ACPI表(而不是每次机器冷启动之后)发送给上层的OS,唯一的问题是,这种动态发给上层OS的信息并没有包含在虚拟化环境(也就是CVM)的完整性检查(attestation)之中:CVM会检查各种数据是否有合法的签名,但没有办法检查ACPI数据的合法性,那么如果攻击者控制了底层的ACPI数据,提供给上层的CVM,就成功打入了马奇诺防线的内部!

而更可怕的是,现代OS内核里面包含了一个AML解释器,它用来支持OS内核去解释执行来自ACPI子系统的AML字节码,这个解释器虽然做不了什么太复杂的操作(尽管它是图灵完全的),但它有一个非常强的特性就是可以读写物理内存,攻击者只需要滥用这一个特性就可以操控上层OS的内存数据了。而且由于注入到OS内核的AML代码是在OS上运行的,它可以完全无视任何底层的内存加密(例如AMD-SEV防护),直接操作明文内存数据,这样其实不管CVM用了什么样的加密防护方式基本上都没有办法抵御AML注入攻击。

作者调研了Windows和Linux的内核,发现虽然想要实现攻击可能需要一点点的trick(例如Windows平台上,要实现任意代码执行还需要首先绕过Windows AML interpreter的一些限制),但基本上都能最终实现内核级别的完全提权!

论文的后半部分是作者调研各大云平台然后设计了相关防护方案的内容,我们这里就不多介绍了。最后看一下论文的日式幽默:


论文:https://dl.acm.org/doi/epdf/10.1145/3719027.3765123


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全研究GoSSIP G.O.S.S.I.P《G.O.S.S.I.P 阅读推荐 2025-12-24 平安夜CVM惊魂》

评论:0   参与:  4