【技术实现步骤摘要】
一种大规模语义等价的安全补丁数据集构造方法
[0001]本专利技术属于网络安全
,具体涉及一种大规模语义等价的安全补丁数据集构造方法。
技术介绍
[0002]越来越多的开源软件(Open Source Soft,OSS)使企业开发人员可以重用来自可靠OSS项目的简洁功能达到敏捷开发的目的。与此同时,重用第三方OSS带来的漏洞传播可能会威胁到整个系统的安全。原则上,保持重用OSS部分代码始终处于最新状态即可防止漏洞的影响。漏洞的生命周期往往长达两年,而OSS项目开发者通常偏向于静默修复漏洞,即不会在补丁提交信息中披露该补丁修复了何种漏洞,因此重用该项目的软件开发商无法知晓相关的漏洞修复信息。软件开发商需基于已披露的漏洞信息,检测软件源码中是否存在未发现的相关漏洞;此外为尽早修复漏洞,软件开发商也必须快速从上游获取关键的安全补丁。因此如何精准地检测出漏洞,并且快速准确识别出相关的安全补丁,已得到了研究者的较多关注。
[0003]然而,基于机器学习或者规则的安全补丁识别方法均需建立在大量准确全面的安全补丁数据集的基础之上,而现有的公共数据集所搜集的补丁数量无法达到要求,且往往局限于单个或多个特定的开源存储库的特定补丁,其搜集的相关补丁也无法涵盖补丁在跨项目修复时带来的特征变化。当前,现有数据集不利于解决方案的泛化能力,其易过拟合的局限性已极大地限制了相关研究的进展。为此,需要设计一种能够自动搜集不同项目跨分支的相同CVE编号的安全补丁的方法,且需满足安全补丁在真实开发环境下开发者适应上下文修改的特性,最终形成 ...
【技术保护点】
【技术特征摘要】
1.一种大规模语义等价的安全补丁数据集构造方法,其特征在于,包括:步骤1:从通用数据库获取漏洞披露条目CVE信息,根据CVE信息递归访问可能相关的超链接得到原始安全补丁,并根据原始安全补丁全分支定位潜在补丁,对潜在补丁进行等价有效判断,从而组成真实安全补丁集;步骤2:提取所述真实安全补丁集中的每个补丁的补丁内容,并根据补丁内容分析补丁的历史修改演化时间线,沿着所述历史修改演化时间线进行补丁超采样,获得演化补丁集合;步骤3:对所述真实安全补丁集以及所述演化补丁集合中的每个补丁,分别对补丁进行编译以及反编译以生成语法不同且语义等价的等价安全补丁,并消除所述等价安全补丁内由编译器引入的无效差异,分别获得所述真实安全补丁集对应的第一等价安全补丁集合以及所述演化补丁集合对应的第二等价安全补丁集合;步骤4:对所述真实安全补丁集以及所述演化补丁集合中的每个补丁,分别通过建立抽象语法树、更改抽象语法树的等价控制流节点以及与补丁的源代码映射的方式,生成控制流等价且语义等价的安全补丁;并且将所述真实安全补丁集对应的安全补丁组成第三等价安全补丁集合,以及将所述演化补丁集合对应的安全补丁组成第四等价安全补丁集合;步骤5:将所述真实安全补丁集合、演化补丁集合、第一等价安全补丁集合、第二等价安全补丁集合、第三等价安全补丁集合以及第四等价安全补丁集合融合,从而得到大规模语义等价的安全补丁数据集。2.根据权利要求1所述的一种大规模语义等价的安全补丁数据集构造方法,其特征在于,步骤1包括:步骤11:从通用数据库获取通用漏洞条目披露CVE信息;步骤12:从CVE信息中获取URL字段;步骤13:递归访问所述URL字段对应的源项目网站的URL,通过所述URL可能出现的超链接,获得在Github上补丁内容以及受影响的OSS项目列表及相关内容;步骤14:通过所述补丁内容从OSS项目列表的仓库中查找,获得若干个的原始安全补丁;步骤15:利用所述原始安全补丁定位潜在补丁,并对潜在补丁进行等价以及有效性判断,获得与所述原始安全补丁有效等价的潜在等价补丁;步骤16:将潜在等价补丁与原始安全补丁组成真实安全补丁集。3.根据权利要求2所述的一种大规模语义等价的安全补丁数据集构造方法,其特征在于,步骤15包括:步骤151:利用所述原始安全补丁的subject信息在OSS项目中全分支定位潜在补丁,如果一个潜在补丁与所述原始安全补丁的subject类似,则认定该潜在补丁为与所述原始安全补丁等价的潜在等价补丁;步骤152:将所述潜在等价补丁与所述原始安全补丁的每一处添加行、删除行以及相关上下文信息进行比较,如果三个差异值综合后的均值低于预设的差异值阈值,则确认该潜在等价补丁为等价有效补丁;步骤153:保存所述等价有效补丁的相关信息。4.根据权利要求1所述的一种大规模语义等价的安全补丁数据集构造方法,其特征在
于,步骤2包括:步骤21:提取所述真实安全补丁集中的每个补丁的补丁内容;其中,所述补丁内容包括修改文件名称FileName,添加行以及删除行;步骤22:分析补丁内容的历史修改演化时间线,获得补丁的自然演化时间线;其中,在自然演化时间线中,原始安全补丁所对应的修改为原始提交,原始提交之前的上一次修改为过去提交,原始提交之后的所对应的修改为更新提交;步骤23:将每一次更新提交与过去提交之间的差异生成为演化补丁;步骤24:利用超采样规则对演化补丁进行超采样,获得采样后的演化补丁集合;步骤25:将采样后的演化补丁组成演化补丁集合;其中,所...
【专利技术属性】
技术研发人员:付玉龙,杨金城,易威,高依然,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。