买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:哈尔滨工业大学
摘要:本发明提出一种基于汇编指令序列的二进制可执行文件脆弱性检测方法,所述方法使用QEMU获取程序在执行过程中覆盖的不同路径的汇编指令序列,对汇编指令序列以基本块为单位映射到相同的向量空间,然后使用深度学习技术对基本块向量序列进行脆弱性行为的特征学习,从而实现对程序的脆弱性检测;本发明所述方法准确率高,并能够应用到嵌入式固件中。
主权项:1.一种基于汇编指令序列的二进制可执行文件脆弱性检测方法,其特征在于:所述方法使用QEMU获取程序在执行过程中覆盖的不同路径的汇编指令序列,对汇编指令序列以基本块为单位映射到相同的向量空间,然后使用深度学习技术对基本块向量序列进行脆弱性行为的特征学习,从而实现对程序的脆弱性检测;所述方法具体包括以下步骤:步骤一、提取二进制可执行文件的汇编指令序列;所述步骤一中,使用QEMU虚拟机对二进制文件进行汇编指令序列的提取,QEMU是基于程序基本块执行的,根据程序的PC值取基本块,将基本块翻译为本机可执行的二进制机器码,翻译好的基本块被称为翻译块,以TB代指;QEMU使用缓存TBCache用于保存已经翻译好的TB;TBCache通过TB的第一条指令的地址值来保存TB;QEMU在执行时,虚拟CPU取程序的指令地址PC,在TBCache中查看PC值对应的TB是否存在,若存在直接从TBCache中取到翻译好直接可以执行的TB,否则进行二进制翻译,生成TB并保存到TBCache中;在步骤一中,在QEMU的基本块执行的函数cpu_tb_exec中添加对基本块信息的保存实现程序执行的汇编指令序列的获取,从上下文环境中获得当前待执行的TB数据结构指针tb_ptr,然后使用内置的disas_insn方法将tb_ptr下的翻译块TB反汇编得到汇编指令序列;步骤二、对汇编指令序列预处理;步骤三、将预处理后的汇编指令序列进行基本块向量化处理,把预处理后的汇编指令序列转化为基本块向量序列;步骤四、学习训练程序脆弱性分类模型,根据训练好的分类模型得到目标程序的脆弱性分类结果;所述分类模型由三层构成,分别是嵌入层,由BiGRU构成的隐层以及输出层;嵌入层使用PV-DM的基本块向量化模型,PV-DM根据不同的基本块中的汇编指令,经过已经训练完成的模型得到不同的基本块向量;按顺序输入基本块,基本块序列代表了程序在执行中得到的汇编指令序列,在经过PV-DM基本块向量化后得到了对应的基本块的向量序列;在由BiGRU构成的隐层中,使用BiGRU学习基本块向量序列的脆弱性特征;隐层中叠加两层BiGRU网络,每层网络中都包含有300个双向的GRU单元也即BiGRU单元,每个BiGRU单元最后的输出特征维数为128;输出层使用全连接网络将隐层中学习到的128维特征映射为一个2维向量,然后经过sigmoid层得到脆弱性检测结果,向量中的值表示了对脆弱和不脆弱分类的检测概率;最后取其中的最高概率下所指代的分类结果作为本次输入的汇编指令序列的脆弱性分类结果。
全文数据:
权利要求:
百度查询: 哈尔滨工业大学 一种基于汇编指令序列的二进制可执行文件脆弱性检测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。