内容简介:VM真的比Container更安全吗?
理论上来说,是的。但在工作实践中,那可就不一定了。
写在前面的话
我们经常会说,“HTTPS是安全的”或者“HTTP是不安全的”。但其实我们想表达的是,“HTTPS的内容更加难被窥探到”,“这将会让中间人攻击(MitM)变得更加困难”,或“连我外婆都可以轻易嗅探到HTTP数据”。
尽管如此,HTTPS仍然有被黑的可能,而且在某些情况下,HTTP已经足够安全了。除此之外,如果我在一个支持HTTPS的常用实现(例如 OpenSSL 和 Heartbleed )中发现了一个可以利用的漏洞,那么在漏洞被修复之前,HTTPS将会成为我入侵目标系统的垫脚石。
HTTPS其实是HTTP的安全升级版(参考IETFRFC: 7230 、 7237 和 2828 ),但我们也不能百分之百地认定HTTPS就是安全的,而HTTP就绝对不安全。
在安全方面,虚拟机(VM)和容器(Container)的定义就没有那么严格了,从设计的角度来看,在这两者之间没有谁比谁更全的说法。因此,这也让它们的安全问题更加扑朔迷离了。
为什么我会认为VM比Container更加安全呢?
无论在战争中还是在软件开发中,“分而治之”的概念都是我们的制胜法宝。我们可以将一个非常复杂的架构拆分成多个单一架构,将复杂且难以解决的安全问题拆分成了一个又一个简单的问题,而在绝大多数情况下,分步解决小问题往往要比通过一个解决方案来解决所有问题要安全得多。
Container就是很好的例子,通过将每一个应用都锁定在它们自己的区域内,每一个应用中的漏洞与缺陷都不会影响到其他容器中的应用。而VM同样是如此,但虚拟机在隔离方面做得更好。
如果容器中的应用存在漏洞,它是不会直接影响到其他应用的,这是Container的设计思想。但是,这个应用却有可能破坏整个操作系统,进而影响到这个操作系统中的其他容器。在一个共享操作系统之中,任何一个应用、容器、以及操作系统实现栈中的漏洞都将会影响整个栈的安全性,并有可能导致物理主机被入侵。
虚拟化技术采用的是分层体系结构,它可以对每一个应用的执行栈到底层的硬件进行结构划分,以此来消除共享系统中应用程序相互干扰的可能性。除此之外,每一个应用程序栈和硬件之间的接口也有严格的限制以防止被恶意软件所利用,而这种技术也给应用程序提供了更强大的安全保护。
VM管理程序(Hypervisor)不仅可以控制GuestOS和硬件之间的交互,而且还可以对操作系统进行划分并控制用户的活动。虚拟机Guest OS控制的是用户活动,而非硬件之间的交互行为。应用程序或Guest OS中的漏洞不太可能会对物理硬件或其他的VM产生影响,当虚拟机Guest OS以及托管容器的操作系统是相同的时候,同样的漏洞将会影响系统中所有的容器,但并不会危及到系统中其他的虚拟机。因此VM会水平分割应用程序,并垂直分割操作系统以及物理硬件。
虚拟机开销
VM给我们带来的额外的安全性需要牺牲一定的代价。而在计算机系统中,控制转移所带来的开销是非常大的。在执行栈的存储和重置过程中,外部操作很有可能需要被挂起(暂停)。
Guest OS和管理程序之间的转换需要消耗大量的资源,而这个过程是经常会发生的。虽然处理器芯片中本身就带有特殊的控制命令,但控制转移所带来的开销仍然会降低虚拟机的整体运行效率。效率下降得非常明显吗?这就很难回答了。我们可以通过管理“控制转移”来降低应用程序的开销,大多数服务器级处理器现在都可以简化控制转移的整个过程。换言之,效率下降的程度取决于应用程序以及服务器的配置,但这种额外的开销是永远不可能完全消除的,我们只能尽量减少。
虚拟机管理程序(Hypervisor)中的漏洞
我们要面对的问题还没那么简单,因为虚拟机所采用的分层体系结构还会引发另一个麻烦,那就是虚拟机管理程序(Hypervisor)中的漏洞。尤其是在公共云端上,像这样的单点故障将有可能引起一系列潜在的严重问题。比如说,一个黑客可以在一台虚拟机中运行恶意代码,然后控制其他公共云端所托管的应用程序,这样一来,攻击者只需要一个漏洞就可以黑掉一个公共云端中的一系列应用程序了。
纵使是一个坚如磐石的系统都仍然会存在漏洞,更何况虚拟机了。但是厂商往往都会吹嘘他们的管理程序永远不会出现安全问题,他们会说:管理程序这么简单,而且开发起来也非常容易,我们还会对程序代码进行严格的安全审查,所以他们绝对不会出现安全问题。但OpenSSL的代码肯定比Hypervisor 要少得多吧?那Heartbleed又是哪儿来的呢?而且我们要知道,虚拟机管理程序中的漏洞与 WannaCry 一样,影响绝对是毁灭性的。
虽然管理程序中的漏洞在目前为止还没有引发什么严重的安全事件发生,但我们可以从 常用CVE数据库 中看到,很多研究人员早就发现了大量可以利用的Hypervisor漏洞了,不过Hypervisor的开发人员和厂商都能够及时修复其中的漏洞,这一点是我们应该感到欣慰的。
总结
虽然虚拟机也有这样那样的问题,但我依然坚信虚拟机的安全性比容器要高得多。尽管如此,我们还是要带着批判的眼光来看到虚拟机系统的安全性问题。
* 参考来源: networkworld , FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
分布式机器学习:算法、理论与实践
刘铁岩、陈薇、王太峰、高飞 / 机械工业出版社 / 2018-10-20 / 89.00
人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习!本书旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向。 由微软亚洲研究院机器学习核心团队潜心力作!鄂维南院士、周志华教授倾心撰写推荐序! 本书旨在全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向。 全书共12章。第1章是绪论,向大家展......一起来看看 《分布式机器学习:算法、理论与实践》 这本书的介绍吧!