文|半导体产业纵横
开源EDA工具虽然免费、易于获取且数量日益增多,但许多芯片制造商因安全顾虑而对其持谨慎态度。
从积极的一面来看,支持者认为这些工具有助于吸引新的芯片设计人才。然而,尽管它们在网上广泛传播——仅在GitHub上就有超过140个EDA专用存储库——使用公开的源代码可能为恶意行为者提供新的攻击途径。在涉及数千万美元的NRE和日益复杂的设计元素整合的背景下,工具的前期成本并非总是最重要的考量因素。
“有人支持开源EDA工具集,”Synopsys的首席安全技术专家Mike Borza表示,“一些开源EDA工具相当不错,但还有一些仍有很长的路要走。问题与其他类型的开源软件中出现的问题类似。谁是开源工具的贡献者?他们是否在添加可能在RTL中生成木马的内容?是否存在无意中的漏洞?这些无意中的漏洞是由工具插入的吗?这些漏洞是否由审查过程中的人员发现?答案参差不齐,就像开源软件一样。”
开源工具中的漏洞
虽然开源EDA工具在学术界和业余爱好者圈中有明确用途,但它们也在商业IC设计领域获得了一些关注。然而,实际上的使用程度因解释而异。
“没有一个产品完全不包含任何开源工具,”Ansys开发工具项目总监Chris Harrold说,“最流行的前端渲染工具、最常见的数据层、大量的基本字体库,甚至是像网络协议驱动程序这样常见的东西——其中绝大多数都是基于、包含或本身就是开源代码的。特别是在EDA领域,开源布局和设计工具已经存在很长时间了,并且在生态系统中非常突出,以至于在产品中包含它们的一些部分只是为了兼容性和满足用户期望。”
这种普遍性带来了一系列问题。“如果有人添加了一段未经测试的代码,他们可能会基于工具易于修改的特性而引入许多重大的漏洞缺陷,”TXOne Networks的首席解决方案架构师Jim Montgomery说,“你只是在添加代码,不经过检查很可能会忽略。”
考虑到这个数十亿美元产业的利害关系,对于与一些最大参与者合作的人来说,安全受到公开关注也就不足为奇了。即使规模较小,负责人也表示,他们已采取广泛措施确保他们的工具不会受到攻击,尽管源代码对所有人都是开放的。
eFabless的联合创始人兼首席技术官Mohamed Kassem强烈倡导开源EDA工具。虽然该公司一些更昂贵的产品包括访问Synopsys等公司的工具,但eFabless的设计在很大程度上依赖于开源工具。“没有人能在我们的流程中放入未经批准的东西,”他说,“我们有一个多层次的审查自动化系统来进行批准。无论你的代码是什么,它都不会破坏其他东西。开源的魅力就在于它的透明度。”
eFabless的开源工具在GitHub上提供,Kassem说,GitHub 是监控源代码变更的 “基准线”,允许公司记录谁修改了代码以及做了什么。“如果有人想提出修改建议,他们必须提交拉取请求。他说:"只有在我们按照特定标准(包括提交人)批准后,它才能进入我们的主流系统。
虽然Kassem表示公司采取了各种措施,以确保对工具代码的所有修改不仅要经过社区的安全检查,还要经过公司本身的验证,但并非所有开源工具都要经过同样严格的审查。Synopsys公司的Borza以恶意行为者在Linux实用程序xz库中构建的漏洞为例进行了说明。
“有时人们会检查产品的安全性,并寻找与之相关的问题,”Borza说,“在其他情况下,这些工具并没有得到太多的审查,因此它们可能在做一些你不知道的事情。在开源软件领域,我们今年看到了一次历时多年的攻击,这次攻击相当复杂,但在某些方面也相当笨拙。他们先以贡献者的身份工作,强行进入该库的贡献者圈子,之后在代码中加入一些让人费解的东西。人们意识到这个人的所作所为是在代码中插入漏洞,然后在开源操作系统的系统库中利用这些漏洞创建后门。””
EDA工具通常不会直接对外公开,因此由公开可见的源代码引发的安全风险相对较小。如果开源工具在EDA层面确实存在问题,可能是因为错误的用户获得了访问权限。如果真是这样,那就意味着有更深层次的机构参与其中,Ansys的Harrold指出。
“攻击者可以使用我们的开源工具运行大量模拟作业,这可能会造成干扰但并非致命打击,”Harrold说。“他们有可能通过一个包含特定知识产权(如布局或设计文件)的系统收集我们客户的数据。然而,如果攻击者能够访问你的环境以提交模拟作业或读取你的模型,那么坦率地说,你面临的风险将远大于开源本身。”
芯片本身是安全的
虽然开源EDA工具因其固有的透明度而可能面临攻击(如试图攻击Linux的案例),但它们同样可用于发现所设计芯片中的漏洞。
“你可以引入任何数量的漏洞,”Mongomery说。“它是开源的。任何人都可以自由贡献和修改其代码。”
Harrold指出,当大型公司环境中的设计师使用开源工具时,有足够的措施来确保任何后门都被发现并关闭。“使用开源工具也意味着你必须承担更深层次的尽职调查责任,因为影响不仅仅在于代码本身,”他说。“我们所有使用开源的产品都要求这些工具在使用前经过严格的审查和批准。我们有一个专门团队,仅负责管理我们对开源的使用、验证工具以及识别任何风险。这包括我们自己的PyAnsys工具,以及我们在产品中使用的其他工具。我们的流程包括识别代码中的潜在问题,以及许可和分发问题,以确保客户和开源用户在使用我们的产品时不会面临额外的风险。许多人没有意识到,开源许可证本身的风险可能与工具本身一样大。”
他指出,开源工具与最终产品之间的联系通常非常微弱,导致攻击向量极其有限。“这并不是说开源软件本身就不安全——事实远非如此。绝大多数开源工具都致力于确保其安全性,因为如果不这样做,就会损害其社区声誉。这对开源工具来说是致命的。”
结论
尽管关于开源EDA工具的意见将继续存在分歧,但重要的是要根据使用这些工具开发的芯片的应用场景、涉及的开源软件数量以及软件的贡献者来评估这些分歧。
即使是使用商业和专有工具开发的芯片也可能受到攻击,而一些使用开源工具开发的芯片也可能与市场上的任何产品一样安全。但正是这些未知因素让一些工程团队感到不安,尤其是那些最终可能用于安全关键型或任务关键型应用的芯片。
尽管如此,开源EDA软件的使用仍在不断扩大,无论是作为独立工具还是嵌入到商业或专有工具中的代码。Ansys的Harrold指出,就像任何新软件一样,这伴随着固有的挑战,而安全性必须是其中之一。“不过,从总体上看,在这个背景下,这可能有点言过其实,因为我们谈论的是在封闭平台上运行的封闭工具,在封闭环境中,只有一层接口利用开源工具进行创建,”他说。“开源工具更多的是为消费者提供构建自己接口的方式,以便为他们提供更好的体验。例如,就我们的工具而言,PyAnsys 在客户构建自定义 UI/UX 体验的实践中不会带来额外的安全风险,因为使用者仍然需要一定程度的访问权限才能与底层系统对接。虽然新环境会出现新的安全问题,但系统的一般规律是,这些问题更多源于滥用或缺乏安全意识,而非底层代码存在根本性缺陷。”
eFabless的Kassem认为,开源工具正在使EDA环境变得更加安全,而不是更加不安全。“我相信,最优秀的人才就在那里。当你赋予社区这样做的能力,并进行一些合理的管理时,你就不会坐视不管,让每个人都随便参与。我们有严格的管理机制,不会在这方面妥协。现在,是否有人会破坏它?没有什么是坚不可摧的,这在私有系统中也已经得到了证明。”