软件中的安全漏洞很难发现。特意种植的那些:间谍或蓄意破坏分子制造的隐藏后门甚至更难发现。想象一个不是种植在应用,或者深深嵌入在操作系统中的恶意软件。它藏得更深,在计算机运行所需的处理器中。
再想象一个基于硅的后门,它并不仅仅对计算机的软件隐身,甚至对芯片的设计者也隐身。芯片设计人员不知道它是被芯片的制造商,比如某家大型的电子设备生产工厂添加进去的。而且它只是数百、数百万、甚至数亿元件中的其中之一;每个这样的元件都仅有人类头发直径的千分之一大小。
实际上,来自密歇根大学的研究人员并不只是想象出了这种计算机安全噩梦。他们还制造出了它,证明了其可行性。上周IEEE隐私与安全大会 (IEEE Symposium on Privacy and Security) 上,他们的研究获得了最佳论文奖。文中,研究人员详细描述了一种恶意、超微型的微型硬件后门的概念验证攻击。而且,在他们的展示中,黑客通过每分钟在处理器上运行一系列看上去完全无害的命令,能够有效地触发处理器的一项功能,获得操作系统的完整权限。最让人恐慌的是,研究人员写道,极微小的硬件后门基本无法通过任何现代硬件安全分析手段检测出来,而且只要芯片工厂中的一位员工就能进行种植。
密歇根大学计算机科学教授Todd Austin领导了这项研究,他表示:“使用当前技术检测它将会非常非常具有挑战性,几乎完全不可能。它就像稻草山里面的一根针。”谷歌的工程师Yonatan Zunger也在读完论文之后写道:“这可能是这么多年来我见到过的最恶毒、最聪明的计算机安全攻击。”
模拟电路攻击
密歇根大学的研究人员发现的这一“鬼马聪明”的后门不止厉害在它的体积上,还在于它是一个隐藏的硬件,而不是软件。这一点颠覆了安全行业对芯片数字特性最基本的假设,成了芯片被入侵的一种新方式。它不是篡改芯片的“数字”特性,比如更改芯片的逻辑计算功能:研究人员将他们的后门称为“模拟”的,它是一种物理入侵,劫持电流穿过二极管的路线,触发预料之外的结果。该后门的名字叫A2,它既代表着密歇根大学所在的城市Ann Arbor,也代表“模拟攻击” (Analog Attack) 。
以下是这种模拟入侵的攻击方式:在芯片完全设计好,就等着制造的状态下,攻击者对其“面具” (控制其布局的蓝图) 增加一个元件。现代的芯片上可能会有数百万乃至数亿个这样的元件或“单元”,它的元件区域和处理器的其它部分并没有什么不同:电线、二极管组成了可开关的闸门,实现芯片的逻辑功能。不过,这个单元被秘密地设计成能够行使电容的功能,因此可以暂时存储电能。
以下的图片显示了研究人员制造的处理器大小与恶意单元大小的比较。
每次当恶意软件,比如你浏览的网站上的脚本,运行一个特定的、隐蔽的指令,这一电容单元就会“窃取”一部分电能,并将其存储在单元的电线中,而不会影响芯片的功能。每当这一指令运行一次,该电容就会获得更多的电能。只有当“触发”指令运行了数千次之后,该单元才能完全充满电,并达到一个阈值,让单元打开处理器的一个逻辑功能,使恶意软件获得原本没有的操作系统最高权限。“攻击者需要在一段特定的时间里用很高的频率连续发出这一指令,然后系统就会转入一个特权状态,让攻击者可以为所欲为。”
这种利用电容进行触发的设计模式意味着任何人都几乎无法通过连续运行如此之长的指令序列来“打开”后门,测试芯片的安全性。此外,过了一段时间之后,该电容会将其充上的电能放空,重新关上后门,这使得审计人员更难找到这一漏洞。
新规则
以前也曾出现过处理器级别的后门。但通过建立一个能够发挥芯片元件物理属性,“偶然地” 聚集并堆积小股电能,利用漏洞的后门,而不是利用元件本来的逻辑功能,研究人员表示他们的后门元件可以做成比之前利用漏洞的硬件小上千倍的体积。此外,这种方式更难被现在的技术探测到,比如肉眼检测,或者监测其电能使用,发现异常。密歇根大学的另一位研究人员Matthew Hicks说:“我们在‘矩阵之外’利用了这些规则,让这种技巧变得不再那么昂贵和明显。通过不同的规则集合,我们实现了一种更加隐蔽的攻击。”
密歇根的研究人员目前将A2后门嵌入了一个OR1200处理器,以测试他们的攻击。由于后门机制依赖于芯片布线的特性,他们甚至在给芯片加降温的条件下测试了后门的触发过程,使用的温度范围是华氏-13度到212度,而且发现该方法仍旧能够实现。
以下是研究人员用于在不同温度下测试安装了后门的处理器的实验环境。
由于他们的介入对于计算机安全的未来非常危险,来自密歇根的研究人员坚称他们的本意是防止这类无法检测的硬件后门攻击,而不是发明它们。他们称,事实上,世界各国的政府有可能已经想到了这种模拟电路攻击方法。“通过发布这篇论文,我们说明了,这种攻击是真实的、迫在眉睫的威胁。现在我们需要找到一种防御方式。”
不过,考虑到目前检测处理器级别后门的方法无法发现他们的A2攻击,研究人员称需要一种新方法:现代处理器芯片需要一种可信的元件,持续检查是否有软件被非法授予了操作系统级别的权限。通过保证这一元件的安全,比如在安全的生产设施中制造它,或者确保这种设计没有在生产之前遭到篡改,可能比找到方法确保整个芯片安全要容易得多。
他们承认,进行这样的修复可能需要时间和金钱。但在它之外,这一概念验证攻击的本意是显示计算机安全甚至在它被卖出之前就已经可能被彻底污染与破坏。“我希望这篇论文能够强调一种需求,在生产过程中建立信任,否则可能会发生很糟糕的事。”