固件容易受到攻击,但恩智浦处理器的固件拥有防护机制,能够在系统启动、固件更新和运行时确保安全性。
我们往往认为固件(系统预装的软件)是安全的。毕竟,它是制造商提供的,在我们首次启动系统之前就已经就绪了。相反,我们更关注操作系统和应用软件的安全性。然而,固件——无论是实现完整堆栈的固件,还是提供启动服务和系统管理的平台固件——都容易受到攻击。《连线》杂志(Wired)曾说过:“篡改固件给了攻击者无上的系统控制权,即使软件更新了,这种控制也是隐蔽而持久的。”
它是指美国国家安全局(NSA)特工侵入硬盘固件的新闻,简明地揭示了固件的弱点:“这次攻击成功的原因,是因为固件在设计时没有考虑安全性。硬盘制造商不会像软件供应商那样对安装在驱动器上的固件进行加密签名。硬盘设计也没有内置身份验证来检验已签名的固件。这就给了他人可趁之机,可以修改固件。” 一旦国家安全局控制了固件,它就可以运行其他代码。
在2017年初媒体报道了另一个类似事件:一家公司从服务器供应商那里下载了一个被篡改的固件更新,并将其安装到了数据中心。可以想象,被攻击的固件可能已经从该公司的设计实验室中泄露了专有技术。为了应对这种风险,该公司将部分服务器退还给了供应商,并派出律师和工程师检查其安全实践。
但其实没有必要这么麻烦。
恩智浦处理器的固件拥有防护机制,可在3种情况下提供保护:
- 系统启动
- 固件更新
- 运行时
系统启动。恩智浦安全方法的一个核心原则是,信任根建立在硬件上。安全启动过程需要一个安全嵌入在芯片内的小型引导加载程序来验证芯片外部的第一级代码,也就是固件。虽然这看起来很简单,但用于验证固件的密钥必须安全存储。如果您将密码随意地写在门上,那么即使安装坚不可摧的保险箱也没用。密钥不能被任何外部固件读取,并且必须是可撤销的,以防在早期版固件中发现任何漏洞,从而防止回退攻击。此外,系统的入口点在安全启动过程中是关闭的。入口点包括PCIe、网络和JTAG(调试)端口。另外,攻击者还可能会试图从被侵入的系统中克隆固件,并使其在另一个系统上启动。确保所有器件都有唯一的标识符,并将固件锁定到每个特定器件,有助于阻止这种克隆。内部引导加载程序、安全和可撤销密钥、禁用的I/O和唯一标识符都是恩智浦QorIQ信任架构中安全启动实施方案的组成部分。
更新。在上述服务器事件中,被黑客侵入的固件可能已经在更新期间加载。我们一直被提醒要持续更新软件(包括固件),以修复安全漏洞,但更新流程和新固件都必须得到保护。固件更新程序机制必须在安全的环境中运行——对于服务器,可以在独立的板载管理控制器(BMC)上运行,对于嵌入式系统,则可以在可信执行环境中运行。这个配置软件必须对更新源进行加密验证,并使用传输层安全性(TLS)标准安全下载。然后,该软件必须使用系统中安全存储的密钥以及用于安全启动的密钥来验证固件。恩智浦提供安全的配置工具,帮助完成这一过程。这个工具还有助于保证在制造系统时对正确的固件进行编程。
运行时。攻击者可以将固件换成存储在闪存或磁盘驱动器中的被黑客侵入的镜像,这是最简单的方式。幸运的是,通过以加密格式存储固件并在启动或加载之前对其进行解密,可以轻松地发现这种篡改。狡猾的黑客也知道这一点,他们会在运行时修改主内存中未加密的固件。阻止运行时篡改需要更复杂的防御机制。运行时完整性校验(RTIC)就是其中的一种。恩智浦QorIQ®处理器中的RTIC可以在后台运行代码,以加密方式验证内存中的固件,进一步体现了信任根建立在硬件上的原则。基于电池的备份和防篡改引脚为抵御攻击者提供了另外的安全层,攻击者会物理访问嵌入式系统并试图打开“盖子”。如果他们成功打开了“盖子”,会发现储存在芯片中的秘密被清空,芯片本身处于不可用状态,以阻止任何进一步的篡改。
被侵入的硬盘驱动器和服务器固件本可以得到更好的保护。恩智浦提供了多种固件防护机制,从系统制造一直到退役的整个过程,都可以阻止被黑客侵入的代码进入系统。此外,同样的安全机制也可以保护系统和应用软件。但是系统供应商及其客户面临的风险太大,不能不使用这些机制。
我们知道安全技术可能令人头疼。在您动用锤子之前,不妨先和我们聊聊。如需了解更多信息或讨论安全审计,请点击此处。
恩智浦高级战略市场经理Joe Byrne
和恩智浦高级软件产品市场经理Ravi Malhotra