芯片中的硬件木马:X86 CPU到底存在哪些安全风险?

从海湾战争中萨达姆的防空系统突然瘫痪,到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,也代表“模拟攻击”。

换言之,除了在集成电路设计的过程中可以安插硬件木马之外,在集成电路的制造过程中,同样可以对原始电路进行恶意修改,安插微小的恶意电路,以达到在无条件或在特定的触发条件下实现改变系统功能,泄露机密情报,或摧毁系统的目的。

因此,国内一些公司在境外流片的所谓的“安全芯片”,很难说安全保密程度到底有多高。

A2如何发动攻击?

以下是这种模拟入侵的攻击方式:在芯片完全设计好,就等着制造的状态下,攻击者对控制其布局的蓝图增加一个元件。现代的芯片上可能会有数百万乃至数亿个这样的元件或“单元”,它的元件区域和处理器的其它部分并没有什么不同:电线、二极管组成了可开关的闸门,实现芯片的逻辑功能。不过,这个单元被秘密地设计成能够行使电容的功能,因此可以暂时存储电能。

每次当恶意软件,比如你浏览的网站上的脚本,运行一个特定的、隐蔽的指令,这一电容单元就会“窃取”一部分电能,并将其存储在单元的电线中,而不会影响芯片的功能。每当这一指令运行一次,该电容就会获得更多的电能。只有当“触发”指令运行了数千次之后,该单元才能完全充满电,并达到一个阈值,让单元打开处理器的一个逻辑功能,使恶意软件获得原本没有的操作系统最高权限。“攻击者需要在一段特定的时间里用很高的频率连续发出这一指令,然后系统就会转入一个特权状态,让攻击者可以为所欲为。”

这种利用电容进行触发的设计模式,意味着任何人都几乎无法通过连续运行如此之长的指令序列来“打开”后门,测试芯片的安全性。此外,过了一段时间之后,该电容会将其充上的电能放空,重新关上后门,这使得监测工程师更难找到这一漏洞。

在论文中,来自密歇根的研究人员坚称,“他们的本意是防止这类无法检测的硬件后门攻击,而不是发明它们。事实上,世界各国的政府有可能已经想到了这种模拟电路攻击方法......通过发布这篇论文,我们说明了,这种攻击是真实的、迫在眉睫的威胁。现在我们需要找到一种防御方式。”

硬件木马检测十分困难

硬件木马一旦被人为隐蔽地插入一个复杂的芯片中,要检测出来是十分困难的,主要有以下几点原因:

一是硬件木马通常只在非常特殊的值或条件下才能被激活并且发生作用,其他时候对原始电路的功能并无影响,它能躲过传统的结构测试和功能测试;

二是随着IP核重用技术的发展,系统芯片(SOC)上使用IP软核、IP固核和IP硬核的数量增加,检测一个很小的恶意改动是极其困难的;

三是纳米级集成电路与复杂的系统很难通过物理性检测和破坏性反向工程检测出硬件木马,并且成本很高,耗时巨大,特别是当木马被选择性地插入到整体芯片中的一部分时,破坏性反向工程也不能保证剩余的集成电路没有木马;

四是由于硬件木马相对目标电路很小,工艺噪声与环境噪声使检测变得十分困难。

指令集也存在安全隐患

据中科网威公司透露,国内单位通过对某些国外CPU的严格测试,已经可以确认X86芯片存在功能不明确的“多余”模块——这些模块不是一般意义的调试接口,而是由特定的CPU芯片引脚控制,可读写CPU内部状态寄存器、读写指定存储区域、激活特定的微代码段执行某个处理流程、并且可以对CPU进行复位

其实,除了硬件木马和自由软件基金会曝光的IntelManagementEngine,X86指令集也存在安全风险——根据中科网威公司透露,经实测,发现X86指令集存在未公开指令,包括加解密、浮点操作在内共计二十余条,其中,有三条指令在用户模式就可以使机器死机或重启,作用机制直接穿透各种软件保护措施,防护软件不能感知;普通应用程序中嵌入一条即可使系统宕机——Intel和黑客可以利用硬件木马或后门轻而易举的黑掉用户,更要命的是,这些硬件木马的检测难度非常大,检测成本也异常高昂。

结语

虽然全球CPU公司都一再向社会宣传自己是多么的大公无私,向用户承诺自己的产品是绝对安全可靠。但从海湾战争中萨达姆的防空系统突然瘫痪,到2007年以色列轰炸叙利亚东北部的一处潜在核设施时,叙利亚预警雷达因通用处理器后门而失效,再到2012年伊朗布什尔核电站在信息系统物理隔绝的情况下遭到震网病毒的攻击......残酷的现实向世人阐释了只要存在国家和利益斗争,给CPU留后门的行为就永远存在。

前车之鉴,后事之师,如何让中国避免重蹈伊拉克、叙利亚、伊朗的覆辙应为上位者执政的当务之急。

本文转自d1net(转载)

时间: 2024-10-11 04:59:30

芯片中的硬件木马:X86 CPU到底存在哪些安全风险?的相关文章

国产x86 CPU性能达Intel的80%?

日前,<让缺"芯"少"魂"成为过去式>一文引起了舆论的广泛关注.特别是文章中采访了核高基专项总师,以及披露的关于国产x86通用处理器的内容引起了网友广泛关注--国产x86通用处理器的成功自主研发和量产,令国产桌面处理器在性能方面完成了一次跨越式的提升,从"十二五"初期的不足国际整体水准的7%提升到了目前的50%,综合性能体验达到80%. 目前,兆芯处理器芯片已在联想.长城.同方.曙光等主流整机厂商的产品中得到应用. 对此,一些媒体纷纷

国产x86 CPU达到国际水准80%?你信你就输了!

日前,<让缺"芯"少"魂"成为过去式>一文引起了舆论的广泛关注. 特别是文章中采访了核高基专项总师,以及披露的关于国产x86通用处理器的内容引起了网友广泛关注--国产x86通用处理器的成功自主研发和量产,令国产桌面处理器在性能方面完成了一次跨越式的提升,从"十二五"初期的不足国际整体水准的7%提升到了目前的50%,综合性能体验达到80%.目前,兆芯处理器芯片已在联想.长城.同方.曙光等主流整机厂商的产品中得到应用. 对此,一些媒体纷纷

英特尔的华丽转身x86 CPU的跨越式进步

摘要:英特尔CPU研发史上绝无仅有的"倒退",却是x86 CPU世界最为瞩目的革新!AMD64位处理器大军压境,让不少IFans期待着能有一款重量级产品来重整英特尔威风.原以为超过4GHz的奔腾会来挑大梁,但英特尔前CEO贝瑞特(Barrett)的"惊世一跪"无疑给大家泼了一盆冷水.4GHz奔腾计划在那一刻烟消云散,让不少人暗自伤神了许久.   英特尔CPU研发史上绝无仅有的"倒退",却是x86 CPU世界最为瞩目的革新!AMD64位处理器大军压

揭秘中国X86 CPU两大阵营,海光、兆芯谁更强?

前不久,永恒之蓝肆虐,教育网和公安内网遭到攻击,洛阳市公安官方甚至发文,承认公安内网陷入瘫痪.而Intel在不久前表示版本号为6.x.7.x.8.x.9.x.10.x.11.5.以及11.6系列的所有固件产品存在严重的漏洞,这就意味着英特尔近十年来的固件芯片都会受到影响. 根据资料表明,国家已经制订了旨在使用国产化产品替代进口产品的计算机计划--全国党政系统的计算所实现国产化替代,从而保障国家的信息安全.不过,考虑到党政办公中,暂时还不可能一下子就彻底抛弃Windows,即便用Linux取代Wi

硬件创新的瓶颈到底在哪里?

摘要: 上半年国内硬件创新.软硬件结合风生水起,但雷声大雨点小,拿个样机没问题,真正推向市场商业化就难了.不外乎举着国外的几个例子谈谈概念,硬件创新的瓶颈到底在哪里?最近 上半年国内硬件创新.软硬件结合风生水起,但雷声大雨点小,拿个样机没问题,真正推向市场商业化就难了.不外乎举着国外的几个例子谈谈概念,硬件创新的瓶颈到底在哪里?最近与几位真正在做产品的前辈探讨这个问题,得到如下几点靠谱的干货: 一."互联网公司不懂硬件" 这是做快乐妈咪胎语仪的陶建辉讲的感受,做软硬结合的产品是他第三次

Linux系统中的硬件问题如何排查?

这篇教程的诞生过程实在相当纠结.很长时间以来我一直在考虑要不要写这么一篇东西,最主要的原因在于对硬件相关问题进行故障排查可能是计算机管理领域最棘手的工作.即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,并在试图解决那些微妙.古怪.难以捉摸甚至无法确定的软硬件冲突困境时碰上钉子.想在网络上寻找答案?我们找到的很可能是上万个无关主题,最终在空荡荡的论坛上孤独徘徊.耗尽余生. 不过就个人来说,我自认为算是个自负的极客.对技术难题和写作手法都有相当的信心.今天我打算尽量与大家分享一些实用的技巧与处

传中国政府接手原威盛x86 CPU技术 后者对此拒绝评论

传中国接手原威盛x86 CPU技术想当年在桌面级x86 CPU市场,除了英特尔与AMD的名号,还有一家来自台湾的厂商VIA威盛科技也占有一席之地,即便你没有听说过VIA也不妨,事实上这家公司的董事长却是人尽皆知的,那就是王雪红.如今VIA在当年激烈的市场竞争中已经埋没了许多年,但据业内人士透露,它经营多年的x86处理器技术或将由中国政府接手,使其再一次被推上风口浪尖.早在今年年初,VIA就对外宣布其持股比例仅20%,而其余股票则由拥有中国政府背景的国内投资机构控制.因此业内人士猜测,中国政府已经

驱动 架构-在驱动程序中对硬件的初始化和在设备中对变量的初始化有什么联系和区别?

问题描述 在驱动程序中对硬件的初始化和在设备中对变量的初始化有什么联系和区别? 在驱动程序中对硬件的初始化和在设备中对变量的初始化有什么联系和区别? 解决方案 在设备中对变量的初始化???没明白这句话

在.Net Micro Framework中访问硬件

摘要:本文介绍了.Net Micro Framework中对硬件的简单而独特的访问方式.结合模拟器和EmbeddedFusion Tahoe开发板,介绍了如何获取MF设备的电源供给和充电状态,如何获取处理器的特征(如速度等)以及硬件平台ID号等基本硬件信息. 一.电源和供电 一块MCU或者说一块开发板的工作是从上电开始的, 电源状态的改变是在嵌入式设备中我们经常要处理的问题. 在.Net Micro Framework提供了Battery类(在Microsoft.SPOT.Hardware命名空