一种物联网设备固件升级方法、系统、装置以及存储介质转让专利
申请号 : CN202110492403.2
文献号 : CN113242288B
文献日 : 2022-03-08
发明人 : 袁静 , 李政 , 李承泽 , 范乐君 , 李高超 , 金暐 , 陈燕呢 , 赵怀瑾 , 肖佃艳
申请人 : 国家计算机网络与信息安全管理中心
摘要 :
权利要求 :
1.一种物联网设备固件升级方法,其特征在于,包括:响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;
当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。
2.根据权利要求1所述的方法,其特征在于,所述基于所述虚拟机,对所述更新安装包进行安全检测,具体包括:
所述虚拟机获取所述待升级固件对应的元数据;其中,所述元数据包括所述待升级固件对应的解包规则;
根据所述解包规则,对所述更新安装包进行解包,以获取所述更新安装包对应的文件系统;
对所述文件系统进行反编译,以得到所述更新安装包的汇编代码;
通过对所述更新安装包的汇编代码进行扫描,对所述更新安装包进行安全检测。
3.根据权利要求1所述的方法,其特征在于,通过所述虚拟机对物理机上的所述待升级固件进行升级,具体包括:在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;
通过所述待升级固件对应的更新安装包,对所述物理机中的所述待升级固件进行升级,得到第二升级固件;
当所述物理机中的所述待升级固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机中的所述第二升级固件,并关闭所述虚拟机。
4.一种物联网设备固件升级系统,其特征在于,包括:虚拟机启动单元,用于响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
运行环境模拟单元,用于根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
虚拟升级单元,用于获取所述待升级固件对应的更新安装包,基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;
状态监控单元,用于通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;升级单元,用于当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。
5.根据权利要求4所述的物联网设备固件升级系统,其特征在于,所述升级单元,具体用于:
在生产环境中,将所述待升级固件切换为所述虚拟机上运行的第一升级固件;
通过所述待升级固件对应的更新安装包,对所述物理机中的所述待升级固件进行升级,得到第二升级固件;
当所述物理机中的所述待升级固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机中的所述第二升级固件,并关闭所述虚拟机。
6.一种物联网设备固件升级装置,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;
通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;
当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。
7.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;
根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;
获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,具体包括:基于所述虚拟机,对所述更新安装包进行安全检测;当所述安全检测通过后,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;
通过所述虚拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;具体包括:对生产环境产生的业务数据进行复制;将复制后得到的所述业务数据发送至所述虚拟机,以使得所述虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态;
当通过所述运行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级,其中,在对物理机上的所述待升级固件进行升级期间,将在所述虚拟机上运行的第一升级固件接入生产环境。
说明书 :
一种物联网设备固件升级方法、系统、装置以及存储介质
技术领域
背景技术
它们都直接嵌入到设备的静态闪存中,因此被统称为设备的“固件”),作为负责协调系统内
部资源以及内外部的信息交互的主要模块,其安全性、稳定性极其重要,只有提供持续的更
新服务,才能确保设备的安全,满足用户对设备功能的需求。
行固件更新的技术。
解密算法本身也需占用一定的内存,考虑嵌入式终端中包括小型嵌入式终端内存资源有
限、运算能力有限的使用环境,此方式具有使用局限性。而明文传输下,攻击者能够轻易获
取完整的固件更新包,从而很容易导致更新包被替换,进而导致系统被篡改或者破坏,极大
地影响了系统的安全性,不利于物联网设备的正常运行。
发明内容
新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网设
备的正常运行的问题。
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网设备
的正常运行的问题。
理机中;根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件
对应的运行环境;获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新
安装包,并在所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚
拟机运行所述第一升级固件,并对所述第一升级固件的运行状态进行监控;当通过所述运
行状态确定所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行
升级。
境模拟单元,用于根据所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待
升级固件对应的运行环境;虚拟升级单元,用于获取所述待升级固件对应的更新安装包,通
过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升级固件的升级,得
到第一升级固件;状态监控单元,用于通过所述虚拟机运行所述第一升级固件,并对所述第
一升级固件的运行状态进行监控;升级单元,用于当通过所述运行状态确定所述第一升级
固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
固件升级指令中携带有待升级固件的标识,所述虚拟机运行于安装固件的物理机中;根据
所述固件升级指令,确定待升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行
环境;获取所述待升级固件对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在
所述虚拟机中完成对所述待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所
述第一升级固件,并对所述第一升级固件的运行状态进行监控;当通过所述运行状态确定
所述第一升级固件安全后,通过所述虚拟机对物理机上的所述待升级固件进行升级。
作:响应于接收到的固件升级指令,启动虚拟机;其中,所述固件升级指令中携带有待升级
固件的标识,所述虚拟机运行于安装固件的物理机中;根据所述固件升级指令,确定待升级
固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;获取所述待升级固件对应
的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述待升
级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述第一
升级固件的运行状态进行监控;当通过所述运行状态确定所述第一升级固件安全后,通过
所述虚拟机对物理机上的所述待升级固件进行升级。
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。
附图说明
具体实施方式
部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做
出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利于物联网
设备的正常运行的问题。
件更新包对应的固件升级指令,该固件升级指令包含固件版本信息、待升级固件的标识(名
称或者ID)以及更新上线时间等信息,并将该固件升级指令下发至各待更新物联网设备。
的文件系统提取出来,并对操作系统文件和用户程序文件进行分离。虚拟机可以通过查询
该固件可执行与可链接格式(Executable and Linkable Format,ELF)文件头确定该固件
的指令架构和字节序。虚拟机可以通过查询该固件程序依赖的库确定需要编译配置的内
核。虚拟机可以通过查询该固件程序运行时所调用的硬件接口配置虚拟硬件。进而根据获
取到的上述信息,在虚拟机中模拟该待升级固件运行所需的基础环境。
该待升级固件。
新安装包,进而按照该固件更新安装包对运行在虚拟机中的待升级固件进行更新,此时,由
于是在虚拟机上模拟固件的更新升级,更新包的解密以及更新升级过程均使用虚拟机的处
理资源,不会对物理机上实际运行的固件造成影响。
可以包括:基于虚拟机,对更新安装包进行安全检测;当安全检测通过后,通过虚拟机运行
更新安装包。
虚拟机获取所述待升级固件对应的元数据;其中,所述元数据包括所述待升级固件对应的
解包规则;根据所述解包规则,对所述更新安装包进行解包,以获取所述更新安装包对应的
文件系统;对所述文件系统进行反编译,以得到所述更新安装包的汇编代码;通过对所述更
新安装包的汇编代码进行扫描,对所述更新安装包进行安全检测。
签名以及各固件所对应的解包规则,并根据收集到的该元数据生成该物联网设备的固件列
表。
对固件更新安装包打包的过程中,生产厂商会对固件更新安装包进行加密并添加该生产厂
商所对应的数字签名,以确保固件更新安装包本身的安全性。则当物联网设备下载到该更
新安装包后,虚拟机首先可以通过执行解密算法和签名校验,对固件升级包进行解密以及
初步的安全检测。
更新安装包对应的固件元数据,并按照查找到的固件元数据中的解包规则,对该固件更新
安装包进行解包,以获得该固件更新安装包对应的文件系统,并通过反编译方式将解包得
到的文件系统的机器语言代码转化成汇编语言代码。对该固件更新包的汇编语言代码进行
扫描,扫描方法包括匹配特征代码、定位核心函数,提取关联文件,根据现有的漏洞特征库
来检测分析代码中是否存在的漏洞。进而根据扫描和检测结果确定该固件更新安装包是否
存在安全风险。
生成环境中的业务数据进行复制,并通过该复制得到的业务数据运行该第一升级固件,已
达到模拟该第一升级固件在实际生成环境中的运行状态的效果。
虚拟机基于所述业务数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的
运行状态。
障),来确定该第一升级固件是否运行正常。当虚拟机在预设时段内未检测到该第一升级固
件出现异常状态,则确定第一升级固件为安全固件,进而执行步骤15;而当虚拟机在预设时
段内检测到该第一升级固件出现异常状态,则确定第一升级固件为非安全固件,进而执行
步骤16。
间,可以将虚拟机上运行的升级后的固件接入生产环境,通过该升级后的固件在物理机固
件升级期间,代替该物理机固件执行任务,在该物理机固件升级完毕后,重新将物理机固件
接入生产环境,并关闭该虚拟机,以节省设备资源。
物理机中的所述待升级固件进行升级,得到第二升级固件;当所述物理机中的所述待升级
固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机
中的所述第二升级固件,并关闭所述虚拟机。
示升级服务器更新包传输链路或者更新包加密方案可能已被攻击破解,以使得升级服务器
对加密策略以及传输链路加密方案进行更新,保证后续更新包传输过程的安全。
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。
从而导致更新包被替换,进而导致系统被篡改或者破坏,极大地影响了系统的安全性,不利
于物联网设备的正常运行的问题。该物联网设备固件升级系统的具体结构示意图如图2所
示,包括:虚拟机启动单元21、运行环境模拟单元22、虚拟升级单元23、状态监控单元24以及
升级单元25。
件;
述更新安装包进行解包,以获取所述更新安装包对应的文件系统;对所述文件系统进行反
编译,以得到所述更新安装包的汇编代码;通过对所述更新安装包的汇编代码进行扫描,对
所述更新安装包进行安全检测。
数据对所述第一升级固件进行运行测试,并获取所述第一升级固件的运行状态。
物理机中的所述待升级固件进行升级,得到第二升级固件;当所述物理机中的所述待升级
固件升级完毕后,在生产环境中,将所述虚拟机上运行的第一升级固件切换为所述物理机
中的所述第二升级固件,并关闭所述虚拟机。
通过虚拟机模拟待升级固件对应的运行环境,进而可以通过在虚拟机上运行该更新安装包
的方式,在虚拟机中对该待升级固件进行更新升级,以得到第一升级固件;进一步地,可以
通过该虚拟机运行该第一升级固件,并对该第一升级固件的运行状态进行监控;当虚拟机
根据监控到的运行状态,确定该第一升级固件安全后,则可以通过该虚拟机对物理机上的
待升级固件进行升级更新。由于采用本申请实施例所提供的固件升级方法,在对物理机上
的固件进行升级前,首先在虚拟机上模拟了:使用从服务器处下载的更新安装包对该待升
级固件的升级,并且在虚拟机上对该升级固件进行了运行监测,只有在充分保证该更新安
装包安全,且升级后的固件运行正常后,才会使用该更新安装包对物理机上的固件进行升
级。采用本申请提供的通过虚拟机进行固件升级的方案,由于隔离了生产环境与升级环境,
通过虚拟机对更新安装包进行安全检测以及运行监控,从而可以保证在物理机上进行固件
升级的安全性,进而保证了物联网设备的安全运行。
存,例如高速随机存取存储器(Random‑Access Memory,RAM),也可能还包括非易失性存储
器(non‑volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他
业务所需要的硬件。
Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard
Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总
线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的
总线。
能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软
件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central
Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理
器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated
Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可
编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施
例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以
是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码
处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位
于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器
等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其
硬件完成上述方法的步骤。
辑单元,也可以是硬件或逻辑器件。
设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操
作:
升级固件,并通过所述虚拟机模拟所述待升级固件对应的运行环境;获取所述待升级固件
对应的更新安装包,通过所述虚拟机运行所述更新安装包,并在所述虚拟机中完成对所述
待升级固件的升级,得到第一升级固件;通过所述虚拟机运行所述第一升级固件,并对所述
第一升级固件的运行状态进行监控;当通过所述运行状态确定所述第一升级固件安全后,
通过所述虚拟机对物理机上的所述待升级固件进行升级。
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
示例。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形
式。
替换、改进等,均应包含在本申请的权利要求范围之内。