从海湾战争中萨达姆的防空系统突然瘫痪,到2007年以色列轰炸叙利亚东北部的一处潜在核设施时,叙利亚预警雷达因通用处理器后门而失效,再到2012年伊朗布什尔核电站在信息系统物理隔绝的情况下遭到震网病毒的攻击....
残酷的现实向世人阐释了只要存在国家和利益斗争,给CPU留后门的行为就永远存在。
不久前,自由软件基金会(FSF)指出,所有现代Intel处理器平台都内置了一个低功耗的子系统IntelManagementEngine,IntelManagementEngine能完全访问和控制PC,能启动和关闭电脑,读取打开的文件,检查所有运行的程序,跟踪按键和鼠标移动,甚至能捕捉屏幕截图,它还有一个被证明不安全的网络接口,允许攻击者植入rootkit程序控制和入侵电脑。
FSF称,IntelManagementEngine威胁着用户的隐私和安全,而开发替代的自由固件是一项不可能任务,因此唯一的做法是抛弃Intel平台。
据业内人士分析,由于很多底层功能不开放,导致Intel掌握着用户的命门,虽然Intel未必会随意黑用户,但确实拥有黑掉用户的能力。其实,除自由软件基金会曝光度IntelManagementEngine之外,各种硬件木马,甚至是X86指令集本身也存在安全风险。
硬件木马是指被故意植入电子系统中的特殊模块以及电路,或者设计者无意留下的缺陷模块以及电路,这种模块或电路平日中潜伏在原始电路之中,在特殊条件触发下,该模块或电路能够被攻击者利用以实现对原始电路进行有目的性的修改,以及实现破坏性功能,使原始电路发生本不该发生的情况——比如泄露信息给攻击者,使电路功能发生改变,甚至直接损坏电路。硬件木马能够实现对专用集成电路(ASIC)、微处理器、微控制器、网络处理器、数字信号处理器等硬件的修改以及对FPGA比特流的修改。
上图为一个简单的利用电流信号触发的硬件木马电路,该木马电路由1个AND门,1个NAND门,1个电容和2个XOR门组成。木马电路通过监测信号a、b和c实施攻击。当a、b、c均为“1”时对电容充电,反之,电容放电。若满足充电条件的时间足够长,电容结点就会在一定的时间内进入高电平区,从而触发硬件木马功能逻辑单元,使信号e发生改变,否则,硬件木马电路则不影响原始电路的功能。
硬件木马并不遥远
实事求是地说,硬件木马离我们并不遥远——据台湾媒体报道,台湾VIA公司于2014年11月24日在香港高等法院审理“HKIAC/A11022仲裁案”上诉案中,承认VIA的VT3421安全芯片(亦使用编号TF376)有后门,威盛电子高层黎少伦甚至在诉讼中坦承,“这颗晶片,有“后门”(Backdoor)。”
据媒体报道,该起案件的起因是VIA设计生产的VT3421安全芯片被出售给Samsung、Honda、上海通用、中国电子、新科电子等20多家公司后,遭客户投诉经常发射存储器泄露、频频当机等情况而引发的......在案件审理中,VIA公司公然辩称TF376的设计,“Preventing hackers such as”“Fa Lun Gong”只是产品功能之一;并坦承产品留有后门(Backdoor),“客户不知道Backdoor的存在,亦不能自行启动”。VIA却可以轻易打开这个后门,取得末端使用者手机、机顶盒等之包括通话、通讯录、信用卡、定位等等各种数据。
硬件木马的特点
硬件木马一般是由攻击者根据被攻击系统的工作原理精心设计,实现对底层硬件的修改,而且随着半导体工艺的不断发展,纳米级关键尺寸和电路高集成度使得硬件木马的检测越来越困难。
与传统的软件木马相比,硬件木马具有以下几个特点:
一是隐蔽性强。硬件木马逻辑部件较小且在未激活时不影响系统功能,不易被检测;
二是设计灵活,作用机制复杂。可实现摧毁,逻辑破坏,信息泄露等不同功能;
三是破坏力大。通用CPU已被广泛使用,而且通常广泛用于对信息系统中央控制,一旦遭到硬件木马攻击,将对国家利益造成重要威胁;
四是设计要求高。硬件木马设计需要设计者熟悉系统工作原理,有较高的硬件设计水平;
五是防护检测难度大。随着半导体工艺的进步,集成度的提高,使得硬件木马检测的难度越来越大。
硬件木马的结构
虽然硬件木马工作机制的多样性和设计方法的灵活性使得它的实现方式复杂多样,但就大多数情况下硬件木马在单个芯片内部的实现而言,其结构主要由2个功能部件构成。
(硬件木马结构示意图)
一是触发逻辑单元,通过监听输入,总线,寄存器数据,监测电路工作状态或经过设定的工作时间等方式激活功能逻辑单元。根据是否需要触发逻辑,硬件木马可分为有条件触发和无条件触发2类。
有条件触发是指木马电路同时包含触发逻辑和功能逻辑单元,需要在特定的状态下激活硬件木马,此类硬件木马较为隐蔽,可通过设置较为苛刻的触发条件,避免被传统的功能测试检测;无条件触发是指硬件木马电路仅包含功能逻辑单元,木马电路时刻处于激活状态,此类木马活性很强,功耗相对较大,而且易被功能测试等检测发现,一般只在实验验证中使用。
由于硬件木马工作机制多样,设计方法灵活,使得触发单元既可能被组合逻辑信号、时序逻辑信号或混合信号等数字信号触发,也可能被电流、电压、温度、电磁等数字信号测试技术很难实施检测的模拟信号触发。
二是功能逻辑单元,是硬件木马攻击的执行单元,负责实施硬件木马攻击行为。当功能逻辑单元被激活后,其通过改变系统输出或按预先设定的攻击方式,达到破坏电路正常运行的目的。
功能逻辑单元根据其行为特征和工作方式的不同可分为显性功能单元和隐性功能单元。显性功能单元通过改变电路节点的逻辑状态来实施攻击,硬件木马被激活以后,通过改变电路内部控制信号和数据信号,使得芯片出现错误的行为或直接传输秘密信息。隐性功能单元同显性功能单元相比,不改变电路内部逻辑,仅将其作为触发信号,通过其他方式来实施攻击,如发射电磁、功耗等旁路信号泄露密钥、加速芯片失效或者直接物理摧毁芯片,使芯片失效。
日前,来自密歇根大学的研究人员证明了在芯片制造过程中植入硬件木马的可行性,并在不久前的IEEE隐私与安全大会 (IEEE Symposium on Privacy and Security) 上,他们的研究获得了最佳论文奖。
在论文中研究人员详细描述了一种恶意、超微型的硬件后门的概念验证攻击。而且,在他们的展示中,黑客通过每分钟在处理器上运行一系列看上去完全无害的命令,能够有效地触发处理器的一项功能,获得操作系统的完整权限。最让人恐慌的是,极微小的硬件后门基本无法通过任何现代硬件安全分析手段检测出来,而且只要芯片工厂中的一位员工就能进完成植入......
密歇根大学的研究人员称,这种木马不是篡改芯片的“数字”特性,比如更改芯片的逻辑计算功能,而是一种物理入侵,劫持电流穿过二极管的路线,触发预料之外的结果。科研人员将该后门的命名为A2,它既代表着密歇根大学所在的城市Ann Arbor,也代表“模拟攻击”。
换言之,除了在集成电路设计的过程中可以安插硬件木马之外,在集成电路的制造过程中,同样可以对原始电路进行恶意修改,安插微小的恶意电路,以达到在无条件或在特定的触发条件下实现改变系统功能,泄露机密情报,或摧毁系统的目的。
因此,国内一些公司在境外流片的所谓的“安全芯片”,很难说安全保密程度到底有多高。
以下是这种模拟入侵的攻击方式:在芯片完全设计好,就等着制造的状态下,攻击者对控制其布局的蓝图增加一个元件。现代的芯片上可能会有数百万乃至数亿个这样的元件或“单元”,它的元件区域和处理器的其它部分并没有什么不同:电线、二极管组成了可开关的闸门,实现芯片的逻辑功能。不过,这个单元被秘密地设计成能够行使电容的功能,因此可以暂时存储电能。
每次当恶意软件,比如你浏览的网站上的脚本,运行一个特定的、隐蔽的指令,这一电容单元就会“窃取”一部分电能,并将其存储在单元的电线中,而不会影响芯片的功能。每当这一指令运行一次,该电容就会获得更多的电能。只有当“触发”指令运行了数千次之后,该单元才能完全充满电,并达到一个阈值,让单元打开处理器的一个逻辑功能,使恶意软件获得原本没有的操作系统最高权限。“攻击者需要在一段特定的时间里用很高的频率连续发出这一指令,然后系统就会转入一个特权状态,让攻击者可以为所欲为。”
这种利用电容进行触发的设计模式,意味着任何人都几乎无法通过连续运行如此之长的指令序列来“打开”后门,测试芯片的安全性。此外,过了一段时间之后,该电容会将其充上的电能放空,重新关上后门,这使得监测工程师更难找到这一漏洞。
在论文中,来自密歇根的研究人员坚称,“他们的本意是防止这类无法检测的硬件后门攻击,而不是发明它们。事实上,世界各国的政府有可能已经想到了这种模拟电路攻击方法......通过发布这篇论文,我们说明了,这种攻击是真实的、迫在眉睫的威胁。现在我们需要找到一种防御方式。”
硬件木马一旦被人为隐蔽地插入一个复杂的芯片中,要检测出来是十分困难的,主要有以下几点原因:
一是硬件木马通常只在非常特殊的值或条件下才能被激活并且发生作用,其他时候对原始电路的功能并无影响,它能躲过传统的结构测试和功能测试;
二是随着IP核重用技术的发展,系统芯片(SOC)上使用IP软核、IP固核和IP硬核的数量增加,检测一个很小的恶意改动是极其困难的;
三是纳米级集成电路与复杂的系统很难通过物理性检测和破坏性反向工程检测出硬件木马,并且成本很高,耗时巨大,特别是当木马被选择性地插入到整体芯片中的一部分时,破坏性反向工程也不能保证剩余的集成电路没有木马;
四是由于硬件木马相对目标电路很小,工艺噪声与环境噪声使检测变得十分困难。
据中科网威公司透露,国内单位通过对某些国外CPU的严格测试,已经可以确认X86芯片存在功能不明确的“多余”模块——这些模块不是一般意义的调试接口,而是由特定的CPU芯片引脚控制,可读写CPU内部状态寄存器、读写指定存储区域、激活特定的微代码段执行某个处理流程、并且可以对CPU进行复位。
其实,除了硬件木马和自由软件基金会曝光的IntelManagementEngine,X86指令集也存在安全风险——根据中科网威公司透露,经实测,发现X86指令集存在未公开指令,包括加解密、浮点操作在内共计二十余条,其中,有三条指令在用户模式就可以使机器死机或重启,作用机制直接穿透各种软件保护措施,防护软件不能感知;普通应用程序中嵌入一条即可使系统宕机——Intel和黑客可以利用硬件木马或后门轻而易举的黑掉用户,更要命的是,这些硬件木马的检测难度非常大,检测成本也异常高昂。
虽然全球CPU公司都一再向社会宣传自己是多么的大公无私,向用户承诺自己的产品是绝对安全可靠。但从海湾战争中萨达姆的防空系统突然瘫痪,到2007年以色列轰炸叙利亚东北部的一处潜在核设施时,叙利亚预警雷达因通用处理器后门而失效,再到2012年伊朗布什尔核电站在信息系统物理隔绝的情况下遭到震网病毒的攻击......残酷的现实向世人阐释了只要存在国家和利益斗争,给CPU留后门的行为就永远存在。
前车之鉴,后事之师,如何让中国避免重蹈伊拉克、叙利亚、伊朗的覆辙应为上位者执政的当务之急。
雷锋网注:本文作者铁流,雷锋网独家约稿文章,转载请联系我们授权,并保留出处和作者,不得删减内容。