管理程序:帮助还是阻碍?

几乎每件事都是一个权衡,天平的倾斜通常受到最终产品目标的影响。hypervisor有一些这样的参数。

受欢迎程度

虚拟机监控程序的采用水平正在提高,但是它们是有助于还是阻碍了开发和验证过程?答案可能取决于你的角度。

在硬件领域,系统级集成正在迅速成为开发过程中的一个障碍。虽然每个部分可能都是单独工作的,但一旦将它们组合在一起,它们之间的相互作用就会产生许多问题。油气行业正致力于开发一些工具和方法来解决这一问题。

在软件领域,他们采取了不同的方法。他们使用管理程序在各个软件块之间创建定义良好的接口,确保一个软件块不会干扰另一个软件块。这使得构建的应用程序更加健壮,安全性显著提高,允许分阶段开发,并支持实时环境的属性与更灵活的操作系统环境(如Linux)的可控混合。

但这个问题是多方面的,在一个领域有帮助的东西可能会给另一个领域带来问题。平衡所有这些可能取决于你想要创造什么,以及你对开发过程某些属性的重视程度。Fentiss总经理Vicent Brocal表示:“安全关键应用的竞争正变得越来越激烈,人们总是在推动这些系统拥有更多功能。”“我们需要一种方法来处理这种复杂性。我们通过抽象来做到这一点。通过使用管理程序,您可以隔离事物。这提供了一种抽象形式,所以现在组件是隔离的,并通过定义良好的通信进行交互。”

布罗卡尔解释说,这只是在一些行业中已经使用了很长时间的工艺的自然演变。“它支持分离开发,每个应用程序都可以独立开发。这就是航空电子系统的发展方式。在过去,是不同的计算机执行不同的功能。这些组件是联网的,因此每个组件都是由不同的公司使用定义良好的接口开发的。现在我们有能力为软件做到这一点,这是由管理程序支持的功能。”

增加安全
采用管理程序的最大吸引力是安全性。“在好人和坏人之间正在进行一场大的游戏,”阿里巴巴的首席执行官表示治之.管理程序试图提供良好的解决方案,以允许软件独立运行。硬件使得这项工作相当高效。以汽车行业为例。他们添加了所有的信息娱乐系统,但他们没有把它们放在不同的环境中,在不同的虚拟机中。去年我们在吉普车上看到有人可以进入信息娱乐系统然后把车开到路边。如果他们一直在使用管理程序,那么你就无法做到这一点。”

Davidmann将这个例子与另一个更好的设计进行了比较。“特斯拉也被黑了。黑一辆吉普大概需要四分钟,但这个家伙有一辆特斯拉三个月了,他试图黑它。他不得不修改硬件来监控,最终他成功了。但他发现他能做的最危险的事情就是按喇叭。他们很好地分离了不同的部分。”

安全性的问题在于,您并不总是知道攻击向量是什么。“管理程序强制隔离,这就是它所做的一切,”马吉德·贝马尼安(Majid Bemanian)说想象力的技术.“现在如果有物理攻击,那是一种不同类型的攻击载体。如果我需要加强信任呢?为此,你需要一个信任的根,这样它就固定在硅上了。当平台被锚定(使用密钥或物理连接到该设备)时,锚定允许您进行身份验证。这一点很重要,这样设备就会按照制造商的预期处于已知状态。我可以保证正在运行的代码是预期的。现在我可以信任这个平台了。开机后,能不能有人进入平台并破坏它?这可能是物理攻击、网络攻击或网络攻击。 You have to decide what measures you want to take to keep it in a stable known state.”

“安全不是为了阻止事情发生,而是为了风险管理,”该公司首席安全策略师凯撒•加拉蒂(Cesare Garlati)表示Prpl基金会.“风险管理意味着你可以添加尽可能多的安全层,只要你觉得舒服。没有什么能保证你100%的安全。它根本不存在。这是人脑工作的结果。我们会犯错误,有些是故意的,漏洞总会被发现。”

对调试和测试的影响

分离会给调试带来问题,如果不仔细管理,传统的解决方案也会产生漏洞。“考虑一下调试这样一个系统的挑战,”Davidmann说。“调试深度嵌入式系统的方法是向JTAG等硬件中添加比特。从这里开始,事情开始变得棘手。您确实不希望将允许您使用管理程序的东西放入硬件中。现在,任何可以访问物理设备的人都可以通过JTAG进入,他们可以控制你的系统。”

Garlati表示同意。“JTAG是一个安全威胁,但这真的是一个SoC的故事。JTAG控制器是SoC中众多控制器之一。对于安全引导或信任根也是如此。您需要在管理程序级别添加必要的身份验证。JTAG控制器必须是对请求进行身份验证的控制器,它将使您能够调试其中一个安全域,而不是其他安全域。”

然而,Garlati认为这只是某些产品类型的问题。“如果你有一个供应商提供所有的东西,他们会在管理程序级别本身进行调试,所以不需要其他任何东西。你完全控制了整个系统。当存在多租户情况时,一个供应商可能提供硬件平台,而其他供应商可能提供自己的服务和应用程序。您不希望这些供应商中的任何一家能够通过JTAG访问不涉及其VM的内容。”

那么如何提供安全的调试呢?的嵌入式软件技术专家Colin Walls说:“JTAG端口可以停止处理器并提供对内存的访问。Mentor Graphics的嵌入式软件部门.“硬件实际上可以通过JTAG端口保护您免受入侵,从而控制访问。但是当涉及到多核时,jtag风格的调试是相当原始的,因为它倾向于停止-启动调试,当您有多个核心协调工作时,这不能很好地工作。使用与应用程序代码一起运行的调试代理往往是执行调试的更有用和更现实的方式。”

有没有更好的解决方案?Walls补充道:“在理想的情况下,我们应该能够对多核系统进行非侵入式调试,但目前还没有人能够全面地做到这一点。”“如果我们能够创建全速运行的指令集模拟器,那么这就是答案。但根据定义,我们想要模拟的核心并不比我们现有的最强大的计算机慢多少。因此,我们是在朝着一个移动的目标射击,永远也达不到那个目标。”

然而,有一些业内人士认为这是可能的。“越来越多的人在向前看模拟器因为添加管理程序增加了另一层间接,”Davidmann说。“在模拟器中,你可以看到一切。如果您使调试管理程序变得很容易,就会有人担心您会使它很容易被侵入。”

这显然是系统开发团队必须考虑的问题。“你是否允许你的平台接入物理连接?Imagination的Bemanian问道。“你必须确定你想要如何访问设备。我们确实有一种机制,其中存在一个受信任的元素(信任根),它可以将JTAG作为一个看门人来控制。它可以允许访问或不允许访问。因此,您可以关闭它并禁止访问,除非它处于生产中。如果您允许某人访问并且信号是公开的,那么您可以明确地说某些内存区域是禁止的。因此,通过调试端口也可以实现强制机制。”

开源还是私有?
经常出现的一个问题是管理程序是否应该是开源的,或者私有解决方案是否更安全。“支持开源的常见理由都在那里,”沃尔斯说。“人们认为开源更经济,但对于涉及安全的产品,显然需要坚实的技术支持。即使有世界上最好的意愿,任何开源产品也永远不会像出钱那样获得同样程度的支持。也有很多公司已经开始支持开源产品,因此也有商业利益。但让它在安全方面更加稳固更有意义。”

Seltech的总裁兼首席执行官Shoi Egawa介绍了专有管理程序的情况。“开源管理程序没有明确的维护。有各种各样的CPU供应商和SoC供应商。SoC厂商希望专注于硬件,因为他们不是软件公司。性能通常是关键,而开源的性能到目前为止还不是很好。如果您有一个访问延迟非常严重的应用程序,并且有人想要修改源代码,那么谁来做呢?管理程序不像操作系统或驱动程序。要做好是很难的。那么谁来帮助你做出这些改变呢?”

开源管理程序模型与Linux类似。prpl基金会的加拉蒂说:“有一个社区,它为任何事情的成功产生了临界质量。“然后你会添加特定的个人供应商,他们会根据自己的想法添加商业版本,可能针对特定的垂直领域或获得特定的认证,比如汽车行业所需的认证。他们支持这个版本。所以开源对于基本的构建模块很重要,安全就是一个例子。公司不想在这些方面竞争。他们希望在增值方面进行竞争,而这与管理程序无关。”

也许关键在于SoC是一个多核系统,可能采用非对称架构。每个核心可能运行不同的操作系统,也可能没有操作系统,hypervisor可以帮助管理资源分配的复杂性。但如果你把所有的鸡蛋都放在一个篮子里,那么一旦它打破了,你就没有保护了。

如需查看本报告第一部分,请单击在这里



留下回复


(注:此名称将公开显示)

Baidu