【技术实现步骤摘要】
一种基于人机协同的二进制程序漏洞静态分析方法
[0001]本专利技术涉及软件缺陷分析
,尤其涉及一种基于人机协同的二进制程序漏洞静态分析方法。
技术介绍
[0002]随着软件规模的不断扩大,软件构成也变得日趋复杂。软件开发者通常通过组装开源组件来快速创建软件产品,其为了保护其核心技术和知识产权,在软件开发过程中大量使用了混源代码(既有开源代码又有闭源代码),复杂的软件构成会引入一系列的软件安全性问题。近年来,针对软件或操作系统的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
[0003]二进制程序静态分析是挖掘二进制程序漏洞的重要方法,通常包括了数据流分析、别名分析、符号执行和静态污点分析等技术。软件产品往往会适配不同的操作系统、不同的硬件架构平台,这给二进制程序静态分析带来新的挑战和需求。虽然静态分析技术在源代码分析上发展已经较为成熟,然而在二进制程序分析还有诸多困难。
[0004]目前,二进制程序静态分析一般是半自动或者人工分析的过程,特别是一些逻辑类的漏洞,往往只能依靠漏洞挖掘专家凭借经验去对目标软件进行逆向分析,需要耗费大量专业人员的时间成本。现有方法没有很好地综合利用计算机高效的计算和搜索能力,以及漏洞挖掘者在静态分析过程中的认知能力。近年来人工智能技术的飞速发展,基于机器学习的软件漏洞挖掘展现出了广阔的应用前景。由于不同类型的漏洞特征和分析方式存在巨大差异,如何使人类与机器智能在二进制程序静态分析的多种方法产生协同作用,创建一个“人+机器”互补型的人机协同二进制程序漏洞静态 ...
【技术保护点】
【技术特征摘要】
1.一种基于人机协同的二进制程序漏洞静态分析方法,其特征在于,包括以下步骤:S1. 通过大规模的二进制程序语义信息提取,建立二进制程序函数粒度的语义知识库,并通过计算语义特征向量的距离将二进制代码转换为文本或者源代码;S2. 建立二进制程序函数同源性分析模型和二进制程序函数功能识别模型,通过这两个深度学习模型将原本需要人工分析的函数功能理解、代码逆向过程转换为半自动化的机器辅助分析过程;S3. 建立深度学习模型实时在线学习的机制,通过设立接收用户反馈消息队列,利用流式数据处理引擎以及在线学习训练算法,将离线的静态深度学习模型转换为能够实时更新的在线模型。2.根据权利要求1所述的基于人机协同的二进制程序漏洞静态分析方法,其特征在于,步骤S1包括以下子步骤:S101. 从互联网开源代码发布平台采集提取开源项目的相关信息,并根据开源项目的星级对开源项目按活跃度进行分类;S102. 按照开源项目的活跃度优选下载较为活跃的项目,使用开源工具git作为项目下载器下载项目的各个大版本分支;S103. 使用修改过的LLVM编译器作为二进制程序关联源代码的标注器,在多个交叉编译环境不同的编译优化策略下编译漏洞项目,输出多个架构、多个优化策略生成的带有代码标注的二进制程序,使得二进制片段与源代码函数片段能够建立联系;S104. 使用多元组描述存储二进制程序的特征知识,将收集获取到的二进制程序与已构建的知识库中知识进行融合,融合的依据包括二进制程序哈希值。3.根据权利要求2所述的基于人机协同的二进制程序漏洞静态分析方法,其特征在于,步骤S104中使用多元组描述存储二进制程序的特征知识包括:使用六元组描述二进制程序=[CID、二进制程序哈希值、二进制程序名、程序架构、来源、函数个数],使用七元组描述二进制函数特征=[FID、CID、函数哈希值、函数名、参数个数、特征向量、函数功能],其中CID、FID是用于关联函数与二进制程序的字段,二进制程序哈希值、函数哈希值作为唯一标识,特征向量字段由二进制程序函数同源性分析模型获取,函数功能字段由二进制程序函数功能识别模型获取。4.根据权利要求1所述的基于人机协同的二进制程序漏洞静态分析方法,其特征在于,步骤2中二进制程序函数同源性分析模型的建立和同源性分析包括以下子步骤:S201. 从步骤S1获取的二进制程序中提取二进制字符串、立即数和函数,构建适合二进制程序同源分析的数据集,然后训练一个同源性分析模型,将该模型的倒数第二层作为特征表示层向量,并将提取到的二进制函数输入到该模型获得特征向量;S202. 利用开源的反汇编软件从二进制程序提取程序的多维度特征,按照源代码函数所在的文件路径、函数名称两个准则,将同一份源代码函数对应的不同编译条件下二进制函数的配对作为训练集的正样本,负样本是从剩下的未配对的样本随机抽取配对,从而构建二进制相似函数的正反样例数据集;S203. 使用正反样例数据集训练一个输入特征=[函数调用图、字符串、立即数],输出=[相似、不相似]的深度神经网络,作为二进制程序函数同源性判别模型,该模型的倒数第二层是二进制程序函数特征表示层向量,将提取到的全部二进制函数输入到训练好的同源性
判别模型获得特征向量,并将该特征向量存储到知识库;S204. 将待检测的二进制函数输入同源性判别模型得到特征向量,利用存储在知识库中的函数特征向量,通过余弦距离检索待检测的特征向量,判断...
【专利技术属性】
技术研发人员:孙治,毛得明,陈剑锋,饶志宏,韩烨,赵童,王炳文,
申请(专利权)人:中国电子科技集团公司第三十研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。