[发明专利]一种对计算机漏洞库进行改进的方法有效

专利信息
申请号: 202010326021.8 申请日: 2020-04-23
公开(公告)号: CN111428247B 公开(公告)日: 2023-04-04
发明(设计)人: 耿思嘉;茅兵 申请(专利权)人: 南京大学
主分类号: G06F21/57 分类号: G06F21/57;G06F11/36;G06F8/41
代理公司: 江苏圣典律师事务所 32237 代理人: 于瀚文;胡建华
地址: 210023 江苏省南*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 计算机 漏洞 进行 改进 方法
【权利要求书】:

1.一种对计算机漏洞库进行改进的方法,其特征在于,包括如下步骤:

步骤1,选择国家安全漏洞库NVD中的内存错误漏洞作为样本漏洞,样本漏洞组成样本漏洞数据集,获取样本漏洞程序的源代码与触发漏洞的输入,安装相应版本的操作系统和软件,对样本漏洞程序重新进行动态插桩编译,获得代码执行的覆盖率及具体执行的代码,提取关于样本漏洞本身的特征,样本漏洞本身的特征是指程序执行路径上的控制流约束特征与数据流约束特征;

步骤2,对样本漏洞程序和计算机漏洞库LAVA-M使用Cloc和Lizard工具,剔除其中无用信息,提取关于程序本身的特征,程序本身的特征是指样本漏洞程序的代码行数和圈复杂度的数据;

步骤3,基于样本漏洞本身的特征和程序本身的特征对比目标漏洞库与样本漏洞程序的区别与联系,所述目标漏洞库为计算机漏洞库LAVA-M;

步骤4,依据步骤1得到的样本漏洞在数据流和控制流上面的特征对计算机漏洞库LAVA-M进行改进;

步骤1中,在公开的已知漏洞中,选择内存错误漏洞作为样本漏洞,样本漏洞组成样本漏洞数据集,且样本漏洞数据集中漏洞类型的比例与CVE披露的总体比例一致;

对样本漏洞数据集进行处理,处理过程具体为:通过CVE网站上的内容以及其给出的外部链接收集与样本漏洞相关的报告和信息来源;确定易受攻击软件的目标版本,找到相应的源代码,并为易受攻击软件配置对应版本的操作系统,默认操作系统是Linux系统;按照收集的报告或软件规范中给出的编译和配置选项的说明来编译和安装易受攻击的软件,在编译时,使用GCC中的GCOV编译选项对其进行动态插桩编译,获得程序的覆盖率及具体执行的代码行;

使用漏洞报告中提供的崩溃证明作为输入来触发并验证漏洞类型和出错信息;

提取程序执行路径上的控制流约束特征与数据流约束特征;控制流约束特征是指条件约束中魔法字节magic byte的类型,数据流约束特征是指程序执行路径上对于输入是否存在数据流转换data transformation;

步骤1中,在控制流约束特征方面,通过使用GCOV重新编译获得的程序路径上具体执行的代码,记录各个条件约束中魔法字节magic byte的类型信息和符号信息,类型信息包括char,string,float,int16,int32,int64,符号信息包括有符号和无符号,将所述类型信息与符号信息的不同种类分别记录下来,并获取每种类型在相应程序中的百分比;

在数据流约束特征方面,通过二进制分析工具Valgrind将源代码信息包括的二进制代码转换成VEX中间代码,并且在转换的过程中,记录步骤1中所述漏洞报告里面的能够触发漏洞的输入中的所有字节到最终崩溃点这条传播路径上发生的数据类型的转换,对内容的写指令及算数运算所对应的指令,根据提取的信息,判断与输入相关的算术运算的类型,所述类型包括加、减、乘、除和移位,然后记录加、减、乘、除和移位的总和占全部指令的比例,统计样本漏洞数据集与计算机漏洞库数据集中输入进行了数据转换的漏洞数在相应数据集中占的百分比,记为N;

步骤1中,将获得的程序执行路径上得到的所有状态特征构成集合G,将提取到的所有控制流约束特征记为C,数据流约束特征记为D,控制流约束特征中的魔法字节magic byte的类型和百分比集合用mb表示,数据流约束中的数据转换形式及百分比用dt表示,状态特征集合表示为G=(C,D),以程序开始为出发点,此时执行路径上的每一条语句记为s,则C=mb∪{s},D=dt∪{s},一直到程序崩溃为止;

步骤2中,对样本漏洞程序和计算机漏洞库的程序分别执行如下操作:用Cloc工具分析得到程序的代码行数,使用Lizard工具获取程序的圈复杂度,根据获得的代码行数,对其求平均值;

样本漏洞程序的代码行数平均值记为L1,样本漏洞程序的圈复杂度的中位数记为CCN1;

计算机漏洞库的程序的代码行数平均值记为L2,样本漏洞程序的圈复杂度的中位数记为CCN2;

步骤3包括:对步骤1得到的关于样本漏洞本身的相关特征,基于控制流约束特征和数据流约束特征,分别对比样本漏洞与计算机漏洞库:包括魔法字节magic byte的类型及百分比,数据的转换形式;

对于步骤2得到的关于样本漏洞程序本身的特征,比较程序的圈复杂度的中位数的值和代码行数的平均数的值,分别对比样本漏洞与计算机漏洞库的区别;

步骤4中,根据步骤1得到的关于样本漏洞本身的相关特征和步骤2得到的关于样本漏洞程序本身的特征,从控制流约束特征和数据流约束特征两个方面对现有的计算机漏洞库进行改进,具体改进方法为:

步骤4-1,增加程序执行路径上控制流约束特征的条件判断的难度,把计算机漏洞库条件约束中的魔法字节magic byte的类型由原来的仅32-bit类型改成步骤1获取的样本中魔法字节magic byte类型,且每种类型的比例符合样本的百分比;

步骤4-2,增加程序执行路径上数据流的特征,由原来的输入没有数据流转换的形式增加数据流转换的形式,且发生数据流转换的百分比符合步骤1中获取的百分比N;

步骤4-3,综合步骤4-1和步骤4-2的方法,对数据流和控制流的特征进行改进;最后,用漏洞检测工具分别检测改进的漏洞库与原有的漏洞库程序,通过观察前后检测到的漏洞数目,程序覆盖率,发现漏洞的时间,对比改进后的区别;

步骤4-4,将现有的计算机漏洞库的程序替换为和样本漏洞程序的代码行数和圈复杂度较为接近的程序,使替换后的程序的代码行数的平均值与L1误差不高于1%,使替换后的程序的圈复杂度的中位数与CCN1误差不高于1%。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010326021.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top