CN113239361A - 一种固件安全检测方法、装置、设备及存储介质 - Google Patents
一种固件安全检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113239361A CN113239361A CN202110492281.7A CN202110492281A CN113239361A CN 113239361 A CN113239361 A CN 113239361A CN 202110492281 A CN202110492281 A CN 202110492281A CN 113239361 A CN113239361 A CN 113239361A
- Authority
- CN
- China
- Prior art keywords
- firmware
- sub
- upgrading
- transmission channel
- holes
- 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
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
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种固件安全检测方法、装置、设备及存储介质,方法包括:对用于升级的第一固件进行漏洞检测,如检测结果为有漏洞,则对接收的各子固件进行漏洞检测,以确定有漏洞的子固件;循环执行:向服务端设备发送有漏洞的子固件的编号,接收服务端设备根据有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件,组合用于升级的第二固件,对用于升级的第二固件进行漏洞检测,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值。采用本发明实施例的技术方案,可以确保终端设备下载的固件的安全性,进而确保终端设备基于下载的固件进行的升级行为不会为终端设备带来安全隐患。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种固件安全检测方法、装置、设备及存储介质。
背景技术
固件是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,是设备内部保存的设备“驱动程序”,操作系统通过固件可以实现设备的运行动作。随着技术不断发展,用户对设备的功能提出新的需求,通常会根据需求对设备的固件进行升级。
目前,在对固件进行升级的过程中,一种可能存在的场景是终端设备从服务端设备处下载固件,进而利用下载的固件升级终端设备本地的固件——一般地,该场景下,下载的固件的版本高于本地的固件的版本。
上述过程涉及到固件的传输,而传输过程中,可能存在固件被注入非法数据等安全漏洞。如何确保终端设备下载的固件的安全性,进而确保终端设备基于下载的固件进行的升级行为不会为终端设备带来安全隐患,是现有技术亟待解决的问题之一。
发明内容
本申请实施例提供了一种固件安全检测方法、装置、设备及存储介质,用于确保终端设备下载的固件的安全性,进而确保终端设备基于下载的固件进行的升级行为不会为终端设备带来安全隐患。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种固件安全检测方法,应用于终端设备,包括:
对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
第二方面,提出了一种固件安全检测方法,应用于服务端设备,包括:
通过第一传输通道向终端设备发送各子固件以及所述各子固件分别对应的编码,所述各子固件,通过对固件拆分获得,以及所述各子固件分别设置有编号;
接收终端设备发送的有漏洞的子固件的编号;
通过第二传输通道向终端设备返回所述有漏洞的子固件的编号对应的子固件。
第三方面,提出了一种固件安全检测装置,包括:
第一固件漏洞检测单元,用于对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
有漏洞子固件确定单元,用于如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行单元,用于循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
第四方面,提出了一种固件安全检测装置,包括:
子固件发送单元,用于通过第一传输通道向终端设备发送各子固件以及所述各子固件分别对应的编码,所述各子固件,通过对固件拆分获得,以及所述各子固件分别设置有编号;
编号接收单元,用于接收终端设备发送的有漏洞的子固件的编号;
返回子固件单元,用于通过第二传输通道向终端设备返回所述有漏洞的子固件的编号对应的子固件。
第五方面,提出了一种电子设备,应用于应用服务端,该电子设备包括:
处理器;以及
对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
由以上实施例提供的技术方案可见,通过对用于升级的第一固件进行漏洞检测可以确保终端设备下载的固件的安全性,由于第一固件是由接收的服务端设备通过第一传输通道发送的各子固件组合而成的,因此,在发现第一固件有漏洞时,对各子固件进行漏洞检测,使得服务端设备仅需通过第二传输通道再次发送有漏洞的子固件,一方面再次传输时采用了不同于首次传输的通道,进一步增加了安全性;另一方面仅传输有漏洞的子固件也有效提高了固件传输效率,继而提升了固件升级速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本说明书第一实施方式提供的固件安全检测方法的流程示意图。
图2是本说明书第二实施方式提供的固件安全检测方法的流程示意图。
图3是本说明书第三实施方式提供的固件安全检测方法的流程示意图。
图4是本说明书第四实施方式提供的固件安全检测装置的模块结构示意图。
图5是本说明书第五实施方式提供的固件安全检测装置的模块结构示意图。
图6是本说明书第六实施方式提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本说明书实施例中技术方案的应用场景包括:服务端设备和终端设备;其中,服务端设备对开发人员开发的固件文件进行一系列处理后,将处理后的固件文件的下载地址提供给终端设备;终端设备根据来自服务端的固件文件下载地址去下载固件文件,对下载得到的固件文件进行校验,如果校验通过,则会得到用于升级的固件文件,使用该固件文件对终端设备的固件进行升级。上述过程涉及到固件文件的传输,而传输过程中,可能存在固件文件被注入非法数据等安全漏洞,继而造成终端设备基于下载的固件进行的升级行为存在安全隐患。
为了确保终端设备下载的固件的安全性,进而确保终端设备基于下载的固件进行的升级行为不会为终端设备带来安全隐患,本说明书的第一实施方式涉及一种固件安全检测方法,如图1所示,包括以下步骤:
S101:对用于升级的第一固件进行漏洞检测,第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,各子固件分别设置有编号;
S102:如检测结果为有漏洞,则对接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
S103:循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
其中,指定操作包括下述步骤:
向服务端设备发送有漏洞的子固件的编号;
接收服务端设备根据有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于相应的子固件,以及接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对用于升级的第二固件进行漏洞检测。
在步骤S101中,终端设备对用于升级的第一固件进行漏洞检测。漏洞检测的方法可以为现有的漏洞检测方法。漏洞检测可以分为对已知漏洞的检测和对未知漏洞的检测。已知漏洞的检测主要是通过安全扫描技术,检测系统是否存在已公布的安全漏洞;而未知漏洞检测的目的在于发现软件系统中可能存在但尚未发现的漏洞。现有的未知漏洞检测技术有源代码扫描、反汇编扫描、环境错误注入等。
在一个例子中,可以采用符号执行技术对用于升级的第一固件进行漏洞检测。符号执行技术是一种通过计算符号状态而不是实现具体值来分析程序的方法,包括执行流跟踪、执行指令提升、约束提取、约束求解四个必要步骤。
在一个例子中,在对用于升级的第一固件进行漏洞检测之前,终端设备接收服务端设备通过第一传输通道发送的各子固件以及各子固件分别对应的编码。各子固件是通过对固件拆分获得的。服务端设备可以预先将固件拆分为多个子固件,子固件的大小可以设置,例如,拆分为多个不大于500M的子固件,本提案中可以按照预设的拆分规则,如以分区为单元进行拆分等,可以保证不同版本的固件以相同拆分规则进行拆分,其拆分得到的子固件具有对应关系。服务端设备可以将这些子固件存储在服务端设备的存储器中。
利用完整性校验算法,对各子固件分别对应的编码进行解密,得到各子固件分别对应的编号。编码是由服务端设备将固件拆分成子固件时,对每个子固件进行编号,该编号用于纪录数据的原始组合顺序。随后,利用完整性校验算法,对每个子固件计算由“编号+子固件数据”产生的编码。以编号为1,数据段为1110,编码为BF的子固件为例,终端接收该子固件后,通过编码BF得到该子固件的编号为1。
在一个例子中,为了安全起见,服务端设备通常随机发送子固件及其对应的编码,终端设备对编码进行解密获取子固件对应的编号后,根据该编号,在终端设备本地预先存储的子固件中进行比对,终端设备本地预先存储的子固件是终端设备对本地预先存储的固件进行拆分获取的,其拆分规则与服务端设备的拆分规则相同,因此,用于记录数据的原始组合顺序的编号也是对应的,即,相同编号的用于升级的子固件和本地预先存储的子固件是一一对应的。将接收的子固件与对应于该编号的终端设备本地预先存储的子固件进行比对,如比对结果为相同,则表示该编号的子固件无变化,不需替换;如比对结果为不相同,则表示该编号的子固件有变化,需要替换。终端设备将接收的所有子固件一一比对后,将不需替换的本地预先存储的子固件和接收的服务端设备发送的子固件按正确的顺序组合,便可以得到用于升级的第一固件。
在步骤S102中,终端设备对用于升级的第一固件的漏洞检测后,如检测结果为无漏洞,即可将该第一固件烧录到终端设备中,然后加载启动完成固件升级;如检测结果为有漏洞,即代表固件传输过程中发生了篡改,则对接收的各子固件进行漏洞检测,漏洞检测的方法可以采用符号执行技术,确定有漏洞的子固件。
在一个例子中,可以仅对发生替换操作的子固件进行漏洞检测,如发生替换操作的子固件为编号为5、7、9、12的四个子固件,此处的漏洞检测可以仅对这四个子固件执行,可以有效提升漏洞检测的效率。
在步骤S103中,循环执行以下步骤:确定有漏洞的子固件后,即可获取该子固件的编号,向服务端设备发送该编号;随后,接收服务端设备通过第二传输通道返回的对应于该编号的子固件,将该子固件和其余编号的子固件进行组合,生成用于升级的第二固件。如,有漏洞的子固件为编号6,向服务端设备发送编号6,服务端设备通过第二传输通道返回编号6的子固件,通常第二传输通道比第一传输通道安全等级更高,终端设备接收服务端设备重新传输的编号6的子固件,和其他子固件组合为第二固件。
然后,可以采用符号执行技术对第二固件进行漏洞检测,如果检测结果为通过,则将第二固件烧录到终端设备中并加载启动,完成终端设备的固件升级;如果检测结果为有漏洞,则继续向服务端设备发送有漏洞的子固件的编号,请求服务端设备再次发送子固件,服务端设备接收到请求后,可重新选择第二传输通道返回该子固件,循环执行,直到重新组合的用于升级的第二固件检测结果无漏洞,或者,预设循环3次即停止,可以理解为,循环执行3次均有漏洞,可能所有传输通道均不安全,或服务端设备存在问题,停止执行可以进行人工检测等。
利用本实施例在对固件安全进行检测时,通过对用于升级的第一固件进行漏洞检测可以确保终端设备下载的固件的安全性,由于第一固件是由接收的服务端设备通过第一传输通道发送的各子固件组合而成的,因此,在发现第一固件有漏洞时,对各子固件进行漏洞检测,使得服务端设备仅需通过第二传输通道再次发送有漏洞的子固件,一方面再次传输时采用了不同于首次传输的通道,进一步增加了安全性;另一方面仅传输有漏洞的子固件也有效提高了固件传输效率,继而提升了固件升级速度。
本说明书的第二实施方式涉及一种固件安全检测方法,应用于服务端设备,如图2所示,包括:
S201:通过第一传输通道向终端设备发送各子固件以及各子固件分别对应的编码,各子固件,通过对固件拆分获得,以及各子固件分别设置有编号;
S202:接收终端设备发送的有漏洞的子固件的编号;
S203:通过第二传输通道向终端设备返回有漏洞的子固件的编号对应的子固件。
在步骤S201中,服务端设备通过第一传输通道向终端设备发送各子固件以及各子固件分别对应的编码。其中,各子固件是通过对固件拆分获得的。服务端设备可以预先将固件拆分为多个子固件,子固件的大小可以设置,例如,拆分为多个不大于500M的子固件,本提案中可以按照预设的拆分规则,如以分区为单元进行拆分等,可以保证不同版本的固件以相同拆分规则进行拆分,其拆分得到的子固件具有对应关系。服务端设备可以将这些子固件存储在服务端设备的存储器中。编码是由服务端设备将固件拆分成子固件时,对每个子固件进行编号,该编号用于纪录数据的原始组合顺序。随后,利用完整性校验算法,对每个子固件计算由“编号+子固件数据”产生的编码。服务端设备随机向终端设备发送一个子固件以及对应的编码。
在步骤S202中,当终端设备通过漏洞检测方法确定了有漏洞的子固件后,向服务端设备发送有漏洞的子固件的编号。此时,服务端设备接收到该编号,在服务端设备的存储中根据编号查找对应的子固件。
在步骤S203中,服务端设备将查找到的子固件通过第二传输通道返回给终端设备,以使终端设备接收服务端设备通过第二传输通道返回的对应于该编号的子固件,将该子固件和其余编号的子固件进行组合,生成用于升级的第二固件。
可以理解,服务端设备通过第一传输通道向终端设备随机发送一个子固件及其对应的编码,以使得终端设备通过该编码获取子固件的编号,进而根据接收的各子固件组合为用于升级的第一固件。通过随机传输+编码的方式实现了对子固件的校验,增强了安全性;另外,当终端设备确定有漏洞的子固件,服务端设备可通过终端设备发送的有漏洞的子固件的编号查找对应的子固件,并通过不同于第一传输通道的第二传输通道再次发送至终端设备,进一步增加了安全性,也有效提高了固件传输效率,继而提升了固件升级速度。
本说明书的第三实施方式涉及一种固件安全检测方法,为一具体实施例,如图3所示,包括以下步骤:
(1)服务端设备根据预设拆分规则,将固件拆分为多个子固件;
(2)服务端设备根据拆分顺序,生成各子固件的编号;
(3)服务端设备利用完整性校验算法,针对每个子固件,根据“编号+子固件数据”计算生成子固件对应的编码;
(4)服务端设备通过第一传输通道向终端设备随机发送一个子固件及其对应的编码;
(5)终端设备接收服务端设备发送的子固件及其对应的编码;
(6)终端设备利用完整性校验算法,根据编码获取该子固件的编号;
(7)终端设备根据编号,确定与接收的子固件对应的本地预存储的子固件;
(8)将接收的子固件和编号对应的本地预存储的子固件进行比对,如比对相同,则保留本地预存储的子固件;如比对不相同,则将接收的子固件替换本地预存储的子固件;
(9)待所有子固件均发送完毕,对各子固件组合为升级用的第一固件;
(10)采用符号执行技术对组合后的固件进行漏洞检测,如检测结果为无漏洞,采用该组合后的固件进行升级;
(11)如检测结果为有漏洞,则判断在子固件传输过程中,可能遭到攻击被修改,从而采用符号执行技术对进行替换操作的各子固件逐个进行漏洞检测,并根据符号执行技术的执行结果,确定有漏洞的子固件;
(12)终端设备向服务端设备发送有漏洞的子固件的编号;
(13)服务端设备接收终端设备发送的有漏洞的子固件的编号,确定编号对应的子固件;
(14)采用备用的安全链路,如第二传输通道,向终端设备发送确定的子固件;
(15)终端设备接收服务端设备发送的子固件,重新组合子固件得到第二固件;
(16)再次执行上述(10)~(15)的步骤。如此循环,直至满足循环结束条件——比如采用符号执行技术对组合后的固件进行漏洞检测,未检测出漏洞;或,循环次数超过阈值。
本说明书的第四实施方式涉及一种固件安全检测装置400,如图4所示,包括:第一固件漏洞检测单元401、有漏洞子固件确定单元402、循环执行单元403,各模块功能详细说明如下:
第一固件漏洞检测单元401,用于对用于升级的第一固件进行漏洞检测,第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,各子固件分别设置有编号;
有漏洞子固件确定单元402,用于如检测结果为有漏洞,则对接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行单元403,用于循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
指定操作包括下述步骤:
向服务端设备发送有漏洞的子固件的编号;
接收服务端设备根据有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于相应的子固件,以及接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对用于升级的第二固件进行漏洞检测。
进一步地,本发明实施方式提供的固件安全检测装置400中,还包括:接收单元404以及编号获取单元405,各模块功能详细说明如下:
接收单元404,用于接收服务端设备通过第一传输通道发送的各子固件以及各子固件分别对应的编码,各子固件,通过对固件拆分获得;
编号获取单元405,用于利用完整性校验算法,根据编码获取各子固件分别对应的编号。
进一步地,本发明实施方式提供的固件安全检测装置400中,还包括:编号执行单元406,用于:
针对获取的每个编号分别执行:根据该编号,将接收的子固件与对应于该编号的终端设备本地预先存储的子固件进行比对,如比对结果为不相同,则利用接收的各子固件,组合用于升级的第一固件。
进一步地,本发明实施方式提供的固件安全检测装置400中,漏洞检测,包括采用符号执行技术的漏洞检测。
利用本实施例的装置在对固件安全进行检测时,通过对用于升级的第一固件进行漏洞检测可以确保终端设备下载的固件的安全性,由于第一固件是由接收的服务端设备通过第一传输通道发送的各子固件组合而成的,因此,在发现第一固件有漏洞时,对各子固件进行漏洞检测,使得服务端设备仅需通过第二传输通道再次发送有漏洞的子固件,一方面再次传输时采用了不同于首次传输的通道,进一步增加了安全性;另一方面仅传输有漏洞的子固件也有效提高了固件传输效率,继而提升了固件升级速度。
本说明书的第五实施方式涉及一种固件安全检测装置500,如图5所示,包含:子固件发送单元501、编号接收单元502、返回子固件单元503,各模块功能详细说明如下:
子固件发送单元501,用于通过第一传输通道向终端设备发送各子固件以及各子固件分别对应的编码,各子固件,通过对固件拆分获得,以及各子固件分别设置有编号;
编号接收单元502,用于接收终端设备发送的有漏洞的子固件的编号;
返回子固件单元503,用于通过第二传输通道向终端设备返回有漏洞的子固件的编号对应的子固件。
进一步地,本发明实施方式提供的固件安全检测装置500中,还包括:编码生成单元504,模块功能详细说明如下:
编码生成单元504,用于根据各子固件的数据以及各子固件分别对应的编号,采用完整性校验算法生成各子固件分别对应的编码。
可以理解,服务端设备通过第一传输通道向终端设备随机发送一个子固件及其对应的编码,以使得终端设备通过该编码获取子固件的编号,进而根据接收的各子固件组合为用于升级的第一固件。通过随机传输+编码的方式实现了对子固件的校验,增强了安全性;另外,当终端设备确定有漏洞的子固件,服务端设备可通过终端设备发送的有漏洞的子固件的编号查找对应的子固件,并通过不同于第一传输通道的第二传输通道再次发送至终端设备,进一步增加了安全性,也有效提高了固件传输效率,继而提升了固件升级速度。
值得一提的是,本说明书的实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,以上实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明以上实施方式中不存在其它的单元。
本说明书的第六实施方式涉及一种电子设备,如图6所示。在硬件层面,电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponentInterconnect,外设部件互连标准)总线或EISA(Extended IndustryStandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成固件安全检测装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
对用于升级的第一固件进行漏洞检测,第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,各子固件分别设置有编号;
如检测结果为有漏洞,则对接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
指定操作包括下述步骤:
向服务端设备发送有漏洞的子固件的编号;
接收服务端设备根据有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于相应的子固件,以及接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对用于升级的第二固件进行漏洞检测。
上述如本说明书的实施方式提供的一种固件安全检测方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行一种固件安全检测方法,并具体用于执行:
对用于升级的第一固件进行漏洞检测,第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,各子固件分别设置有编号;
如检测结果为有漏洞,则对接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
指定操作包括下述步骤:
向服务端设备发送有漏洞的子固件的编号;
接收服务端设备根据有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于相应的子固件,以及接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对用于升级的第二固件进行漏洞检测。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、装置、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种固件安全检测方法,应用于终端设备,其特征在于,包括:
对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
2.根据权利要求1所述的方法,其特征在于,所述对用于升级的第一固件进行漏洞检测之前,还包括:
接收服务端设备通过所述第一传输通道发送的各子固件以及所述各子固件分别对应的编码,所述各子固件,通过对固件拆分获得;
利用完整性校验算法,根据所述编码获取所述各子固件分别对应的编号。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
针对获取的每个编号分别执行:根据该编号,将接收的子固件与对应于该编号的所述终端设备本地预先存储的子固件进行比对,如比对结果为不相同,则利用接收的各子固件,组合用于升级的所述第一固件。
4.根据权利要求1所述的方法,其特征在于,所述漏洞检测,包括采用符号执行技术的漏洞检测。
5.一种固件安全检测方法,应用于服务端设备,其特征在于,包括:
通过第一传输通道向终端设备发送各子固件以及所述各子固件分别对应的编码,所述各子固件,通过对固件拆分获得,以及所述各子固件分别设置有编号;
接收终端设备发送的有漏洞的子固件的编号;
通过第二传输通道向终端设备返回所述有漏洞的子固件的编号对应的子固件。
6.根据权利要求5所述的方法,其特征在于,所述通过第一传输通道向终端设备发送各子固件以及所述各子固件分别对应的编码之前,还包括:
根据所述各子固件的数据以及所述各子固件分别对应的编号,采用完整性校验算法生成所述各子固件分别对应的编码。
7.一种固件安全检测装置,其特征在于,包括:
第一固件漏洞检测单元,用于对用于升级的第一固件进行漏洞检测,所述第一固件由接收的服务端设备通过第一传输通道发送的各子固件组合而成,所述各子固件分别设置有编号;
有漏洞子固件确定单元,用于如检测结果为有漏洞,则对所述接收的各子固件进行漏洞检测,以确定有漏洞的子固件;
循环执行单元,用于循环执行指定操作,直至对用于升级的第二固件的漏洞检测通过,或,直至循环次数等于预设次数阈值;
所述指定操作包括下述步骤:
向所述服务端设备发送所述有漏洞的子固件的编号;
接收服务端设备根据所述有漏洞的子固件的编号,通过第二传输通道返回的相应的子固件;
基于所述相应的子固件,以及所述接收的各子固件中进行漏洞检测通过的子固件,组合用于升级的第二固件;
对所述用于升级的第二固件进行漏洞检测。
8.一种固件安全检测装置,其特征在于,包括:
子固件发送单元,用于通过第一传输通道向终端设备发送各子固件以及所述各子固件分别对应的编码,所述各子固件,通过对固件拆分获得,以及所述各子固件分别设置有编号;
编号接收单元,用于接收终端设备发送的有漏洞的子固件的编号;
返回子固件单元,用于通过第二传输通道向终端设备返回所述有漏洞的子固件的编号对应的子固件。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110492281.7A CN113239361A (zh) | 2021-05-06 | 2021-05-06 | 一种固件安全检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110492281.7A CN113239361A (zh) | 2021-05-06 | 2021-05-06 | 一种固件安全检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113239361A true CN113239361A (zh) | 2021-08-10 |
Family
ID=77132146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110492281.7A Pending CN113239361A (zh) | 2021-05-06 | 2021-05-06 | 一种固件安全检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239361A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023765A (zh) * | 2017-11-03 | 2018-05-11 | 珠海格力电器股份有限公司 | 设备固件升级方法、装置及存储介质 |
CN108920962A (zh) * | 2018-06-26 | 2018-11-30 | 百富计算机技术(深圳)有限公司 | 固件下载验签方法、固件发布方法、移动终端及服务器 |
CN109361544A (zh) * | 2018-10-30 | 2019-02-19 | 深圳市航天华拓科技有限公司 | 一种定位终端固件方法、装置和计算设备 |
CN110276201A (zh) * | 2019-06-18 | 2019-09-24 | 广州小鹏汽车科技有限公司 | 一种车载系统的安全检测方法、系统及服务设备 |
CN110337036A (zh) * | 2019-06-25 | 2019-10-15 | 深圳创维-Rgb电子有限公司 | 机顶盒的升级方法、装置及存储介质 |
CN110621011A (zh) * | 2019-09-12 | 2019-12-27 | 北京方研矩行科技有限公司 | 一种基于蓝牙设备端的ota固件升级方法及系统 |
US20200134192A1 (en) * | 2018-10-31 | 2020-04-30 | Dell Products L.P. | Security Profiling of System Firmware and Applications from an OOB Appliance at a Differentiated Trust Boundary |
-
2021
- 2021-05-06 CN CN202110492281.7A patent/CN113239361A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023765A (zh) * | 2017-11-03 | 2018-05-11 | 珠海格力电器股份有限公司 | 设备固件升级方法、装置及存储介质 |
CN108920962A (zh) * | 2018-06-26 | 2018-11-30 | 百富计算机技术(深圳)有限公司 | 固件下载验签方法、固件发布方法、移动终端及服务器 |
CN109361544A (zh) * | 2018-10-30 | 2019-02-19 | 深圳市航天华拓科技有限公司 | 一种定位终端固件方法、装置和计算设备 |
US20200134192A1 (en) * | 2018-10-31 | 2020-04-30 | Dell Products L.P. | Security Profiling of System Firmware and Applications from an OOB Appliance at a Differentiated Trust Boundary |
CN110276201A (zh) * | 2019-06-18 | 2019-09-24 | 广州小鹏汽车科技有限公司 | 一种车载系统的安全检测方法、系统及服务设备 |
CN110337036A (zh) * | 2019-06-25 | 2019-10-15 | 深圳创维-Rgb电子有限公司 | 机顶盒的升级方法、装置及存储介质 |
CN110621011A (zh) * | 2019-09-12 | 2019-12-27 | 北京方研矩行科技有限公司 | 一种基于蓝牙设备端的ota固件升级方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109214168B (zh) | 固件升级方法及装置 | |
CN107733847B (zh) | 平台登录网站方法、装置、计算机设备以及可读存储介质 | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN106560830A (zh) | 一种Linux嵌入式系统中的安全防护方法及系统 | |
CN108446535B (zh) | 基于代码执行顺序的源代码加固方法及装置 | |
CN107092824B (zh) | 一种应用程序的运行方法及装置 | |
CN104850427B (zh) | 一种代码升级方法及装置 | |
CN113242288B (zh) | 一种物联网设备固件升级方法、系统、装置以及存储介质 | |
CN107038353B (zh) | 软件程序的校验保护方法及系统 | |
CN111095200A (zh) | 嵌入式程序的安全升级方法、装置、设备及存储介质 | |
CN108197469B (zh) | 校验应用程序的方法、装置和存储介质以及电子设备 | |
CN109753788B (zh) | 内核运行时的完整性校验方法及计算机可读存储介质 | |
CN112685745A (zh) | 一种固件检测方法、装置、设备及存储介质 | |
KR20160006925A (ko) | 앱 무결성 검증 장치 및 그 방법 | |
CN110069415B (zh) | 用于软件测试过程中的软件完整性校验及软件测试方法 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN110825451A (zh) | 一种小程序页面地址的配置、校验方法及装置 | |
CN107301105B (zh) | 校验热补丁或者动态库的方法及装置 | |
CN112231649A (zh) | 一种固件加密处理方法、装置、设备及介质 | |
CN113239361A (zh) | 一种固件安全检测方法、装置、设备及存储介质 | |
CN108959915B (zh) | 一种rootkit检测方法、装置及服务器 | |
CN106295327B (zh) | 可执行文件的加固方法和装置 | |
CN115185551A (zh) | 一种应用程序安装方法、装置、系统及存储介质 | |
CN114706706A (zh) | 应用软件的修复方法、装置及电子设备 | |
US11216561B2 (en) | Executing processes in sequence |
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 |