当前位置: 首页 > 专利查询>扬州大学专利>正文

基于知识图谱的第三方库安全风险分析方法及系统技术方案

技术编号:29330968 阅读:117 留言:0更新日期:2021-07-20 17:48
本发明专利技术公开了一种基于知识图谱的第三方库安全风险分析方法及系统,方法包括以下步骤:采集项目依赖配置文件,迭代获取多层第三方库lib信息及api调用关系;根据lib信息在NVD数据库中索引CVE以搜集第三方库的漏洞信息;根据CVE的相关属性获取含有漏洞的第三方库中受影响的api;将生成的第三方库及漏洞实体、关系信息文件导入知识图谱工具构建知识图谱;通过构建好的知识图谱实现第三方库安全风险分析。本发明专利技术构建了一种存储第三方库多个层级之间的调用信息及各层级之间存在精确到api级别的漏洞信息的知识图谱,可对第三方库调用链进行安全漏洞风险分析,使软件开发者全方位考虑到第三方库安全漏洞信息,从而减少安全漏洞对软件开发的隐患。

【技术实现步骤摘要】
基于知识图谱的第三方库安全风险分析方法及系统
本专利技术属于软件安全
,特别涉及一种基于知识图谱的第三方库安全风险分析方法及系统。
技术介绍
在软件开发领域内,大规模软件几乎都会使用第三方库依赖来增加功能性。然而,有约超过1/4的第三方库依赖存在安全漏洞隐患,而且95%的漏洞等级在中危(Middle)及以上,16%的漏洞等级为严重等级(Critical),再加上第三方库间也存在调用与被调用的关系,如果间接调用的第三方库中存在漏洞风险,原项目也会有被漏洞风险影响的可能性。如果这些安全漏洞被恶意开发者利用,会造成不可估计的损失。所以对第三方库调用链进行漏洞分析检测和风险分析十分必要。国内外研究现状下,对第三方库依赖进行分析的方法有许多,如白名单匹配检测、提取函数方法签名、基于聚类方法技术、基于机器学习方法等。但这些技术并没有在安全漏洞的角度进行对第三方库的风险分析。例如,白名单匹配检测方法中仅是对代码中的包名或者第三方库的包名进行比较,一旦应用使用了代码混淆,对第三方库的分析就会不准确,容易误导开发者。国外OWASP基金会提出了一种工具OWASPDependencyCheck,它能够连接国家计算机通用漏洞数据库(NationalVulnerabilityDatabase,NVD)数据库对比项目依赖项列表,筛选出对应的通用漏洞披露(CommonVulnerabilitiesandExposures,CVE)。目前的风险分析技术仅仅是对第三方库进行一系列简单检测工作,或者是对单个第三方库进行漏洞分析,没有在调用链上考虑漏洞风险,在第三方库安全漏洞风险存在方面存在分析不全面、漏报、误报的现象。
技术实现思路
专利技术目的:本专利技术的目的在于针对上述现有技术存在的问题,提供一种基于知识图谱的第三方库安全风险分析方法及系统,为第三方库及调用过程中间接依赖时存在的漏洞或者隐藏漏洞进行安全风险分析。技术方案:实现本专利技术目的的技术解决方案为:基于知识图谱的第三方库安全风险分析方法,所述方法包括以下步骤:(1)采集项目依赖配置文件作为初始数据集,并从采集的文件中迭代获取多层第三方库lib信息及api调用关系,生成记录所有的第三方库实体的文件,以及记录第三方库实体间的精确到api级别的调用关系文件;(2)根据步骤(1)中获取的lib信息在NVD数据库中索引CVE以搜集第三方库的漏洞信息,生成记录所有的漏洞实体的文件;(3)根据漏洞实体的URLs属性获取含有漏洞的第三方库中受影响的api信息,生成记录第三方库和漏洞关系的文件;(4)将步骤(1)-(3)生成的记录实体和关系的文件导入知识图谱工具生成知识图谱;(5)通过构建好的知识图谱实现第三方库安全风险分析,得到CVE漏洞直接和间接影响到的第三方库。进一步地,所述步骤(1)中使用并行迭代算法思想实现lib信息及api调用关系的数据爬取与整理,其中第三方库实体的属性包括lib的编号、版本号、类别和发布时间,具体步骤包括:(1.1)从项目依赖配置文件中抽取出第一层第三方库信息lib1;(1.2)通过网络爬虫获取lib1中第三方库的实体属性信息,更新生成lib1.csv文件并下载对应的代码文件,以分析第三方库之间的api调用关系,生成相应csv文件;(1.3)使用并行迭代的方法,将libn-1.csv文件中的第三方库列表通过网络爬虫获取调用libn-1第三方库列表的lib信息,并生成libn中第三方库列表完整实体属性信息,更新生成libn.csv文件并下载对应的代码文件,以分析第三方库之间的api调用关系,生成相应的libn-1_libn.csv文件;其中n表示分析的第三方库调用的层数;(1.4)将lib1.csv…libn.csv文件进行lib条目去重,合并生成记录所有第三方库实体的lib_all.csv文件;(1.5)将lib1_lib2.csv…libn-1_libn.csv文件中api调用关系条目进行去重,合并生成记录第三方库实体间的精确到api级别的调用关系的lib_relationship.csv文件。进一步地,所述步骤(2)中在复制到本地的NVD数据库中索引CVE,具体步骤包括:(2.1)在本地数据库中添加NVD数据库中的CVE相关信息,将步骤(1)中的生成记录所有的第三方库实体的文件里lib条目与其匹配,筛选出对应的CVE条目;(2.2)将CVE条目通过爬虫工具在CVE、CVEdetails两个平台进行CVE信息更新,将两个网站中的数据取并集,生成CVE实体条目,其中CVE实体的属性包括CVE的编号、漏洞类型、漏洞描述和URLs,生成记录所有的漏洞实体的CVE.csv文件,并自动更新。进一步地,所述步骤(3)生成记录第三方库和漏洞关系的文件的具体步骤包括:(3.1)扫描CVE实体条目中的URLs属性,筛选出patch或者commit,通过URL中信息提取出含有漏洞的第三方库中受影响的api,并保存;(3.2)建立lib条目与CVE条目之间的关系,关系的属性包括对应受影响的api信息,生成记录第三方库和漏洞关系的lib_CVE.csv文件。进一步地,所述步骤(5)中通过构建好的知识图谱实现第三方库安全风险分析,具体步骤包括:(5.1)输入待分析的新的CVE漏洞信息,更新到知识图谱中,并扫描CVE实体条目中的URLs属性,筛选出patch或者commit,通过URL中信息提取出含有漏洞的第三方库中受影响的api,与对应的第三方库建立关系;(5.2)使用广度优先搜索BFS算法从新的CVE漏洞节点开始遍历图谱,在每一个调用链上的关系上,判断前一个关系的尾部是否与后一个关系的头部相同,若相同,则将两边属性标记成true,否则为false;(5.3)将每一层上的第三方库存在漏洞的api与调用该第三方库api相比较,判断是否调用了有漏洞影响的第三方库api,如果相同,将标记成true,否则为false;(5.4)将所有关系属性标记为false的关系隐藏,输出第三方库漏洞风险调用链,分析出新加入的CVE漏洞直、间接影响到的第三方库。基于相同的专利技术构思,本专利技术提供的基于知识图谱的第三方库安全风险分析系统,包括:信息采集模块,用于采集项目依赖配置文件作为初始数据集;第一数据爬取及处理模块,用于从采集的文件中迭代获取多层第三方库lib信息及api调用关系,生成记录所有的第三方库实体的文件,以及记录第三方库实体间的精确到api级别的调用关系文件;第二数据爬取及处理模块,用于根据获取的lib信息在NVD数据库中索引CVE以搜集第三方库的漏洞信息,生成记录所有的漏洞实体的文件;以及根据漏洞实体的URLs属性获取含有漏洞的第三方库中受影响的api信息,生成记录第三方库和漏洞关系的文件;知识图谱构建模块,用于将数据爬取及处理模块生成的记录实体和关系的文件导入知识图谱工具生成知识图谱;以及,第三方本文档来自技高网
...

【技术保护点】
1.基于知识图谱的第三方库安全风险分析方法,其特征在于,所述方法包括以下步骤:/n(1)采集项目依赖配置文件作为初始数据集,并从采集的文件中迭代获取多层第三方库lib信息及api调用关系,生成记录所有的第三方库实体的文件,以及记录第三方库实体间的精确到api级别的调用关系文件;/n(2)根据步骤(1)中获取的lib信息在NVD数据库中索引CVE以搜集第三方库的漏洞信息,生成记录所有的漏洞实体的文件;/n(3)根据漏洞实体的URLs属性获取含有漏洞的第三方库中受影响的api信息,生成记录第三方库和漏洞关系的文件;/n(4)将步骤(1)-(3)生成的记录实体和关系的文件导入知识图谱工具生成知识图谱;/n(5)通过构建好的知识图谱实现第三方库安全风险分析,得到CVE漏洞直接和间接影响到的第三方库。/n

【技术特征摘要】
1.基于知识图谱的第三方库安全风险分析方法,其特征在于,所述方法包括以下步骤:
(1)采集项目依赖配置文件作为初始数据集,并从采集的文件中迭代获取多层第三方库lib信息及api调用关系,生成记录所有的第三方库实体的文件,以及记录第三方库实体间的精确到api级别的调用关系文件;
(2)根据步骤(1)中获取的lib信息在NVD数据库中索引CVE以搜集第三方库的漏洞信息,生成记录所有的漏洞实体的文件;
(3)根据漏洞实体的URLs属性获取含有漏洞的第三方库中受影响的api信息,生成记录第三方库和漏洞关系的文件;
(4)将步骤(1)-(3)生成的记录实体和关系的文件导入知识图谱工具生成知识图谱;
(5)通过构建好的知识图谱实现第三方库安全风险分析,得到CVE漏洞直接和间接影响到的第三方库。


2.根据权利要求1所述的基于知识图谱的第三方库安全风险分析方法,其特征在于,所述步骤(1)中使用并行迭代算法思想实现lib信息及api调用关系的数据爬取与整理,其中第三方库实体的属性包括lib的编号、版本号、类别和发布时间,具体步骤包括:
(1.1)从项目依赖配置文件中抽取出第一层第三方库信息lib1;
(1.2)通过网络爬虫获取lib1中第三方库的实体属性信息,更新生成lib1.csv文件并下载对应的代码文件,以分析第三方库之间的api调用关系,生成相应csv文件;
(1.3)使用并行迭代的方法,将libn-1.csv文件中的第三方库列表通过网络爬虫获取调用libn-1第三方库列表的lib信息,并生成libn中第三方库列表完整实体属性信息,更新生成libn.csv文件并下载对应的代码文件,以分析第三方库之间的api调用关系,生成相应的libn-1_libn.csv文件;其中n表示分析的第三方库调用的层数;
(1.4)将lib1.csv…libn.csv文件进行lib条目去重,合并生成记录所有第三方库实体的lib_all.csv文件;
(1.5)将lib1_lib2.csv…libn-1_libn.csv文件中api调用关系条目进行去重,合并生成记录第三方库实体间的精确到api级别的调用关系的lib_relationship.csv文件。


3.根据权利要求1所述的基于知识图谱的第三方库安全风险分析方法,其特征在于,所述步骤(2)中在复制到本地的NVD数据库中索引CVE,具体步骤包括:
(2.1)在本地数据库中添加NVD数据库中的CVE相关信息,将步骤(1)中的生成记录所有的第三方库实体的文件里lib条目与其匹配,筛选出对应的CVE条目;
(2.2)将CVE条目通过爬虫工具在CVE、CVEdetails两个平台进行CVE信息更新,将两个网站中的数据取并集,生成CVE实体条目,其中CVE实体的属性包括CVE的编号、漏洞类型、漏洞描述和URLs,生成记录所有的漏洞实体的CVE.csv文件,并自动更新。


4.根据权利要求1所述的基于知识图谱的第三方库安全风险分析方法,其特征在于,所述步骤(3)生成记录第三方库和漏洞关系的文件的具体步骤包括:
(3.1)扫描CVE实体条目中的URLs属性,筛选出patch或者commit,通过URL中信息提取出含有漏洞的第三方库中受影响的api,并保存;
(3.2)建立lib条目与CVE条目之间的关系,关系的属性包括对应受影响的api信息,生成记录第三方库和漏洞关系的lib_CVE.csv文件。


5.根据权利要求1所述的基于知识图谱的第三方库安全风险分析方法,其特征在于,所述步骤(5)中通过构建好的知识图谱实现第三方库安全风险分析,具体步骤包括:
(5.1)输入待分析的新的CVE漏洞信息,更新到知识图谱中,并扫描CVE实体条目中的URLs属性,筛选出patch或者commit,通过URL中信息提取出含有漏洞的第三方库中受影响的api,与对应的第三方库建立关系;
(5.2)使用广度优先搜索BFS算法从新的CVE漏洞节点开始遍历图谱,在每一个调用链上的关系上,判断前一个关系的尾部是否与后一个关系的头部相同,若相同,则将两边属性标记成true,否则为false;
(5.3)将每一层上的第三方库存在漏洞的api与调用该第三方库api相比较,判断是否调用了有漏洞影响的第三方库api,如果相同,将标记成true,否则为false;
(5.4)将所有关系属性标记为false的关系隐藏,输出第三方库漏洞风险调用链,分析出新加入的CVE漏洞直、间接影响到的第三方库。

【专利技术属性】
技术研发人员:孙洲薄莉莉孙小兵王一帆周媛媛李斌
申请(专利权)人:扬州大学
类型:发明
国别省市:江苏;32

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

1