适用于开源组件的安全与合规治理方法技术

技术编号:28470198 阅读:32 留言:0更新日期:2021-05-15 21:37
本发明专利技术涉及一种适用于开源组件的安全与合规治理方法,步骤一,对知识库进行构建,扫描依赖配置文件,形成组件成分清单,建立组件关系树,步骤二,查找到有漏洞的依赖组件进行分析,步骤三,提供漏洞的修复方案及组件的动态修复方案。由此,支持对开源依赖组件与开源许可证的支持,能进行自动化识别与安全、合规分析。通过组件间的依赖关系建立组件关系树,从而进行审查和管理。支持检测组件所关联的漏洞情况。能提供动态修复方案,同时支持自动修复。对漏洞进行持续跟踪与监控,能确保产品的安全性。能够适应敏捷开发,可集成ci/cd工具,做到安全左移,提高开发效率,降低开发成本。降低开发成本。降低开发成本。

【技术实现步骤摘要】
适用于开源组件的安全与合规治理方法


[0001]本专利技术涉及一种开源组件的治理处理方法,尤其涉及一种适用于开源组件的安全与合规治理方法。

技术介绍

[0002]近来,随着开源软件的使用量日益增加,在系统开发中使用开源组件逐渐流行起来。2019年,Github的报告指出,超过360万个开源项目依赖了Top50的开源项目之一,rails/rails、facebook/jest、axios/axios等知名项目被其他上百万个开源项目使用。同时,开源项目平均有180个第三方依赖组件,具体的依赖组件数量从几个到上千个不等。依赖组件有很多优点,例如可以免费获得源代码并且可以修改源代码。事实上,很多OSS(Open Source Software)组件具有很高的可靠性,高性能性和鲁棒性。另一方面,在系统中复用OSS组件(一般指外部组件)在很多方面也存在一系列的挑战,例如从正确选择组件到将组件成功地集成到系统中,再到测试选择的组件。因此,开源软件虽然为IT行业带来了极大便利,提高了开发效率,降低了成本,但是在在很多方面也存在一系列的挑战,由于开源软件的依赖和引用关系较为复杂,其安全性也往往缺少审查和管理,在《2019年开源软件风险研究报告》中,对48363个项目进行依赖组件安全性进行分析,共获得依赖组件漏洞警告信息83834条。其中,总样本项目的20.79%存在依赖组件漏洞,按开源社区划分,18.03%的Github样本项目包含依赖组件漏洞,33.63%的Gitee样本项目包含依赖组件漏洞,因此开源软件也增加了软件供应链的复杂性和安全风险。
[0003]开源漏洞来源广泛且杂乱,开源软件的漏洞信息散布于各个社区、托管平台等,因此官方漏洞库收录有缺失,部分开源漏洞未能被收录于官方漏洞库中。且开源软件维护者没有直接有效途径通知开源软件使用者最新的漏洞情况,漏洞信息难以通知到使用者。另一方面,NVD、CNVD、CNNVD等漏洞库中的开源软件漏洞数量不断增加,还有大量开源软件漏洞未被收录到这些漏洞库中,一些现在没有安全漏洞的开源软件,将来也有可能会爆出漏洞,如果不能及时知晓这些安全漏洞以及安全漏洞是否涉及到自身的软件产品,也是一种很大的风险。
[0004]虽然开源软件名义上是“免费的”,但它的使用同样受到许可证的约束,除了信息安全风险,开源软件还可能引入知识产权风险,近年来,世界各地违反开源软件许可证的案件不断发生,通过我国企业在使用开源软件过程中存在着各种不遵守软件许可证的情形,究其原因主要是因为使用者对开源软件的性质认知错误,对许可证部分条款存在误解以及对法律后果存在侥幸心理,因此开源许可证风险也不可忽视。由于开源软件的依赖关系的复杂性,在使用开源软件时,不同开源软件的许可证可能存在合规性和兼容性风险,开源许可证的不合理使用可能会为企业留下了许多法律隐患,从而导致知识产权风险。
[0005]有鉴于上述的缺陷,本设计人,积极加以研究创新,以期创设一种适用于开源组件的安全与合规治理方法,使其更具有产业上的利用价值。

技术实现思路

[0006]为解决上述技术问题,本专利技术的目的是提供一种适用于开源组件的安全与合规治理方法。
[0007]本专利技术的适用于开源组件的安全与合规治理方法,其特征在于包括以下步骤:
[0008]步骤一,对知识库进行构建,扫描依赖配置文件,形成组件成分清单,建立组件关系树,
[0009]步骤二,查找到有漏洞的依赖组件进行分析,利用分析组件实现安全性及合规性的分析,包含组件的漏洞、组件的许可证分析,
[0010]步骤三,提供漏洞的修复方案及组件的动态修复方案;
[0011]所述知识库包括,漏洞知识库、依赖组件知识库及关联知识库,知识库的构成过程通过漏洞与依赖信息的采集、数据的清洗与关联、知识库的持续更新模块完成,
[0012]所述数据的清洗与关联的过程为,对收集到的漏洞信息先进行清洗去重,再根据统一数据格式存入漏洞库,最后进行关联整合深层去重形成最终的漏洞知识库;
[0013]对于爬取到的漏洞信息,先通过去重算法清洗冗余和错误的数据,对于数据流中可能的重复数据,HsDedup首先利用布隆过滤器对数据块的重复性进行预判,接下来根据不同的条件分别对缓存区的热区及冷区及磁盘进行三级重复数据的检测;
[0014]清洗后的数据会建立统一、标准的数据格式存入漏洞库,对漏洞的基本信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息进行关联整合,若有多条数据各个字段是完全相同的一类数据,则会对其再次去重,关联整合后的漏洞库则是最终的漏洞知识库;
[0015]依赖组件按包管理器分类爬取组件信息,并存入组件知识库;
[0016]通过数据清洗脚本对获取到的组件信息和漏洞信息进行处理和分析,并且将基本信息、清洗结果等进行分类存储和管理;
[0017]清洗关联后的信息统一存储进数据库,数据库包含项目信息库、漏洞库和依赖组件库,将漏洞知识库与组件知识库进行关联整合,形成关联知识库。
[0018]进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述漏洞与依赖信息的采集过程为,通过预设渠道获取漏洞和依赖组件的信息,对获取到的信息进行清洗和关联,并保持对知识库的持续更新。
[0019]更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤一中,通过采集模块通过分布式爬虫、反爬虫绕过及更新策略进行漏洞特征的采集,所述漏洞特征包括CVE编号、标题、类型、解决方案、组件的名称、版本、许可证信息中的一种或是多种。
[0020]更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述采用人工导入模块进行配合,用于特定的组件信息、漏洞基本信息数据的导入。
[0021]更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述漏洞知识库漏洞和依赖组件知识库的持续更新采用Scrapy爬虫框架基础实施,通过gerapy对爬虫进行管理,通过docker的每日定时任务,持续更新全球开源项目的信息、组件信息以及漏洞信息。
[0022]更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤二
中,
[0023]通过预设系统,如本申请人所提供的开源安全与合规治理管理平台关联各平台仓库,所述平台仓库包括Github、Gitee、Gitlab中的一种或是多种;
[0024]通过命令行、zip包上传开源项目,或是登录Gitee、Gitlab、Github拉取项开源目;
[0025]通过对源代码中的依赖文件内容进行解析,将不同的zip包进行分类,按照不同的包管理器进行解析,分析源代码中所使用的依赖组件情况,形成树状结构并且找出树节点进行节点筛选,筛选出有漏洞的依赖并且进行标记,最后存入到数据库中。
[0026]更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述分析源代码中所使用的依赖组件情况的过程为,
[0027]查找到有漏洞的依赖组件后进行标记,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.适用于开源组件的安全与合规治理方法,其特征在于包括以下步骤:步骤一,对知识库进行构建,扫描依赖配置文件,形成组件成分清单,建立组件关系树,步骤二,查找到有漏洞的依赖组件进行分析,步骤三,提供漏洞的修复方案及组件的动态修复方案;所述知识库包括,漏洞知识库、依赖组件知识库及关联知识库,知识库的构成过程通过漏洞与依赖信息的采集、数据的清洗与关联、知识库的持续更新模块完成,所述数据的清洗与关联的过程为,对收集到的漏洞信息先进行清洗去重,再根据统一数据格式存入漏洞库,最后进行关联整合深层去重形成最终的漏洞知识库;对于爬取到的漏洞信息,先通过去重算法清洗冗余和错误的数据,对于数据流中可能的重复数据,HsDedup首先利用布隆过滤器对数据块的重复性进行预判,接下来根据不同的条件分别对缓存区的热区及冷区及磁盘进行三级重复数据的检测;清洗后的数据会建立统一、标准的数据格式存入漏洞库,对漏洞的基本信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息进行关联整合,若有多条数据各个字段是完全相同的一类数据,则会对其再次去重,关联整合后的漏洞库则是最终的漏洞知识库;依赖组件按包管理器分类爬取组件信息,并存入组件知识库;通过数据清洗脚本对获取到的组件信息和漏洞信息进行处理和分析,并且将基本信息、清洗结果等进行分类存储和管理;清洗关联后的信息统一存储进数据库,数据库包含项目信息库、漏洞库和依赖组件库,将漏洞知识库与组件知识库进行关联整合,形成关联知识库。2.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述漏洞与依赖信息的采集过程为,通过预设渠道获取漏洞和依赖组件的信息,对获取到的信息进行清洗和关联,并保持对知识库的持续更新。3.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述步骤一中,通过采集模块通过分布式爬虫、反爬虫绕过及更新策略进行漏洞特征的采集,所述漏洞特征包括CVE编号、标题、类型、解决方案、组件的名称、版本、许可证信息中的一种或是多种。4.根据权利要求3所述的适用于开源组件的安全与合规治理方法,其特征在于:所述采用人工导入模块进行配合,用于特定的组件信息、漏洞基本信息数据的导入。5.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述漏洞知识库漏洞和依赖组件知识库的持续更新采用Scrapy爬虫框架基础实施,通过gerapy对...

【专利技术属性】
技术研发人员:但吉兵唐忱罗敏
申请(专利权)人:苏州棱镜七彩信息科技有限公司
类型:发明
国别省市:

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

1