补丁存在性测试方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36875193 阅读:12 留言:0更新日期:2023-03-15 20:28
本申请涉及软件更新相关技术领域,具体涉及一种补丁存在性测试方法、装置、电子设备及存储介质。其中,方法包括:获取待测试源码的静态特征和动态特征;所述静态特征包括:所述待测试源码编译时确定的至少一个特征;所述动态特征包括:所述待测试源码对应的程序运行时确定的至少一个特征;确定静态特征和动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度;在语义相似度大于预设阈值的情况下,则待测试源码为存在补丁的源码。如此,可以基于动态特征和静态特征进行分析,更加全面的分析源码是否打补丁,检测得到的结果更加的准确。测得到的结果更加的准确。测得到的结果更加的准确。

【技术实现步骤摘要】
补丁存在性测试方法、装置、电子设备及存储介质


[0001]本申请涉及软件更新相关
,具体涉及一种补丁存在性测试方法、装置、电子设备及存储介质。

技术介绍

[0002]大量的下游供应商将开源内核作用在自己开发的程序上,开源项目中往往包含大量漏洞,因此开源项目的源码可能会在后期进行打补丁,此时,应用该开源内核的程序也需要及时打补丁,以防止被攻击。
[0003]为了在及时给源码打上补丁的同时避免出现重复打补丁的情况,需要一种确认源码是否打补丁的方法。

技术实现思路

[0004]有鉴于此,本申请的实施例致力于提供一种补丁存在性测试方法、装置、电子设备及存储介质,以用于确认内核是否打补丁。
[0005]根据本申请实施例的第一方面,提供一种补丁存在性测试方法,包括:
[0006]获取待测试源码的静态特征和动态特征;
[0007]静态特征包括:待测试源码编译时确定的至少一个第一函数的特征;动态特征包括:待测试源码对应的程序运行时确定的至少一个第一函数中路径的特征;其中,第一函数为待测试源码中补丁对应的函数;
[0008]确定静态特征和动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度;
[0009]在语义相似度大于预设阈值的情况下,则待测试源码为存在补丁的源码。
[0010]在一个实施例中,所述确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度,包括:
[0011]确定所述静态特征和动态特征中每一个特征的相似度,针对所述相似度,采用预设的深度学习算法,计算得到确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度。
[0012]在一个实施例中,确定所述静态特征和动态特征中每一个特征的相似度,针对所述相似度,采用预设的深度学习算法,计算得到确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度,包括:
[0013]基于闵氏距离算法,确定静态特征和动态特征中每一个特征的相似度;其中,相似度用于表征各特征,相较于补丁前的初始源码对应的特征与补丁后的初始源码,对应的特征的相似程度;
[0014]将相似度输入预设的神经网络模块,由神经网络模块基于各个相似度,确定第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度。
[0015]在一个实施例中,获取待测试源码的静态特征和动态特征,包括:
[0016]对待测试源码进行编译,确定编译的待测试源码中第一函数;
[0017]提取第一函数的特征,得到静态特征;其中,第一函数的特征包括:函数内指令数量特征、字符串数量特征、静态变量大小特征、基本块的指令最大数特征、基本块的指令最小数特征、基本块的最大体积特征和基本块的最小体积特征的至少一个;
[0018]确定第一函数中路径;
[0019]提取待测试源码对应的程序运行时,第一函数中路径的特征,得到动态特征;其中,第一函数中路径的特征包括:如指令数量特征、系统级信息特征、函数和系统调用特征中的至少一个。
[0020]在一个实施例中,确定编译的待测试源码中第一函数,包括:
[0021]确定编译的待测试源码中补丁影响函数;
[0022]其中,补丁影响函数为第一函数;补丁影响函数包括:打补丁后修改的内容所在的函数;
[0023]确定程序运行时第一函数中路径,包括:
[0024]确定编译的待测试源码中补丁影响路径;
[0025]其中,补丁影响路径为第一函数中路径;补丁影响路径包括:经过补丁影响基本块的路径;补丁影响基本块为打补丁后修改的内容影响的基本块。
[0026]在一个实施例中,确定编译的待测试源码中补丁影响函数,包括:
[0027]对待测试源码进行带调试信息的编译,得到对应的符号表;
[0028]基于补丁信息,确定补丁信息影响的键;
[0029]基于键,通过查找符号表的方式,确定补丁影响函数。
[0030]在一个实施例中,确定编译的待测试源码中补丁影响路径,包括:
[0031]确定补丁影响函数中,打补丁后修改的内容影响的补丁影响基本块;
[0032]确定补丁影响基本块到函数出口最近的必经节点为锚点;
[0033]确定由补丁影响函数入口开始,经过补丁影响基本块,至锚点结束的路径为补丁影响路径,其中补丁影响路径为第一函数中路径。
[0034]在一个实施例中,还包括:
[0035]获取预设数量的相似度样本组和与每一相似度样本组对应的标识,作为训练样本;
[0036]其中,标识用于表征相似度样本组对应的源码是否存在补丁;预设数量的相似度样本组包括:存在补丁的源码对应的相似度样本组和不存在补丁的源码对应的相似度样本组;
[0037]将训练样本输入预先构建的神经网络模型进行训练,得到神经网络模块。
[0038]根据本申请实施例的第二方面,提供一种补丁存在性测试装置,包括:
[0039]获取模块,用于获取待测试源码的静态特征和动态特征;
[0040]静态特征包括:待测试源码编译时确定的至少一个第一函数的特征;动态特征包括:待测试源码对应的程序运行时确定的至少一个第一函数中路径的特征;其中第一函数为待测试源码中的函数;
[0041]第一确定模块,用于确定静态特征和动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度;
[0042]第二确定模块,在语义相似度大于预设阈值的情况下,确定待测试源码为存在补丁的源码。
[0043]根据本申请实施例的第三方面,提供一种电子设备,包括:
[0044]处理器;
[0045]用于存储处理器可执行指令的存储器;
[0046]处理器,用于上述补丁存在性测试方法。
[0047]根据本申请实施例的第四方面,提供计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行上述的补丁存在性测试方法。
[0048]本申请的实施例所提供的一种补丁存在性测试方法,包括:获取待测试源码的静态特征和动态特征;静态特征包括:待测试源码编译时确定的至少一个第一函数的特征;动态特征包括:待测试源码对应的程序运行时确定的至少一个第一函数中路径的特征;其中,第一函数为待测试源码中补丁对应的函数;确定静态特征和动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度;在语义相似度大于预设阈值的情况下,则待测试源码为存在补丁的源码。如此设置,可以基于动态特征和静态特征进行分析,统合考虑动态特征和静态特征,得到源码是否打补丁的结果,相较于仅仅考虑静态特征的方式,可以更加全面的分析源码是否打补丁,分析得到的结果更加的准确。
附图说明
[0049]为了更本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种补丁存在性测试方法,其特征在于,包括:获取待测试源码的静态特征和动态特征;所述静态特征包括:所述待测试源码编译时确定的至少一个特征;所述动态特征包括:所述待测试源码对应的程序运行时确定的至少一个特征;确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度;在所述语义相似度大于预设阈值的情况下,则所述待测试源码为存在补丁的源码。2.根据权利要求1所述的补丁存在性测试方法,其特征在于,所述确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度,包括:确定所述静态特征和动态特征中每一个特征的相似度,针对所述相似度,采用预设的深度学习算法,计算得到确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度。3.根据权利要求2所述的补丁存在性测试方法,其特征在于,所述确定所述静态特征和动态特征中每一个特征的相似度,针对所述相似度,采用预设的深度学习算法,计算得到确定所述静态特征和所述动态特征对应的第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度,包括:确定所述静态特征和动态特征中每一个特征的特征向量,并基于特征向量确定每一个特征的相似度;将所述相似度输入预设的神经网络模块,由所述神经网络模块基于各个相似度,确定第一函数与补丁前后的初始源码中补丁对应的第二函数之间的语义相似度。4.根据权利要求1所述的补丁存在性测试方法,其特征在于,所述获取待测试源码的静态特征和动态特征,包括:对所述待测试源码进行编译,确定编译的待测试源码中第一函数;提取所述第一函数的特征,得到静态特征;其中,所述第一函数的特征包括:函数内指令数量特征、字符串数量特征、静态变量大小特征、基本块的指令最大数特征、基本块的指令最小数特征、基本块的最大体积特征和基本块的最小体积特征的至少一个;确定第一函数中路径;提取所述待测试源码对应的程序运行时,所述第一函数中路径的特征,得到动态特征;其中,第一函数中路径的特征包括:指令数量特征、系统级信息特征、函数和系统调用特征中的至少一个。5.根据权利要求4所述的补丁存在性测试方法,其特征在于,所述确定编译的待测试源码中第一函数,包括:确定编译的待测试源码中补丁...

【专利技术属性】
技术研发人员:雷力赵倩锐张晓东单单鲍帅
申请(专利权)人:西安深信科创信息技术有限公司
类型:发明
国别省市:

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

1