这一说法遭到了相关公司和美国国土安全部直接明确的驳斥。不过,电路板的确极易遭受入侵。已经有十几个系统级攻击的例子记录在案。
我们非常了解恶意软件和伪造集成电路,而印刷电路板自身的弱点则直到现在才开始得到应有的重视。本文讲述了印刷电路板制造中的一些最突出的弱点。幸运的是,弥补这些弱点的方法相对比较简单,而且其中许多方法只需要良好的工程实践即可。
要了解电路板是如何被入侵的,有必要先回顾一下其制作过程。印刷电路板通常包含成千上万个元件。(在填充元件之前,也称为印刷线路板)印刷电路板的目的是提供固定元件的结构支撑,并提供元件与信号和电源连接所需要的布线。
印刷电路板的设计者首先需要创建两个电子文档:一个电路原理图和一个布局设计图。原理图描绘了所有元件及其连接方式。布局设计图描绘了完成的裸板以及物体(包括元件及其标签)在线路板上的位置,称为参考指示符。(参考指示符极为重要,大多数组装流程以及设计和采购流程都与参考指示符有关。)
一块印刷电路板并非全是元件。大多数电路板都包含空的元件封装,称“未填充元件”。这是因为电路板通常包含用于调试和测试的额外电路,或者电路板是为了实现多种目的而制造的,因此可能会有包含更多元件的版本或更少元件的版本。
检查完原理图和布局设计图后,布局设计图将被转换为一组文件。最常见的文件格式为“Gerber”,或RS-274X。它由ASCII格式的命令组成,表明电路板上的图形。第二个ASCII格式的文件为钻孔文件,显示电路板上打孔的位置。接下来,制造商会使用这些文件来创建掩模,用于蚀刻、打印和在电路板上钻孔。之后,会对电路板进行测试。
接下来,“拾取和放置”机器会把表面贴装元件放在电路板上正确的位置,然后印刷电路板会经过一个烘烤装置,所有焊料被一次性融化。之后是放置通孔元件(通常是手工放置),电路板会经过一台机器,该机器能够将焊料应用到所有的通孔销上。这是一项复杂的工作。一个8针、4电阻的网络只能覆盖2毫米×1.3毫米的区域,而且一些元件封装非常小,只有0.25毫米×0.13毫米大。随后是检查、测试、根据需要维修电路板,并进一步组装成可行的产品。
这种攻击还有一种变化形式,即向原理图添加一个无害的元件,然后在生产中使用该元件的恶意修改版本。这类攻击使用了看似合法却含有硬件特洛伊木马的元件,虽然不在本文的讨论范围之内,但我们应严肃对待。
无论哪种情况,其对策都是仔细审查原理图,这也是在任何情况下都应该采取的措施。其中一项重要的保护措施是让其他设计团队的人员来进行检查,用他们的“新眼睛”来发现那些不必要的元件。
第二种攻击会向布局设计图添加额外元件。这个过程虽然很简单,但由于将布局设计图与原理图进行比较需要进行特定的过程检查,因此很难侥幸成功,至少需要布局技术人员伪造比较结果。要应对这种形式的攻击很简单,只需让一位工程师或一组工程师(这样更好)检查布局设计图与原理图的比较步骤并签字。
第三种类型的攻击是修改Gerber和钻孔文件。从安全角度来看,Gerber和钻孔文件有3个要点。第一,它们是ASCII格式的,因此可以在非常常见的文本编辑工具中对其进行编辑;第二,它们是人类可读的;第三,它们不包含签名或校验等的内置加密保护。由于一套完整的Gerber文件可以长达几十万行,所以这种攻击方式非常有效,很容易被漏查。
例如,攻击者可以插入一个看起来像是静电放电二极管的东西。该电路的设计文件由16个Gerber文件和钻孔文件组成。在这16个文件中,有9个文件需要修改;在这9个文件中,有7个文件总共有79行不同,还有2个文件需要修改,每个文件大约300行。后两个文件是关于电源层和接地层的信息。更加熟练的攻击(比如添加称为过孔的垂直连接)将显著减少需要重写的行数。
不受保护的Gerber文件很容易受到攻击,在设计公司和光刻掩模生产之间任一环节的入侵都可能攻击Gerber文件。由于Gerber文件以行业标准为基础,因此获取更改信息相对简单。
有人可能会说,保护文件的标准加密方法也可以保护Gerber文件。虽然这样的保护措施能在传输过程中保护Gerber文件,但文件到达目的地时这些保护措施是否有效尚不清楚。几乎所有电路板都不是由其设计公司生产的。此外,虽然大多数第三方制造商都是信誉良好的公司,但这些公司通常不会为客户记录他们为保护这些文件所采取的步骤。
还有一种保护文件的方法:以注释的形式向文件的内部内容添加数字签名、加密哈希或其他类型的验证码。不过,只有在掩模制作流程很晚才对文件进行身份验证时,这种保护才有效;理想情况是,制作光刻掩模的机器还能够对文件进行身份验证。或者,机器可以保留实际用于创建掩模的文件的加密哈希,以便制造商审核该过程。无论哪种情况,掩模制造机本身都需要安全处理。
如果这3种攻击有一种成功,不良行为者便能在组装好的电路板中添加一个实际的物理元件。这可以通过3种方式实现。
首先,可以在生产过程中添加额外元件。这很困难,因为需要改变供应链才能将元件添加到采购过程中,要对拾取和放置机器进行编程以放置该零部件,还要将一卷零部件连接到机器。换言之,这需要多个不良行为者的合作,这种共谋可能需要一个公司或一个国家才能完成。
其次,可以在维修和返工环节添加额外元件,这比生产阶段更容易实现。组装好的电路板需要手工返工很常见。例如,一个有2 000个元件的电路板的第一次通过率(零缺陷电路板的分数)可能低于70%。有缺陷的电路板需要技术人员手工添加或移除元件;一名技术人员每天可以轻松地添加几十个秘密元件。虽然不是每一块电路板都有额外元件,但攻击仍有可能成功,特别是在运输环节有同谋能将被入侵的电路板运送给目标客户时。请注意,这种攻击(修改Gerber文件、在维修环节插入元件、有选择性地运输元件)只需要3个人就能成功。
第三,可以在生产后的环节中手动向电路板添加元件,比如在仓库中。由于可能出现在途攻击,所以需要公司检查进货的电路板,以确认未填充元件仍然处于未填充状态。
知道如何破坏印刷电路板只是完成了一半的工作。攻击者还必须知道计算机主板上的最佳目标是什么。他们会尝试控制数据总线,特别是具有低数据速率和低引脚数两个共同点的数据总线。高速总线(如SATA、M.2和DDR)对数据速率非常敏感,额外元件造成的延迟很可能会使它们无法正常工作。引脚数较少的元件则更容易加入设计中;因此,引脚数较少的总线更容易成为攻击目标。在一块PC主板上,有3条这样的总线。
第一个是系统管理总线(SM总线),大多数PC主板都是通过SM总线来控制电压调节器和时钟频率的,遵守的是飞利浦半导体公司1982年制定的二线制内部集成电路(I2C)标准。这个标准没有加密,允许众多独立于CPU的连接设备直接访问关键的板载元件,例如电源。
SM总线上的秘密元件可以实现两类系统攻击。它能改变调节器的电压设置并损坏元件,还可以通过冒充另一台设备或故意干扰输入数据的方式来干扰处理器和板载传感器之间的通信。
第二个目标是串行外围接口(SPI)总线,它是摩托罗拉在20世纪80年代中期开发的一种四线总线。大多数现代闪存元件都使用这种总线,因此很可能是访问重要代码的总线,例如BIOS(基本输入/输出系统)。
针对SPI总线的精心密谋的攻击,有可能改变从附加内存芯片读取的数据的任何部分。在访问BIOS时进行的修改可能会更改开机过程中完成的硬件配置,从而为恶意代码留下一条通道。
第三个目标是LPC(Low Pin Count,低引脚计数)总线,它特别容易受到攻击,因为对其进行的攻击可以破坏计算机的操作、远程访问电源和其他重要的控制功能,并危害开机过程的安全。这条总线包含7个必选信号和6个可选信号;用于将计算机的CPU连接到传统设备(如串行和并行端口),或者连接到机箱上的物理交换机,在许多现代PC中,它的信号控制着风扇。
LPC总线非常易受攻击,因为许多服务器使用它来连接单独的管理处理器和系统。这款处理器称为基板管理控制器(BMC),即使主处理器崩溃或尚未安装操作系统,它也可以执行基本的内务管理功能。它很方便,因为它允许远程控制、维修和诊断服务器元件。大多数BMC都有一个专用的以太网端口,因此对BMC的攻击也可能影响网络访问。
BMC还有对SPI总线的直通连接,许多处理器都会通过这一通道加载BIOS。这是一个有目的的设计决策,因为它允许通过BMC对BIOS进行远程修补。
许多主板还会使用LPC总线访问实施可信平台模块(TPM)标准的硬件,TPM标准可以提供加密密钥和一系列其他服务来保护计算机及其软件。
第一轮,检查电路板上是否有缺少参考指示符的元件。这是一个鲜明的信号;在正常的生产过程中,不可能制造出这种有问题的电路板。找到这样的元件很可能表明电路板的布局文件(即Gerber和钻孔文件)受到了攻击,因为这一步是最有可能在不添加参考指示符的情况下添加元件的地方。当然,没有参考指示符的元件本身也是重大设计错误,在任何情况下都值得关注。
第二轮检查中,要确保原理图、布局设计图和材料清单中包含每个参考指示符。伪造的参考指示符也明显表明有人篡改了电路板的布局文件。
第三轮检查重点关注元件封装的形状和大小。例如,如果原理图上有一个4针零件,而布局设计图或电路板上却有一个8针封装,那么这就是黑客攻击的明显证据。
第四轮应该检查电路板上所有未填充的部分。未填充的地方出现元件,这很可能真的是失误造成的,也可能是蓄意破坏的标志,因此这两种情况都需要检查。
如你所见,现代主板(有的有成千上万个微粒大小的元件)很容易遭到破坏。其中一些漏洞有可能使人得以访问重要的系统功能。实际上,简单的方法便能检测甚至阻止大多数攻击。与恶意软件一样,对问题的高度敏感度和认真仔细的审查可以阻止攻击。
来源:悦智网 作者:Samuel H. Russ、Jacob Gatlin
欢迎报名参加
西门子形式验证研讨会