CN117688551A - 启动路径白名单更新方法、装置、电子设备及存储介质 - Google Patents
启动路径白名单更新方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117688551A CN117688551A CN202311402425.0A CN202311402425A CN117688551A CN 117688551 A CN117688551 A CN 117688551A CN 202311402425 A CN202311402425 A CN 202311402425A CN 117688551 A CN117688551 A CN 117688551A
- Authority
- CN
- China
- Prior art keywords
- white list
- starting
- whitelist
- updating
- updated
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000004806 packaging method and process Methods 0.000 claims abstract description 19
- 230000009471 action Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 30
- 230000008859 change Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 230000006886 spatial memory Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供了启动路径白名单更新方法、装置、电子设备及可读存储介质。方法包括:获取待更新启动路径信息;将待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,白名单列表包括预先设置启动路径白名单中的多个启动路径信息;当白名单比对结果为待更新启动路径信息与启动路径白名单中的多个启动路径信息均不同时,根据待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,白名单列表赋值在平台配置数据库变量中;对白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。提高了启动路径白名单的更新效率,提高了启动操作系统的自由度和灵活度,改善了用户使用体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种启动路径白名单更新方法、装置、电子设备及存储介质。
背景技术
受严重安全漏洞事件的时常发生和服务器在各行各业中的应用越来越广的影响,服务器安全也成为服务器使用时不可忽视的一部分,其中,针对服务器引导进OS设置安全策略也越来越受到重视。
针对上述需求,现有技术往往通过预先设置的白名单对操作系统进行限制,只有位于白名单内的操作系统才能显示并引导启动,极大提高了服务器的安全性。但是,这种白名单的设计限制了用户可以安装和运行的操作系统的选择范围,当操作系统不断更新迭代时不能及时进行白名单维护更新,用户使用操作系统时的自由度和灵活度受限制,用户体验差。
发明内容
本申请提供了一种启动路径白名单更新方法、装置、电子设备及可读存储介质。本申请提供的技术方案在确定启动路径信息与预先存储在固件卷空间中的白名单中的信息不同时,通过更新白名单列表对应的平台配置数据库变量并对相应固件文件重新打包的方式实现白名单的快速更新,解决了现有技术白名单更新迭代不及时,操作系统启动时自由度和灵活度受限,用户体验差的问题。
第一方面,本申请提供了一种启动路径白名单更新方法,该方法包括:
获取待更新启动路径信息;
将待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
当白名单比对结果为待更新启动路径信息与启动路径白名单中的多个启动路径信息均不同时,根据待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,白名单列表赋值在平台配置数据库变量中;
对白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
可选的,本申请提供的启动路径白名单更新方法还包括:
通过预先设置的卷基础地址,定位并访问固件卷空间,得到白名单列表。
可选的,本申请提供的启动路径白名单更新方法还包括:
在基本输入输出系统的固件卷空间设置第一平台配置数据库变量,其中,第一平台配置数据库变量用于存储白名单名称列表;
在基本输入输出系统的固件卷空间设置第二平台配置数据库变量,其中,第二平台配置数据库变量用于存储白名单启动路径列表;
根据启动路径白名单中的白名单名称列表赋值给第一平台配置数据库变量,得到赋值后的第一平台配置数据库变量;
根据启动路径白名单中的白名单启动路径列表赋值给第二平台配置数据库变量,得到赋值后的第二平台配置数据库变量。
可选的,本申请提供的启动路径白名单更新方法还包括:
根据预先设置的启动路径规范规则对待更新启动路径信息进行检查,得到检查后的待更新启动路径信息。
可选的,本申请提供的启动路径白名单更新方法还包括:
对基本输入输出系统的启动模式进行判断,得到启动模式判断结果;
当启动模式判断结果为统一可扩展固件接口操作系统白名单时,对第一白名单更新结果执行启动项遍历动作,得到启动项数量;
当启动项数量大于0时,引导进入第一白名单更新结果对应的操作系统。
可选的,本申请提供的启动路径白名单更新方法还包括:
对固件文件进行打包,得到打包中间结果;
通过私钥对所述打包中间结果进行签名,得到第一白名单更新结果。
可选的,本申请提供的启动路径白名单更新方法还包括:
对固件卷空间进行空间内存判断,得到空间内存判断结果;
当空间内存判断结果为固件卷空间不足时,删除固件卷空间中的启动路径白名单并对白名单列表更新结果进行调整,得到调整后白名单列表;
对调整后白名单列表对应的固件文件进行打包,得到第二白名单更新结果。
第二方面,本申请还提供一种启动路径白名单更新装置,包括:
更新启动路径获取模块,用于获取待更新启动路径信息;
白名单比对模块,用于将待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
列表更新模块,用于当白名单比对结果为待更新启动路径信息与启动路径白名单中的多个启动路径信息均不同时,根据待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,白名单列表赋值在平台配置数据库变量中;
第一白名单更新模块,用于对白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
第三方面,本申请还提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的启动路径白名单更新方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的启动路径白名单更新方法的步骤。
本申请提供的技术方案,由于白名单列表预先通过平台配置数据库变量进行存储,当需要更新白名单时,只需要根据待更新启动路径信息对平台配置数据库变量进行更新,并对更新后的二进制数据进行重新打包得到第一白名单更新结果,不再需要更新链接变量elink和重新编译BIOS二进制固件文件的动作即可实现启动路径白名单的更新效果,提高了启动路径白名单的更新效率,提高了用户启动操作系统的自由度和灵活度,进而改善了用户的启动路径白名单使用体验。
上述说明仅是本申请提供的技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的启动路径白名单更新方法示意图之一;
图2是本申请实施例提供的启动路径白名单更新方法示意图之二;
图3是本申请实施例提供的启动路径白名单更新方法示意图之三;
图4是本申请实施例提供的启动路径白名单更新方法示意图之四;
图5是本申请实施例提供的启动路径白名单更新方法示意图之五;
图6是本申请实施例提供的启动路径白名单更新方法示意图之六;
图7是本申请实施例提供的启动路径白名单更新法示意图之七;
图8是本申请提供的一种启动路径白名单更新示例之一;
图9是本申请提供的一种启动路径白名单更新示例之二;
图10是本申请实施例提供的启动路径白名单更新装置示意图;
图11是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
基本输入输出系统(Basic Input Output System,BIOS)是一种用于对服务器主板进行控制的系统程序,往往固化到主板上一个只读内存(Read-Only Memory,ROM)芯片上。并保存着计算机的基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序,从而为计算机提供最底层、最直接的硬件设置功能。随着服务器在各行各业的应用越来越广,在数据采集、处理等过程中起到越来越重要的作用。但因BIOS自身频发的严重安全漏洞事件,严重影响了用户体验及用户信息安全,阻碍了BIOS的推广。其中,针对服务器引导进操作系统(Operating System,OS)设置安全策略,通常采用BIOS预先为各种控制程序建立关于OS的白名单,例如配置允许启动和安装的操作系统列表,只有在白名单列出的操作系统才会被BIOS展示在统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)的设置界面,并通过服务器开机时屏幕显示的热键,例如F2热键、F10热键、Del热键等热键引导启动,而其他操作系统被阻止,由于能够防止未经授权的操作系统被引导启动,预防了程序被非标操作系统篡改,以及程序或硬件设置与非标OS不兼容,极大提高了服务器的安全性。通过配置UEFIOS白名单,管理员可以更轻松地管理服务器上允许安装和运行的操作系统,白名单中列出的操作系统是经过认证和授权的,安全性得到保障,同时也会提高服务器的易操作性,这样可以减少管理员的工作量和操作的复杂性,另外UEFIOS白名单功能还支持一些安全功能,如安全启动(Secure Boot),需要与UEFIOS白名单配合使用。通过使用白名单,可以确保只有受信任的操作系统才能启动,并防止恶意软件在引导过程中进行干扰。
但是,这种UEFIOS白名单的设置限制了用户能够安装和运行的操作系统的选择范围,只有列入白名单的操作系统才能被允许启动,这种安全防护设置限制了用户的自由度和灵活性。而现有的白名单配置和管理需要BIOS固件开发人员修改BIOS程序中定义的链接变量elink的数值(value),并将需要更新的白名单路径复制给链接变量,并重新编译BIOS二进制固件文件,实现UEFIOS白名单的适配维护效果。这种白名单更新方式需要投入大量的研发资源、人力来开发和测试新的新的BIOS固件版本,并且需要及时进行版本发布流程,且编译BIOS程序代码和版本发布流程对专业性要求较高,很大程度上提高了维护成本和维护的复杂性。
针对现有UEFIOS白名单维护手段复杂,当OS启动路径或者启动名称变更时需要BIOS工程师频繁发版等问题,本申请提供共的技术方案在BIOS中预留一段固件卷(Firmware Volume,FV)空间用于存储UEFIOS白名单列表,设定一种change UEFIOS whitelist白名单工具,通过BIOS约定的特定FV Base Address访问BIOS固件文件FV空间读取BIOS固件文件中UEFIOS白名单列表,并对该列表进行增加、修改、删除然后对修改后的二进制数据进行重新打包BIOS固件已达到快速更新UEFIOS白名单的目的。
下面结合附图,通过具体的实施例及其应用场景对本申请提供的启动路径白名单更新方法、装置、电子设备及非易失性可读存储介质进行详细地说明。
本申请的第一实施方式涉及一种启动路径白名单更新方法,如图1所示,包括:
步骤101、获取待更新启动路径信息;
步骤102、将待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
步骤103、当白名单比对结果为待更新启动路径信息与启动路径白名单中的多个启动路径信息均不同时,根据待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,白名单列表赋值在平台配置数据库变量中;
步骤104、对白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
具体的,本申请提供的启动路径白名单更新方法,首先获取需要更新到白名单中的待更新启动路径信息,并与预先设置的白名单列表中的多个启动路径信息进行比对,得到白名单比对结果。当白名单比对结果为待更新启动路径信息与多个预先记录在白名单列表的启动路径信息均不相同时,判断需要将待更新启动路径信息添加到白名单时,根据待更新启动路径信息对白名单列表进行更新并对相应的数据或固件文件进行打包,此时待更新启动路径信息相关的数据被快速写入白名单中,对应的操作系统也被列入白名单中,用户能够在服务器引导启动的动作下启动新添加进入白名单的操作系统,提高了系统的启动项或操作系统的可扩展性和可管理性。
举例来说,在BIOS系统中往往通过UEFIOS白名单对启动时的启动项或操作系统进行限制。本申请提供的方法,在获取需要新添加进入白名单的待更新启动路径信息后,与预先存储在BIOS固件文件中预留的特定的FV空间中的UEFIOS白名单列表进行比对,当比对后发现获取到的到更新启动路径信息与UEFIOS白名单列表中预先存储的多个启动路径信息均不相同时,例如二进制数据各个比特(bit)字符存在差异时,将待更新启动路径信息写入白名单列表,并对修改后的二进制数据或固件文件进行打包,实现UEFIOS白名单的快速更新。
其中,由于白名单的启动路径和名称存储在平台配置数据库变量中,例如全局变量PCD中,只需要对全局变量PCD进行修改即可实现白名单的更新效果。
其中,本申请可以通过开发工具的形式对白名单进行更新,例如开发能够加载(load)并解析BIOS二进制镜像文件的工具change UEFIOS white list Tool进行白名单列表的获取,并在比对后发现待更新启动路径信息与预先存储的启动路径信息不同后,通过change UEFIOS white list Tool对UEFIOS白名单列表进行增加,并通过change UEFIOSwhite list Tool对修改后的UEFIOS白名单列表对应的修改后二进制数据进行重新打包BIOS固件的动作。
本申请提供的技术方案中,由于白名单列表预先通过平台配置数据库变量进行存储,当需要更新白名单时,相比现有技术需要修改BIOS程序中定义的elink链接变量的value,重新将需要更新的白名单路径赋值给链接变量,重新编译BIOS二进制固件文件,本申请提供的技术方案只需要根据待更新启动路径信息对平台配置数据库变量进行更新,并对更新后的二进制数据进行重新打包即可将白名单路径添加到白名单中,提高了启动路径白名单的更新效率,提高了用户启动操作系统的自由度和灵活度,进而改善了用户的启动路径白名单使用体验。
在上述实施方式的基础上,如图2所示,本申请提供的启动路径白名单更新方法中,步骤102之前,还包括:
步骤105、通过预先设置的卷基础地址,定位并访问固件卷空间,得到白名单列表。
具体的,本申请提供的启动路径白名单更新方法中,还能够通过访问固件文件对应的FV空间的方式获取该地址存储的内容数据得到白名单列表。
举例来说,本申请可以根据BIOS预先约定的FV基础地址(FV Base Address),通过change UEFIOS white list Tool定位并访问BIOS固件文件中预留的特定的FV空间,例如通过FV Base Address、FV length访问FV空间,获取该地址所存储的内容数据,并对存储的内容数据进行解析遍历等动作,从而得到记录有BIOS当前支持的UEFIOS启动路径的白名单列表。
在上述实施方式的基础上,由于本申请提供额定技术方案能够通过预先设置的FVBase Address定位并访问FV空间,提高了UEFIOS启动路径的白名单列表获取效率,进而提升了白名单更新效率。
在上述实施方式的基础上,如图3所示,启动路径白名单预先存储在基本输入输出系统的固件卷空间,白名单列表包括白名单名称列表和白名单启动路径列表,本申请提供的启动路径白名单更新方法中,步骤102之前,还包括:
步骤106、在基本输入输出系统的固件卷空间设置第一平台配置数据库变量;
步骤107、在基本输入输出系统的固件卷空间设置第二平台配置数据库变量;
步骤108、根据启动路径白名单中的白名单名称列表赋值给第一平台配置数据库变量,得到赋值后的第一平台配置数据库变量;
步骤109、根据启动路径白名单中的白名单启动路径列表赋值给第二平台配置数据库变量,得到赋值后的第二平台配置数据库变量。
具体的,本申请提供的启动路径白名单更新方法中,在进行待更新启动路径信息与白名单列表比对之前,还提供一种将启动路径写入白名单的方法。首先在BIOS预先设置一段FV空间,例如预留大于256字节的空间存储白名单,并且确定FV Base Address、结束地址(End Address)和FV长度(Length)等数据,随后在BIOS预先一段FV Size,并在程序中定义平台配置数据库(Platform Configuration Database,PCD)的变量A和变量B,用于存储启动项名称和路径,明确PCD的键值对设定,描述UEFIOS白名单的配置、功能开关、默认设置等相关参数,例如设置第一平台配置数据库变量A存储UEFIOS白名单的名称列表,设置第二平台配置数据库变量存储UEFIOS白名单的启动路径列表,并分别将白名单启动名称和启动路径赋值给PCD变量A和PCD变量B。
之后,对BIOS的启动模式(boot mode)进行判断,当启动模式判断结果为UEFI时,遍历所有设备的启动项并获取启动项数量,当启动项数量大于0或不为null时,判断键入的启动路径是否位于白名单中,当判断启动路径不再白名单中时,将启动路径引导进入白名单,实现启动路径白名单预先构建的功能。
在上述实施方式的基础上,由于本申请提供的技术方案通过PCD变量存储启动路径白名单信息,并能够实现白名单信息对应的启动项的修改、删除、增添等动作,进一步提高了用户使用时的自由度和灵活性。
在上述实施方式的基础上,如图4所示,本申请提供的启动路径白名单更新方法中,步骤101之后,步骤102之前,还包括:
步骤110、根据预先设置的启动路径规范规则对待更新启动路径信息进行检查,得到检查后的待更新启动路径信息。
具体的,本申请提供的启动路径白名单更新方法中,在进行待更新启动路径信息与白名单列表比对之前,还能够根据预先设置的启动路径规范规则对待更新启动路径信息进行检查,对于不满足启动路径规范规则的待更新启动路径信息输出告警(warning)提示并返回(return),不再进行后续的比对及白名单更新动作,只有满足启动路径规范规则的待更新启动路径信息才能参与后续与白名单列表中的多个启动路径信息进行比对的动作。
举例来说,change UEFIOS white list Tool提供接口供用户输入需要添加到UEFIOS白名单的UEFIOS启动路径,当键入启动路径后通过change UEFIOS white listTool自动检查键入的UEFIOS启动路径是否符合预先设置的UEFI规范的规则,包括但不限于启动路径长度规则和启动路径可引导性规范,当键入的UEFIOS启动路径满足这些UEFI规范的规则后,才能够参与后续与白名单中预先存储的比对动作,当键入的UEFIOS启动路径不满足这些UEFI规范的规则时,发出告警信息、停止后续的比对动作并返回,直至获取新的UEFIOS启动路径后再进行UEFI规范的规则的检查。
并且,本申请提供的自动检查动作不仅局限于对待更新启动路径信息进行自动检查,对于启动白名单构建和存储进入BIOS的FV空间阶段时,同样能够进行自动检查。在启动白名单构建过程中,change UEFIOS white list Tool提供接口供用户输入需要参与UEFIOS白名单构建的UEFIOS启动路径,并根据预先设置的UEFI规范的规则进行自动检查,当键入的UEFIOS启动路径满足这些UEFI规范的规则后,才能够参与后续的白名单构建动作,当键入的UEFIOS启动路径不满足这些UEFI规范的规则时,发出告警信息、停止后续的比对动作并返回,直至获取新的UEFIOS启动路径后再进行UEFI规范的规则的检查。
此外,在预先确定了FV Base Address、End Address和FV Length等数据的前提下,当完成了键入的启动路径与预先存储在白名单中的启动路径比对并判断键入的启动路径与预先存储的启动路径不同时,根据当前启动路径写入要求对FV Length进行判断,当FVLength满足当前启动路径写入要求时,访问FV Base Address并将OS路径赋值到该段地址。
在上述实施方式的基础上,由于本申请提供的技术方案还能够实现对待更新启动路径信息的检查,判断是否符合UEFI规范,是否具备可引导性。当待更新启动路径信息不符合预先设置的启动路径规范规则停止比对动作,避免了不规范的启动路径参与比对后添加到白名单后占据白名单空间的问题,进而提高了启动路径白名单的可用性和用户体验。
在上述实施方式的基础上,如图5所示,本申请提供的启动路径白名单更新方法中,步骤104之后,还包括:
步骤111、对基本输入输出系统的启动模式进行判断,得到启动模式判断结果;
步骤112、当启动模式判断结果为统一可扩展固件接口操作系统白名单时,对第一白名单更新结果执行启动项遍历动作,得到启动项数量;
步骤113、当启动项数量大于0时,引导进入第一白名单更新结果对应的操作系统。
具体的,本申请提供的启动路径白名单更新方法中,在更新完白名单之后,进行boot mode的判断,当判断为Legacy模式时,停止后续动作并结束。当判断为UEFI模式时,遍历所有设备的启动项并统计启动项数量,当启动项数量为null或0时,停止后续动作并结束,当启动项数量不为0时,引导启动项,进入对应操作系统。
此外,本申请提供的启动路径白名单更新方法中,不仅局限于在更新白名单后进行启动项的遍历与引导动作,还能够在进行启动项数量检测后且启动项数量不为0时进行白名单的更新。具体的,获取这些启动项的启动路径并与预先存储在FV空间内的UEFIOS白名单进行比对,当比对结果为这些启动项的启动路径与预先存储在FV空间内的UEFIOS白名单不同时,将这些启动项的启动路径存储在白名单中,例如EEPROM后在当比对结果为这些启动项的启动路径与预先存储在FV空间内的UEFIOS白名单相同时,直接引导启动项并进入对应的操作系统。
在上述实施方式的基础上,本申请提供的启动路径白名单更新方法中,步骤102之后,还包括:
当白名单比对结果为待更新启动路径信息与启动路径信息相同时,将白名单比对结果输出显示。
具体的,本申请提供的启动路径白名单更新方法中,在获取需要新添加进入白名单的待更新启动路径信息后,与预先存储在BIOS固件文件中预留的特定的FV空间中的UEFIOS白名单列表进行比对,当比对后发现获取到的到更新启动路径信息与UEFIOS白名单列表中预先存储的多个启动路径信息均不相同时,例如二进制数据各个比特(bit)字符均相同时,说明需要新添加进入白名单的待更新启动路径信息已经预先存储在BIO预留的FV空间内,不再进行修改白名单列表和白名单的动作,并将比对结果输出显示,提示用户待更新启动路径信息已录入白名单。
并且,本申请提供的自动检查动作不仅局限于对待更新启动路径信息进行自动检查,对于启动白名单构建和存储进入BIOS的FV空间阶段时,当白名单逐个通过键入UEFIOS启动路径的方式构建进入白名单时,同样进行白名单比对,当比对结果为相同时提醒用户对应的UEFIOS启动路径已经录入,提醒用户键入其他的UEFIOS启动路径。
在上述实施方式的基础上,由于本申请提供的技术方案还能够在比对发现待更新启动路径信息与预先存储的白名单中的启动路径信息相同时,避免将重复的启动路径信息添加到白名单占据白名单空间的问题,进而提高了启动路径白名单的可用性和用户体验。
在上述实施方式的基础上,如图6所示,本申请提供的启动路径白名单更新方法中,步骤104包括:
步骤141、对固件文件进行打包,得到打包中间结果;
步骤142、通过私钥对打包中间结果进行签名,得到第一白名单更新结果。
具体的,本申请提供的启动路径白名单更新方法中,通过change UEFIOS whitelist Tool读取二进制BIOS bin文件签名部分,并通过公钥,例如secure flash公钥对签名部分进行解密后,加载完整的BIOS FW,访问预先设置的FV地址并获取FV空间的UEFIOS启动路径数据后,当UEFI OS白名单对应的白名单列表更新后,通过change UEFIOS white listTool对固件文件进行重新打包,得到打包中间结果,并通过私钥,例如secure flash私钥进行重新签名动作,确保BIOS固件镜像的完整性及安全性。
在上述实施方式的基础上,由于本申请提供的技术方案还能够对固件文件打包并签名,实现了白名单的快速更新,在确保了BIOS固件镜像的完整性的前提下提高了启动路径白名单的更新效率。
在上述实施方式的基础上,如图7所示,本申请提供的启动路径白名单更新方法中,步骤103之后,还包括:
步骤114、对固件卷空间进行空间内存判断,得到空间内存判断结果;
步骤115、当空间内存判断结果为固件卷空间不足时,删除固件卷空间中的启动路径白名单并对白名单列表更新结果进行调整,得到调整后白名单列表;
步骤116、对调整后白名单列表对应的固件文件进行打包,得到第二白名单更新结果。
具体的,本申请提供的启动路径白名单更新方法中,当比对结果为待更新启动路径信息并未预先存储在白名单列表中,将待更新启动路径信息写入FV空间前还要对FV空间进行内存判断,当判断FV空间不足时,输出待更新启动路径信息添加进入FV空间失败的提示信息,例如弹出FV空间不足的提示信息。
举例来说,遍历FV中存储的数据并根据预留的FV size进行存储空间判断,当键入的启动路径不能满足预留的FV空间UEFIOS白名单的FV size要求,即FVsize不能再容纳新增的UEFIOS白名单时,弹出对应的告警信息。
并且,本申请还能够对白名单和白名单列表进行删除减少等动作,去除预先存储的启动路径并将待更新启动路径信息写入FV空间。此外,在进行第二次将待更新启动路径信息写入FV空间的尝试前,还可以再进行一次FV空间的空间内存检测或判断,当能够存储待更新启动路径信息时对白名单列表和白名单进行更新,并对更新后的二进制数据对应的固件文件进行打包签名等动作,得到第二白名单更新结果。
其中,预先存储的启动路径信息的删除条件本申请不作限制,可以根据用户使用频率,录入白名单先后顺序等条件进行限制,也可以将白名单中所有的启动路径信息全部删除并重新添加。
在上述实施方式的基础上,由于本申请提供的技术方案能够在白名单空间占满时删除预先存储的启动路径信息,并存入新的启动路径信息,实现了白名单的快速删减与更新,提高了白名单的使用效果,进而提升了用户使用启动路径白名单时的自由度和灵活度。
在上述实施方式的基础上,如图8所示,本申请还提供一种具体的更新白名单并引导进入对应操作系统的流程的示例:
首先,在BIOS程序中预先留存FV空间,并分别定义PCD变量列表(list)存储UEFIOS白名单名称,随后根据OS名称定义对应的PCD变量list存储UEFIOS白名单路径。随后进行boot mode的判断,当判断为Legacy模式时,停止后续动作并结束。当判断为UEFI模式时,遍历所有设备的启动项并统计启动项数量,当启动项数量为null或0时,停止后续动作并结束,当启动项数量不为0时,获取这些启动项的启动路径并与预先存储在FV空间内的UEFIOS白名单进行比对,当比对结果为这些启动项的启动路径与预先存储在FV空间内的UEFIOS白名单不同时,将这些启动项的启动路径存储在白名单中,例如EEPROM后在引导启动项,进入对应操作系统;当比对结果为这些启动项的启动路径与预先存储在FV空间内的UEFIOS白名单相同时,直接引导启动项并进入对应的操作系统。
其中,如图9所示,本申请还提供具体的比对流程示例:
获取导入BIOS镜像文件并对BIOS镜像文件进行解析后,访问存储UEFIOS白名单的FV Base Addres并获取UEFIOS白名单。随后,当获取客户输入的待更新启动路径信息,例如客户输入的白名单名称和启动路径后,根据预先设置的启动路径规范规则进行客户输入的白名单名称和启动路径是否符合规范的判断,当判断为不符合规范时,输出警告提示并提醒客户路径不符合规范并返回,等待客户输入新的白名单名称和启动路径。当判断客户输入的白名单名称和启动路径符合规范后,遍历从FV Base Addres获取的UEFIOS白名单并判断客户输入的白名单名称和启动路径是否预先存储。当比对后判断客户输入的白名单名称和启动路径已经预先存储,输出提示并返回,等待客户输入新的白名单名称和启动路径。
当比对后判断客户输入的白名单名称和启动路径未预先存储,加载启动路径并尝试将启动路径等信息添加到UEFIOS白名单,具体的,判断FV size1是否还能够容纳新增的UEFIOS白名单,当判断能够容纳时,实现对白名单的更新并结束动作。当判断不能容纳时,输出需要删减FV空间已有白名单的提示并对已有的白名单进行删减动作,删减后再次尝试将启动路径等信息添加到UEFIOS白名单。此外,删减动作也可以根据客户发出的指示判断是否执行。举例来说,当接收到客户发出的删减已有白名单的指示后,再执行对应动作,如果未接收到对应指令不进行任何动作并直接结束。
本申请提供的启动路径白名单更新方法,提供了灵活可靠的更新UEFI OS启动路径白名单的方法,可以将启动路径存在Firmware Volume空间中,通过change UEFIOSwhite list工具修改、删除、增加启动项,提高了用户的自由度和灵活性,减少研发投入的工作量、降低了维护UEFIOS白名单的复杂性,很大程度上降低了BIOS固件版本维护成本,避免了频繁的发版和测试,提高了系统的启动项的可扩展性和可管理性。
需要强调的是,本申请不仅局限于存储在FV空间的UEFIOS白名单这一种方式,还能够对其他需要访问修改FV空间的需求实现相应的文件修改,增添,删减等动作,本申请不作限制。
本申请的第二实施方式涉及一种启动路径白名单更新装置,如图10所示,包括:
更新启动路径获取模块201,用于获取待更新启动路径信息;
白名单比对模块202,用于将待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
列表更新模块203,用于当白名单比对结果为待更新启动路径信息与启动路径白名单中的多个启动路径信息均不同时,根据待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,白名单列表赋值在平台配置数据库变量中;
第一白名单更新模块204,用于对白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置,还包括:
白名单列表访问模块,用于通过预先设置的卷基础地址,定位并访问固件卷空间,得到白名单列表。
在上述实施方式的基础上,启动路径白名单预先存储在基本输入输出系统的固件卷空间,白名单列表包括白名单名称列表和白名单启动路径列表,本申请提供的启动路径白名单更新装置还包括:
第一变量设置模块,用于在基本输入输出系统的固件卷空间设置第一平台配置数据库变量,其中,第一平台配置数据库变量用于存储白名单名称列表;
第二变量设置模块,用于在基本输入输出系统的固件卷空间设置第二平台配置数据库变量,其中,第二平台配置数据库变量用于存储白名单启动路径列表;
第一变量赋值模块,用于根据启动路径白名单中的白名单名称列表赋值给第一平台配置数据库变量,得到赋值后的第一平台配置数据库变量;
第二变量赋值模块,用于根据启动路径白名单中的白名单启动路径列表赋值给第二平台配置数据库变量,得到赋值后的第二平台配置数据库变量。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置,还包括:
路径规范检查模块,用于根据预先设置的启动路径规范规则对待更新启动路径信息进行检查,得到检查后的待更新启动路径信息。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置,还包括:
启动模式判断模块用于对基本输入输出系统的启动模式进行判断,得到启动模式判断结果;
启动项数量获取模块,用于当启动模式判断结果为统一可扩展固件接口操作系统白名单时,对第一白名单更新结果执行启动项遍历动作,得到启动项数量;
引导进入模块,用于当启动项数量大于0时,引导进入第一白名单更新结果对应的操作系统。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置,还包括:
相同提示信息生成模块,用于当白名单比对结果为待更新启动路径信息与启动路径信息相同时,将白名单比对结果输出显示。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置中,白名单更新模块204包括:
固件打包单元241,用于对固件文件进行打包,得到打包中间结果;
私钥签名单元242,用于通过私钥对打包中间结果进行签名,得到第一白名单更新结果。
在上述实施方式的基础上,本申请提供的启动路径白名单更新装置还包括:
空间内存判断模块,用于对固件卷空间进行空间内存判断,得到空间内存判断结果;
白名单列表调整模块,用于当空间内存判断结果为固件卷空间不足时,删除固件卷空间中的启动路径白名单并对白名单列表更新结果进行调整,得到调整后白名单列表;
第二白名单更新模块,用于对调整后白名单列表对应的固件文件进行打包,得到第二白名单更新结果。
本申请的第三实施方式涉及一种电子设备,如图11所示,包括:
至少一个处理器301;以及,
与所述至少一个处理器301通信连接的存储器302;其中,
所述存储器302存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器301执行,以使所述至少一个处理器301能够实现本申请第一实施方式所述的启动路径白名单更新方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本申请第四实施方式涉及一种非易失性计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现本申请第一实施方式所述的启动路径白名单更新方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种启动路径白名单更新方法,其特征在于,所述方法包括:
获取待更新启动路径信息;
将所述待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,所述白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
当所述白名单比对结果为所述待更新启动路径信息与所述启动路径白名单中的多个所述启动路径信息均不同时,根据所述待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,所述白名单列表赋值在所述平台配置数据库变量中;
对所述白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果之前,还包括:
通过预先设置的卷基础地址,定位并访问固件卷空间,得到所述白名单列表。
3.根据权利要求1所述的方法,其特征在于,所述启动路径白名单预先存储在基本输入输出系统的固件卷空间,所述白名单列表包括白名单名称列表和白名单启动路径列表,所述平台配置数据库变量包括第一平台配置数据库变量和第二平台配置数据库变量,第一所述将所述待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果之前,还包括:
在所述基本输入输出系统的固件卷空间设置所述第一平台配置数据库变量,其中,所述第一平台配置数据库变量用于存储所述白名单名称列表;
在所述基本输入输出系统的固件卷空间设置所述第二平台配置数据库变量,其中,所述第二平台配置数据库变量用于存储所述白名单启动路径列表;
根据所述启动路径白名单中的白名单名称列表赋值给所述第一平台配置数据库变量,得到赋值后的第一平台配置数据库变量;
根据所述启动路径白名单中的白名单启动路径列表赋值给所述第二平台配置数据库变量,得到赋值后的第二平台配置数据库变量。
4.根据权利要求1所述的方法,其特征在于,所述获取待更新启动路径信息之后,所述将所述待更新启动路径信息与所述白名单列表进行比对,得到白名单比对结果之前,还包括:
根据预先设置的启动路径规范规则对所述待更新启动路径信息进行检查,得到检查后的待更新启动路径信息。
5.根据权利要求3所述的方法,其特征在于,所述对所述白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果之后,还包括:
对所述基本输入输出系统的启动模式进行判断,得到启动模式判断结果;
当所述启动模式判断结果为统一可扩展固件接口操作系统白名单时,对所述第一白名单更新结果执行启动项遍历动作,得到启动项数量;
当所述启动项数量大于0时,引导进入所述第一白名单更新结果对应的操作系统。
6.根据权利要求3所述的方法,其特征在于,所述对所述白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果包括:
对所述固件文件进行打包,得到打包中间结果;
通过私钥对所述打包中间结果进行签名,得到所述第一白名单更新结果。
7.根据权利要求3所述的方法,其特征在于,所述当所述白名单比对结果为所述待更新启动路径信息与所述启动路径白名单中的多个所述启动路径信息均不同时,根据所述待更新启动路径信息对所述启动路径白名单进行更新,得到白名单列表更新结果之后,还包括:
对所述固件卷空间进行空间内存判断,得到空间内存判断结果;
当所述空间内存判断结果为所述固件卷空间不足时,删除所述固件卷空间中的启动路径白名单并对所述白名单列表更新结果进行调整,得到调整后白名单列表;
对所述调整后白名单列表对应的固件文件进行打包,得到第二白名单更新结果。
8.一种启动路径白名单更新装置,其特征在于,包括:
更新启动路径获取模块,用于获取待更新启动路径信息;
白名单比对模块,用于将所述待更新启动路径信息与预先设置的白名单列表进行比对,得到白名单比对结果,其中,所述白名单列表包括预先设置启动路径白名单中的多个启动路径信息;
列表更新模块,用于当所述白名单比对结果为所述待更新启动路径信息与所述启动路径白名单中的多个所述启动路径信息均不同时,根据所述待更新启动路径信息对平台配置数据库变量进行更新,得到白名单列表更新结果,其中,所述白名单列表赋值在所述平台配置数据库变量中;
第一白名单更新模块,用于对所述白名单列表更新结果对应的固件文件进行打包,得到第一白名单更新结果。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任一项所述的启动路径白名单更新方法的步骤。
10.一种可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的启动路径白名单更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311402425.0A CN117688551A (zh) | 2023-10-26 | 2023-10-26 | 启动路径白名单更新方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311402425.0A CN117688551A (zh) | 2023-10-26 | 2023-10-26 | 启动路径白名单更新方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117688551A true CN117688551A (zh) | 2024-03-12 |
Family
ID=90125176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311402425.0A Pending CN117688551A (zh) | 2023-10-26 | 2023-10-26 | 启动路径白名单更新方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117688551A (zh) |
-
2023
- 2023-10-26 CN CN202311402425.0A patent/CN117688551A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101137157B1 (ko) | 효과적 패칭 | |
KR101176752B1 (ko) | 효과적 패칭 | |
US9342696B2 (en) | Attesting use of an interactive component during a boot process | |
AU2021206497B2 (en) | Method and apparatus for authority control, computer device and storage medium | |
KR20200052957A (ko) | 보안 제어 방법 및 컴퓨터 시스템 | |
CN103329093A (zh) | 更新软件 | |
CN111190603B (zh) | 一种隐私数据检测方法、装置和计算机可读存储介质 | |
CN111177703B (zh) | 操作系统数据完整性的确定方法及装置 | |
CN113946854B (zh) | 一种文件访问控制方法、装置及计算机可读存储介质 | |
CN111966630B (zh) | 文件类型的检测方法、装置、设备和介质 | |
CN111222122A (zh) | 应用权限管理方法、装置及嵌入式设备 | |
CN108628620B (zh) | Pos应用开发的实现方法、装置、计算机设备和存储介质 | |
CN115688092A (zh) | 终端弱管控方法、装置、电子设备及存储介质 | |
CN111158771B (zh) | 处理方法、装置及计算机设备 | |
CN117688551A (zh) | 启动路径白名单更新方法、装置、电子设备及存储介质 | |
US20070083860A1 (en) | SKU determination mechanism and API | |
WO2018158909A1 (ja) | 情報処理装置およびアクセス管理プログラム | |
CN117112047B (zh) | 一种usb设备的管控方法、设备及存储介质 | |
CN112835595B (zh) | 一种小核架构上运行aix系统的方法、装置、设备及介质 | |
US20220398120A1 (en) | Information processing apparatus, information processing method, and recording medium | |
US20220398317A1 (en) | Information processing apparatus, information processing method, and recording medium | |
US20220366035A1 (en) | Execution control system, execution control method, and program | |
CN116644405A (zh) | 一种linux系统权限检查方法、装置、电子设备及存储介质 | |
CN116775563A (zh) | 一种文件访问控制方法、装置、设备及存储介质 | |
CN113901483A (zh) | 应用检测方法、装置、计算机存储介质和电子设备 |
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 |