一种固件安全分析的方法及装置制造方法及图纸

技术编号:26222968 阅读:16 留言:0更新日期:2020-11-04 10:54
本发明专利技术提供了一种固件安全分析的方法及装置,该方法包括获取固件的内核文件,使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出反汇编引擎,得到内核文件的汇编代码,根据预设的特征码从固件的符号表中确定出符号名称、字符串内存地址以及代码地址,确定出固件的加载地址,进行符号修复,得到修复后的函数名称,确定出存在安全风险的函数名称的代码位置以及调用函数名称的代码位置。通过对固件进行反汇编的方式得到固件的汇编代码,进而再依据预设的函数名称与风险点的对应关系,可以快速的确定出固件的汇编代码中存在安全风险的函数名称的位置,从而实现了在无需测试设备的情况下,快速的识别测试设备的安全风险点。

【技术实现步骤摘要】
一种固件安全分析的方法及装置
本专利技术涉及固件安全测试
,尤其涉及一种固件安全分析的方法及装置。
技术介绍
在VxWorks(实时操作系统)设备的安全研究中,安全测试前不提供实体设备,看能否通过静态分析的方法来测试设备的固件安全性,从而测试设备固件中的安全问题。对于很多VxWorks设备由于各种原因(价格昂贵,渠道问题,运输不便等)不容易获取到,但是固件可以很容易获取到的,这就需要在没有实体设备的条件下进行VxWorks设备的静态安全分析。但是VxWorks设备的固件静态分析一直是安全研究中的难点,由于VxWorks固件相对于其他小型的嵌入式设备的固件相对较大,因此,需要一种快速准确的方法定位固件中的安全问题。
技术实现思路
本专利技术提供了一种固件安全分析的方法及装置,可以实现无需实体设备的情况下,快速识别固件的安全风险,提高设备安全测试的效率,降低安全测试的成本。第一方面,本专利技术提供了一种固件安全分析的方法,包括:获取固件的内核文件;使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎;使用所述对所述内核文件进行反汇编的反汇编引擎对所述内核文件进行反汇编,得到所述内核文件的汇编代码;根据预设的特征码从所述固件的符号表中确定出符号名称、符号名称对应的字符串内存地址以及符号的代码地址;并根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址;使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称;根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。上述技术方案中,通过对固件进行反汇编的方式得到固件的汇编代码,然后从固件的符号表中找到符号名称,进而再依据预设的函数名称与风险点的对应关系,可以快速的确定出固件的汇编代码中存在安全风险的位置,从而实现了在无需测试设备的情况下,快速的识别测试设备的安全风险点,提高了风险测试的效率。可选的,所述使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎,包括:使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,得到每个架构对应的汇编指令块;将汇编指令块的数量最大的架构,确定为所述固件的架构;将所述汇编指令块的数量最大的架构对应的反汇编引擎,确定为所述对所述内核文件进行反汇编的反汇编引擎。可选的,所述根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址,包括:将所述字符串内存地址和固件偏移地址的差值,确定为所述固件的加载地址。可选的,所述使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称,包括:使用所述对所述内核文件进行反汇编的反汇编引擎依据所述固件的加载地址和所述符号名称,编写出根据符号表进行修复符号的代码,得到修复后的函数名称。可选的,所述根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置,包括:根据所述函数名称从所述预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称;根据所述存在安全风险的函数名称,遍历所述汇编代码和所述修复后的函数名称的代码,确定出所述存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。可选的,所述方法还包括:根据所述符号名称查找所述汇编代码中所述固件升级的代码;若所述固件升级的代码不存在签名校验逻辑,则确定所述固件存在安全风险;查找所述汇编代码中存在空指针引用的代码位置;提取所述固件的版本号,确定所述固件是否存在版本过时风险。第二方面,本专利技术实施例提供一种固件安全分析的装置,包括:获取单元,用于获取固件的内核文件;处理单元,用于使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎;使用所述对所述内核文件进行反汇编的反汇编引擎对所述内核文件进行反汇编,得到所述内核文件的汇编代码;根据预设的特征码从所述固件的符号表中确定出符号名称、符号名称对应的字符串内存地址以及符号的代码地址;并根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址;使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称;根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。可选的,所述处理单元具体用于:使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,得到每个架构对应的汇编指令块;将汇编指令块的数量最大的架构,确定为所述固件的架构;将所述汇编指令块的数量最大的架构对应的反汇编引擎,确定为所述对所述内核文件进行反汇编的反汇编引擎。可选的,所述处理单元具体用于:将所述字符串内存地址和固件偏移地址的差值,确定为所述固件的加载地址。可选的,所述处理单元具体用于:使用所述对所述内核文件进行反汇编的反汇编引擎依据所述固件的加载地址和所述符号名称,编写所述符号名称对应的函数名称的代码,得到修复后的函数名称。可选的,所述处理单元具体用于:根据所述函数名称从所述预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称;根据所述存在安全风险的函数名称,遍历所述汇编代码和所述修复后的函数名称的代码,确定出所述存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。可选的,所述处理单元还用于:根据所述符号名称查找所述汇编代码中所述固件升级的代码;若所述固件升级的代码不存在签名校验逻辑,则确定所述固件存在安全风险;查找所述汇编代码中存在空指针引用的代码位置;提取所述固件的版本号,确定所述固件是否存在版本过时风险。第三方面,本专利技术提供一种计算设备,包括:存储器,用于存储计算机程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行上述第一方面所述的方法。第四方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行上述第一方面所述的方法。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本本文档来自技高网...

【技术保护点】
1.一种固件安全分析的方法,其特征在于,包括:/n获取固件的内核文件;/n使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎;/n使用所述对所述内核文件进行反汇编的反汇编引擎对所述内核文件进行反汇编,得到所述内核文件的汇编代码;/n根据预设的特征码从所述固件的符号表中确定出符号名称、符号名称对应的字符串内存地址以及符号的代码地址;并根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址;/n使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称;/n根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。/n

【技术特征摘要】
1.一种固件安全分析的方法,其特征在于,包括:
获取固件的内核文件;
使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎;
使用所述对所述内核文件进行反汇编的反汇编引擎对所述内核文件进行反汇编,得到所述内核文件的汇编代码;
根据预设的特征码从所述固件的符号表中确定出符号名称、符号名称对应的字符串内存地址以及符号的代码地址;并根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址;
使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称;
根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置。


2.如权利要求1所述的方法,其特征在于,所述使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,确定出对所述内核文件进行反汇编的反汇编引擎,包括:
使用预设的不同架构对应的反汇编引擎对所述内核文件进行反汇编处理,得到每个架构对应的汇编指令块;
将汇编指令块的数量最大的架构,确定为所述固件的架构;
将所述汇编指令块的数量最大的架构对应的反汇编引擎,确定为所述对所述内核文件进行反汇编的反汇编引擎。


3.如权利要求1所述的方法,其特征在于,所述根据所述字符串内存地址和固件偏移地址,确定出所述固件的加载地址,包括:
将所述字符串内存地址和固件偏移地址的差值,确定为所述固件的加载地址。


4.如权利要求1所述的方法,其特征在于,所述使用所述符号名称、所述固件的加载地址和所述对所述内核文件进行反汇编的反汇编引擎,进行符号修复,得到修复后的函数名称,包括:
使用所述对所述内核文件进行反汇编的反汇编引擎依据所述固件的加载地址和所述符号名称,编写出根据符号表进行修复符号的代码,得到修复后的函数名称。


5.如权利要求1所述的方法,其特征在于,所述根据所述修复后的函数名称、所述内核文件的汇编代码和预设的函数名称与风险点的对应关系,确定出存在安全风险的函数名称的代码位置以及调用所述存在安全风险的函数名称的代码位置,包括:
根据所述函数名称从所述预设的函数名称与风险点的对...

【专利技术属性】
技术研发人员:陈杰马良高剑李东宏田泽夏潘雨晨史龙安
申请(专利权)人:绿盟科技集团股份有限公司北京神州绿盟科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1