1:“无法破解芯片?”
今年的hotchips 33 ,密歇根大学的Austin教授带来MORPHEUS II。
上一个版本的MORPUHES 最早出来的时候,被称作:“无法破解”的芯片,号称580名专家13000个小时尝试均告失败。
但是世界上没有绝对的事!
Austin教授说:“媒体上说芯片无法破解。我自己一般不会这么说,因为我认为它是可以破解的,但是这非常难破解!”
通常,当程序“调用”一个子程序时,它会在返回堆栈中存储该子程序结束时程序应返回的地址, 这个返回地址就是攻击者操纵执行所谓的缓冲区溢出或代码注入的位置。
返回地址就是很多攻击的来源。
在MORPHEUS之前就有很多手段,来保护返回地址的安全性,如一些控制流完整性的手段(CFI),这个本来也不稀奇。
MORPHEUS通过一个加密单元实现底层机器码实现每50毫秒更改一次。通过加密后的更改这些底层代码,使得每个时间段后,机器码都会发生变化,同样不同处理器运行也不一致。
这些返回地址,攻击者找不到,或者找到了,下一次就发生了改变。
这样,在时间上,代码随着时间变化,在空间上,代码随着不同机器变化,因此要想分析这些机器码,就很困难。
代码数据的自然识别系统每隔50毫秒生成一次,这意味着它可以阻止最强大的自动黑客工具。因此,即使黑客发现了一个漏洞,他们也利用不了该漏洞。当他们获得了破解漏洞必要的信息时,就会发现代码已发生了改变。
虽然宣传的不错,但是这种手段来抗攻击,川剧“变脸”,每隔一段时间就“churn” 扰动,这种手段带来了开销。
虽然文章中说,开销很少,但是我还是持怀疑态度。
另外,就是这个证明要靠悬赏。580名专家13000个小时的这些操作。
搞这么多操作,用在什么地方?
控制流完整性CFI搞了这么多年,在处理器领域也是,研究的多,应用的少。
虽是如此,但是Morphus II的改进,还是令人眼前一亮。
2:MORPHEUS II的进化
MORPHEUS II 和最初的不同,这个进化设计了这个RISC-V的微结构,基于Rocket Core,把处理器外部的所有输入指令和数据都加密了,这个想法起码挺不错的,这就带来了两个好处。
第一点:所有指令和数据都是加密的。
加密的RAM和Disks,甚至,Cache内部也是加密的。包括I-Cache 和D-Cache。
也就是说,数据只有在处理器内部才是解密的,处理器外部所有的部分,全是密文。
第二点:所有的指针都是加密的。
对于抵抗攻击来说,这个是一个非常好的做法,可以有效防止对攻击者无法伪造/分析代码/指针;
我比较看好这个基于RISC-V的微架构另一个潜在应用,就是云端虚拟化的隔离。
2:云端虚拟化的隔离
云端虚拟化业务,每个租户对自身数据安全性都是无价之宝,
传统的云端隔离通道主要有四种隔离手段:
1:计算CPU隔离
Hypervisor 通过相互隔离的计算通道来控制虚拟机与主机资源的交互。从而防止用户获得对系统以及对其他租户的读,写请求,实现多租户之间的计算隔离。
2:内存DRAM隔离
Hypervisor同样负责隔离内存,确保虚拟机之间无法访问对方的内存。当实例被释放后,所有内存被Hypervisor清零,可以防止释放的物理内存页被其他用户访问;
3:磁盘SSD隔离
存储隔离,目前的存储隔离通过hypervisor截获处理,保证虚拟机只能访问虚拟机分配的物理磁盘空间,实现虚拟磁盘空间的安全隔离。
4:网络NETWORK隔离
Hypervisor复杂虚拟网络进行隔离,确保流量不被随意转发,虚拟机的网络资源只能被对应的虚拟机来获取。
目前所有的隔离全部依靠是Hypervisor。
如果租户相信Hypervisor,那就依赖Hypervisor。
但是还是很多高安全业务,例如保险,证券等等也不完全信赖公有云的隔离。
所有,更安全的方式是单租户独享物理资源,这就是裸金属云。
使用裸金属云也更安全,不用和别人共享,可以做到物理隔离。
那么虚拟化的隔离只能依赖Hypervisor?
目前通过加密实现云端虚拟化的隔离是一个理想的手段,例如磁盘加密虚拟磁盘的隔离,加密数据其他任何人不能读取内部的数据,除用户自身外,任何其他人无法读取和访问其中的数据。
这种隔离方式,是一种更为安全隔离的方式。
这些技术对于云端虚拟化安全可以提升一个层次。
以前hypervisor,是一个软件程序,计算CPU和内存DRAM目前看还不能加密。
由软的hypervisor到硬CPU架构,通过CPU架构加密实现隔离,这个应该是不错的想法,虽然还有很长的路要走。
从Morphous II来看,其架构上,可以实现,指令,数据全部加密,也就是说,内存和磁盘上存储全是加密数据,这些加密数据可以和CPU处理架构绑定,这样可以通过密码手段实现整个虚拟化运行环境的隔离。
可以通过这个处理器RISC-V的微架构来保证,计算CPU内部和DRAM内部都是密文,只有在取指(IF)后,以及读取数据(LOAD),数据才变成明文。
这个与“同态加密”技术对比来看,同态加密技术,目前效率还是比较低,还需要一段时间才能实用化。
而Morphous II 虽然没有同态加密那么高大上,但是也算是CPU架构上的创新,有可能解决很大一部分问题。
这个工作也列出了下一代的Morpheus的方向。
其中包括,高安全隐私计算,基于加密和物理隔离的防护,以及在亚马逊的AWS和微软的Azure来部署。
从这点来看,Morpheus II终于从不停“扰动”到找到方向。