一种固件测试方法、系统、存储介质及设备与流程

未命名 10-21 阅读:37 评论:0


1.本发明涉及固件技术领域,尤其涉及一种固件测试方法、系统、存储介质及设备。


背景技术:

2.作为关键信息基础设施的服务器,目前存在量大、安全隐患多,安全问题频发等特点,服务器在启动阶段对于内部攻击所具备的防范能力很有限,作为最早掌握系统权限的关键部分,固件的可信性即是关键核心,对于固件的可信性等安全测试也是重点,同时在服务器安全技术要求及测评标准等业界标准中也包含对固件安全方面的要求,其中对于固件完整性、真实性需要从固件设计上来支持校验,覆盖固件的刷新、启动乃至破坏后的恢复过程,对于可信固件的测试自然要更全面、更准确。
3.当前对于可信固件的测试覆盖可信固件刷新、启动的完整性校验、闪存读取校验、真实性校验等方面的测试,主要是基于功能场景,且以手动为主,效率较低,仅是对于最终结果的检查,测试检查的全面性不足,无法及时尽早的发现问题,同时缺乏可信固件启动性能方面的评估方面、缺乏在可信固件校验机制本身的稳定性方面覆盖,对于异常场景的测试以手动为主,准确性较低;对于异常恢复缺乏充分的测试,也缺乏对于开机性能影响的评估,缺少可信机制稳定性测试,存在测试覆盖不足的问题;另外镜像构造效率低,受限于研发对于代码的修改和重新编译,对于测试场景构造具有局限性,不具备通用性,效率较低。


技术实现要素:

4.有鉴于此,本发明的目的在于提出一种固件测试方法、系统、存储介质及设备,用以解决现有技术中开机性能影响覆盖不足、机制稳定性验证不足以及测试效率低的问题。
5.基于上述目的,本发明提供了一种固件测试方法,包括以下步骤:
6.构造固件镜像,并通过带外管理接口将固件镜像上传至bmc,并由bmc基于固件镜像判断对应的固件是否为可信固件;
7.响应于固件为可信固件,将可信固件刷新至系统,并在刷新过程中对可信固件进行校验;
8.响应于校验通过,重启系统,并在重启过程中验证记录功能是否正常;
9.响应于记录功能正常,可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;
10.响应于在预设时间范围内,篡改可信固件中的核心数据后继续重启系统;
11.响应于继续重启成功,确定可信固件启动稳定。
12.在一些实施例中,方法还包括:
13.响应于固件为非可信固件或者可信固件校验不通过,重启系统,并验证记录功能是否正常;
14.响应于记录功能正常,确定非可信固件的校验功能和记录功能满足预设要求。
15.在一些实施例中,方法还包括:
16.响应于非可信固件的校验功能和记录功能满足预设要求,将新固件镜像上传至bmc,以进行对应的新固件测试。
17.在一些实施例中,方法还包括:
18.响应于加载启动时间超过预设范围,确定可信固件的加载启动时间不满足预设要求,并生成相关报告。
19.在一些实施例中,记录功能对应的记录内容包括日志类型、串口记录、cpu状态以及内存状态。
20.在一些实施例中,系统为bios或者bmc。
21.在一些实施例中,核心数据为闪存中内核区域的静态区的数据。
22.本发明的另一方面,还提供了一种固件测试系统,包括:
23.可信判断模块,配置用于构造固件镜像,并通过带外管理接口将固件镜像上传至bmc,并由bmc基于固件镜像判断对应的固件是否为可信固件;
24.刷新校验模块,配置用于响应于固件为可信固件,将可信固件刷新至系统,并在刷新过程中对可信固件进行校验;
25.重启模块,配置用于响应于校验通过,重启系统,并在重启过程中验证记录功能是否正常;
26.时间判断模块,配置用于响应于记录功能正常,可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;
27.继续重启模块,配置用于响应于在预设时间范围内,篡改可信固件中的核心数据后继续重启系统;以及
28.确定模块,配置用于响应于继续重启成功,确定可信固件启动稳定。
29.本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法。
30.本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述方法。
31.本发明至少具有以下有益技术效果:
32.本发明的固件测试方法,通过自动化完成可信固件的刷新、启动加载、异常恢复过程的完整性、合法性、真实性安全校验的完整测试,增加自动化镜像构造、性能影响评估、稳定性测试及异常恢复测试,实现了可信固件的全面性测试,达到了可信固件测试的高等级;在可信固件测试中加入开机性能影响评测、加入可信校验机制的启停稳定性验证,有效完善了覆盖全面性,能够识别更深层次问题,确保可信机制不影响核心功能,极大提升了测试准确性;并且提高了测试效率,大大减少了人力成本。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
34.图1为根据本发明实施例提供的固件测试方法的示意图;
35.图2为根据本发明实施例提供的固件测试方法的流程示意图;
36.图3为根据本发明实施例提供的固件测试系统的示意图;
37.图4为根据本发明实施例提供的实现固件测试方法的计算机可读存储介质的示意图;
38.图5为根据本发明实施例提供的执行固件测试方法的计算机设备的硬件结构示意图。
具体实施方式
39.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
40.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
41.基于上述目的,本发明实施例的第一个方面,提出了一种固件测试方法的实施例。图1示出的是本发明提供的固件测试方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
42.步骤s10、构造固件镜像,并通过带外管理接口将固件镜像上传至bmc,并由bmc基于固件镜像判断对应的固件是否为可信固件;
43.步骤s20、响应于固件为可信固件,将可信固件刷新至系统,并在刷新过程中对可信固件进行校验;
44.步骤s30、响应于校验通过,重启系统,并在重启过程中验证记录功能是否正常;
45.步骤s40、响应于记录功能正常,可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;
46.步骤s50、响应于在预设时间范围内,篡改可信固件中的核心数据后继续重启系统;
47.步骤s60、响应于继续重启成功,确定可信固件启动稳定。
48.本发明实施例的固件测试方法,通过自动化完成可信固件的刷新、启动加载、异常恢复过程的完整性、合法性、真实性安全校验的完整测试,增加自动化镜像构造、性能影响评估、稳定性测试及异常恢复测试,实现了可信固件的全面性测试,达到了可信固件测试的高等级;在可信固件测试中加入开机性能影响评测、加入可信校验机制的启停稳定性验证,有效完善了覆盖全面性,能够识别更深层次问题,确保可信机制不影响核心功能,极大提升了测试准确性;并且提高了测试效率,大大减少了人力成本。
49.在一些实施例中,方法还包括:响应于固件为非可信固件或者可信固件校验不通过,重启系统,并验证记录功能是否正常;响应于记录功能正常,确定非可信固件的校验功能和记录功能满足预设要求。
50.在一些实施例中,方法还包括:响应于非可信固件的校验功能和记录功能满足预设要求,将新固件镜像上传至bmc(baseboard management controller,基板管理控制器),
以进行对应的新固件测试。
51.上述实施例中,在确定了非可信固件的校验功能和记录功能满足预设要求后,可以上传新固件镜像来进行新固件测试,后续在测试到新固件的校验功能和记录功能后,可以顺利通过,从而提早预判了后续流程,节省了测试时间。
52.在一些实施例中,方法还包括:响应于加载启动时间超过预设范围,确定可信固件的加载启动时间不满足预设要求,并生成相关报告。
53.在一些实施例中,记录功能对应的记录内容包括日志类型、串口记录、cpu(central process unit,中央处理器)状态以及内存状态。
54.在一些实施例中,系统为bios(basic input output system,基本输入输出系统)或者bmc。
55.在一些实施例中,核心数据为闪存中内核区域的静态区的数据。
56.本实施例中,通过篡改可信固件中的核心数据后继续重启系统来判断可信固件启动稳定性,相当于测试了可信固件受到外来入侵后的稳定性,能够更全面充分地确定可信固件的启动稳定性。
57.图2为根据本发明实施例提供的固件测试方法的流程示意图。如图2所示,本实施例从镜像自动构造、调度刷新脚本开展刷新、通过自动化脚本检测刷新过程、启动过程及恢复的log(日志)及结果,并反复reboot(重启)验证稳定性及开机时长,完成完整的可信固件功能、稳定性的测试,给出测试报告,流程如下:
58.脚本首先通过命令或二进制文件编辑工具自动往镜像特定地址如内核区域写入或篡改数据,根据测试场景要求完成非法镜像的构造,后续调度restful(representational state transfer,一种网络应用程序的设计风格和开发方式)脚本进入自动刷新过程,首先测试对镜像完整性、合法性的校验功能是否ok,其中包括合法可信镜像和非法镜像正反两方面的验证,非法镜像验证是否能够校验出来并做对应记录,同时验证非法镜像校验住之后不影响合法镜像的刷新,合法镜像验证是否可以通过校验并给出校验成功的提示,并对刷新和启动完整过程的校验进行验证,对开机时长进展判断,评估是否影响开机性能,并自动判断给出结果,单次验证ok后开展循环测试,对可信校验机制进行稳定性、健壮性验证,通过设置测试标准,脚本循环自动完成验证并给出验证报告,完成完整验证。
59.本发明实施例的第二个方面,还提供了一种固件测试系统。图3示出的是本发明提供的固件测试系统的实施例的示意图。如图3所示,一种固件测试系统包括:可信判断模块10,配置用于构造固件镜像,并通过带外管理接口将固件镜像上传至bmc,并由bmc基于固件镜像判断对应的固件是否为可信固件;刷新校验模块20,配置用于响应于固件为可信固件,将可信固件刷新至系统,并在刷新过程中对可信固件进行校验;重启模块30,配置用于响应于校验通过,重启系统,并在重启过程中验证记录功能是否正常;时间判断模块40,配置用于响应于记录功能正常,可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;继续重启模块50,配置用于响应于在预设时间范围内,篡改可信固件中的核心数据后继续重启系统;以及确定模块60,配置用于响应于继续重启成功,确定可信固件启动稳定。
60.本发明实施例的固件测试系统,通过自动化完成可信固件的刷新、启动加载、异常恢复过程的完整性、合法性、真实性安全校验的完整测试,增加自动化镜像构造、性能影响
评估、稳定性测试及异常恢复测试,实现了可信固件的全面性测试,达到了可信固件测试的高等级;在可信固件测试中加入开机性能影响评测、加入可信校验机制的启停稳定性验证,有效完善了覆盖全面性,能够识别更深层次问题,确保可信机制不影响核心功能,极大提升了测试准确性;并且提高了测试效率,大大减少了人力成本。
61.本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现固件测试方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31。该计算机程序指令31被处理器执行时实现上述任意一项实施例的方法。
62.应当理解,在相互不冲突的情况下,以上针对根据本发明的固件测试方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的固件测试系统和存储介质。
63.本发明实施例的第四个方面,还提供了一种计算机设备,包括如图5所示的存储器402和处理器401,该存储器402中存储有计算机程序,该计算机程序被该处理器401执行时实现上述任意一项实施例的方法。
64.如图5所示,为本发明提供的执行固件测试方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与固件测试系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
65.存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的固件测试方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储固件测试方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
66.处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的固件测试方法。
67.最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddr sdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambus ram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
68.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬
件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
69.结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
70.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
71.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
72.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:
1.一种固件测试方法,其特征在于,包括以下步骤:构造固件镜像,并通过带外管理接口将所述固件镜像上传至bmc,并由所述bmc基于所述固件镜像判断对应的固件是否为可信固件;响应于所述固件为所述可信固件,将所述可信固件刷新至系统,并在刷新过程中对所述可信固件进行校验;响应于校验通过,重启所述系统,并在重启过程中验证记录功能是否正常;响应于所述记录功能正常,所述可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;响应于在所述预设时间范围内,篡改所述可信固件中的核心数据后继续重启所述系统;响应于继续重启成功,确定所述可信固件启动稳定。2.根据权利要求1所述的方法,其特征在于,还包括:响应于所述固件为非可信固件或者所述可信固件校验不通过,重启所述系统,并验证所述记录功能是否正常;响应于所述记录功能正常,确定所述非可信固件的校验功能和所述记录功能满足预设要求。3.根据权利要求2所述的方法,其特征在于,还包括:响应于所述非可信固件的校验功能和所述记录功能满足预设要求,将新固件镜像上传至所述bmc,以进行对应的新固件测试。4.根据权利要求1所述的方法,其特征在于,还包括:响应于所述加载启动时间超过所述预设范围,确定所述可信固件的加载启动时间不满足预设要求,并生成相关报告。5.根据权利要求1所述的方法,其特征在于,所述记录功能对应的记录内容包括日志类型、串口记录、cpu状态以及内存状态。6.根据权利要求1所述的方法,其特征在于,所述系统为bios或者bmc。7.根据权利要求1所述的方法,其特征在于,所述核心数据为闪存中内核区域的静态区的数据。8.一种固件测试系统,其特征在于,包括:可信判断模块,配置用于构造固件镜像,并通过带外管理接口将所述固件镜像上传至bmc,并由所述bmc基于所述固件镜像判断对应的固件是否为可信固件;刷新校验模块,配置用于响应于所述固件为所述可信固件,将所述可信固件刷新至系统,并在刷新过程中对所述可信固件进行校验;重启模块,配置用于响应于校验通过,重启所述系统,并在重启过程中验证记录功能是否正常;时间判断模块,配置用于响应于所述记录功能正常,所述可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;继续重启模块,配置用于响应于在所述预设时间范围内,篡改所述可信固件中的核心数据后继续重启所述系统;以及确定模块,配置用于响应于继续重启成功,确定所述可信固件启动稳定。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的方法。10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的方法。

技术总结
本发明提供了一种固件测试方法、系统、存储介质及设备,方法包括:构造固件镜像,并通过带外管理接口将固件镜像上传至BMC,并由BMC基于固件镜像判断对应的固件是否为可信固件;响应于固件为可信固件,将可信固件刷新至系统,并在刷新过程中对可信固件进行校验;响应于校验通过,重启系统,并在重启过程中验证记录功能是否正常;响应于记录功能正常,可信固件加载启动成功,并判断加载启动时间是否在预设时间范围内;响应于在预设时间范围内,篡改可信固件中的核心数据后继续重启系统;响应于继续重启成功,确定可信固件启动稳定。本发明提高了测试效率,提升了测试准确性和全面覆盖性。提升了测试准确性和全面覆盖性。提升了测试准确性和全面覆盖性。


技术研发人员:王甲林 王守昊
受保护的技术使用者:浪潮商用机器有限公司
技术研发日:2023.08.03
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐