处理芯片中的安全漏洞

2020-11-07 11:15:34

半导体工程与Rambus安全技术研究员海伦娜·汉舒赫、Synopsys解决方案组首席安全技术专家Mike Borza、Cadence航空航天和国防解决方案总监史蒂夫·卡尔森、Tortuga Logic高级硬件安全工程师Alric Althoff以及国家安全研发中心Galois首席科学家乔·金瑞坐下来讨论了多个细分市场的安全风险。以下是在虚拟硬件安全峰会上现场进行的那次讨论的摘录。

SE:现在最大的变化之一是设备的寿命应该比过去长得多。德国汽车制造商要求芯片正常工作18年。这样做的问题是,他们也需要保持最新的更新。我们该怎么做呢?如果出了问题,谁来负责呢?我们如何才能追溯到根本原因呢?

Handscheh:每个供应商都要分担一点责任。他们需要尽可能确定他们提供了什么。然后,就试图与客户坐在一起(特别是当他们组装新的安全系统时)而言,更多的是合并的责任,以找出什么是实际的威胁模型,以及哪个IP中的哪个部分将把什么带到谈判桌上。然后他们就可以确定整个系统是否安全。但你永远无法避免某事在某处破裂。你必须追溯到失败的真正原因。这是一个同时涉及几件事情的问题,因为每一件事都对它有贡献,还是它们都破裂了?然后,您可以使用该模型来计算出新的解决方案是什么。

卡尔森:汽车行业有国际标准化组织26262这样的功能安全标准,但没有安全就不能有安全。如果你能破解某人的刹车,那你就没有一辆安全的车。该标准为流程带来了良好程度的可追溯性,但它并不能真正起到很大的预防作用。这对于指责是很好的,但是如何补救呢?海伦娜给出了一个很有礼貌的回答--所有工程师都在一起工作--但这实际上是关于谁来支付费用的问题。律师们将参与其中。会有赔偿,保修,诸如此类的东西。

博尔扎:这将是关键之一。传统上,许多这样的问题都是通过回答有关赔偿的问题来回答的,这不可避免地会导致法庭。这将在一段时间内解决问题,因为传统上,人们可以在保修期过后不久发货并离开。现在,你将面临一种情况,即你的长寿产品不断受到威胁。随着时间的推移,你会看到越来越多的车辆在路上合作自动化,这意味着你需要时刻应对新的威胁。你需要关闭这些威胁。你不能因为某人的芯片在某辆车里被黑了,而没有人对此负责,就把整个驾驶人群置于危险之中。这是北美人的传统答案。你会希望看到一些更积极主动的东西,一些表明人们实际上要为这件事承担责任的东西。但这也意味着需要进行持续的维护活动,最终由车主负责。他们要么预先支付车辆费用,要么作为车辆持续维护的一部分支付费用。

金瑞:我们可以从像特斯拉这样更先进的供应商在汽车更新方面所做的事情中学到很多东西。特斯拉实际上有密码学家在工作,他们正在做一个合理的更新方案。由于我们的客户都在国防部,这一领域的更新并不是主流。更像是,‘别碰它’。直到最近几年,他们才开始探索能够在产品生命周期内进行更新的想法。这催生了围绕这些系统的可组合性和推理的全新工作领域,更新时间跨度为多年,而不是20年。值得注意的是,他们经常评估用于提供认证更新等的现有机制,特别是当他们来自物联网等领域时,他们可能会发现底层更新机制从一开始就完全不安全,而您只是在一开始就为您的系统打开了一个巨大的后门。我最大、最深切的担忧是确保这些底层更新机制实际上是正确和安全的。

阿尔索夫:把这件事联系在一起,似乎是在讨论一个“市场力量与立法”的问题。在美国,没有人愿意为安全买单,但每个人都想从中受益。制定标准的那一面也必须负责建立执法--还有斯坦

博尔扎:认证可以让你开始,但它不能提供持续的增值印记,证明这一点继续是安全的。这就是当我们谈论需要在不断变化的威胁环境中生存和发挥作用的长寿产品时,我们真正谈论的是什么。监管是实现这一目标的一种方式。责任是另一种获得责任的方式,但你仍然必须处理这样一个事实,即公司会来来去去。根据行业的不同,公司的生命周期可能比产品的生命周期短。这只是我们运作的一个事实。因此,这仍然需要处理。

卡尔森:说到胡萝卜和大棒,认证和法律行动就是大棒。从胡萝卜的角度来看,这是一个商机。我想向微软的Galen Hunt和那里的Microsoft Azure SPHERE项目的盖伦·亨特(Galen Hunt)高呼一声。他们正在做一些非常有趣的事情,比如谁将拥有更新过程,谁将负责。他们已经建立了一个基于Azure的很好的终生安全系统,在产品的整个生命周期中加入了一些专为安全而设计的技术和更新。他们有一个相当合理的商业模式,公司可以注册,在整个生命周期内对他们的产品进行注册和监控,并进行更新,并实时分析发现的安全漏洞。这真是个有趣的想法。我们必须看看他们和其他进入市场的公司能以多快的速度增长。胡萝卜部分是如果人们开始在安全领域赚钱的话。到那时,事情就会迅速发展。大棒的部分只能让你走到这一步。我们在航空航天行业看到了这一点,他们在那里获得了安全认证。但我最近遇到了一个程序,也就是芯片完成三年后,他们仍然在为那个特定的设备进行安全认证。这在商业世界不会有很好的效果。那里并没有真正能很好地转化为更大市场的最佳实践。

SE:不过,当你开始一个接一个地打补丁时,它会变得更不安全吗?无论最新的更新是什么,不是每个人都处于同一级别,它是否会变得更加不安全?

卡尔森:这就是你认识到系统安全从硬件层开始的地方。如果你有一个天生不稳定的基础,你可以不断地修补它,但你会遇到纸牌屋效应。这也是微软不断谈论它的另一个原因。他们所采取的整体观点给我留下了深刻的印象。他们从硬件基础开始。他们确保有一个很好的坚实-就像Rambus提供的那样-硬件信任的根源和所有这些基本功能。此外,您还可以在硬件中添加更多的功能,以帮助支持系统级别的安全性。

Althoff:这听起来是一个追踪技术之间兼容性的好机会。因此,如果您拥有跨所有这些层的可追溯性,您就有能力跟踪哪些内容彼此交互良好-本质上哪些内容容易出错。我们开始围绕每一层开发智慧,现在我们需要了解它们之间的联系。

Carlson:你们正在努力的CWE(Common弱点枚举)是这个过程的一个很好的开始。

汉舒:你还有其他配料。在每一层,您都可以尝试确保您的设计以某种方式尽可能地安全。目前,我们总是从硬件信任开始。那么,更新机制的安全软件环境就会有所帮助。我们开始看到新的东西出现,并且变得更加常见,比如允许你在硬件的编码级别进行验证的工具(如果你想的话)。现在,在开始发货之前,您可以使用工具来确保在整个设计过程中维护特定的硬件安全属性。你可以开始应用像Galois和Tortuga Logic正在研究的东西。您还可以开始应用正式的安全模型,即将以某种形式证明的硬件安全属性,然后进行相应的开发。因此,这是一个全新的层面,在生产之前,在合成之前,以及所有这些之前,它都会向下移动一层。这是相当新的,也很酷。

金瑞:我们在解释和演示这些技术时遇到的困难是,有一个词叫“分层”(Layer)。你最终会与持不同立场的专家交谈,但他们之间的交流并不融洽。系统安全横跨所有这些层。因此,当与你交谈的人不知道“co”是什么意思时,谈论共同设计、共同工程、共同验证之类的事情是一件持续不断的斗争。这是我们在构建这些工具,展示它们,并让市场相信它们对于安全保证是有用和适用的方面所面临的巨大困难之一。

博尔扎:尽管软硬件协同设计已经存在了20年或更长时间,但在很多地方,它仍然是一个相对较新的事物。软件团队几乎从不与硬件团队交谈。当他们真的交谈时,他们两人的谈话目的是相互矛盾的。然后,对于不一定是安全专家但必须提供安全环境的团队,再加上安全复杂性,最终就会出现这种相互指责的情况。

卡尔森:不过,还是有希望的。对于更多真正控制整个堆栈的SoC设计和系统公司-库开发、SoC、固件、操作系统和该环境中的一些应用程序-我们看到了仿真等技术的使用。你在软件开发上向左转了。一旦你这样做了,现在你就有了一个虚拟的系统模型。它实际上不是一个模型,而是一个系统的表示,在这个系统中,你可以同时执行硬件和软件。它主要是出于功能验证的目的而出现的,但是您可以将该功能重新用于一些早期的安全分析。您可以查看本质上具有逻辑性的不同攻击表面,并将这些表面转换到物理分析领域,并查看电源、热量和时间等问题的某些旁路攻击效果。

Althoff:这似乎也是教育真正发挥作用的另一个领域,因为特定于应用的架构渗透到主流设备中,然后渗透到正在构建或学习如何构建高性能系统的学生的课程中。与此同时,他们对特定于硬件的问题也变得越来越熟悉。这是一个通过教育消除我们已经陷入的分层和条块分割的思维模式的机会。