您曾经可靠的手机突然死机。键盘不再起作用,也无法拨打或接收电话或短信。您尝试关机,但没有任何反应。您取出电池并重新插入;手机只是恢复到死机状态。显然,这不是普通的故障。几小时后,您得知这并非个别问题:数百万人也看到他们的手机突然莫名其妙地死机。
这可能是我们体验大规模硬件攻击的一种可能方式——这种攻击根植于日益复杂的集成电路,这些集成电路是我们每天依赖的许多设备的大脑。这些电路变得如此复杂,以至于没有一组工程师可以理解其设计的每个部分;相反,来自遥远大陆的工程师团队设计芯片的各个部分,所有部分在芯片印刷到硅片上时才首次组合在一起。电路非常复杂,以至于不可能进行详尽的测试。任何植入芯片代码中的漏洞都不会被注意到,直到它被某种触发器激活,例如特定的日期和时间——就像特洛伊木马一样,它在安全进入硬件内部后才发起攻击。
硬件攻击的物理性质使其可能比蠕虫病毒、病毒和其他恶意软件更成问题。病毒可以从一台机器跳到另一台机器,但原则上也可以从它感染的任何系统中完全清除。相比之下,除了更换受感染的单元外,没有其他方法可以修复硬件攻击。至少,目前还没有。
支持科学新闻报道
如果您喜欢这篇文章,请考虑通过以下方式支持我们屡获殊荣的新闻报道 订阅。通过购买订阅,您正在帮助确保未来能够继续讲述有关塑造我们当今世界的发现和思想的有影响力的故事。
修复系统性的恶意硬件问题的难度让网络安全专家夜不能寐。任何使用微处理器的东西——也就是说,几乎所有电子产品——都是脆弱的。集成电路是我们通信系统和世界电力供应的核心。它们定位现代客机上的襟翼,并调节您汽车防抱死制动系统中的动力。它们用于访问银行金库和自动取款机以及运行股票市场。它们构成了我们军队使用的几乎所有关键系统的核心。精心设计的攻击可能会使商业陷入停顿,或使我们军队或政府的关键部门瘫痪。
由于特洛伊木马硬件可能会隐藏多年才被激活,因此硬件漏洞可能已经植入——甚至很可能已经植入。尽管尚未证实发生过大规模硬件攻击,但它们是不可避免的。
正如我们从打击基于软件的网络攻击中所熟知的那样,相对少数将技术技能用于恶意目的的人可能会产生重大影响。因此,与其问硬件攻击是否会发生,不如问更好的问题是:这些攻击将采取什么形式?它们将产生什么后果?而且,也许最重要的是,我们能做些什么来检测和阻止它们,或者至少最大限度地减少它们的影响?
逐块构建
集成电路或芯片只是蚀刻在单片半导体材料(最常见的是硅)上的电子电路。现代集成电路的物理尺寸非常小——不超过几平方厘米,通常要小得多——但可以包含数十亿个晶体管。现代芯片的复杂性本身就造成了使特洛伊木马攻击成为可能的漏洞。
现代芯片分为称为块的子单元,这些子单元执行不同的功能。例如,在手机的处理器中,一个块可能是可用于存储摄像头捕获的视频帧的内存。第二个块可能会将该视频压缩成 MPEG 文件,第三个块可能会将这些文件转换成可以通过天线传输的形式。数据在这些块之间通过系统总线移动,系统总线就像连接芯片不同部分的高速公路。
当一家公司开始设计新的集成电路时,它首先会规划电路需要哪些功能块。其中一些块将在内部设计,要么从头开始,要么作为公司早期芯片中使用的块设计的修改。其他块将从第三方获得许可,这些第三方可能专门从事某种类型的功能——例如,从天线接收数据。
来自第三方的块不是以物理硅片的形式出现,因为构建集成电路的目标是将所有功能块都印刷在同一表面上。相反,该块以数据文件的形式出现,该文件完整地描述了应如何将该块蚀刻到硅片上。该文件可能有数千行长,这使得人类实际上不可能读取该文件并理解其中发生的一切。块提供商通常还会提供一些软件,块购买者可以使用这些软件来模拟该块在各种情况下的响应方式。在印刷任何电路之前,主导公司会将所有模型块连接到计算机模拟中,以确保芯片按预期运行。只有当模型通过一系列测试后,公司才会开始耗时且昂贵的物理集成电路制造过程。
漏洞就在这里:由于恶意硬件需要特定的触发器才能激活,芯片制造商将不得不针对每种可能的触发器测试其模型,以确保硬件是干净的。这根本不可能——可能的触发器范围太广了。除了移动电话示例中描述的基于日期的触发器等内部触发器外,黑客还可以使用外部触发器,例如接收包含特定字符集的文本或电子邮件消息。公司会尽最大努力进行测试,即使这必然意味着仅测试非常小比例的可能输入。如果一个块按预期运行,则假定它运行正常。
信任问题
在集成电路设计的早期,没有人需要担心黑客。最初的设计完全是在内部创建的,由为共同目标努力的小团队执行。由于这种组织安全,设计人员建立了开放协议,假定芯片的不同部分会按预期运行。(这段历史与互联网早期做出的选择相呼应,当时一个小型学术界构建了一个开放平台,假定每个人都会表现良好。这种假定未能经受住互联网发展的考验。)
然而,在当今世界,单个大型集成电路的设计过程可能涉及来自多个大陆地点的数百甚至数千人的贡献。随着这种设计经历各个开发阶段,部分设计存储在许多不同的物理平台上,并在许多方之间反复交换。例如,一家美国制造商可能会将公司不同部门的设计与来自美国、欧洲和印度的第三方供应商的设计相结合,然后在中国的工厂制造芯片。这些全球网络近年来已成为现实,它们为降低成本和提高效率做出了巨大贡献。但这使得安全性比过去在一个设施中完成所有事情时复杂得多。鉴于大型集成电路设计所涉及的人员数量和复杂性,始终存在未经授权的外部人员可能获得访问权限并在未被检测到的情况下破坏设计的风险。
内部人员破坏设计的风险也非常小——但并非为零。虽然参与电路设计任何方面的绝大多数人都会努力交付质量最高的设计,但与任何安全问题一样,即使是极少数具有内部访问权限的人员的恶意行为也可能造成重大问题。
理想情况下,潜在的攻击者永远不会有机会在集成电路的设计和制造过程中获得访问权限,从而确保永远不会发生硬件攻击。这是国防高级研究计划局 (DARPA)(五角大楼运营的研究机构)通过其“集成电路信任计划”追求的战略。DARPA 正在设计流程,以确保设计和制造链中的所有步骤都由已知值得信赖的公司和人员在安全环境中执行。(此外,该机构还在资助对芯片进行新测试方法的研究,然后再将芯片放入美国武器系统。)然而,在现实世界中,为确保设计过程安全而采取的行动永远不是完美的。
硬件设计人员还应构建能够识别和响应正在发生的攻击的电路,就像车载警察部队一样。虽然社区当然应该采取一切合理措施来阻止潜在的犯罪分子犯罪,但任何负责任的社区也认识到,这些努力,无论多么善意和彻底,永远不会 100% 有效。拥有能够对犯罪发生时快速且适当做出反应的警察部队至关重要。
保护电路
一种可以有效检测和响应攻击的电路称为安全电路。这些芯片具有少量额外的电路,专门用于查找可能揭示问题的行为。如果怀疑发生攻击,安全电路将识别攻击类型并尝试最大限度地减少由此造成的损害。
在手机死机的示例中,故障可能是由单个块行为失常引起的。该块通过系统总线与所有其他块交互。反过来,该总线有一个总线仲裁器——一个交通警察,它决定什么信息可以在什么时间通过总线传输。然而,交通警察的比喻并不完美。虽然交通警察可以指示交通何时开始和何时停止,但总线仲裁器的权限较小。它可以授予一个块开始通过总线发送信息的权限,但该块可以保留该访问权限,只要它想保留多久就保留多久——这仍然是很久以前假定块始终会正常运行的遗留问题。问题就在这里。
在典型的系统中,一个块将仅在必要的时间内保留对系统总线的访问权限,然后放弃它供其他块使用。总线仲裁器看到系统总线可用,然后将其分配给另一个块。但是,如果一个块无限期地保持对总线的控制,则将无法在集成电路内移动更多数据,并且系统将死机。
相比之下,安全集成电路会不断检查以确保不同块之间的通信没有中断。当它检测到一个块垄断对总线的访问时,安全集成电路可以通过隔离恶意块来做出响应。然后,它可以利用其可编程逻辑硬件存储来替换丢失的功能。此过程可能会减慢整体运行速度,但至少可以保持设备正常工作。
然而,公开的攻击可能不是最危险的威胁。隐蔽攻击可能会更糟糕。在隐蔽攻击中,设备看起来运行正常,但实际上它正在恶意地运行。例如,手机可能会秘密开始将所有传入和传出的短信副本传输给第三方。毫无戒心的观察者不会注意到任何异常,并且攻击可能会无限期地持续下去。
安全集成电路将为防御此类攻击提供至关重要的防御。芯片将不断监控进出集成电路的数据量和类型,并将此移动与预期的数据流进行统计比较。任何异常都将被标记为潜在的数据泄漏,并且芯片将要么提醒用户,要么开始自行阻止泄漏。
除了采取措施应对特洛伊木马攻击对其自身运行的影响外,集成电路还可以将攻击类型通知其他设备,从而使它们能够采取先发制人的行动来避免攻击(或至少最大限度地减少其影响)。鉴于几乎所有系统现在都具有网络连接,这种通知并非像看起来那么牵强。例如,如果遇到攻击的电路可以识别发起触发器,则它可以提醒其他电路筛选该特定消息。
只有当负责管理安全性的电路部分本身是安全且值得信赖的,这里描述的措施才有效。这可能看起来像一个循环论证——另一种说法是,保护电路的唯一方法是保护电路——但电路中专门用于安全性的元件仅占总体设计的一小部分。它们可以在内部设计,以确保只有高度信任的各方才能访问。
下一步该怎么做
由于政府、学术研究人员和商业部门的努力,互联网安全取得了巨大进步。集成电路安全的状态却并非如此,它大致处于 15 年前互联网安全的状态:人们越来越意识到这个问题值得关注,但防御策略尚未完全制定,更不用说付诸实践了。
防止硬件攻击的综合方法需要在多个层面上采取行动。旨在确保受损硬件永远不会出门的策略,例如 DARPA 的计划,是一个良好的开端。但最重要的是,我们必须开始实施安全设计措施,例如此处讨论的那些措施,这些措施可以防御正在发生的攻击。这些防御措施不会是免费的。与其他领域的安全性一样,集成电路安全性将需要花费时间、金钱和精力。各种各样的选项代表了安全有效性和实施成本之间的权衡。幸运的是,有可能以适度的成本提供有效的安全性。
安全集成电路包含少量额外的逻辑。在我的研究小组在加州大学洛杉矶分校进行的研究中,我们发现集成电路尺寸的增加通常为几个百分点。考虑到为确保功能块正常运行而采取的步骤可能会消耗一些时钟周期,否则这些时钟周期可能会用于核心操作任务,因此通常在运行速度方面也会付出代价。然而,我们再次发现速度降低在相对而言很小,并且在某些情况下,如果使用暂时处于休眠状态的逻辑和功能块执行安全措施,则根本不会发生速度降低。
保持硬件安全将不可避免地成为一场军备竞赛,需要不断创新才能领先于最新的攻击,软件世界的情况也是如此。虽然新电路无法像用于修复软件中发现的安全漏洞那样通过互联网下载,但现代集成电路具有许多可重新配置的方面,如果在集成电路设计过程中采取适当的步骤,这些方面可用于自动替换在发生攻击时变得无法工作的硬件部件。工程灵活性是我们最好的防御。
即使硬件攻击不可避免,但这并不意味着它们必须成功。