一种嵌入式设备固件解压成功的判断方法技术

技术编号:13173701 阅读:414 留言:1更新日期:2016-05-10 16:47
本发明专利技术涉及一种嵌入式设备固件解压成功的判断方法,其主要步骤包括:试验样本集固件收集、固件熵谱获取、固件熵谱指纹特征提取、分类器训练及固件是否解压成功的判断。该方法采用处理图像信号的方法对固件熵谱作相应处理,提取了固件熵谱的多域综合特征;利用正向熵阈值和负向熵阈值之间的回差有效避免了熵值在多次穿越单一阈值时所产生的干扰;在训练分类器时,首先对固件熵谱特征作Z-Score标准化处理,再采用机器学习的思想和K折交叉验证的方法对分类器进行多次交叉重复训练;对于待测试固件,通过加权统计的方法对各分类器判断结果进行累计加权统计,以次数居多者作为对固件是否解压成功的最终判定结果,保证了所得结果的准确性。

【技术实现步骤摘要】

本专利技术设及嵌入式设备固件漏桐挖掘与逆向分析领域,具体设及一种嵌入式设备 固件解压成功的判断方法。
技术介绍
随着物联网的兴起,工业4.0的稳步推进,中国制造2025概念的提出,嵌入式设备 将会在未来发挥愈来愈重要的作用。然而,由于传统的工控厂商普遍缺乏安全意识,设备生 产尤W可用性为前提,由此导致的安全问题也就越来越多,如2010年出现的Stuxnet病毒, 2011年出现的Duqu病毒,2012年被发现的Flame病毒等,均给工控企业和国家带来了巨大的 损失。因此,对嵌入式设备的漏桐挖掘也就变得至关重要。 嵌入式设备固件是将软件(程序代码或资料)烧录在存储器(化A甜、MEMORY或ROM) 上,而后通过采用某种压缩算法(如lzma,gzip,xz,zUb等)进行压缩处理,使得在不知晓具 体压缩算法的情况下,无法获取固件内部的程序代码或资料,也就无法对固件的漏桐进行 挖掘。固件"解压"即是通过判断其采用的压缩算法,而后采用相应的解压缩算法,将固件内 部的程序代码或资料提取出来,通过对其程序代码进行反汇编处理,即可进行漏桐挖掘。 目前,对嵌入式设备的漏桐挖掘主要靠人工借助binwalk、IDAPro等工具来分析, 包括固件解压、固件反汇编、固件漏桐挖掘等几个步骤。运几个步骤有着既定的顺序,如果 固件不能成功解压,则其就不能进行反汇编(一般情况下,能够解压成功,即可进行反汇 编);若没有进行反汇编,那么,对固件的漏桐挖掘也就成了空谈。现在,针对嵌入式设备固 件的解压主要有人工解压和使用工具解压两种,若是批量、大规模对固件实施解压,则只能 通过binwalk、BAT等工具或编写自动化解压脚本执行。一般情况下,如果固件能够成功解 压,则解压后的可执行文件即可进行反汇编;反之,则不能进行反汇编。目前,缺少一种嵌入 式设备固件解压成功的判断方法,给大规模、批量化的固件漏桐挖掘带来了困难。
技术实现思路
由此可见,如何判断固件是否解压成功显得异常重要。本专利技术旨在提供一种嵌入 式设备固件解压成功的判断方法。 本专利技术设及的方法流程主要包括:样本集固件收集、固件赌谱获取、固件赌谱特征 提取、特征标准化处理、分类器训练、固件解压成功判断等步骤。本专利技术的技术创新点在于 巧妙地将处理图像信号的方法应用于固件赌谱,提取了固件赌谱的多域(空域、DCT域、DWT 小波域等)综合特征,一定程度上兼顾了固件赌谱各域的特性;此外,采用机器学习的思想, 并辅W交叉验证的方法,通过分类器进行多次重复训练,确保了所训练分类器的可靠性和 稳定性。而后任选一非试验样本集固件,按要求提取其赌谱及赌谱特征,并将此导入已训练 好的各分类器,采用加权统计的思想对各分类器的判断结果进行计算,并比较各判断结果 (解压成功或失败)出现的加权次数,W次数较多者作为最终的判定结果,亦在一定程度上 确保了所得结果的可靠性与正确性。 为实现上述目的,本专利技术采用如下技术方案: -种嵌入式设备固件解压成功的判断方法,包括W下步骤: 1)收集嵌入式设备的固件(包括未解压成功的固件和人工认定已解压成功的固 件,且已知每个样本固件是否已解压成功),并将其作为试验样本集; 2)提取步骤1)中试验样本集中所有固件的信息赌谱(简称为固件赌谱); 3)提取步骤2)中所获取的固件赌谱的指纹特征; 4)针对步骤3)中提取的固件赌谱的指纹特征作标准化处理; 5)采用机器学习的思想,辅W交叉验证的方法,通过分类器对步骤4)中标准化处 理后的固件赌谱的指纹特征进行交叉验证重复训练,即可得到一组训练好的分类器,并统 计各分类器的判断准确率; 6)任选取一个非试验样本集固件(或称为待测试固件,未知其是否解压成功),依 据步骤2)~3)提取其赌谱及赌谱指纹特征,并将其作为测试样本导入上述训练好的各分类 器,记录各分类器的判断结果;而后依据各分类器的判断准确率对其所判断结果进行加权 计算(各分类器所占权重依据其在试验样本集中的判断表现而定),统计加权计算后解压成 功或失败的次数;若解压成功次数居多,则认为该固件已成功解压;反之,认为该固件未解 压成功。[001引进一步地,步骤2)中,提取固件的信息赌谱,主要通过编写自动化脚本程序来批量 化提取固件的信息赌谱。 进一步地,步骤3)中,提取步骤2)中所获取固件信息赌谱的特征时,计算步骤2)中 所获取的固件赌谱的梯度能量,并将其作为固件赌谱的空域特征。 进一步地,步骤3)中,提取步骤2)中所获取固件信息赌谱的特征时,对步骤2)中所 获取的固件赌谱作DCT变换(离散余弦变换),并选择计算DCT系数中拉普拉斯分布尺度参数 的方差作为固件赌谱的DCT特征。 进一步地,步骤3)中,提取步骤2)中所获取固件信息赌谱的特征时,对步骤2)中所 获取的固件赌谱作二级小波变换,并选择其变换后6个高频子带化Hi,化1,皿1,L此,化2,Η出) 的四阶统计矩(期望,方差,偏斜度,峰度)作为固件赌谱的小波域特征。 进一步地,步骤3)中,提取步骤2)中所获取固件信息赌谱的特征时,设定固件赌值 的上界和下界,采用施密特触发器算法将固件赌谱二值化,将二值化后高赌段的占比亦作 为固件赌谱的特征。 进一步地,步骤4)中,采用Z-Score标准化方法对步骤3)中所提取到的各域固件赌 谱特征作标准化处理,一定程度上简化了计算,消除了量纲带来的影响。 进一步地,步骤5)中,采用机器学习的思想,辅WK折交叉验证的方法,通过分类器 交叉重复训练,即会得到一组训练好的分类器,并统计各分类器的分类准确率。 进一步地,步骤6)中,采用加权统计的思想对各分类器的判断结果进行计算,比较 各判断结果中(解压成功或失败)出现的加权次数,并W次数较多者作为固件是否解压成功 的最终判定结果。 本专利技术可W获得W下有益效果: 本专利技术在提取固件赌谱的特征时,巧妙地将处理图像信号的方法应用于固件赌 谱,从多个角度分析固件赌谱的特性,选择提取梯度能量、DCT系数中拉普拉斯分布尺度参 数的方差、二级小波变换后6个高频子带的四阶统计矩共计26维属性作为固件赌谱的特征, 扩展了赌谱特征的维度,一定程度上增强了所得结果的可靠性与稳定性。 本专利技术在提取固件赌谱施密特二值化后的高赌段的占比特征时,通过设置正向赌 阔值和负向赌阔值,利用正向赌阔值和负向赌阔值之间的回差有效避免了赌值在多次穿越 单一阔值时所产生的干扰。 本专利技术在对固件赌谱特征进行处理时,采用Z-Score标准化方法对固件赌谱特征 作标准化处理,简化了计算,消除了量纲带来的影响,减弱了编译器、处理器等的异构性带 来的干扰。 本专利技术在训练分类器时,采用机器学习的思想,并辅WK折交叉验证的方法,对其 进行多次交叉重复训练,确保了所训练分类器的稳定性与可靠性;而后再通过加权统计的 方法计算各判断结果的累计加权次数,选择W次数居多者作为对固件是否解压成功的最终 判定结果,亦保证了所得结果的准确性。【附图说明】 图1为本专利技术所提出方法的原理框图。 图2(a)为本专利技术所提出方法中分类器训练的流程框图,图2(b)为本专利技术所提出方 法中判断某未知固件是否解压成功的流程框图。 图3为360某安全路由的固件解压前的赌谱。 图4为360某安全路由的固件解压成功后的赌谱。 图5本文档来自技高网
...
一种嵌入式设备固件解压成功的判断方法

【技术保护点】
一种嵌入式设备固件解压成功的判断方法,其特征在于,包括以下步骤:1)收集嵌入式设备的固件,包括未解压成功的固件和人工认定已解压成功的固件,且已知每个样本固件是否解压成功,并将收集的固件作为试验样本集;2)提取步骤1)中试验样本集中所有固件的信息熵谱;3)提取步骤2)中所获取的固件熵谱的指纹特征;4)针对步骤3)中提取的固件熵谱的指纹特征作标准化处理;5)通过分类器对步骤4)中标准化处理后的固件熵谱特征进行交叉验证重复训练,得到一组训练好的分类器,并统计各分类器的分类准确率;6)任选取一个非试验样本集固件,依据步骤2)~3)提取其熵谱及熵谱指纹特征,并将其作为测试样本导入上述训练好的各分类器,记录各分类器的判断结果;而后依据各分类器判断准确率对其所判断结果进行加权计算,统计加权计算后解压成功或失败的次数;若解压成功次数居多,则认为该固件已成功解压;反之,认为该固件未解压成功。

【技术特征摘要】

【专利技术属性】
技术研发人员:石志强刘中金王猛涛陈昱常青孙利民
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有1条评论
  • 来自[广东省深圳市电信] 2019年12月05日 14:45
    666666
    1
1