保障企业服务器固件安全的方案设计

根据新的nist sp 800 193标准、在硬件上使用基于fpga的可信根器件来实现平台硬件保护和恢复(pfr), 可让服务器固件免受网络攻击,保护性能更上一层楼。莱迪思全新pfr开发工具套件能够简单快速实现基于fpga的pfr解决方案。
概述
典型的企业服务器包含多个处理组件,每个组件使用各自的非易失性spi flash缓存来保存其固件(即上电后处理组件立即启动所需的软件)。尽管使用闪存很方便现场升级和修复问题,但同时也容易遭受恶意攻击。黑客可以未经授权就访问固件,在组件的闪存中植入恶意代码。这些代码能够轻易躲过标准的系统检测手段,即便是进行更新或更换硬盘也无法解决,从而对系统造成永久性破坏。
为解决这一问题,一些处理组件采用集成在芯片上的硬件电路来检测未经授权的固件修改。然而,电路板上其他未采用此种方案的处理组件还是缺乏有效保护,整个服务器仍然易受攻击。美国国家标准与技术研究所(nist)最近发布了2018年nistsp800193标准,定义了一种标准的安全机制,称为平台固件保护恢复(pfr), 它主要基于以下三个指导原则:
pfr功能主要依赖外部的硬件(芯片)带有“可信根”(rot)的器件。使用基于fpga的rot器件实现pfr解决方案比使用基于mcu的可信根器件更安全、扩展性更好、系统可靠性更高。莱迪思推出的全新pfr开发套件能让服务器的原始设备制造商快速为其现有设计增加pfr功能,并充分利用这一强大的安全技术带来的优势。系统架构师和系统集成商如今可以更为方便地设计、实现和维护符合pfr标准的fpga rot器件,而无需拥有专门的安全专业知识。预计到2021年,网络攻击犯罪造成的损失将达到6万亿美元1。网络黑客不断寻找规避安全措施的新方法,旨在:
• 偷看或窃取存储在服务器上的专有数据(信用卡号、公司知识产权等)
• 绕过服务器偷看或窃取数据
• 劫持服务器,对其他目标进行ddos攻击
• 通过让服务器的一个或多个硬件组件无法运行,从而对其造成破坏(称之为“变砖头”)
由于操作系统和应用会定期更新,以便加入新功能或修复漏洞,它们很容易成为黑客入侵服务器的最大目标。于是,组织的安防资源和战略一般会倾向于保护操作系统和应用软件。然而,入侵服务器还有另外一个较少为人所知的攻击载体:固件。
固件是指服务器组件(即cpu、网络控制器,片上raid解决方案等)率先上电后立即执行的第一个启动代码。组件的处理器假定固件为一个有效可靠的起点,从中启动并根据服务器的配置使用它来分阶段验证和加载更高级别的功能。在某些情况下,处理组件在其整个运行周期内使用固件执行所需的功能。
国际信息系统审计协会(isaca)2016年的一份调查显示,在那些声称将硬件安全视作组织头等大事的受访者中,超过半数“报告了至少一起受恶意软件影响的固件被引入公司系统的事件”,并且17%的受访者表示“这些事件造成了实质性影响。2”
固件安全状态
服务器固件可能在供应链的各个不同阶段遭到入侵,包括:
• 在原始设备制造商处:在生产过程中操作人员恶意植入受感染的固件
• 在系统集成商处:在根据客户要求配置服务器时安装未经授权的固件
• 转运到客户的过程中:黑客可以打开服务器包装,通过线缆下载未经授权的固件,将恶意代码植入组件的spi存储器中
• 现场运行过程中:黑客可以利用固件的自动更新,将可绕过任何现有保护机制的伪造固件替代正常的更新典型的服务器主板目前都使用至少两种标准的固件实例:统一可扩展固件接口(uefi)和基板管理控制器(bmc)。尽管这些接口能对固件起到一定的保护作用,但也非常有限。
统一可扩展固件接口(uefi)
uefi(之前称为bios)是负责将服务器固件载入操作系统的软件程序。uefi在生产过程中就已经安装就绪,用于检查服务器有哪些硬件组件、唤醒这些组件并将其交给操作系统3。这一标准通过一种称之为安全启动的过程检测未经授权的固件,如果检测到未经授权的固件,该安全机制就会阻止硬件组件启动4。然而,安全启动的实现和支持因组件和供应商而异,这会导致组件安全性能出现漏洞,从而被黑客利用。此外,如果非法固件设法绕过了安全启动,uefi就无法将组件的固件恢复到上一个经授权的版本并继续运行。
基板管理控制器
基板管理控制器是母板上的一种专用微控制器(mcu),通过独立的连接与系统管理员通信以及使用传感器来监控“计算机、网络服务器或其他硬件设备5”。许多bmc会筛查各自的固件安装情况以确保固件的合法性,但是对于其他的服务器固件则无能为力。bmc无法阻止恶意代码攻击电路板上的其他固件。例如,如果恶意代码被植入组件的spi存储器未使用的分区,那么bmc则无法阻止代码进入服务器的整个代码流。
图 1:统一可扩展固件接口和基板管理控制器接口只能提供有限的固件保护
平台固件保护恢复(nist sp 800 193标准)
为解决当前固件标准的安全问题,美国国家标准技术研究所(nist)于2018年5月发布了一项新标准,为包括uefi和bmc在内的所有固件提供全面保护。这一被称为pfr的nist sp 800新标准旨在“提供技术指导和建议, 支持平台固件和数据的恢复,预防潜在的破坏性入侵。6”它提供了一种保护系统中所有固件的统一方法,并且可以配置为对正常系统操作不具有侵入性。一旦确定未经授权的固件正在尝试安装,它则会停止任何相关组件。并且pfr还相对于各个组件可能支持的任何安全功能独立运行。
该标准概括了保护固件的三大关键原则:
• 保护 – 通过阻止对组件spi存储器的保护区域实施未经授权的写入或者清除全部或部分固件的恶意行为,从而确保组件的固件处于稳定状态。在有些情况下,甚至对保护区的读取的操作也是禁止的。
• 检测 – 在组件的处理器从固件启动之前,可以先验证来自原始设备制造商的固件更新包。若检测到固件有破坏或未经授权,则启动恢复过程。
• 恢复 – 若检测到固件被篡改或被破坏,处理器将从上一个可信固件版本(即“黄金镜像”)启动,或者通过可信进程获得新的固件,启动全系统的恢复。
pfr需要基于硬件的可信根
根据nist的这一标准,实现安全的pfr功能需要可信根(rot)器件对服务器的固件执行保护、检测和恢复操作。符合nist标准的rot器件必须在启动之前、且不借助任何其他外部组件的情况下对其固件进行以上操作。
硬件rot解决方案必须拥有以下特点:
• 可扩展 – rot器件必须通过外部spi镜像实现保护、检测和恢复功能,同时具备毫微秒级响应速度。这需要专用处理和i/o接口,保证服务器的性能不受影响。
• 不可绕过 – 未经授权的固件不能绕过rot器件,从而无法从受损的固件启动服务器。
• 自我保护 – rot器件必须动态地应对不断变化的攻击面(设备或系统中未经授权的用户可以访问的所有节点),保护自身免受外部攻击。
• 自我检测 – rot器件必须能够使用不可绕过的加密硬件模块检测未授权的固件。
• 自我恢复 – 当设备发现未经授权的固件时,rot器件必须能够自动切换到上一个黄金固件映像,确保服务器继续运行。
图 2:nist sp 800-193标准:平台固件保护恢复
如图3所示,rot器件首先上电,并通过加密方式检查所有组件的固件,以及是否有未经授权的修改。若rot器件检测到任何破坏,则启动可信固件恢复过程。在极端情况下,若电路板上的所有固件全部受损,rot器件还可以利用存储在该器件中的可信固件进行全系统恢复(通过bmc)。bmc从可信固件启动后,从系统外部取得已知可 信的固件替代被破坏的固件版本。rot器件随后再次验证所有固件,然后启动电路板的上电程序,在此过程中板上所有组件都将上电,并强制从已知的完好固件镜像中启动,最后开始正常工作。
为保证spi存储器不再遭受入侵,rot将主动监测spi存储器和对应处理器之间的所有活动,发现恶意更新固件的行为后,阻止安装更新。
实现符合nist标准的pfr解决方案
pld上实现可信根的难点在于,实现方案的同时不给原始设备制造商带来过大的负担。可信根硬件解决方案(包括基于pld的解决方案)必须可扩展,也就意味着它能够保护服务器上的所有固件,同时响应时间达到毫微秒 级。它还要能够使用不可修改的加密模块,通过加密检测来确定固件是否遭到篡改。将pfr与服务器所有组件完整的启动时序控制功能相结合,rot就变得不可绕过。最后,解决方案还应能够自动切换回最近的黄金固件镜像,以便在发现当前固件被破坏时服务器可以继续运行。
按照定义,基于硬件的rot器件自然需要在芯片中实现。在此情况下,最常用的芯片平台即微控制器(mcu)和现场可编程门阵列(fpga)。在充分考虑到fpga和mcu的运行特点和特性后,我们发现fpga在很大程度上更适用于pfr解决方案
使用mcu实现可信根
mcu过去常在服务器硬件产品中用于构建可信根。简单来说,就是保留mcu层的一部分为可信执行环境。mcu 的这一部分与芯片的其他区域保持物理隔离,并持续监控固件,确保其获得授权并正常工作。通常来说,服务器上的pfr功能是通过向现有的硬件架构上添加rotmcu实现的。
mcu通常难以支持验证服务器中的多个固件实例。这是因为它无法在没有外部设备(如pld)的帮助下响应对服 务器所有固件实例的系统内部攻击(而pld能实时监控spi存储器的流量并同步检测和响应入侵行为)。
如图4所示,使用mcu实现pfr的三个组件为:
• rotmcu– rot mcu执行检测、恢复和保护功能;它是实现rot的核心组件。
• 保护pld– 通过实时监控所有组件处理器与其spi存储器设备之间的活动,大规模实现pfr,全面保护电路板。
• 控制pld– 该器件集成了所有电路板级的上电和复位时序功能,包括风扇控制、sgpio、i2c缓冲、信号集成和带外通信等启动主板必须的功能。rotmcu命令控制pld为电路板上电。若需要在极端情况进行恢复,rotmcu则命令控制pld仅为可信恢复过程中使用的部分电路板供电。
图 3:如果需要各组件同时启动,那么符合pfr标准、使用mcu作为可信根的服务器还需要额外的组件(fpga) 来提供必要的高性能;在大规模的服务器应用场景下,此种解决方案不可扩展
这种基于mcu的pfr方案有诸多限制。例如,图4电路中使用的控制pld无法保护自身固件,也就意味着这种架构并非完全符合nist pfr的要求。控制pld的代码仍有可能被修改,让rotmcu失效。还有可能受到永久拒绝服务攻击(pdos),通过删除这些pld上的信息,让系统无法运行,从而使让服务器无法启动。保护和控制pld 存在的安全漏洞使得组件在运输或者系统集成过程中很难防止对固件的攻击。为了达到nist sp 800 193标准,rotmcu必须同时为控制pld和保护pld实现pfr功能。而使用mcu在这些器件上实现恢复和保护功能非常困难。最后,基于mcu的方案需要额外的系统级进程来检测试图绕过整个rot电路的攻击行为。
使用fpga实现可信根
root-of-trustfpga
图 4:rot fpga解决方案将rotmcu、控制pld和保护pld的功能集成在单个芯片上,不仅可靠、易扩展,而且不可绕过。在拥有符合pfr标准的pld的服务器上,pld的性能足以并行监测所有组件的固件而无需使用额外的fpga
基于可信根fpga的pfr方案的优势
正如其名,可编程逻辑电路(pld)是一种几乎可以瞬时实现远程重新编程的集成电路,以适应不断变化的场景。pld可以在硬件层面上改变其电路,因此一旦检测到未经授权的固件,该固件就无法安装。
由于pld被设计为可重新编程,因此比mcu有更多的i/o接口,这让它们可以并行运行多个功能而非按顺序执行。 因此它们在检测未授权固件时,识别和响应速度更快。
此外,pld使用了先进的仿真软件,让工程师得以验证其pld设计的功能。工程师还可以使用这一工具来测试其针对各种固件的网络攻击的设计是否可以保护pld自身。与pld相比,mcu的固件更新需要更复杂的测试和验证,因为mcu不能通过仿真支持功能验证。相反,mcu固件的任何更新都必须经过多次回归(试错过程)测试, 以确保新固件不会对mcu中的其他功能产生不良影响;这一过程远比运行pld仿真软件繁琐。
当我们对比pld和mcu的特点时,会发现pld能提供性能更优、更为可靠的平台实现基于硬件的可信根;它也成为满足pfr标准的必要器件。
应对供应链攻击:mcu vs. fpga pfr解决方案
如果出现固件攻击,两种不同类型的pfr系统将采取以下应对措施(按照实施顺序):
rot mcu
rot fpga
检测:rotmcu对所有的spi存储器设备按顺序执行加密检测,以检测是否存在未经授权的固件。 遭受入侵的控制pld(在供应链环节)可以绕过rotmcu的检测,让bmc从受损的镜像启动。
检测:rot fpga对所有的spi存储器设备按顺序执行加密检测,以检测是否存在未经授权的固件。fpga在 其片上非易失性存储器中记录故障情况用于之后的分析。rotfpga可保护自身免受来自供应链环节的攻击。
若检测到受损的固件,恢复过程则由管理启动源spi存 储器的保护pld,或通过控制或保护pld启动并由rotmcu监控。
基于fpga的系统将此功能集成到其硬件中。rot和controlpld之间不需要进行外部通信。这使得解决方案更加可靠且不再受外部攻击影响。
服务器完全启动后,保护pld会主动实时监视所有的spi活动以阻止后续攻击,并在检测到入侵时通知rot mcu。
最终的解决方案更简单,完全符合nist的标准。
pfr开发套件简化fpga可信根方案的实现
莱迪思现提供一款pfr开发套件,可简化fpga rot解决方案的实现。服务器组件的原始设备制造商和系统集成商如今可以快速实现基于fpga的pfr,满足上市时间的要求。该套件包括一个软件功能库、相关的ip和3个开发板,用于实现pfr(包括保护pld功能)。用户可以通过lattice diamond软件工具将电路板控制pld功能添加到rotfpga设计中。莱迪思pfr开发套件和开发板包括:
• 一个rotfpga开发板
• 一块运行python脚本的ecp5fpga板,用于模拟服务器的bmc。开发人员可以通过python脚本执行命令来模拟对组件spi存储器的攻击。
• 一个pfr适配卡,用于在spi存储器中存储bmc代码。在开发板的rotfpga中实现的pfr功能可以保护pfr适配卡固件免受攻击(意味着基于fpga的该解决方案符合nistpfr标准)。
莱迪思套件让用户能够设计、实现和维护符合nist标准的自定义pfr方案,而无需专门的安全专业知识。
图 5:lattice fpga rot开发套件拥有三块开发板:rotfpga开发板,用于模拟服务器bmc的ecp5开发板和用于存储模拟bmc固件的spi闪存板
小结
对于涉足数字领域的企业和组织而言,网络安全是个至关重要的问题。如今黑客会通过攻击企业服务器固件来获取未经授权访问服务器数据的权限,或者直接让服务器永久瘫痪。而通过基于fpga的rot器件实现的pfr则能有效解决这一难题,提供安全可靠、容易扩展、全套完备的方案,在供应链的任何环节保护服务器组件的固件。全新的莱迪思pfr开发套件为加速和简化rot器件的开发提供了便捷途径,确保你的服务器安全无虞。

Kafka如何做到那么高的性能
中国移动又成立了新子公司
中国联通独家获批试水“一号双终端”
俄罗斯反病毒软件厂商Dr.Web发现了一种新型木马
网点分散难管理?组网是物流企业的正解!
保障企业服务器固件安全的方案设计
企业电网功率因数偏低有哪些坏处
如何用matlab实现针对四面体单元划分的三维结构进行有限元编程
ASML:推迟明年供货日期
详解多旋翼无人机在高速运动的情况提供实时的定位与定向解决方案
上海地铁松江新城站景观照明工程即将完成
工业应用的自然语言理解和结构化知识
基于双核Arm Cortex M0+RP2040硬件开发
钙钛矿太阳能电池技术在稳定性方面实现了突破
【科普】什么是晶圆级封装
北方最大ITO靶材基地?淄博先导薄膜项目一期投产
互联网医疗让生活更加方便
针对超低时延交易筛选和优化的首款AMD网络卡
对角修形在齿轮TE仿真分析中的应用
2023深圳智能传感器产业集群与行业应用交流会隆重举行