虚拟机在保护计算机安全方面起到的作用,安全|在可信计算中,计算机硬件在保护操作系统和管理程序方面起到至关重要的作用...

安全|在可信计算中,计算机硬件在保护操作系统和管理程序方面起到至关重要的作用

2018-12-01

许多软件应用程序以“最小权限”运行,这意味着该软件只能获得对硬件、其它应用程序和其它系统资源的最低限度访问权限。应用程序与其它资源(如操作系统和虚拟机管理程序)之间的安全分离可确保安全性较低的应用程序和软件无法从更安全和更关键的可信计算应用程序里面访问关键数据。高度敏感的数据必须充分保护,以确保只有需要对该数据进行操作的代码才能访问该数据。

维护此类安全应用程序分离的责任属于操作系统和虚拟机管理程序。想象一下位于软件堆栈之上的应用程序,该堆栈的每个较低层必须尽其一部分来维护应用层的安全性。

硬件的底部是硬件,它必须能够执行访问控制。硬件之上是操作系统或管理访问控制的第一类管理程序。为了获得最佳保护,系统设计人员应配置系统,以确保操作系统或1型虚拟机管理程序利用所有可用硬件安全性来管理下一层的调度、资源、进程和安全性。如果缺少基本的安全构建模块,那么构建安全的应用程序将非常困难。

操作系统的作用

多年来,操作系统在内核进程和用户空间应用程序之间保持分离。实际上,操作系统的整个功能是确保在一个硬件上运行的多个应用程序的一致操作。作为其责任的一部分,操作系统已经发展到防止或限制一个应用程序中的恶意行为者影响其他同时运行的应用程序。

随着处理器变得越来越快,效率越来越高,它们也变得越来越复杂,这又使操作系统的责任更加复杂。例如,操作系统处理任务之间的高速缓存管理很复杂,因为进程进出内存,操作系统必须刷新或使任何缓存的内存无效,这可能很困难且容易出错。

再加上诸如直接内存访问(DMA)、副作用和安全问题(如行撞击、崩溃和幽灵攻击)等挑战性因素,操作系统的安全责任变得非常巨大。

硬件安全功能

目前大多数处理硬件都包含操作系统或管理程序的安全功能。这是因为许多这些硬件功能都以管理员模式执行操作。在英特尔SGX或ARM TrustZone等基于处理器的可信任引导资源中,操作系统必须创建并管理对安全域的进程和资源访问。

软件工程师必须设计操作系统和管理程序以使用硬件的内置安全功能。操作系统和管理程序通常以特权模式运行,唯一能够使用处理架构的所有功能。

在新硬件上使用旧操作系统可能会否定硬件的安全功能,更新军事和航空航天系统中的操作系统可能代价高昂。系统设计人员必须考虑到风险和程序成本之间的潜在折衷,以确定在系统刷新期间何时插入新版操作系统。

操作系统还必须安全地管理资源访问 - 除了维护进程之间的安全边界并充分利用硬件安全性外,仅仅保持流程分离是不够的。如果某个进程可以在数据流入和流出时从外围设备读取另一个数据,那么它会影响可信计算。

软件工程师必须设计操作系统软件驱动程序,以便在安全的情况下访问外设。他们必须了解增加I / O资源的访问和可用性以及维护和控制访问分离之间的潜在折衷。

某些处理器提供增强的I / O管理功能,例如输入输出内存管理单元(IOMMU),它可以使操作系统和软件驱动程序在充分利用I / O资源的同时增强安全性。

管理程序的安全方面

虚拟机管理程序管理虚拟化资源,以使多个操作系统能够同时在相同的硬件上运行。在虚拟环境中运行时,操作系统和虚拟机管理程序必须一起工作,以维护安全和可信的环境。

一系列客户操作系统在硬件和Type-1管理程序之上的系统堆栈中工作。当虚拟机管理程序不存在时,这些访客操作系统中的每一个都与单个操作系统类似。

Type-1虚拟机管理程序虚拟化所有硬件资源,并管理堆栈中所有运行在其上方的操作系统的访问权限。 VmWare ESX和Xen是Type 1管理程序的示例。

相比之下,Type-2管理程序运行在另一个操作系统之上,使用该父操作系统访问硬件资源。 Type-2虚拟机管理程序将这些资源虚拟化到位于上面的客户机操作系统。 VmWare Workstation和Oracle VirtualBox是Type 2管理程序的示例。

Linux KVM是一种混合型管理程序,直接在硬件上以Linux内核模式执行,但使用Linux操作系统体系结构来管理虚拟化资源。

所使用的管理程序类型决定了客户操作系统的基本安全责任驻留在何处。 Type-1管理程序必须使用硬件中提供的所有安全功能,以防止一个客户机操作系统泄露信息或访问另一个客户机操作系统的信息。

软件工程师必须编写主机或父级操作系统,以便在涉及Type-2管理程序的情况下使用可用的硬件安全功能,Type-2管理程序使用主机操作系统来管理和控制对虚拟化资源的访问。

操作系统(或一组客户操作系统)将用户空间流程与监督流程分开。每个帮助操作系统的进程都有一个定义的接口,可以帮助它与其他进程进行通信和互操作。操作系统还确保进程在其定义的角色内运行并使用接口进行通信。例如,它捕获并防止无效操作和接口访问,从而防止一个失败的进程阻止整个系统停止。

操作系统安全

当考虑在堆栈上运行的软件层时,系统设计人员应该为操作系统或管理程序提供最严格的安全要求。

由于该级别的安全失败风险,最严格的安全性必须位于最低层。设计人员应该分析操作系统和管理程序,以防止可能导致不适当访问的错误。如果最低级别的操作系统或管理程序存在缺陷,则故障可能会危及使用该操作系统或管理程序的所有可信系统。它也可能允许特权升级,这可以利用应用程序来破坏操作系统或管理程序中运行的所有其他进程。

操作系统或管理程序级别的故障风险通常受到更多限制,但系统设计人员仍然必须审查应用程序的安全性。应用程序级别的故障可能会危及一个应用程序或客户机操作系统,但下面的下一级通常应该可以防止任何此类危害在系统中进一步传播。

尽可能早地在设计周期中与硬件供应商进行交流,以便最好地理解系统安全需求,这是非常有价值的。清晰的理解将帮助设计人员在评估操作系统或管理程序时充分考虑安全功能。

选择具有内置安全性的最新操作系统或管理程序通常是最佳选择。更好的办法是在削减所选操作系统或虚拟机管理程序的功能集时将潜在的漏洞利用和安全漏洞降到最低。

嵌入式系统通常提供配置操作系统以删除不必要的功能、进程和库的机会。调整操作系统以尽量减少任何潜在的漏洞也是一种很好的安全措施。

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值