【技术实现步骤摘要】
对提取的固件数据进行校验的方法、装置以及电子设备
[0001]本专利技术涉及硬件安全测试
,尤其涉及一种对提取的固件数据进行校验的方法、装置以及电子设备。
技术介绍
[0002]固件提取,是对智能网联汽车进行渗透测试的必要手段。通常会通过打开设备并连接到单片微型计算机(Microcontroller Unit,MCU)或闪存芯片来手动从设备中提取固件数据。
[0003]读取嵌入式MCU固件数据的常用的方法有:使用MCU芯片供应商提供的固件烧写工具,利用工具中的“验证”功能对MCU内置存储区域进行回读校验,操作人员在固件烧写工具的回读操作过程中,保存数据内容。使用MCU芯片调试器,在MCU程序运行时读取芯片内存。使用上述方法,操作人员大多需要凭借经验判断固件提取过程是否发生错误,判断获取到的数据是否真实可靠。除此之外,由于现有的固件提取工具与方法并没有对固件本身的正确性进行校验,或仅通过固定格式的数字签名、哈希校验码等方式对固件完整性进行校验,将固件内容当作无语义的字节流,这种方式不能保证固件在提取、烧录后能够被MCU正确加载并运行。
[0004]因此,现有技术存在缺少对固件数据提取过程以及固件提取结果进行有效校验的手段,无法判断提取到的固件数据是否真实可靠的问题。
技术实现思路
[0005]本申请提供了一种对提取的固件数据进行校验的方法、装置以及电子设备,以至少解决相关技术中存在缺少对固件数据提取过程以及固件提取结果进行有效校验的手段,无法判断提取到的固件数据是否真实可靠的问题。 ...
【技术保护点】
【技术特征摘要】
1.一种对提取的固件数据进行校验的方法,其特征在于,所述方法包括:向待测芯片发送读指令,其中,所述读指令用于提取固件数据;在提取所述固件数据过程中,对传输的通信数据进行第一校验,得到固件提取结果,其中,所述第一校验用于确定所述固件数据的正确性;对所述固件提取结果进行第二校验,得出所述固件数据的完整性评分,其中,所述第二校验用于确定所述固件数据的完整性。2.根据权利要求1所述的方法,其特征在于,对传输的通信数据进行第一校验,得到固件提取结果,包括:识别所述通信数据;如果所述通信数据为数据包,则记录所述数据包对应的读取成功地址和所述固件数据;如果所述通信数据为错误代码,则对所述错误代码进行解码,得到错误类型;判断所述错误类型是否允许恢复;如果允许恢复,则重新向所述待测芯片发送所述读指令;如果不允许恢复,则记录所述错误代码对应的读取失败地址;当读取完所有数据区域时,将所述读取成功地址、所述固件数据以及所述读取失败地址作为所述固件提取结果。3.根据权利要求1所述的方法,其特征在于,所述对所述固件提取结果进行第二校验,得出所述固件数据的完整性评分,包括:计算所述固件提取结果中数据区域的第一预设哈希值,并将所述第一预设哈希值与第一目标值进行比较,得出第一校验评分;计算所述固件提取结果中数据区域的第二预设哈希值,并将所述第二预设哈希值与第二目标值进行比较,得出第二校验评分;对所述固件提取结果的所述固件数据进行静态分析,得出第三校验评分;虚拟化运行固件程序,并分析虚拟化运行过程,得出第四校验评分;对所述固件数据进行熵值分析,得出第五校验评分;根据自定义的所述固件提取结果与计分权值的对应关系,得出第六校验评分;根据所述第一校验评分、所述第二校验评分、所述第三校验评分、所述第四校验评分、所述第五校验评分以及所述第六校验评分,得到所述固件数据的完整性评分。4.根据权利要求3所述的方法,其特征在于,所述对所述固件提取结果的固件数据进行静态分析,得出第三校验评分,包括:获取所述固件数据中的中断向量表,其中,所述中断向量表包含第一预设数量个函数指针;分别判断所述函数指针是否指向预设内存区域;在指向所述预设内存区域的情况下,如果所述预设内存区域包含可用的预设函数序言,并且在所述预设内存区域的预设距离内存在内存区域能够构成栈帧函数,则确定所述函数指针可用;根据可用的函数指针个数和所述第一预设数量,得到所述第三校验评分。5.根据权利要求4所述的方法,其特征在于,所述虚拟化运行固件,并分析虚拟化运行
过程,得出第四校验评分,包括:提取所述中断向量表中复位函数指针;从所述复位函数指针指向的...
【专利技术属性】
技术研发人员:张浩然,李皓,王童,罗承刚,刘永星,刘鹏,
申请(专利权)人:国汽北京智能网联汽车研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。