一种物联网设备固件升级方法、系统、装置以及存储介质转让专利

申请号 : CN202110492403.2

文献号 : CN113242288B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 袁静李政李承泽范乐君李高超金暐陈燕呢赵怀瑾肖佃艳

申请人 : 国家计算机网络与信息安全管理中心

摘要 :

本申请公开了一种物联网设备固件升级方法,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网设备的正常运行的问题。方法包括:响应于接收到的固件升级指令,启动虚拟机;确定待升级固件,并通过虚拟机模拟待升级固件对应的运行环境;获取待升级固件对应的更新安装包,通过虚拟机运行更新安装包,并在虚拟机中完成对所述待升级固件的升级;通过虚拟机运行所述第一升级固件,并对第一升级固件的运行状态进行监控;当通过运行状态确定第一升级固件安全后,通过虚拟机对物理机上的待升级固件进行升级。

权利要求 :

1.一种物联网设备固件升级方法,其特征在于,包括:响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;

根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;

获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;

当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。

2.根据权利要求1所述的方法,其特征在于,所述基于所述虚拟机,对所述更新安装包进行安全检测,具体包括:

所述虚拟机获取所述待升级固件对应的元数据;其中,所述元数据包括所述待升级固件对应的解包规则;

根据所述解包规则,对所述更新安装包进行解包,以获取所述更新安装包对应的文件系统;

对所述文件系统进行反编译,以得到所述更新安装包的汇编代码;

通过对所述更新安装包的汇编代码进行扫描,对所述更新安装包进行安全检测。

3.根据权利要求1所述的方法,其特征在于,通过所述虚拟机对物理机上的所述待升级固件进行升级,具体包括:在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;

通过所述待升级固件对应的更新安装包,对所述物理机中的所述待升级固件进行升级,得到第二升级固件;

当所述物理机中的所述待升级固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机中的所述第二升级固件,并关闭所述虚拟机。

4.一种物联网设备固件升级系统,其特征在于,包括:虚拟机启动单元,用于响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;

运行环境模拟单元,用于根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;

虚拟升级单元,用于获取所述待升级固件对应的更新安装包,基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;

状态监控单元,用于通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;升级单元,用于当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。

5.根据权利要求4所述的物联网设备固件升级系统,其特征在于,所述升级单元,具体用于:

在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;

通过所述待升级固件对应的更新安装包,对所述物理机中的所述待升级固件进行升级,得到第二升级固件;

当所述物理机中的所述待升级固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机中的所述第二升级固件,并关闭所述虚拟机。

6.一种物联网设备固件升级装置,包括:处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;

根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;

获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;

通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;

当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。

7.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;

根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;

获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;

通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;

当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。

说明书 :

一种物联网设备固件升级方法、系统、装置以及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种物联网设备固件升级方法、系统、装置以及存储介质。

背景技术

[0002] 随着物联网(Internet of Things,IoT)技术的不断发展,嵌入式设备大量投入到物联网场景中使用。
[0003] 与所有设备或者软件一样,物联网设备在使用一段时间后,用户对其需求和功能也都会发生改变,尤其是设备中的固件(主要包含操作系统、设备驱动程序和中间件,由于
它们都直接嵌入到设备的静态闪存中,因此被统称为设备的“固件”),作为负责协调系统内
部资源以及内外部的信息交互的主要模块,其安全性、稳定性极其重要,只有提供持续的更
新服务,才能确保设备的安全,满足用户对设备功能的需求。
[0004] 目前相关技术中通常使用空中固件升级技术进行固件升级,空中固件升级技术是一种利用特定的网络通信协议下载远程固件更新包,从而实现对已经部署的物联网设备进
行固件更新的技术。
[0005] 而在相关技术中,对于固件更新包安全性的保护方案大多采取通信加密的方式进行,或者直接进行明文传输。通信加密的方式会增加终端解密过程的时间和内存开销,而且
解密算法本身也需占用一定的内存,考虑嵌入式终端中包括小型嵌入式终端内存资源有
限、运算能力有限的使用环境,此方式具有使用局限性。而明文传输下,攻击者能够轻易获
取完整的固件更新包,从而很容易导致更新包被替换,进而导致系统被篡改或者破坏,极大
地影响了系统的安全性,不利于物联网设备的正常运行。
[0006] 由此可见,如何保证已经投入市场的物联网设备的固件可以安全升级成为一个亟待解决的问题。

发明内容

[0007] 本申请实施例提供一种物联网设备固件升级方法,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致更
新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网设
备的正常运行的问题。
[0008] 本申请实施例还提供一种物联网设备固件升级系统,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
[0009] 本申请实施例还提供一种物联网设备固件升级装置,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
[0010] 本申请实施例还提供一种计算机可读存储介质,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致更新
包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网设备
的正常运行的问题。
[0011] 本申请实施例采用下述技术方案:
[0012] 一种物联网设备固件升级方法,包括:响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物
理机中;根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件
对应的运行环境;获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新
安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚
拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;当通过所述运
行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行
升级。
[0013] 一种物联网设备固件升级系统,其特征在于,包括:
[0014] 虚拟机启动单元,用于响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;运行环
境模拟单元,用于根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待
升级固件对应的运行环境;虚拟升级单元,用于获取所述待升级固件对应的更新安装包,通
过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得
到第一升级固件;状态监控单元,用于通过所述虚拟机运行所述第一升级固件,并对所述第
一升级固件的运行状态进行监控;升级单元,用于当通过所述运行状态确定所述第一升级
固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
[0015] 一种物联网设备固件升级装置,包括:
[0016] 处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:响应于接收到的固件升级指令,启动虚拟机;其中,所述
固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;根据
所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行
环境;获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在
所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所
述第一升级固件,并对所述第一升级固件的运行状态进行监控;当通过所述运行状态确定
所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
[0017] 一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操
作:响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级
固件的标识,所述虚拟机运行于安装固件的物理机中;根据所述固件升级指令,确定待升级
固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;获取所述待升级固件对应
的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升
级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述第一
升级固件的运行状态进行监控;当通过所述运行状态确定所述第一升级固件安全后,通过
所述虚拟机对物理机上的所述待升级固件进行升级。
[0018] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0019] 采用本申请实施例提供的物联网设备固件升级方法,当物联网设备接收到固件升级指令后,响应于该固件升级指令,启动虚拟机,根据该固件升级指令,确定待升级固件,并
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。

附图说明

[0020] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0021] 图1为本申请实施例提供的一种物联网设备固件升级方法的具体流程示意图;
[0022] 图2为本申请实施例提供的一种物联网设备固件升级系统的具体结构示意图;
[0023] 图3为本申请实施例提供的一种物联网设备固件升级装置的具体结构示意图。

具体实施方式

[0024] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一
部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做
出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0025] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0026] 本申请实施例提供的一种物联网设备固件升级方法,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,从而导致
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
[0027] 本申请所提供的物联网设备固件升级方法的具体实现流程示意图如图1所示,主要包括下述步骤:
[0028] 步骤11,响应于接收到的固件升级指令,启动虚拟机;
[0029] 其中,该固件升级指令中携带有待升级固件的标识。具体地,当开发人员完成固件新版本开发后,会将新版本固件更新包上传至升级服务器,则升级服务器可以生成与该固
件更新包对应的固件升级指令,该固件升级指令包含固件版本信息、待升级固件的标识(名
称或者ID)以及更新上线时间等信息,并将该固件升级指令下发至各待更新物联网设备。
[0030] 该虚拟机(Virtual Machine,VM)运行于安装固件的物理机中。
[0031] 步骤12,根据通过执行步骤11接收到的固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
[0032] 虚拟机可以根据通过执行步骤11接收到的固件升级指令中所携带的固件标识,确定待升级的固件,并进一步地对该待升级固件的运行环境进行模拟。
[0033] 在本申请实施例中,该虚拟机可以通过运行待更新固件所需的基础环境的方式来模拟待更新固件的实际运行环境,以实现在虚拟机中运行该待升级固件。
[0034] 具体地,虚拟机可以通过运行固件文件系统、固件运行依赖的定制版本系统内核、固件运行依赖的特定虚拟硬件等方式,实现固件运行基础环境的模拟。
[0035] 在一种实施方式中,该虚拟机可以利用开源固件提取工具Binwalk,可从固件映像中提取嵌入式文件系统。利用Binwalk组件从二进制格式的设备固件代码中将该设备固件
的文件系统提取出来,并对操作系统文件和用户程序文件进行分离。虚拟机可以通过查询
该固件可执行与可链接格式(Executable and Linkable Format,ELF)文件头确定该固件
的指令架构和字节序。虚拟机可以通过查询该固件程序依赖的库确定需要编译配置的内
核。虚拟机可以通过查询该固件程序运行时所调用的硬件接口配置虚拟硬件。进而根据获
取到的上述信息,在虚拟机中模拟该待升级固件运行所需的基础环境。
[0036] 另外这里还需要说明的是,在虚拟机将待升级固件运行所需环境全部配置好后,虚拟机还可以对物理机中的数据进行复制,并输入至虚拟机中,以使得在该虚拟机中运行
该待升级固件。
[0037] 步骤13,获取所述待升级固件对应的更新安装包,通过虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;
[0038] 在一种实施方式中,物联网设备可以根据接收到的固件升级指令,从升级服务器处下载该待升级固件对应的更新安装包,并在通过执行步骤12配置好的虚拟机上解压该更
新安装包,进而按照该固件更新安装包对运行在虚拟机中的待升级固件进行更新,此时,由
于是在虚拟机上模拟固件的更新升级,更新包的解密以及更新升级过程均使用虚拟机的处
理资源,不会对物理机上实际运行的固件造成影响。
[0039] 这里需要说明的是,为了保证更新安装包的安全,在运行该更新安装包之前,虚拟机首先会对该更新安装包进行安全检测,在一种实施方式中,通过虚拟机运行更新安装包,
可以包括:基于虚拟机,对更新安装包进行安全检测;当安全检测通过后,通过虚拟机运行
更新安装包。
[0040] 在本申请实施例中,虚拟机可以根据待升级固件的元数据,对已下载的更新安装包进行安全检测,本申请实施例中,虚拟机可以按照下述方法对更新安装包进行安全检测:
虚拟机获取所述待升级固件对应的元数据;其中,所述元数据包括所述待升级固件对应的
解包规则;根据所述解包规则,对所述更新安装包进行解包,以获取所述更新安装包对应的
文件系统;对所述文件系统进行反编译,以得到所述更新安装包的汇编代码;通过对所述更
新安装包的汇编代码进行扫描,对所述更新安装包进行安全检测。
[0041] 具体地,虚拟机可以按照以下方式对更新安装包进行安全检测:
[0042] 虚拟机对当前物联网设备(未进行固件升级前)的元数据进行收集,该元数据包括该物联网设备所包含的固件名称、固件类型、固件对应的生产厂商、生产厂商所预设的数字
签名以及各固件所对应的解包规则,并根据收集到的该元数据生成该物联网设备的固件列
表。
[0043] 当物联网设备从升级服务器处下载到固件的更新安装包后,在通过虚拟机进行解包更新前,虚拟机首先会对接收的固件升级包进行解密和签名校验,一般地,升级服务器在
对固件更新安装包打包的过程中,生产厂商会对固件更新安装包进行加密并添加该生产厂
商所对应的数字签名,以确保固件更新安装包本身的安全性。则当物联网设备下载到该更
新安装包后,虚拟机首先可以通过执行解密算法和签名校验,对固件升级包进行解密以及
初步的安全检测。
[0044] 在完成对该更新安装包的解密以及初步安全检测后,虚拟机可以获取该固件更新安装包所对应的固件名称,并根据该固件名称,在预先生成的固件列表中查找与当前固件
更新安装包对应的固件元数据,并按照查找到的固件元数据中的解包规则,对该固件更新
安装包进行解包,以获得该固件更新安装包对应的文件系统,并通过反编译方式将解包得
到的文件系统的机器语言代码转化成汇编语言代码。对该固件更新包的汇编语言代码进行
扫描,扫描方法包括匹配特征代码、定位核心函数,提取关联文件,根据现有的漏洞特征库
来检测分析代码中是否存在的漏洞。进而根据扫描和检测结果确定该固件更新安装包是否
存在安全风险。
[0045] 通过上述两轮安全检测,虚拟机可以尽可能保证从升级服务器下载的更新安装包并未遭到篡改,且不存在安全风险,进而保证后续在虚拟机上进行模拟更新升级的安全。
[0046] 当虚拟机通过上述方式对更新安装包进行安全验证通过后,虚拟机可以运行更新安装包,并在虚拟机中完成对待升级固件的升级,得到第一升级固件。
[0047] 步骤14,通过虚拟机运行通过执行步骤13得到的第一升级固件,并对第一升级固件的运行状态进行监控;
[0048] 在一种实施方式中,为了通过运行在虚拟机中的第一升级固件的运行状态,模拟该第一升级固件在实际生成环境中的运行状态,本申请实施例中,虚拟机可以通过对实际
生成环境中的业务数据进行复制,并通过该复制得到的业务数据运行该第一升级固件,已
达到模拟该第一升级固件在实际生成环境中的运行状态的效果。
[0049] 具体地,虚拟机可以采用以下方式,对升级固件的运行状态进行监控:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述
虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的
运行状态。
[0050] 在本申请实施例中,虚拟机可以在预设时段(比如从更新升级完毕起1小时内)内通过判断第一升级固件在运行过程中是否出现异常状态(比如异常停机、异常重启等故
障),来确定该第一升级固件是否运行正常。当虚拟机在预设时段内未检测到该第一升级固
件出现异常状态,则确定第一升级固件为安全固件,进而执行步骤15;而当虚拟机在预设时
段内检测到该第一升级固件出现异常状态,则确定第一升级固件为非安全固件,进而执行
步骤16。
[0051] 步骤15,当根据通过执行步骤14获取的运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级;
[0052] 在使用更新安装包对物理机上的待升级固件进行升级更新时,为了避免由固件更新而导致物联网设备无法正常使用,在本申请实施例中,当对物理机上的固件进行更新期
间,可以将虚拟机上运行的升级后的固件接入生产环境,通过该升级后的固件在物理机固
件升级期间,代替该物理机固件执行任务,在该物理机固件升级完毕后,重新将物理机固件
接入生产环境,并关闭该虚拟机,以节省设备资源。
[0053] 具体地,本申请实施例提供的方法可以包括:在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;通过所述待升级固件对应的更新安装包,对所述
物理机中的所述待升级固件进行升级,得到第二升级固件;当所述物理机中的所述待升级
固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机
中的所述第二升级固件,并关闭所述虚拟机。
[0054] 步骤16,当根据通过执行步骤14获取的运行状态确定所述第一升级固件不安全时,则关闭该虚拟机。
[0055] 当根据通过执行步骤14获取的运行状态确定虚拟机中运行的固件存在安全风险后,则关闭该虚拟机,以保证物理机运行环境的安全,并向升级服务器发送安全告警,以提
示升级服务器更新包传输链路或者更新包加密方案可能已被攻击破解,以使得升级服务器
对加密策略以及传输链路加密方案进行更新,保证后续更新包传输过程的安全。
[0056] 采用本申请实施例提供的物联网设备固件升级方法,当物联网设备接收到固件升级指令后,响应于该固件升级指令,启动虚拟机,根据该固件升级指令,确定待升级固件,并
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。
[0057] 此外,本申请实施例还提供的一种物联网设备固件升级系统,用以解决采用现有固件升级方法进行物联网设备固件升级时,由于攻击者能够轻易获取完整的固件更新包,
从而导致更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利
于物联网设备的正常运行的问题。该物联网设备固件升级系统的具体结构示意图如图2所
示,包括:虚拟机启动单元21、运行环境模拟单元22、虚拟升级单元23、状态监控单元24以及
升级单元25。
[0058] 其中,虚拟机启动单元21,用于响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
[0059] 运行环境模拟单元22,用于根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
[0060] 虚拟升级单元23,用于获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固
件;
[0061] 状态监控单元24,用于通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;
[0062] 升级单元25,用于当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
[0063] 在一种实施方式中,所述虚拟升级单元23,具体用于:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包。
[0064] 在一种实施方式中,所述虚拟升级单元23,具体用于:获取所述待升级固件对应的元数据;其中,所述元数据包括所述待升级固件对应的解包规则;根据所述解包规则,对所
述更新安装包进行解包,以获取所述更新安装包对应的文件系统;对所述文件系统进行反
编译,以得到所述更新安装包的汇编代码;通过对所述更新安装包的汇编代码进行扫描,对
所述更新安装包进行安全检测。
[0065] 在一种实施方式中,状态监控单元24,具体用于:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务
数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态。
[0066] 在一种实施方式中,升级单元25,具体用于:在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;通过所述待升级固件对应的更新安装包,对所述
物理机中的所述待升级固件进行升级,得到第二升级固件;当所述物理机中的所述待升级
固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机
中的所述第二升级固件,并关闭所述虚拟机。
[0067] 采用本申请实施例提供的物联网设备固件升级系统,当物联网设备接收到固件升级指令后,响应于该固件升级指令,启动虚拟机,根据该固件升级指令,确定待升级固件,并
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。
[0068] 图3是本申请的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内
存,例如高速随机存取存储器(Random‑Access Memory,RAM),也可能还包括非易失性存储
器(non‑volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他
业务所需要的硬件。
[0069] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral 
Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard 
Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总
线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的
总线。
[0070] 存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0071] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据同步装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0072] 响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
[0073] 根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
[0074] 获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;
[0075] 通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;
[0076] 当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
[0077] 上述如本申请图3所示实施例揭示的物联网设备固件升级电子设备执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理
能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软
件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central 
Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理
器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated 
Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可
编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施
例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以
是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码
处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位
于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器
等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其
硬件完成上述方法的步骤。
[0078] 当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻
辑单元,也可以是硬件或逻辑器件。
[0079] 本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子
设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操
作:
[0080] 响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;根据所述固件升级指令,确定待
升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;获取所述待升级固件
对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述
待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述
第一升级固件的运行状态进行监控;当通过所述运行状态确定所述第一升级固件安全后,
通过所述虚拟机对物理机上的所述待升级固件进行升级。
[0081] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0082] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0083] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0084] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0085] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0086] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的
示例。
[0087] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0088] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
[0089] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的
形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形
式。
[0090] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同
替换、改进等,均应包含在本申请的权利要求范围之内。