CN111008379B - 电子设备的固件安全检测方法及相关设备 - Google Patents
电子设备的固件安全检测方法及相关设备 Download PDFInfo
- Publication number
- CN111008379B CN111008379B CN201911156011.8A CN201911156011A CN111008379B CN 111008379 B CN111008379 B CN 111008379B CN 201911156011 A CN201911156011 A CN 201911156011A CN 111008379 B CN111008379 B CN 111008379B
- Authority
- CN
- China
- Prior art keywords
- firmware
- management controller
- baseboard management
- board card
- basic input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施例提供了一种电子设备的固件安全检测方法及相关设备,属于计算机技术领域。所述电子设备包括基本输入输出系统和基板管理控制器并安装有板卡设备,所述方法包括:启动所述基板管理控制器;从所述板卡设备中确认其固件待验证的目标板卡设备;使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性;利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。本公开实施例的技术方案提供了一种电子设备的固件安全检测方法,通过将基板管理控制器作为电子设备固件安全检测的主体,提供了一种基于扁平化可信链的电子设备固件安全检测方案,提升了计算机系统的底层安全性,能够防止对电子设备的攻击。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种电子设备的固件安全检测方法及相关设备。
背景技术
服务器平台或者网络设备,不同于PC(Personal Computer,个人计算机),往往安装了多个附加硬件或板卡,这些硬件或板卡一般均为一个小型计算系统,带有与之对应的固件程序。这些附加硬件或板卡的固件程序,连同服务器或者网络设备本身BIOS(BasicInput/Output System,基本输入输出系统)的固件程序,共同构成了服务器平台或者网络设备的固件程序集合。
由于所有固件程序均先于操作系统启动,同时现代计算机系统的PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)总线设备均能发起DMA(Direct Memory Access,直接内存存取)直接内存访问,故若固件程序中带有恶意代码,可通过DMA等方式向运行时的操作系统中植入木马后门,破坏计算机系统的信息安全。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开实施例提供一种电子设备的固件安全检测方法及装置、电子设备和计算机可读存储介质,能够提升计算机系统的底层安全性。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提供一种电子设备的固件安全检测方法,所述电子设备包括基本输入输出系统和基板管理控制器并安装有板卡设备。所述方法包括:启动所述基板管理控制器;从所述板卡设备中确认其固件待验证的目标板卡设备;使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性;利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
本公开实施例提供一种电子设备的固件安全检测装置,所述电子设备包括基本输入输出系统和基板管理控制器并安装有板卡设备。所述装置包括:基板管理控制启动模块,配置为启动所述基板管理控制器;目标板卡设备确认模块,配置为从所述板卡设备中确认其固件待验证的目标板卡设备;基本系统固件检测模块,配置为使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性;板卡设备固件检测模块,配置为利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
在本公开的一些示例性实施例中,所述基板管理控制器的固件包括启动程序、固件验证程序和基板管理控制器固件证书公钥/哈希以及基板管理控制器核心固件程序、基板管理控制器功能包和基本输入输出系统与板卡设备的证书/哈希。其中,基板管理控制启动模块可以包括:优先加电单元,配置为在所述电子设备的电源通电后,对所述基板管理控制器和所述板卡设备加电;启动程序加载单元,配置为加载所述启动程序;固件验证程序加载单元,配置为加载所述固件验证程序,根据所述基板管理控制器固件证书公钥/哈希验证所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希;基板管理控制可信启动单元,配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证通过,则加载所述基板管理控制器核心固件程序和所述基板管理控制器功能包。
在本公开的一些示例性实施例中,所述装置还包括:基板管理控制终止模块,配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证未通过,则终止启动所述基板管理控制器;第一告警模块,配置为生成并发送第一告警信息。
在本公开的一些示例性实施例中,所述启动程序、所述固件验证程序和所述基板管理控制器固件证书公钥/哈希存储于第一存储器;所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希存储于第二存储器;分别采用基板管理控制器证书私钥对所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希进行签名。
在本公开的一些示例性实施例中,所述基本系统固件检测模块包括:第一指令发送单元,配置为所述基板管理控制器通过第一总线向第一多路选择器发送第一控制指令;第一固件镜像文件读取单元,配置为所述第一多路选择器根据所述第一控制指令,通过所述第一总线读取所述基本输入输出系统的固件镜像文件,并返回至所述基板管理控制器,其中所述基本输入输出系统的固件镜像文件存储于基于第一总线协议的第一存储芯片;第一固件验证单元,配置为所述基板管理控制器根据所述基本输入输出系统的固件镜像文件与所述基本输入输出系统的证书/哈希,验证所述基本输入输出系统的固件的合法性。
在本公开的一些示例性实施例中,所述装置还包括:基本输入输出系统启动模块,配置为若所述基本输入输出系统的固件通过验证,则启动所述基本输入输出系统;基本输入输出系统禁止模块,配置为若所述基本输入输出系统的固件未通过验证,则禁止所述基本输入输出系统启动,生成并发送第二告警信息。
在本公开的一些示例性实施例中,所述板卡设备固件检测模块包括:板卡固件验证单元,配置为通过所述基板管理控制器逐一轮询所述目标板卡设备,验证所述目标板卡设备的固件是否符合所述板卡设备的证书/哈希;非安全设备记录单元,配置为若所述目标板卡设备的固件未通过验证,则将未通过验证的目标板卡设备记录为非安全设备;自动化处理单元,配置为对所述非安全设备进行自动化处理。
在本公开的一些示例性实施例中,所述目标板卡设备包括第一板卡设备。其中,所述板卡固件验证单元包括:第二指令发送子单元,配置为所述基板管理控制器通过第一总线向第一多路选择器发送第二控制指令;第一固件镜像文件读取子单元,配置为所述第一多路选择器根据所述第二控制指令,通过所述第一总线读取所述第一板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第一板卡设备的固件镜像文件存储于基于第一总线协议的第二存储芯片;第一固件验证子单元,配置为所述基板管理控制器根据所述第一板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第一板卡设备的固件的合法性。
在本公开的一些示例性实施例中,所述目标板卡设备还包括第二板卡设备。其中,所述板卡固件验证单元还包括:第三指令发送子单元,配置为所述基板管理控制器通过所述第一总线向所述第一多路选择器发送第三控制指令;第三指令转发子单元,配置为所述第一多路选择器通过所述第一总线将所述第三控制指令发送至第二总线至第一总线协议翻译器;第三指令翻译子单元,配置为所述第二总线至第一总线协议翻译器将所述第三控制指令发送至第二多路选择器;第二固件镜像文件读取子单元,配置为所述第二多路选择器根据所述第三控制指令,通过第二总线读取所述第二板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第二板卡设备的固件镜像文件存储于基于第二总线协议的第三存储芯片;第二固件验证子单元,配置为所述基板管理控制器根据所述第二板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第二板卡设备的固件的合法性。
在本公开的一些示例性实施例中,所述自动化处理单元包括:第一执行子单元、第二执行子单元、第三执行子单元或者第四执行子单元。其中,所述第一执行子单元配置为执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第二执行子单元配置为将所述非安全设备屏蔽或断电,生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第三执行子单元配置为生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第四执行子单元配置为禁止所述基本输入输出系统初始化过程和所述电子设备的操作系统启动。
在本公开的一些示例性实施例中,所述装置还包括:正常启动模块,配置为若所述基本输入输出系统和所述目标板卡设备的固件均验证通过,则执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;实时检测模块,配置为在所述操作系统的运行过程中,再次利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
在本公开的一些示例性实施例中,所述装置还包括:热插拔模块,配置为若所述目标板卡设备未通过再次验证,则触发所述目标板卡设备所在总线的热插拔事件。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的电子设备的固件安全检测方法。
本公开实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的电子设备的固件安全检测方法。
在本公开的一些实施例所提供的技术方案中,针对包括基本输入输出系统和基板管理控制器并安装有板卡设备的电子设备,首先启动所述基板管理控制器,以将所述基板管理控制器作为所述电子设备的可信根;从所述板卡设备中确认其固件待验证的目标板卡设备;然后,使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性,利用所述基板管理控制器检测所述目标板卡设备的固件的合法性,即从可信的基板管理控制器出发,对所有电子设备内带有待验证固件的硬件发起可信验证流程,一方面,实现了基于扁平化的可信链的电子设备固件安全检测方案;另一方面,极大地保障了电子设备作为基础硬件平台的安全性,可有效对抗敌对情报机构、商业间谍等对电子设备硬件的后面植入。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的电子设备的固件安全检测方法或电子设备的固件安全检测装置的示例性系统架构的示意图;
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;
图3示意性示出了根据本公开的一实施例的电子设备的固件安全检测方法的流程图;
图4示出了图3中所示的步骤S310在一实施例中的处理过程示意图;
图5示意性示出了根据本公开的一实施例的BMC的可信启动过程的示意图;
图6示意性示出了根据本公开的又一实施例的电子设备的固件安全检测方法的流程图;
图7示出了图3中所示的步骤S330在一实施例中的处理过程示意图;
图8示意性示出了根据本公开的再一实施例的电子设备的固件安全检测方法的流程图;
图9示出了图3中所示的步骤S340在一实施例中的处理过程示意图;
图10示出了图9中所示的步骤S341在一实施例中的处理过程示意图;
图11示出了图9中所示的步骤S341在另一实施例中的处理过程示意图;
图12示意性示出了根据本公开的一实施例的BMC与各平台固件的连接的示意图;
图13示意性示出了根据本公开的再一实施例的电子设备的固件安全检测方法的流程图;
图14示意性示出了根据本公开的一实施例的电子设备的固件安全检测装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本公开实施例的电子设备的固件安全检测方法或电子设备的固件安全检测装置的示例性系统架构100的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备101、102、103以及服务器105可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务器105可以是提供各种服务的服务器。例如服务器105启动服务器105的基板管理控制器;并从服务器105的板卡设备中确认其固件待验证的目标板卡设备;使用所述基板管理控制器检测服务器105的基本输入输出系统的固件的合法性;利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
又如终端设备103(也可以是终端设备101或102)可以是智能电视、VR(VirtualReality,虚拟现实)/AR(Augmented Reality,增强现实)头盔显示器、或者其上安装有即时通讯、导航、视频应用程序(application,APP)等的移动终端例如智能手机、平板电脑等,用户可以通过该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP向服务器105发送各种请求。服务器105可以基于该请求,获取响应于所述请求的反馈信息返回给该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP,进而通过该智能电视、VR/AR头盔显示器或者该即时通讯、视频APP将返回的反馈信息显示。
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU,Central Processing Unit)201,其可以根据存储在只读存储器(ROM,Read-Only Memory)202中的程序或者从储存部分208加载到随机访问存储器(RAM,Random Access Memory)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU 201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和/或装置中限定的各种功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(RadioFrequency,射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块和/或单元和/或子单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的模块和/或单元和/或子单元也可以设置在处理器中。其中,这些模块和/或单元和/或子单元的名称在某种情况下并不构成对该模块和/或单元和/或子单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3或图4或图6或图7或图8或图9或图10或图11或图13所示的各个步骤。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本公开实施例提供的技术方案涉及云安全(Cloud Security)。
云安全是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1.云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2.安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3.云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
目前,基于服务器平台的外部硬件或者板卡的木马后门已有真实攻击曝光,如Vault7项目中的Sonic Screwdriver(音速起子),可用于破坏BIOS的密码。另有2sigma的Thunderstrike2攻击演示,实现了固件后门的蠕虫式传播,即从恶意的PCIE网卡传染至干净的BIOS,再从被污染的BIOS传染至干净的PCIE网卡设备。
对于服务器平台的外设硬件或者板卡的固件安全检测,相关技术中包括以下两种方案:
第一种方案是:基于UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)Secure Boot(安全引导)进行,Secure Boot技术依赖UEFI BIOS执行框架,在UEFI BIOS启动过程中的BDS(Boot Device Select,启动设备选择)阶段,检测PCIE外设硬件的OptionRom是否符合BIOS内预置的HASH(哈希)或证书签名,以此来决定是否加载该OptionRom。
但是,一方面,该检测手段局限于UEFI BIOS启动过程下的OptionRom部分,即Secure Boot技术仅检测BIOS启动中需要额外加载的OptionRom固件部分,其仅属于外设硬件或板卡固件自身的一小部分,故与BIOS无关的固件部分无法通过Secure Boot检测。具体的,板卡固件可以理解为两部分,第一部分是板卡自身操作系统启动的最关键原始的固件,只要加电就自动运行;第二部分是主板BIOS为实现板卡高级功能时,BIOS程序主动询问板卡所获取的一个功能包程序,BIOS加载此功能包程序后才能实现板卡的高级功能;而UEFISecure Boot技术只能验证第二部分,不能验证第一部分。另一方面,Secure Boot技术构建于UEFI BIOS启动过程之上,必须在每次启动时进行检测,检测的时机被固化在BIOS启动之后和操作系统运行之前,无法实时检测平台硬件是否被非法篡改,局限性非常大。另外,Secure Boot技术仅能检测PCIE总线上的外设,对于非PCIE总线外设无法检测,具有很大的局限性。
第二种方案是:基于BMC(Baseboard Management Controller,基板管理控制器)的服务器安全启动技术,将BMC固件纳入了TCM(Trusted Cryptography Module,可信密码模块)与TPCM(Trusted Platform Control Model,可信平台控制模块)的度量流程中,保证了BMC固件的可信。
但是,上述安全启动技术仅将BMC纳入可信计算度量过程,其他平台硬件或者外设的度量未能独立纳入,保护范围有限。该安全启动技术是TPM(Trusted Platform Module,可信平台模块)方案的改进版,可信计算度量容量有限,仅使用固定的8个寄存器判断服务器固件的变更情况,所以必然存在多个硬件共用寄存器,即多个外设OptionRom固件度量均共用同一个度量PCR(platform configuration register,平台状态寄存器)并以HASH形式表现,故不能称为独立纳入。此外,被共用寄存器的几个板卡固件之间也无法直观确认是哪个板卡固件出现问题,即无法直观反映出是哪一个外设具有安全隐患。
同时,上述两种检测方法均基于TPM或BIOS作为检测可信根,从系统机动到可信根到被检测固件之间存在多层信任链迭代。如加电前Bootguard阶段作为可信根,校验UEFIBIOS的SEC(Security,安全)+PEI(Pre-EFI Initialization Environment,预置可扩展固件接口初始化环境)阶段;然后,PEI阶段作为可信链条,校验DXE(Driver ExecutionEnvironment,驱动执行环境)阶段;接着,DXE阶段作为可信链条,启动Secure Boot验证程序;最终,Secure Boot验证程序作为可信链条,检测PCIE总线设备的OptionRom固件部分。
上述相关技术中,是逐级验证多层传递,所以信任链本身的定义与程序实现,均要依赖多个不同的供应商相互协作,由于可信链条的多次传递过程中,校验的程序供应商不同,可以调用计算资源不同,况且各个供应商的实现水平参差不齐,导致理论上完备的方法论,在实际服务器上无法真正保障技术的完备性,实际环境下被多次发现绕过漏洞,导致可信链条自身可信度降低,最终验证的固件安全性结论存疑。
图3示意性示出了根据本公开的一实施例的电子设备的固件安全检测方法的流程图。本公开实施例提供的方法可以由任意具备计算处理能力的电子设备执行,例如如图1中的服务器105。在下面的举例说明中,以服务器为执行主体进行示例说明。
本公开实施例中,所述电子设备可以包括基本输入输出系统(BIOS)和基板管理控制器(BMC)并安装有板卡设备等附加硬件,且带有与之对应的固件程序。
本公开实施例中,BIOS是直接固化在主板上的核心软件系统,保存着服务器最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。开机后BIOS从ROM等存储器读写系统设置的具体信息,为服务器提供最底层的、最直接的硬件设置和控制。BMC管理系统是服务器主板上独立于操作系统之外的嵌入式管理子系统,作用是利用虚拟的键盘、界面、鼠标、电源等为服务器提供远程管理功能。用户可以利用BMC监视服务器的物理特征,如各部件的温度、电压、风扇工作状态、电源供应以及机箱入侵等。BMC可以在机器未开机的状态下,对机器进行固件升级、查看机器设备等一些操作。
在下面的实施例中,均以所述电子设备为服务器平台为例进行举例说明,提出一种针对服务器平台固件安全的检测方案,可以用于加强服务器节点的安全防护,尤其是涉及敏感隐私数据处理的高度重要服务器。将服务器BMC作为功能核心,提升服务器自身硬件与外插板卡的安全感知能力。所述服务器平台可以包括服务器厂商或OEM(OriginalEquipment Manufacturer,原始设备制造商)厂商提供的BMC固件与配套电路等,例如ILO、iDrac、MegaRac SP-X等。具体的,在下面的举例说明中使用MegaRac SP-X的x86服务器为例进行说明。此时所述板卡设备例如可以包括网卡、Raid(Redundant Arrays ofIndependent Drives,磁盘阵列)卡、FC(Fiber Ethernet Adapter,光纤卡)卡等中的任意一种或者多种,本公开对此不做限定,所述板卡设备可以是任意一种安装于服务器平台上的自带或者外设硬件。
可以理解的是,所述电子设备并不限于服务器平台,在其他实施例中,所述电子设备还可以为网络设备,例如路由器、交换机等中的任意一种,利用本公开实施例提供的方案可以进行网络设备运营过程中的后门植入检测。此时所述板卡设备可以包括为插入至网络设备的各类IPS(Intrusion Prevention System,入侵防御系统)、IDS(IntrusionDetection Systems,入侵检测系统)、防火墙、反病毒模块卡等中的任意一种或者多种,可以对这些插入的板卡设备进行安全检测,从而发现路由器、交换机等固件内的隐蔽后门。
如图3所示,本公开实施例提供的电子设备的固件安全检测方法可以包括以下步骤。
在步骤S310中,启动所述基板管理控制器。
在步骤S320中,从所述板卡设备中确认其固件待验证的目标板卡设备。
本公开实施例中,BMC完成启动过程后,可以通过南桥芯片或其他专用外部总线枚举当前服务器所有自带或外设硬件板卡设备,确认其中带有固件待验证的板卡设备作为目标板卡设备。其中,南桥芯片本身的功能包括连接外设,因此可以通过南桥芯片实现枚举外设板卡的功能。具体的,可以通过设定白名单或者黑名单,指定哪些板卡设备的固件需要验证。
在步骤S330中,使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性。
在步骤S340中,利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
本公开实施方式提供的电子设备的固件安全检测方法,针对包括基本输入输出系统和基板管理控制器并安装有板卡设备的电子设备,首先启动所述基板管理控制器,以将所述基板管理控制器作为所述电子设备的可信根;从所述板卡设备中确认其固件待验证的目标板卡设备;然后,使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性,利用所述基板管理控制器检测所述目标板卡设备的固件的合法性,即从可信的基板管理控制器出发,对所有电子设备内带有待验证固件的硬件发起可信验证流程,一方面,实现了基于扁平化的可信链的电子设备固件安全检测方案;另一方面,极大地保障了电子设备作为基础硬件平台的安全性,可有效对抗敌对情报机构、商业间谍等对电子设备硬件的后面植入。
本公开实施例中,所述基板管理控制器的固件可以包括启动程序、固件验证程序和基板管理控制器固件证书公钥/哈希以及基板管理控制器核心固件程序、基板管理控制器功能包和基本输入输出系统与板卡设备的证书/哈希。
其中,所述启动程序、所述固件验证程序和所述基板管理控制器固件证书公钥/哈希可以存储于第一存储器。
例如,所述第一存储器可以为ROM,但本公开并不限定于此。
其中,所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希可以存储于第二存储器。
例如,所述第二存储器可以为SPI(Serial Peripheral Interface,串行外设接口)Flash(闪存)芯片,但本公开并不限定于此。
其中,可以分别采用基板管理控制器证书私钥对所述基板管理控制器核心固件程序(BMC核心固件程序)、所述基板管理控制器功能包(BMC功能包,即BMC附加功能模块)和所述基本输入输出系统与板卡设备的证书/哈希(即服务器平台其他固件证书/HASH)进行签名。
本公开实施例中,可以使用同一个证书/哈希或者三个不同的证书/哈希分别对BMC核心固件程序、BMC功能包和服务器平台其他固件证书/HASH进行签名,通过签名三次,使得BMC核心固件程序、BMC功能包和服务器平台其他固件证书/HASH这三个包可以分别更新,而不需要每次全体一次性更新,可以改善这三个包的运维性。
图4示出了图3中所示的步骤S310在一实施例中的处理过程示意图。如图4所示,本公开实施例中,上述步骤S310可以进一步包括以下步骤。
在步骤S311中,在所述电子设备的电源通电后,对所述基板管理控制器和所述板卡设备加电。
本公开实施例中,CPLD中加入了控制主板电源上电时序的逻辑功能,CPLD可以通过IIC(Inter-Integrated Circuit,集成电路)总线与BMC连接,为了实现扁平化可信链的建立,首先修改服务器CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)的加电逻辑,使得BMC能够控制CPLD的加电逻辑,即在CPU上电之前,BMC能够向CPLD发送时序逻辑控制指令,实现主板的上电时序控制,实现以下功能:
第一,服务器主板的电源通电后,BMC与外设板卡设备优先加电启动,BMC向CPLD发送命令,控制CPU不加电,以进行BMC固件的可信引导。
第二,BMC具备决定外设板卡设备的断电屏蔽与解除屏蔽的能力。
第三,BMC具备决定变更CPU加电状态的能力。
以上能力具备后,服务器的启动过程如下所述:BMC、南桥芯片、网卡、Raid卡、FC卡等外设板卡首先加电,CPU不加电,保障BIOS不启动。
在步骤S312中,加载所述启动程序。
然后,在服务器电源通电后,BMC处理器芯片可以从ROM中加载启动程序(例如uboot),完成最小启动环境初始化。
在步骤S313中,加载所述固件验证程序,根据所述基板管理控制器固件证书公钥/哈希验证所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希。
之后,在最小启动环境中加载固件验证程序与BMC固件证书公钥/HASH,验证BMC核心固件程序、附加功能模块、服务器平台其他固件证书/HASH是否符合ROM中预置的证书/HASH。
在步骤S314中,若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证通过,则加载所述基板管理控制器核心固件程序和所述基板管理控制器功能包。
下面以图5的实例对BMC的可信启动过程进行举例说明。
图5示意性示出了根据本公开的一实施例的BMC的可信启动过程的示意图。
如图5所示,BMC固件包可以分割为两个部分,a)BMC固件证书公钥/HASH、固件验证程序和最小化启动程序,该部分可以存储于只读存储器(ROM)中,作为全服务器初始核心可信根;b)BMC核心固件程序、BMC功能包和平台其他固件证书/HASH,该部分可以存储于可读可写闪存芯片中,例如SPI Flash芯片,其中可以采用证书私钥分别对BMC核心固件程序、BMC功能包和平台其他固件证书进行签名。其中,这里的平台其他固件证书/HASH包括服务器上需要验证的BIOS和板卡设备的固件预置在BMC中的证书或HASH。
当BMC加电后,从ROM中读取最小化启动程序进行运行,然后,运行ROM中的固件验证程序,加载ROM中的BMC固件证书公钥/HASH,然后分别验证SPI Flash中的BMC核心固件程序、附加功能模块和平台其他固件证书/HASH三部分证书签名的合法性。若BMC核心固件程序、附加功能模块和平台其他固件证书/HASH通过验证,说明BMC满足安全可信启动条件,继续加载BMC核心固件程序和附加功能模块,完成BMC启动过程。
本公开实施方式提供的电子设备的固件安全检测方法,在BMC上电启动过程中,分别对BMC核心固件程序、BMC功能包和平台其他固件证书/HASH进行安全性验证,从而可以建立起系统平台的可信执行环境。
图6示意性示出了根据本公开的又一实施例的电子设备的固件安全检测方法的流程图。如图6所示,与上述实施例相比,本公开实施例提供的方法还可以包括以下步骤。
在步骤S610中,若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证未通过,则终止启动所述基板管理控制器。
在步骤S620中,生成并发送第一告警信息。
本公开实施例中,若BMC核心固件程序、附加功能模块、平台其他固件证书/HASH无法通过验证,说明存在存储媒体故障,或存储内容意外修改,BMC固件镜像文件不可信,此时将终止BMC启动过程,并可以通过服务器的LED(Light Emitting Diode,发光二极管)面板和/或蜂鸣器等对错误状态进行告警,本公开对告警的形式不进行限制。
图7示出了图3中所示的步骤S330在一实施例中的处理过程示意图。如图7所示,本公开实施例中上述步骤S330可以进一步包括以下步骤。
在步骤S331中,所述基板管理控制器通过第一总线向第一多路选择器发送第一控制指令。
例如,所述第一总线可以为SPI总线,则所述第一控制指令的格式符合SPI协议,但本公开并不限定于此,当所述第一总线的类型发生变化时,所述第一控制指令的格式相应发生改变。所述第一控制指令是用于获取BIOS的固件镜像文件的。所述第一多路选择器可以为第一MUX(multiplexer,数据选择器)。
在步骤S332中,所述第一多路选择器根据所述第一控制指令,通过所述第一总线读取所述基本输入输出系统的固件镜像文件,并返回至所述基板管理控制器,其中所述基本输入输出系统的固件镜像文件存储于基于第一总线协议的第一存储芯片。
例如,BIOS的固件镜像文件可以存储于基于SPI协议的闪存芯片中,但本公开并不限定于此。
在步骤S333中,所述基板管理控制器根据所述基本输入输出系统的固件镜像文件与所述基本输入输出系统的证书/哈希,验证所述基本输入输出系统的固件的合法性。
本公开实施方式提供的电子设备的固件安全检测方法,将BMC通过专用物理总线(例如SPI总线)连接于存储BIOS的固件镜像文件的第一存储芯片,可以直接读取该第一存储芯片内的BIOS固件镜像文件,不需要借助共享物理总线(例如PCIE总线),可以进一步提高计算机系统底层的安全性。
图8示意性示出了根据本公开的再一实施例的电子设备的固件安全检测方法的流程图。如图8所示,与上述其他实施例相比,其不同之处在于,本公开实施例提供的方法还可以包括以下步骤。
在步骤S810中,若所述基本输入输出系统的固件通过验证,则启动所述基本输入输出系统。
在步骤S820中,若所述基本输入输出系统的固件未通过验证,则禁止所述基本输入输出系统启动,生成并发送第二告警信息。
BMC和BIOS是服务器中最重要的基础固件。但是在应用过程中BMC固件有可能受到篡改和完整性破坏,并不能保证安全和可信。而近年来BIOS已成为一些病毒和木马等攻击的主要目标,一旦BIOS被恶意控制,能够对硬件、文件系统、操作系统和特定软件进行篡改和破坏,因此固件层的木马具有极强的攻击能力,更加难以发现和清除。本公开实施例提供的方法,采用BMC完成对服务器的可信启动控制。在服务器上电启动之前,首先对BMC和BIOS固件进行完整性度量,确保固件没有被恶意篡改,只有BMC和BIOS通过完整性检测后,服务器才能上电启动,进而构建起完整的信任链,确保系统平台执行环境的可信。
图9示出了图3中所示的步骤S340在一实施例中的处理过程示意图。如图9所示,本公开实施例中,上述步骤S340可以进一步包括以下步骤。
在步骤S341中,通过所述基板管理控制器逐一轮询所述目标板卡设备,验证所述目标板卡设备的固件是否符合所述板卡设备的证书/哈希。
其中,轮询(Polling)是一种CPU决策如何提供周边设备服务的方式,又称“程控输入输出”(Programmed I/O),由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
在步骤S342中,若所述目标板卡设备的固件未通过验证,则将未通过验证的目标板卡设备记录为非安全设备。
在步骤S343中,对所述非安全设备进行自动化处理。
在示例性实施例中,对所述非安全设备进行自动化处理,可以包括:执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者将所述非安全设备屏蔽或断电,生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者禁止所述基本输入输出系统初始化过程和所述电子设备的操作系统启动。
例如,当检测到不符合预期的固件镜像时,可调用CPLD接口对该固件对应的硬件板卡设备进行断电处理,实现操作系统启动时无法感知该硬件板卡设备的存在。
以MegaRac SP-X为例,可通过对服务器BMC的硬件配套改造,实现BMC自身固件与启动过程可信,建立平台硬件安全检测的可信根。服务器上架加电后,首先对BMC进行可信启动过程,同时对南桥芯片加电初始化,并对BIOS、CPU延迟加电启动。BMC完成启动过程后,通过南桥芯片或其他专用外部总线枚举当前服务器所有自带或外设硬件板卡设备,确认其中带有固件需验证的目标板卡设备。获取到待验证的设备列表后,BMC将逐一轮询各个目标板卡设备,验证其固件是否符合BMC可信存储内预置的证书或HASH,并记录下验证结果。当BMC验证发现不匹配的结果将记录至安全事件日志中,或同步到预设的日志服务器。同时未通过安全验证的板卡设备可选择不同的自动化处置方式,例如对该未通过验证的板卡设备不做任何处置,并执行BIOS初始化过程,启动操作系统;或者,将该未通过验证的板卡设备屏蔽或断电,无法被BIOS与操作系统发现,并执行BIOS初始化过程,启动操作系统;或者,触发该未通过验证的板卡设备自带的固件备份机制(如果有),并再次验证;或者,对该未通过验证的板卡设备不做任何处置,并禁止BIOS初始化与操作系统启动。
本公开实施例中,主板BIOS存在于南桥芯片直连的SPI Flash闪存中,故需要检测主板BIOS固件时,需要对南桥芯片加电。此外,若需要共享PCIE总线读取其他板卡固件,也需要对南桥芯片加电,初始化PCIE总线。
本公开实施方式提供的电子设备的固件安全检测方法,针对外设硬件生态复杂的电子设备,当建立BMC作为可信根后,后续电子设备的所有的硬件外设的固件验证均由BMC来发起和执行,在BIOS与操作系统启动前完成外设固件的状态确认,提交检测结果,实现了可信链的扁平化验证,并自动化处置不安全的外设,而不像相关技术中需要可信链条的多层传递,因此,信任链本身的定义与程序实现,不需要依赖多个不同的供应商相互协作,从而可以保障例如服务器作为基础运算硬件平台的安全性,可有效对抗对服务器外设硬件的后门植入。
图10示出了图9中所示的步骤S341在一实施例中的处理过程示意图。本公开实施例中,所述目标板卡设备可以包括第一板卡设备。例如,若所述电子设备为服务器平台,所述第一板卡设备可以包括FC卡,但本公开并不限定于此。
如图10所示,本公开实施例中,上述步骤S341可以进一步包括以下步骤。
在步骤S3411中,所述基板管理控制器通过第一总线向第一多路选择器发送第二控制指令。
例如,当所述第一总线为SPI总线时,则所述第二控制指令的格式符合SPI协议,但本公开并不限定于此,当所述第一总线的类型发生变化时,所述第二控制指令的格式相应发生改变。所述第二控制指令是用于获取第一板卡设备例如FC卡的固件镜像文件的。
在步骤S3412中,所述第一多路选择器根据所述第二控制指令,通过所述第一总线读取所述第一板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第一板卡设备的固件镜像文件存储于基于第一总线协议的第二存储芯片。
在步骤S3413中,所述基板管理控制器根据所述第一板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第一板卡设备的固件的合法性。
本公开实施方式提供的电子设备的固件安全检测方法,通过第一总线实现BMC与存储有第一板卡设备的固件镜像文件的第二存储芯片连接,BMC直接读取第一板卡设备的固件镜像文件进行第一板卡设备的固件验证,既可以验证第一板卡设备的自身操作系统启动的最关键原始的固件,也可以验证第一板卡设备为实现高级功能的功能包程序。同时,通过专用物理总线例如SPI总线,还可以不借助共享物理总线实现固件验证,即可以对非PCIE总线外设实现固件验证。
图11示出了图9中所示的步骤S341在另一实施例中的处理过程示意图。本公开实施例中,所述目标板卡设备还可以包括第二板卡设备。例如,所述第二板卡设备可以为Raid卡或者网卡等中的任意一种。
如图11所示,本公开实施例中,上述步骤S341可以进一步包括以下步骤。
在步骤S3414中,所述基板管理控制器通过所述第一总线向所述第一多路选择器发送第三控制指令。
例如,当所述第一总线为SPI总线时,则所述第三控制指令的格式符合SPI协议,但本公开并不限定于此,当所述第一总线的类型发生变化时,所述第三控制指令的格式相应发生改变。所述第三控制指令是用于获取第二板卡设备例如Raid卡或者网卡等的固件镜像文件的。
在步骤S3415中,所述第一多路选择器通过所述第一总线将所述第三控制指令发送至第二总线至第一总线协议翻译器。
例如,第二总线至第一总线协议翻译器可以使用LPC2SPI,实际可以根据固件闪存芯片/控制器协议选择,如IIC等均是有可能的。
在步骤S3416中,所述第二总线至第一总线协议翻译器将所述第三控制指令发送至第二多路选择器。
在步骤S3417中,所述第二多路选择器根据所述第三控制指令,通过第二总线读取所述第二板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第二板卡设备的固件镜像文件存储于基于第二总线协议的第三存储芯片。
例如,所述第二总线可以为LPC(Low pin count,少引脚数)总线,但本公开并不限定于此。
在步骤S3418中,所述基板管理控制器根据所述第二板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第二板卡设备的固件的合法性。
本公开实施方式提供的电子设备的固件安全检测方法,通过第一总线和第二总线、多路选择器以及第二总线至第一总线协议翻译器,实现BMC与存储有第二板卡设备的固件镜像文件的第三存储芯片连接,BMC直接读取第二板卡设备的固件镜像文件进行第二板卡设备的固件验证,既可以验证第二板卡设备的自身操作系统启动的最关键原始的固件,也可以验证第二板卡设备为实现高级功能的功能包程序。同时,通过专用物理总线例如SPI总线和LPC总线,还可以不借助共享物理总线实现固件验证,即可以对非PCIE总线外设实现固件验证。
下面以SPI协议和LPC协议下的闪存为例,展示了本公开实施例对于SPI协议和非SPI协议闪存芯片的连线方式,实际应用中不限于SPI协议和LPC协议下的闪存。
需要说明的是,本公开实施例提供的方案可以检测任意一种总线外设的固件,原理为直接和板卡设备的固件存储芯片建立物理连接,固件存储芯片可以为SPI或LPC协议,图12以这两个协议举例,但不限于这两个协议。
图12示意性示出了根据本公开的一实施例的BMC与各平台固件的连接的示意图。本公开实施例中,BMC通过建立新的总线直接读取板卡固件闪存中的镜像文件进行验证。
如图12所示,BMC通过一条SPI总线连接第一个MUX,第一个MUX通过两条SPI总线分别连接至BIOS闪存(存储BIOS的固件镜像文件的闪存芯片)和FC卡闪存(存储FC卡的固件镜像文件的闪存芯片)。第一个MUX还通过另一条SPI总线连接至LPC2SPI(LPC协议至SPI协议的协议翻译器),LPC2SPI通过一条LPC总线连接至第二个MUX,第二个MUX通过两条LPC总线分别连接至Raid卡闪存(存储Raid卡的固件镜像文件的闪存芯片)和网卡闪存(存储网卡的固件镜像文件的闪存芯片)。
本公开实施例中,可信的BMC启动后,BMC作为可信根,发起后续的服务器平台固件验证流程,完成整个平台的固件安全状态检测。检测方式为通过多路选择器与协议翻译器组合,使得BMC可使用单一的SPI控制器(不限于采用SPI,也可以采用其他总线形式,此处使用SPI原因为BMC默认公版设计中,存在多个SPI控制器接口,存在最为广泛通用;而固件闪存芯片也以SPI协议最为广泛),对接入服务器硬件平台的板卡进行轮询,直接读取各板卡内的固件镜像文件,逐一检测固件合法性。
例如,BMC首先通过第一个MUX从BIOS闪存中读取BIOS固件镜像文件,并将其与BMC的SPI Flash中预先存储的BIOS固件的证书/HASH(在平台其他固件证书中)进行比较,看是否一致,若一致,则BIOS固件验证通过,若不一致,则BIOS固件验证未通过;然后,BMC通过第二个MUX从网卡闪存中读取网卡固件镜像文件,并将其与BMC的SPI Flash中预先存储的网卡固件的证书/HASH(在平台其他固件证书中)进行比较,看是否一致,若一致,则网卡固件验证通过,若不一致,则网卡固件验证未通过;然后,再通过第二个MUX从Raid卡闪存中读取Raid卡固件镜像文件,并将其与BMC的SPI Flash中预先存储的Raid卡固件的证书/HASH(在平台其他固件证书中)进行比较,看是否一致,若一致,则Raid卡固件验证通过,如不一致,则Raid卡固件验证未通过;最后,再通过第一个MUX从FC卡闪存中读取FC卡固件镜像文件,并将其与BMC的SPI Flash中预先存储的FC卡固件的证书/HASH(在平台其他固件证书中)进行比较,看是否一致,若一致,则FC卡固件验证通过,若不一致,则FC卡固件验证未通过。
本公开实施例中,对电子设备上的每个硬件的固件检测结果专用一个记录,不存在共用寄存器情况,可以直观的反映出是哪个板卡设备出现了安全问题。
本公开实施例提供的方案可以适用于自动取款机场景,例如对无人看护的自动取款机定期安检,确保其中的验钞模块、摄像头模块等未被篡改固件。自动取款机主流配置为x86服务器,可直接复用上述方案。但本公开实施例提供的方案不局限于x86服务器,还可以适用于ARM(Advanced RISC(Reduced Instruction Set Computing,精简指令集计算机)Machines,RISC微处理器)、MIPS(Microprocessor without interlocked piped stagesarchitecture,无内部互锁流水级的微处理器)等架构的服务器,只要存在BMC,即可能通过小幅度修正实现。若改为其他服务器,首先要有BMC,其次要做加电顺序改造,最后要做硬件总线协议适配。
图12的实施例是BMC采用专用物理总线实现对平台其他固件依次轮询的示意图。但在其他实施例中,BMC也可共用PCIE总线,并使用MCTP(Management ComponentTransport Protocol,管理组件传输协议)协议访问固件存储芯片实现相应功能,但共用PCIE总线需要依赖PCIE桥接设备,可能被PCIE桥接设备欺骗。
在其他实施例中,若电子设备为网络设备,则可以首先进行BMC的可信启动;然后通过BMC去依次轮询验证路由器、交换机等网络设备上安装的各类IPS、IDS、防火墙和反病毒模块卡的固件的合法性。可以理解的是,本公开实施例的方案可以适应于任意的具备BMC的电子设备,当电子设备发生改变时,相应的板卡设备也可以适应性改变。
在示例性实施例中,所述方法还可以包括:若所述基本输入输出系统和所述目标板卡设备的固件均验证通过,则执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;在所述操作系统的运行过程中,再次利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
在示例性实施例中,所述方法还可以包括:若所述目标板卡设备未通过再次验证,则触发所述目标板卡设备所在总线的热插拔事件。
本公开实施例中,该安全检测过程可在操作系统启动之后触发,上报不安全的检测结果动作与上述实施例一致。但由于此时板卡设备已被操作系统完成初始化,不能直接屏蔽未通过安全验证的板卡设备或断电,处置动作可以变为:不做任何处置;或者,触发该未通过安全验证的板卡设备所在硬件总线的热插拔事件(如果该硬件总线支持)。即将检测不通过的板卡设备从总线上拔下来。
本公开实施例提供的方法,不限于在操作系统启动前发起检测,操作系统运行过程中同样可以发起实时检测过程,并可以在检测到非安全设备时,通知到服务器运维相关人员进行处置。当服务器管理员通过BMC控制台界面或日志运维系统发现存在服务器硬件的固件安全异常时,管理员可选择忽视该硬件异常,继续加载该硬件并启动操作系统;或者,再次触发固件安全检测;或者,服务器关机并拆除存在安全问题的外设固件。
本公开实施方式提供的电子设备的固件安全检测方法,针对服务器平台外设硬件生态复杂,相关技术中的防护手段局限性大的问题,提出一种基于扁平化可信链的服务器平台固件检测方案。首先对服务器的BMC进行安全加固,实现可信根建立,再从BMC出发借助专用或共享物理总线,对服务器内所有带有固件的外设发起可信验证流程,在BIOS与操作系统启动前完成外设固件的状态确认,提交检测结果,自动化处置不安全的外设。同时,操作系统运行过程中同样可发起实时检测过程。本公开实施例提出了一种具备可行性的,任意时刻下的服务器平台固件安全检测方法,涉及服务器平台硬件与固件改造,极大的保障了服务器作为基础运算硬件平台的安全性,可有效对抗敌对情报机构、商业间谍对服务器外设硬件的后门植入。
下面以服务器上带有固件的设备含BMC、BIOS、网卡、Raid卡和FC卡为例进行举例说明。
图13示意性示出了根据本公开的再一实施例的电子设备的固件安全检测方法的流程图。如图13所示,本公开实施例提供的方法可以包括以下步骤。
在步骤S1301中,服务器加电。
在步骤S1302中,判断BMC可信启动是否失败;若失败,则进入步骤S1403;若验证通过,则跳转到步骤S1404。
在步骤S1303中,服务器启动终止,前面板LED与蜂鸣器告警。
本公开实施例中,BMC进行可信启动流程,若可信启动因故未能通过,则终止服务器启动过程,通过前面板LED、蜂鸣器告警;若可信启动通过,则继续启动流程。
在步骤S1304中,BMC依次对BIOS、网卡、Raid卡、FC卡的固件进行验证。
本公开实施例中,BMC对BIOS、网卡、Raid卡、FC卡等附加板卡依次发起固件验证流程,检测其固件签名证书或HASH是否符合BMC预置的证书或HASH。
需要说明的是,并不限定BIOS、网卡、Raid卡、FC卡的固件验证的顺序,这里检测本身因为是依赖BMC的单个接口,所以一次只能检测一个,但是检测顺序并不关心。若可以采用BMC的多个接口进行检测,也可以对BIOS、网卡、Raid卡、FC卡进行并行验证。
在步骤S1305中,若BIOS固件验证未通过,则CPU不加电,禁止BIOS启动,并生成告警日志。
本公开实施例中,若BIOS固件检测结果不符合BMC预置的证书或HASH,则不对CPU加电启动BIOS,即禁止BIOS启动,并生成告警日志待管理员处理。
在步骤S1306中,若BIOS固件验证通过,但网卡固件验证未通过,则屏蔽网卡,并生成告警日志,无网卡,CPU加电,BIOS启动。
在步骤S1307中,若BIOS固件验证通过,但Raid卡固件验证未通过,则屏蔽Raid卡,并生成告警日志,无Raid卡,CPU加电,BIOS启动。
在步骤S1308中,若BIOS固件验证通过,但FC卡固件验证未通过,则屏蔽FC卡,并生成告警日志,无FC卡,CPU加电,BIOS启动。
本公开实施例中,BMC首先对BIOS固件进行验证,若BIOS固件验证通过,则BMC继续对网卡固件进行验证,若网卡固件验证未通过,则可以选择预定义的处置策略a)屏蔽网卡,生成告警,继续BIOS启动流程;b)不屏蔽网卡,生成告警,继续BIOS启动;不管网卡固件是否验证通过,BMC下一步均会继续对Raid卡固件进行验证,若Raid卡固件验证未通过,则可以选择预定义的处置策略a)屏蔽Raid卡,生成告警,继续BIOS启动流程;b)不屏蔽Raid卡,生成告警,继续BIOS启动;不管Raid卡固件是否验证通过,BMC下一步均会继续对FC卡固件进行验证,若FC卡固件验证未通过,则可以选择预定义的处置策略,例如以下2类策略:a)屏蔽FC卡,生成告警,继续BIOS启动流程;b)不屏蔽FC卡,生成告警,继续BIOS启动。
在步骤S1309中,若BIOS、网卡、Raid卡和FC卡的固件均验证通过,则CPU加电,BIOS正常启动。
本公开实施例中,若BIOS固件等所有平台固件均无异常,则正常为CPU加电,即BIOS启动直至操作系统加载的正常流程。
服务器平台固件后门由于其高权限、高隐蔽的特点,无法通过传统安全软件直接发现。现有行业安全方案也无法完整覆盖服务器外设固件的全部组成部分。本公开实施例通过建立可信的BMC作为服务器平台固件安全检测主体,提出了一种基于扁平化可信链的服务器平台固件安全检测方案,BMC的可信启动过程是服务器电源通电后的第一个固件验证流程,决定了扁平化可信链的可信根建立。可信的BMC启动后,BMC作为可信根,发起后续的服务器平台固件验证流程,完成整个平台的固件安全状态检测。解决了无交互的服务器平台固件安全检测难题,极大的提升了计算机系统的底层安全性,保障了服务器上的敏感数据无法通过固件后门等非传统手段威胁。
图14示意性示出了根据本公开的一实施例的电子设备的固件安全检测装置的框图。本公开实施例中,所述电子设备可以包括基本输入输出系统和基板管理控制器并安装有板卡设备。
如图14所示,本公开实施方式提供的电子设备的固件安全检测装置1400可以包括:基板管理控制启动模块1410、目标板卡设备确认模块1420、基本系统固件检测模块1430以及板卡设备固件检测模块1440。
其中,基板管理控制启动模块1410可以配置为启动所述基板管理控制器。目标板卡设备确认模块1420可以配置为从所述板卡设备中确认其固件待验证的目标板卡设备。基本系统固件检测模块1430可以配置为使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性。板卡设备固件检测模块1440可以配置为利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
在示例性实施例中,所述基板管理控制器的固件可以包括启动程序、固件验证程序和基板管理控制器固件证书公钥/哈希以及基板管理控制器核心固件程序、基板管理控制器功能包和基本输入输出系统与板卡设备的证书/哈希。其中,基板管理控制启动模块1410可以包括:优先加电单元,可以配置为在所述电子设备的电源通电后,对所述基板管理控制器和所述板卡设备加电;启动程序加载单元,可以配置为加载所述启动程序;固件验证程序加载单元,可以配置为加载所述固件验证程序,根据所述基板管理控制器固件证书公钥/哈希验证所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希;基板管理控制可信启动单元,可以配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证通过,则加载所述基板管理控制器核心固件程序和所述基板管理控制器功能包。
在示例性实施例中,电子设备的固件安全检测装置1400还可以包括:基板管理控制终止模块,可以配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证未通过,则终止启动所述基板管理控制器;第一告警模块,可以配置为生成并发送第一告警信息。
在示例性实施例中,所述启动程序、所述固件验证程序和所述基板管理控制器固件证书公钥/哈希可以存储于第一存储器;所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希可以存储于第二存储器;可以分别采用基板管理控制器证书私钥对所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希进行签名。
在示例性实施例中,所述基本系统固件检测模块可以包括:第一指令发送单元,可以配置为所述基板管理控制器通过第一总线向第一多路选择器发送第一控制指令;第一固件镜像文件读取单元,可以配置为所述第一多路选择器根据所述第一控制指令,通过所述第一总线读取所述基本输入输出系统的固件镜像文件,并返回至所述基板管理控制器,其中所述基本输入输出系统的固件镜像文件存储于基于第一总线协议的第一存储芯片;第一固件验证单元,可以配置为所述基板管理控制器根据所述基本输入输出系统的固件镜像文件与所述基本输入输出系统的证书/哈希,验证所述基本输入输出系统的固件的合法性。
在示例性实施例中,电子设备的固件安全检测装置1400还可以包括:基本输入输出系统启动模块,可以配置为若所述基本输入输出系统的固件通过验证,则启动所述基本输入输出系统;基本输入输出系统禁止模块,可以配置为若所述基本输入输出系统的固件未通过验证,则禁止所述基本输入输出系统启动,生成并发送第二告警信息。
在示例性实施例中,所述板卡设备固件检测模块可以包括:板卡固件验证单元,可以配置为通过所述基板管理控制器逐一轮询所述目标板卡设备,验证所述目标板卡设备的固件是否符合所述板卡设备的证书/哈希;非安全设备记录单元,可以配置为若所述目标板卡设备的固件未通过验证,则将未通过验证的目标板卡设备记录为非安全设备;自动化处理单元,可以配置为对所述非安全设备进行自动化处理。
在示例性实施例中,所述目标板卡设备可以包括第一板卡设备。其中,所述板卡固件验证单元可以包括:第二指令发送子单元,可以配置为所述基板管理控制器通过第一总线向第一多路选择器发送第二控制指令;第一固件镜像文件读取子单元,可以配置为所述第一多路选择器根据所述第二控制指令,通过所述第一总线读取所述第一板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第一板卡设备的固件镜像文件存储于基于第一总线协议的第二存储芯片;第一固件验证子单元,可以配置为所述基板管理控制器根据所述第一板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第一板卡设备的固件的合法性。
在示例性实施例中,所述目标板卡设备还包括可以第二板卡设备。其中,所述板卡固件验证单元还可以包括:第三指令发送子单元,可以配置为所述基板管理控制器通过所述第一总线向所述第一多路选择器发送第三控制指令;第三指令转发子单元,可以配置为所述第一多路选择器通过所述第一总线将所述第三控制指令发送至第二总线至第一总线协议翻译器;第三指令翻译子单元,可以配置为所述第二总线至第一总线协议翻译器将所述第三控制指令发送至第二多路选择器;第二固件镜像文件读取子单元,可以配置为所述第二多路选择器根据所述第三控制指令,通过第二总线读取所述第二板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第二板卡设备的固件镜像文件存储于基于第二总线协议的第三存储芯片;第二固件验证子单元,可以配置为所述基板管理控制器根据所述第二板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第二板卡设备的固件的合法性。
在示例性实施例中,所述自动化处理单元可以包括:第一执行子单元、第二执行子单元、第三执行子单元或者第四执行子单元。其中,所述第一执行子单元可以配置为执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第二执行子单元可以配置为将所述非安全设备屏蔽或断电,生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第三执行子单元可以配置为生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统。所述第四执行子单元可以配置为禁止所述基本输入输出系统初始化过程和所述电子设备的操作系统启动。
在示例性实施例中,电子设备的固件安全检测装置1400还可以包括:正常启动模块,可以配置为若所述基本输入输出系统和所述目标板卡设备的固件均验证通过,则执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;实时检测模块,可以配置为在所述操作系统的运行过程中,再次利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
在示例性实施例中,电子设备的固件安全检测装置1400还可以包括:热插拔模块,可以配置为若所述目标板卡设备未通过再次验证,则触发所述目标板卡设备所在总线的热插拔事件。
本公开实施例提供的电子设备的固件安全检测装置中的各个模块、单元和子单元的具体实现可以参照上述电子设备的固件安全检测方法中的内容,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块、单元和子单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块、单元和子单元的特征和功能可以在一个模块、单元和子单元中具体化。反之,上文描述的一个模块、单元和子单元的特征和功能可以进一步划分为由多个模块、单元和子单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (24)
1.一种电子设备的固件安全检测方法,其特征在于,所述电子设备包括基本输入输出系统和基板管理控制器并安装有板卡设备,所述基板管理控制器的固件包括所述基本输入输出系统的证书/哈希;其中,所述方法包括:
启动所述基板管理控制器;
从所述板卡设备中确认其固件待验证的目标板卡设备;
使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性,其包括:所述基板管理控制器通过第一总线向第一多路选择器发送第一控制指令;所述第一多路选择器根据所述第一控制指令,通过所述第一总线读取所述基本输入输出系统的固件镜像文件,并返回至所述基板管理控制器,其中所述基本输入输出系统的固件镜像文件存储于基于第一总线协议的第一存储芯片;所述基板管理控制器根据所述基本输入输出系统的固件镜像文件与所述基本输入输出系统的证书/哈希,验证所述基本输入输出系统的固件的合法性;
利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
2.根据权利要求1所述的方法,其特征在于,所述基板管理控制器的固件还包括启动程序、固件验证程序和基板管理控制器固件证书公钥/哈希以及基板管理控制器核心固件程序、基板管理控制器功能包和板卡设备的证书/哈希;其中,启动所述基板管理控制器,包括:
在所述电子设备的电源通电后,对所述基板管理控制器和所述板卡设备加电;
加载所述启动程序;
加载所述固件验证程序,根据所述基板管理控制器固件证书公钥/哈希验证所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希;
若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证通过,则加载所述基板管理控制器核心固件程序和所述基板管理控制器功能包。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证未通过,则终止启动所述基板管理控制器;
生成并发送第一告警信息。
4.根据权利要求2所述的方法,其特征在于,所述启动程序、所述固件验证程序和所述基板管理控制器固件证书公钥/哈希存储于第一存储器;所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希存储于第二存储器;分别采用基板管理控制器证书私钥对所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希进行签名。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述基本输入输出系统的固件通过验证,则启动所述基本输入输出系统;
若所述基本输入输出系统的固件未通过验证,则禁止所述基本输入输出系统启动,生成并发送第二告警信息。
6.根据权利要求2至4任一项所述的方法,其特征在于,利用所述基板管理控制器检测所述目标板卡设备的固件的合法性,包括:
通过所述基板管理控制器逐一轮询所述目标板卡设备,验证所述目标板卡设备的固件是否符合所述板卡设备的证书/哈希;
若所述目标板卡设备的固件未通过验证,则将未通过验证的目标板卡设备记录为非安全设备;
对所述非安全设备进行自动化处理。
7.根据权利要求6所述的方法,其特征在于,所述目标板卡设备包括第一板卡设备;其中,通过所述基板管理控制器逐一轮询各个目标板卡设备,验证其固件是否符合所述板卡设备的证书/哈希,包括:
所述基板管理控制器通过第一总线向第一多路选择器发送第二控制指令;
所述第一多路选择器根据所述第二控制指令,通过所述第一总线读取所述第一板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第一板卡设备的固件镜像文件存储于基于第一总线协议的第二存储芯片;
所述基板管理控制器根据所述第一板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第一板卡设备的固件的合法性。
8.根据权利要求7所述的方法,其特征在于,所述目标板卡设备还包括第二板卡设备;其中,通过所述基板管理控制器逐一轮询各个目标板卡设备,验证其固件是否符合所述板卡设备的证书/哈希,还包括:
所述基板管理控制器通过所述第一总线向所述第一多路选择器发送第三控制指令;
所述第一多路选择器通过所述第一总线将所述第三控制指令发送至第二总线至第一总线协议翻译器;
所述第二总线至第一总线协议翻译器将所述第三控制指令发送至第二多路选择器;
所述第二多路选择器根据所述第三控制指令,通过第二总线读取所述第二板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第二板卡设备的固件镜像文件存储于基于第二总线协议的第三存储芯片;
所述基板管理控制器根据所述第二板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第二板卡设备的固件的合法性。
9.根据权利要求6所述的方法,其特征在于,对所述非安全设备进行自动化处理,包括:
执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
将所述非安全设备屏蔽或断电,生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
禁止所述基本输入输出系统初始化过程和所述电子设备的操作系统启动。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述基本输入输出系统和所述目标板卡设备的固件均验证通过,则执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;
在所述操作系统的运行过程中,再次利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述目标板卡设备未通过再次验证,则触发所述目标板卡设备所在总线的热插拔事件。
12.一种电子设备的固件安全检测装置,其特征在于,所述电子设备包括基本输入输出系统和基板管理控制器并安装有板卡设备,所述基板管理控制器的固件包括所述基本输入输出系统的证书/哈希;所述装置包括:
基板管理控制启动模块,配置为启动所述基板管理控制器;
目标板卡设备确认模块,配置为从所述板卡设备中确认其固件待验证的目标板卡设备;
基本系统固件检测模块,配置为使用所述基板管理控制器检测所述基本输入输出系统的固件的合法性,所述基本系统固件检测模块包括:第一指令发送单元,配置为通过所述基板管理控制器通过第一总线向第一多路选择器发送第一控制指令;第一固件镜像文件读取单元,配置为通过所述第一多路选择器根据所述第一控制指令,通过所述第一总线读取所述基本输入输出系统的固件镜像文件,并返回至所述基板管理控制器,其中所述基本输入输出系统的固件镜像文件存储于基于第一总线协议的第一存储芯片;第一固件验证单元,配置为通过所述基板管理控制器根据所述基本输入输出系统的固件镜像文件与所述基本输入输出系统的证书/哈希,验证所述基本输入输出系统的固件的合法性;
板卡设备固件检测模块,配置为利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
13.根据权利要求12所述的装置,其特征在于,所述基板管理控制器的固件还包括启动程序、固件验证程序和基板管理控制器固件证书公钥/哈希以及基板管理控制器核心固件程序、基板管理控制器功能包和板卡设备的证书/哈希;其中,所述基板管理控制启动模块包括:
优先加电单元,配置为在所述电子设备的电源通电后,对所述基板管理控制器和所述板卡设备加电;
启动程序加载单元,配置为加载所述启动程序;
固件验证程序加载单元,配置为加载所述固件验证程序,根据所述基板管理控制器固件证书公钥/哈希验证所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希;
基板管理控制可信启动单元,配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证通过,则加载所述基板管理控制器核心固件程序和所述基板管理控制器功能包。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
基板管理控制终止模块,配置为若所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希验证未通过,则终止启动所述基板管理控制器;
第一告警模块,配置为生成并发送第一告警信息。
15.根据权利要求13所述的装置,其特征在于,所述启动程序、所述固件验证程序和所述基板管理控制器固件证书公钥/哈希存储于第一存储器;所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希存储于第二存储器;分别采用基板管理控制器证书私钥对所述基板管理控制器核心固件程序、所述基板管理控制器功能包和所述基本输入输出系统与板卡设备的证书/哈希进行签名。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括:
基本输入输出系统启动模块,配置为若所述基本输入输出系统的固件通过验证,则启动所述基本输入输出系统;
基本输入输出系统禁止模块,配置为若所述基本输入输出系统的固件未通过验证,则禁止所述基本输入输出系统启动,生成并发送第二告警信息。
17.根据权利要求13至15任一项所述的装置,其特征在于,所述板卡设备固件检测模块包括:
板卡固件验证单元,配置为通过所述基板管理控制器逐一轮询所述目标板卡设备,验证所述目标板卡设备的固件是否符合所述板卡设备的证书/哈希;
非安全设备记录单元,配置为若所述目标板卡设备的固件未通过验证,则将未通过验证的目标板卡设备记录为非安全设备;
自动化处理单元,配置为对所述非安全设备进行自动化处理。
18.根据权利要求17所述的装置,其特征在于,所述目标板卡设备包括第一板卡设备;其中,所述板卡固件验证单元包括:
第二指令发送子单元,配置为通过所述基板管理控制器通过第一总线向第一多路选择器发送第二控制指令;
第一固件镜像文件读取子单元,配置为通过所述第一多路选择器根据所述第二控制指令,通过所述第一总线读取所述第一板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第一板卡设备的固件镜像文件存储于基于第一总线协议的第二存储芯片;
第一固件验证子单元,配置为通过所述基板管理控制器根据所述第一板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第一板卡设备的固件的合法性。
19.根据权利要求18所述的装置,其特征在于,所述目标板卡设备还包括第二板卡设备;其中,所述板卡固件验证单元还包括:
第三指令发送子单元,配置为通过所述基板管理控制器通过所述第一总线向所述第一多路选择器发送第三控制指令;
第三指令转发子单元,配置为通过所述第一多路选择器通过所述第一总线将所述第三控制指令发送至第二总线至第一总线协议翻译器;
第三指令翻译子单元,配置为通过所述第二总线至第一总线协议翻译器将所述第三控制指令发送至第二多路选择器;
第二固件镜像文件读取子单元,配置为通过所述第二多路选择器根据所述第三控制指令,通过第二总线读取所述第二板卡设备的固件镜像文件,并返回至所述基板管理控制器,其中所述第二板卡设备的固件镜像文件存储于基于第二总线协议的第三存储芯片;
第二固件验证子单元,配置为通过所述基板管理控制器根据所述第二板卡设备的固件镜像文件与所述板卡设备的证书/哈希,验证所述第二板卡设备的固件的合法性。
20.根据权利要求17所述的装置,其特征在于,所述自动化处理单元包括:
第一执行子单元,配置为执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
第二执行子单元,配置为将所述非安全设备屏蔽或断电,生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
第三执行子单元,配置为生成第三告警信息,执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;或者
第四执行子单元,配置为禁止所述基本输入输出系统初始化过程和所述电子设备的操作系统启动。
21.根据权利要求12所述的装置,其特征在于,所述装置还包括:
正常启动模块,配置为若所述基本输入输出系统和所述目标板卡设备的固件均验证通过,则执行所述基本输入输出系统初始化过程,启动所述电子设备的操作系统;
实时检测模块,配置为在所述操作系统的运行过程中,再次利用所述基板管理控制器检测所述目标板卡设备的固件的合法性。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
热插拔模块,配置为若所述目标板卡设备未通过再次验证,则触发所述目标板卡设备所在总线的热插拔事件。
23.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至11中任一项所述的电子设备的固件安全检测方法。
24.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11中任一项所述的电子设备的固件安全检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156011.8A CN111008379B (zh) | 2019-11-22 | 2019-11-22 | 电子设备的固件安全检测方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156011.8A CN111008379B (zh) | 2019-11-22 | 2019-11-22 | 电子设备的固件安全检测方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008379A CN111008379A (zh) | 2020-04-14 |
CN111008379B true CN111008379B (zh) | 2023-02-28 |
Family
ID=70112879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156011.8A Active CN111008379B (zh) | 2019-11-22 | 2019-11-22 | 电子设备的固件安全检测方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111008379B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737081B (zh) * | 2020-06-16 | 2022-05-17 | 平安科技(深圳)有限公司 | 云服务器监控方法、装置、设备及存储介质 |
CN114077739A (zh) * | 2020-08-21 | 2022-02-22 | 华为技术有限公司 | 快速外设组件互联设备启动方法、装置以及存储介质 |
US11797680B2 (en) * | 2020-08-28 | 2023-10-24 | Micron Technology, Inc. | Device with chain of trust |
CN112084484B (zh) * | 2020-09-11 | 2022-08-02 | 山东英信计算机技术有限公司 | 一种设备硬件安全检测方法、装置、电子设备及存储介质 |
CN113420297A (zh) * | 2020-09-16 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 一种可信验证的系统、方法、主板、微型板卡及存储介质 |
CN112506741B (zh) * | 2020-12-11 | 2023-03-10 | 浪潮电子信息产业股份有限公司 | 一种服务器开机过程中bios与bmc的通信方法、装置及设备 |
CN114692159A (zh) * | 2020-12-29 | 2022-07-01 | 华为技术有限公司 | 计算机系统、可信功能组件及运行方法 |
CN113220330A (zh) * | 2021-05-25 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 电子设备的管理方法及装置 |
CN113553224A (zh) * | 2021-06-30 | 2021-10-26 | 深圳市同泰怡信息技术有限公司 | 基于主板检测基板管理控制器基本功能的方法、装置、设备 |
CN113868034A (zh) * | 2021-08-27 | 2021-12-31 | 新华三信息安全技术有限公司 | 服务器上电检测方法、电子设备及系统 |
CN114090107A (zh) * | 2021-08-30 | 2022-02-25 | 讯牧信息科技(上海)有限公司 | 计算机和系统启动方法 |
CN113468027B (zh) * | 2021-09-03 | 2021-11-19 | 北京壁仞科技开发有限公司 | 监测器件地址管理方法及装置、基板管理控制器、设备 |
CN114443439B (zh) * | 2022-01-29 | 2023-06-30 | 北京百度网讯科技有限公司 | 基于arm服务器的控制方法、装置、设备以及存储介质 |
WO2023188231A1 (ja) * | 2022-03-31 | 2023-10-05 | 日本電気株式会社 | ネットワーク監視システム、ネットワーク監視方法、及び記録媒体 |
CN114676091A (zh) * | 2022-04-12 | 2022-06-28 | 北京百度网讯科技有限公司 | 安全管理板、服务器板卡组件及服务器 |
CN114490276B (zh) * | 2022-04-13 | 2022-07-19 | 飞腾信息技术有限公司 | 外设异常监测方法、装置、系统及存储介质 |
CN116340957B (zh) * | 2023-05-29 | 2023-08-11 | 苏州浪潮智能科技有限公司 | 程序启动方法、装置、服务器及非易失性存储介质 |
CN116628767B (zh) * | 2023-07-20 | 2023-10-17 | 常州楠菲微电子有限公司 | 一种预防系统启动后flash系统固件攻击方法及flash控制器 |
CN117193863B (zh) * | 2023-09-08 | 2024-05-24 | 上海合芯数字科技有限公司 | 主机引导程序的启动方法、装置、系统和处理器 |
CN117494232B (zh) * | 2023-12-28 | 2024-03-29 | 苏州元脑智能科技有限公司 | 固件的执行方法和装置、系统、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599694A (zh) * | 2015-10-14 | 2017-04-26 | 广达电脑股份有限公司 | 安全防护管理方法、计算机系统和计算机可读取存储媒体 |
CN106897070A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于bmc实现的bios版本升级方法及装置 |
CN106909848A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于bios扩展的计算机安全增强系统及其方法 |
CN109446815A (zh) * | 2018-09-30 | 2019-03-08 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
CN109726562A (zh) * | 2019-01-03 | 2019-05-07 | 北京工业大学 | 一种基于可信bmc的服务器主板可信启动方法 |
CN110362427A (zh) * | 2019-06-26 | 2019-10-22 | 苏州浪潮智能科技有限公司 | 一种镜像文件的处理方法、系统、bmc及可读存储介质 |
CN110472421A (zh) * | 2019-07-22 | 2019-11-19 | 深圳中电长城信息安全系统有限公司 | 主板、固件安全检测方法及终端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201401098A (zh) * | 2012-06-18 | 2014-01-01 | Hon Hai Prec Ind Co Ltd | 固件驗證方法及系統 |
CN103513999B (zh) * | 2012-06-25 | 2018-04-27 | 联想(北京)有限公司 | 一种更新系统固件的方法及电子设备 |
CN110457907B (zh) * | 2019-07-25 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 一种固件程序检测方法和装置 |
-
2019
- 2019-11-22 CN CN201911156011.8A patent/CN111008379B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599694A (zh) * | 2015-10-14 | 2017-04-26 | 广达电脑股份有限公司 | 安全防护管理方法、计算机系统和计算机可读取存储媒体 |
CN106909848A (zh) * | 2015-12-22 | 2017-06-30 | 中电科技(北京)有限公司 | 一种基于bios扩展的计算机安全增强系统及其方法 |
CN106897070A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种基于bmc实现的bios版本升级方法及装置 |
CN109446815A (zh) * | 2018-09-30 | 2019-03-08 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
CN109726562A (zh) * | 2019-01-03 | 2019-05-07 | 北京工业大学 | 一种基于可信bmc的服务器主板可信启动方法 |
CN110362427A (zh) * | 2019-06-26 | 2019-10-22 | 苏州浪潮智能科技有限公司 | 一种镜像文件的处理方法、系统、bmc及可读存储介质 |
CN110472421A (zh) * | 2019-07-22 | 2019-11-19 | 深圳中电长城信息安全系统有限公司 | 主板、固件安全检测方法及终端设备 |
Non-Patent Citations (3)
Title |
---|
Explaining the Baseboard Management Controller or BMC in Servers;Patrick Kennedy;《网页在线公开:https://www.servethehome.com/explaining-the-baseboard-management-controller-or-bmc-in-servers/》;20180927;第1-8页 * |
可信计算在服务器基板管理控制器中的应用;苏振宇;《嵌入式技术》;20180611;第48-51页 * |
基于可信BMC的服务器安全启动机制;孙亮等;《山东大学学报(理学版)》;20180829;第53卷(第1期);第89-94页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111008379A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008379B (zh) | 电子设备的固件安全检测方法及相关设备 | |
EP3805968B1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
US9455955B2 (en) | Customizable storage controller with integrated F+ storage firewall protection | |
US10169589B2 (en) | Securely booting a computer from a user trusted device | |
US9742568B2 (en) | Trusted support processor authentication of host BIOS/UEFI | |
EP3877883B1 (en) | Secure verification of firmware | |
JP4855679B2 (ja) | サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化 | |
US10083045B2 (en) | Booting computer from user trusted device with an operating system loader stored thereon | |
US11206141B2 (en) | Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates | |
CN103119560A (zh) | 用于服务处理器复合体中的数据存储的基于需求的usb代理 | |
US8788839B1 (en) | Securely replacing boot loaders | |
US11675908B2 (en) | Unattended deployment of information handling systems | |
US10019577B2 (en) | Hardware hardened advanced threat protection | |
US20230306141A1 (en) | Real-time management of delta inventory certificates for component validation using eventing and cloud infrastructures | |
US10003463B2 (en) | Systems and methods for revoking and replacing signing keys | |
Cutler et al. | Trusted disk loading in the Emulab network testbed | |
US20230342467A1 (en) | Storage identity validation for a supply chain | |
US10339328B1 (en) | Securing stored computer files from modification | |
US20240171392A1 (en) | Systems and methods for digital retirement of information handling systems | |
US20240169050A1 (en) | Verification and/or validation of unreversible information handling system commands | |
US20230336363A1 (en) | Unauthorized communication detection in hybrid cloud | |
US10990664B2 (en) | Eliminating and reporting kernel instruction alteration | |
Lambert | Enterprise platform systems management security threats and mitigation techniques | |
Panek | Windows Server® | |
Xu | Security enhancement of secure USB debugging in Android system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022245 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |