更新时间:2023-06-30 09:45
随着黑客技术的进步,硬件也成为黑客入侵的工具,“硬件黑客”会在未来增多,成为电脑安全的头号威胁者。随着黑客技术的发展,以前那种利用软件漏洞、系统漏洞等进行攻击的方式极有可能在未来风光不在,取而代之的是一种从硬件入侵的攻击方式。一些网络安全人员给电脑的芯片(CPU)刷入恶意的Firmware固件,使未经许可的攻击者轻易地进入系统,而电脑管理员本身在系统里却无法发觉,用这种攻击方式的人被形象地称之为“硬件黑客”。
“硬件黑客”从最关键的硬件芯片入手,对CPU的电路做一些细微的修改,以达到刷入一些恶意固件的目的,一旦成功就可以逃避所有防火墙以及杀毒软件、安全辅助工具的追踪,即便是电脑使用者本人(管理员)也根本不会查觉,除非电脑硬件损坏,否则此固件将是一个永久的“黑客之门”,供黑客随意出入,而且重装系统等强力防黑措施对它也无济于事。
但同时这种黑客手段也有其局限性,必须实际接触到要“黑”电脑的硬件才可以,所以一般能达到作案条件的只能是出售恶意硬件的黑客、电脑的公司内部员工以及电脑维修人员。如果采购渠道正规,电脑使用和维修很规范,就可避免“硬件黑客”的威胁。此外,大家还要加强局域网内部服务器的访问控制、入侵防御等安全措施,进一步保证内网的安全。在不久的将来,除了令人头疼的软件漏洞外,硬件安全漏洞也将受到黑客的青睐,硬件厂商们不但要考虑硬件的实用性,还不得不考虑硬件的安全问题。
你曾经可靠的手机突然死机,键盘全部罢工,电话无法拨打或接听,短信也不能收发,甚至正常关机都不行。无奈之下,你取下电池强行关机,但重新开机后手机再次死机。这显然不是普通故障。几小时后,你发现不止你的手机这样,还有上百万人跟你一样,手机突然无故死机。
这是人们遭受到一场大规模硬件攻击之后可能发生的情况。这场攻击的根源在于越来越复杂的集成电路,它们正是人们日常依赖的各种设备的核心部件。现代集成电路已经非常复杂,任何一个工程师团队都不足以了解他们设计电路中的所有部分。因此,集成电路的研发工作当前都由世界各地的团队共同完成,每个团队只负责整个设计的一部分,在印刷电路板之前,才把各部分设计集成起来。电路复杂性也决定了根本不可能用穷举法来测试它。芯片中的任何一个编码缺陷往往都会潜伏很长的时间,直至被一些触发条件(如特定的数据或时间)激活——这有点像木马病毒,在发作前会一直安全地存储在硬件中。
修复系统的恶意硬件非常困难。所有使用微处理器的设备,甚至可以说所有的电子设备,都很脆弱。集成电路在现代通信系统及全球电力供应系统里处于核心地位,在飞机上负责襟翼的定位,在汽车防抱死刹车系统(ABS)中负责调节制动力,在银行保险库和 ATM机上负责安全授权,在股票市场负责交易运作。集成电路还是武装部队使用的几乎所有关键系统的核心。可以想象,一起精心策划的硬件攻击,能够让金融系统瘫痪,或者让军队或政府的关键部门陷入混乱。
由于硬件木马在激活之前可以隐藏很多年,它们也许、甚至非常可能已被植入硬件缺陷中了。虽然到目前为止尚未证实有大规模硬件攻击发生,但是这类攻击是不可避免的。
从基于软件的网络攻击中人们可以看得非常清楚,即使很少一部分人不怀好意地使用黑客技术,都会造成巨大的危害。因此,人们需要考虑的问题不是硬件攻击是否会发生,而攻击将采用何种方式?攻击步骤是什么?而最重要的问题或许是,如何检测并阻止攻击,或者至少降低攻击带来的损失。
芯片内部:
芯片包含一系列功能模块,每个模块执行一种特定任务。模块间的数据经系统总线传送,一个叫做总线仲裁器的模块会对总线上的数据流进行控制。以手机为例,出错的时候: 芯片会一直正常工作,直到其中的流氓电路被激活并发起攻击。触发条件可以有多种形式,如特定数据和时间,或者是外部发送的特定编码格式数据包中的“唤醒呼叫”。一旦激活,木马随即就会公开或秘密地展开攻击。
在公开攻击时,流氓硬件可以使正常运行的芯片罢工。这个事例中,感染的模块拒绝让出被它占用的总线,使其他模块之间无法通信。这种情况下,该芯片会完全停止工作。在隐蔽攻击中,流氓电路的行为不会留下任何痕迹。隐蔽攻击特别令人担忧,因为没有明显迹象表明运行出现了问题。但是,流氓电路会将机密数据发送到芯片外部的某个地址,或配合其他受感染的系统发动攻击。简单来讲,集成电路,也就是我们常说的芯片,是一种刻蚀在半导体晶片(通常是硅)上的电路。现代芯片非常小,最大也就几平方厘米,但可容纳数十亿个晶体管。由于现代芯片拥有如此高的复杂性,一些可能被木马利用的漏洞也存在其中。
根据功能不同,现代芯片可划分成若干个子单元,即模块(block)。以手机处理器为例,有的模块用于存储相机拍摄的视频,有的用于把视频压缩成 MPEG文件,有的可将 MPEG文件转换成可无线传输的格式。模块间的数据通过系统总线(system bus)传输,后者就像是连接芯片不同部分的高速公路。
当一家公司着手设计新款芯片时,首先要规划出芯片所需的功能模块。其中一些模块是自主设计的,要么从零开始设计,要么对自家早期产品加以改进。其他一些功能模块,比如通过天线接收数据的模块,则可以从专门开发特定功能的第三方那里获得使用许可。
从第三方那里获取的模块并不是一块块实际的晶片,因为制造集成电路的目的就是要把所有功能模块印刷到同一块晶片上。相反,那些模块是以数据文件的形式提供的,其中完整地描述了模块被刻蚀到硅片上的方法。这样的文件可以包含数千条指令,人们要想读懂其中的内容几乎是不可能的。模块供应商通常还会向购买者提供一些软件,模块买家可以用它来模拟该模块在不同情况下的使用效果。在芯片开始印制之前,设计公司还会将所有模块集成在一起,建立模型并使用计算机进行仿真测试,以保证芯片能够按照设计初衷正常工作。只有模型通过这一系列测试,公司才会开始漫长而且耗资巨大的实体芯片制造。这样的设计流程还是会留下漏洞。由于流氓硬件(即存在漏洞的电路)需要特定的触发条件来激活,芯片制造商不得不对模型进行尽可能全面的触发测试,以保证硬件是“干净”的。这一点完全不可能做到,因为宇宙中可能的触发方式无穷无尽。触发分为两种:一种叫内部触发,前面手机的例子中基于时间的触发就属于这一种;另一种则是外部触发,例如接收包括特定字符串的文本信息或电子邮件。即使设计公司竭尽所能进行测试,也只能覆盖所有可能输入中非常小的一部分。在实际测试中,只要模块能按预期工作,制造商一般就认为它们功能正常。