一种二进制程序漏洞挖掘方法和系统技术方案

技术编号:13502642 阅读:141 留言:0更新日期:2016-08-10 00:19
本发明专利技术提供一种二进制程序漏洞挖掘方法,包括步骤:将目标二进制程序转化为汇编语言并进行静态分析;结合静态分析的分析结果对中间语言进行Promela模型建模;构建漏洞模型插入到Promela模型中;引入外部C代码,基于SPIN模拟执行所述Promela模型,检测漏洞。本发明专利技术还提供一种二进制程序漏洞挖掘系统,包括预处理模块、代码转化模块和模型检测模块。该方法和系统,引入中间语言BIL作为二进制程序到Promela模型的转化桥梁,实现了对二进制程序的自动化建模,同时利用SPIN的嵌C功能实现模拟执行,并引入外部C代码来弥补模型检测的不足。实验表明,该方法可以有效检测二进制程序的内存破环型漏洞。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,特别涉及一种二进制程序漏洞挖掘方法和系统
技术介绍
从漏洞挖掘对象来分,软件漏洞挖掘可以分为两类:一类是针对源代码的漏洞挖掘;另一类是针对二进制程序的漏洞挖掘。源代码漏洞挖掘的最大特点是:有丰富、完备的语义信息。所以,针对源代码的漏洞挖掘相对比较容易。一般采用静态分析的方法就可以检测出漏洞,且在静态分析时,由于有明确的程序执行路径,所以其通常有较高的代码覆盖率。然而源代码毕竟不是二进制程序,源代码层次的安全并不代表二进制程序的安全,两者之间的对应性无从验证,比如,源代码中不存在编译、链接过程中引入的漏洞。Linux系统下的符号链接漏洞就是在链接过程中引入的漏洞,该类漏洞在源代码中并不存在,却真实地存在于二进制程序中。另一方面,由于商业利益和软件产权保护等问题,很多时候安全工作者并不能拿到软件源代码,而只能针对二进制程序进行漏洞挖掘。所以,研究二进制程序的漏洞挖掘具有十分重要的意义。从语义信息上来说,二进制漏洞挖掘要比源代本文档来自技高网...

【技术保护点】
一种二进制程序漏洞挖掘方法,其特征在于,包括步骤:步骤A,采用反编译器IDA将二进制程序转化为汇编语言,并基于IDA进行汇编语言层次的静态分析得到函数流图;步骤B,通过中间语言平台BAP将所述汇编语言转化为BIL语言,并结合静态分析的分析结果对所述BIL语言进行Promela模型建模;步骤C,构建漏洞模型,并插入到所述Promela模型中;步骤D,引入外部C代码修补SPIN,并基于修补后的SPIN模拟执行所述Promela模型,检测漏洞;步骤E,输出检测结果和漏洞信息。

【技术特征摘要】
1.一种二进制程序漏洞挖掘方法,其特征在于,包括步骤:
步骤A,采用反编译器IDA将二进制程序转化为汇编语言,并基于IDA
进行汇编语言层次的静态分析得到函数流图;
步骤B,通过中间语言平台BAP将所述汇编语言转化为BIL语言,并结
合静态分析的分析结果对所述BIL语言进行Promela模型建模;
步骤C,构建漏洞模型,并插入到所述Promela模型中;
步骤D,引入外部C代码修补SPIN,并基于修补后的SPIN模拟执行所
述Promela模型,检测漏洞;
步骤E,输出检测结果和漏洞信息。
2.根据权利要求1所述的二进制程序漏洞挖掘方法,其特征在于,所述
步骤B中结合静态分析的分析结果对所述BIL语言进行Promela模型建模包
括步骤:
B1,依据静态分析得出的函数流图,对BIL代码进行程序切片切分成
BIL语句;
B2,进行从切分后得到的BIL语句到Promela语句的细粒度代码转化;
B3,将经过细粒度代码转化后的Promela语句构建、组装成Promela模
型。
3.根据权利要求2所述的二进制程序漏洞挖掘方法,其特征在于,所述
步骤B1包括步骤:
依据静态分析的函数流图,以sub函数为单位,将BIL代码切分成不同
函数片断;
对BIL代码中的汇编指令进行多维度匹配,将所述函数片断切分成指令
集;
对BIL语句的完备性进行检验,以将BIL指令集切分成BIL语句。
4.根据权利要求2所述的二进制程序漏洞挖掘方法,其特征在于,所述

\t步骤B2包括步骤:
预先对BIL语句的各种特征进行总结,并构建BIL语句的特征池将其置
于特征池中;
将待转化的BIL语句与所述特征池中的特征进行匹配;
将匹配后的BIL语句转化为符合Promela中嵌C语法的Promela语句。
5.根据权利要求1所述的二进制程序漏洞挖掘方法,其特征在于,所述
步骤C包括:
对已知的软件漏洞样本进行分析总结,抽象出漏洞特征,用Promela语
言描述漏洞特征,建立漏洞模型;
采用代码插桩技术,将所述漏洞模型插入到所述Promela模型中。
6.根据权利要求1所述的二进制程序漏洞挖掘方法,其特征在于,所述
步骤D中引入外部C代码修补SPIN包括步骤:
预先设置外部C代码,来构建执行所述Promela模型必要的系统资源、
维护临时状态、处理SPIN无法处理的BIL中的表达式和关键字以及处理BAP
无法解析的汇编指令;
所述步骤D中基于修补后的SPIN模拟执行所述Promela...

【专利技术属性】
技术研发人员:崔艳鹏胡建伟
申请(专利权)人:西安胡门网络技术有限公司
类型:发明
国别省市:陕西;61

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

1