CN112800430A - 适用于开源组件的安全与合规治理方法 - Google Patents

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

Info

Publication number
CN112800430A
CN112800430A CN202110137645.XA CN202110137645A CN112800430A CN 112800430 A CN112800430 A CN 112800430A CN 202110137645 A CN202110137645 A CN 202110137645A CN 112800430 A CN112800430 A CN 112800430A
Authority
CN
China
Prior art keywords
vulnerability
information
component
knowledge base
open source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110137645.XA
Other languages
English (en)
Inventor
但吉兵
唐忱
罗敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Lengjing Qicai Information Technology Co ltd
Original Assignee
Suzhou Lengjing Qicai Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Lengjing Qicai Information Technology Co ltd filed Critical Suzhou Lengjing Qicai Information Technology Co ltd
Priority to CN202110137645.XA priority Critical patent/CN112800430A/zh
Publication of CN112800430A publication Critical patent/CN112800430A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

适用于开源组件的安全与合规治理方法
技术领域
本发明涉及一种开源组件的治理处理方法,尤其涉及一种适用于开源组件的安全与合规治理方法。
背景技术
近来,随着开源软件的使用量日益增加,在***开发中使用开源组件逐渐流行起来。2019年,Github的报告指出,超过360万个开源项目依赖了Top50的开源项目之一,rails/rails、facebook/jest、axios/axios等知名项目被其他上百万个开源项目使用。同时,开源项目平均有180个第三方依赖组件,具体的依赖组件数量从几个到上千个不等。依赖组件有很多优点,例如可以免费获得源代码并且可以修改源代码。事实上,很多OSS(OpenSource Software)组件具有很高的可靠性,高性能性和鲁棒性。另一方面,在***中复用OSS组件(一般指外部组件)在很多方面也存在一系列的挑战,例如从正确选择组件到将组件成功地集成到***中,再到测试选择的组件。因此,开源软件虽然为IT行业带来了极大便利,提高了开发效率,降低了成本,但是在在很多方面也存在一系列的挑战,由于开源软件的依赖和引用关系较为复杂,其安全性也往往缺少审查和管理,在《2019年开源软件风险研究报告》中,对48363个项目进行依赖组件安全性进行分析,共获得依赖组件漏洞警告信息83834条。其中,总样本项目的20.79%存在依赖组件漏洞,按开源社区划分,18.03%的Github样本项目包含依赖组件漏洞,33.63%的Gitee样本项目包含依赖组件漏洞,因此开源软件也增加了软件供应链的复杂性和安全风险。
开源漏洞来源广泛且杂乱,开源软件的漏洞信息散布于各个社区、托管平台等,因此官方漏洞库收录有缺失,部分开源漏洞未能被收录于官方漏洞库中。且开源软件维护者没有直接有效途径通知开源软件使用者最新的漏洞情况,漏洞信息难以通知到使用者。另一方面,NVD、CNVD、CNNVD等漏洞库中的开源软件漏洞数量不断增加,还有大量开源软件漏洞未被收录到这些漏洞库中,一些现在没有安全漏洞的开源软件,将来也有可能会爆出漏洞,如果不能及时知晓这些安全漏洞以及安全漏洞是否涉及到自身的软件产品,也是一种很大的风险。
虽然开源软件名义上是“免费的”,但它的使用同样受到许可证的约束,除了信息安全风险,开源软件还可能引入知识产权风险,近年来,世界各地违反开源软件许可证的案件不断发生,通过我国企业在使用开源软件过程中存在着各种不遵守软件许可证的情形,究其原因主要是因为使用者对开源软件的性质认知错误,对许可证部分条款存在误解以及对法律后果存在侥幸心理,因此开源许可证风险也不可忽视。由于开源软件的依赖关系的复杂性,在使用开源软件时,不同开源软件的许可证可能存在合规性和兼容性风险,开源许可证的不合理使用可能会为企业留下了许多法律隐患,从而导致知识产权风险。
有鉴于上述的缺陷,本设计人,积极加以研究创新,以期创设一种适用于开源组件的安全与合规治理方法,使其更具有产业上的利用价值。
发明内容
为解决上述技术问题,本发明的目的是提供一种适用于开源组件的安全与合规治理方法。
本发明的适用于开源组件的安全与合规治理方法,其特征在于包括以下步骤:
步骤一,对知识库进行构建,扫描依赖配置文件,形成组件成分清单,建立组件关系树,
步骤二,查找到有漏洞的依赖组件进行分析,利用分析组件实现安全性及合规性的分析,包含组件的漏洞、组件的许可证分析,
步骤三,提供漏洞的修复方案及组件的动态修复方案;
所述知识库包括,漏洞知识库、依赖组件知识库及关联知识库,知识库的构成过程通过漏洞与依赖信息的采集、数据的清洗与关联、知识库的持续更新模块完成,
所述数据的清洗与关联的过程为,对收集到的漏洞信息先进行清洗去重,再根据统一数据格式存入漏洞库,最后进行关联整合深层去重形成最终的漏洞知识库;
对于爬取到的漏洞信息,先通过去重算法清洗冗余和错误的数据,对于数据流中可能的重复数据,HsDedup首先利用布隆过滤器对数据块的重复性进行预判,接下来根据不同的条件分别对缓存区的热区及冷区及磁盘进行三级重复数据的检测;
清洗后的数据会建立统一、标准的数据格式存入漏洞库,对漏洞的基本信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息进行关联整合,若有多条数据各个字段是完全相同的一类数据,则会对其再次去重,关联整合后的漏洞库则是最终的漏洞知识库;
依赖组件按包管理器分类爬取组件信息,并存入组件知识库;
通过数据清洗脚本对获取到的组件信息和漏洞信息进行处理和分析,并且将基本信息、清洗结果等进行分类存储和管理;
清洗关联后的信息统一存储进数据库,数据库包含项目信息库、漏洞库和依赖组件库,将漏洞知识库与组件知识库进行关联整合,形成关联知识库。
进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述漏洞与依赖信息的采集过程为,通过预设渠道获取漏洞和依赖组件的信息,对获取到的信息进行清洗和关联,并保持对知识库的持续更新。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤一中,通过采集模块通过分布式爬虫、反爬虫绕过及更新策略进行漏洞特征的采集,所述漏洞特征包括CVE编号、标题、类型、解决方案、组件的名称、版本、许可证信息中的一种或是多种。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述采用人工导入模块进行配合,用于特定的组件信息、漏洞基本信息数据的导入。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述漏洞知识库漏洞和依赖组件知识库的持续更新采用Scrapy爬虫框架基础实施,通过gerapy对爬虫进行管理,通过docker的每日定时任务,持续更新全球开源项目的信息、组件信息以及漏洞信息。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤二中,
通过预设***,如本申请人所提供的开源安全与合规治理管理平台关联各平台仓库,所述平台仓库包括Github、Gitee、Gitlab中的一种或是多种;
通过命令行、zip包上传开源项目,或是登录Gitee、Gitlab、Github拉取项开源目;
通过对源代码中的依赖文件内容进行解析,将不同的zip包进行分类,按照不同的包管理器进行解析,分析源代码中所使用的依赖组件情况,形成树状结构并且找出树节点进行节点筛选,筛选出有漏洞的依赖并且进行标记,最后存入到数据库中。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述分析源代码中所使用的依赖组件情况的过程为,
查找到有漏洞的依赖组件后进行标记,分析漏洞的受影响范围、是否有解决方案等信息,如果有就在***中解决方案字段进行展示,没有则显示无,将漏洞的信息进行记录,基于知识库进行开源许可证的风险及合规分析。
更进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤三中,***从漏洞库的中获取包含漏洞编号、漏洞版本以及漏洞发布时间的漏洞相关信息,组件及许可证的合规性,
根据输入的组件的groupId和artifactId坐标,计算出某个组件当前的无漏洞风险安全版本,
将安全版本进行有小到大的排序,安全版本通过数据库中存储的修复建议中的推荐版本字段得到,如果存在多个推荐版本,则比较原有版本与推荐版本之间的距离,取距离最近的推荐版本作为最终的安全版本,
用户在平台上配置邮箱地址,***会对项目进行定时扫描,若项目组件的漏洞情况发生变化,***将漏洞的组件名影响组件以及ID发送至用户设定的通讯***。
再进一步地,上述的适用于开源组件的安全与合规治理方法,其中,所述步骤三中,***实时监控项目变化情况,通过与数据库中漏洞的对比,如果重新解析后的项目漏洞数量发生改变,***会生成漏洞信息报告单并发送至项目所属用户的邮箱,该漏洞信息报告单包含了漏洞名称及其影响组件,以及其对应的cve-id或者漏洞ID,用户能通过点击邮件中的项目列表链接跳转到平台查看项目最新检测情况;如果项目解析结果与数据库信息对比无差别则不会发送邮件给项目所属用户。
借由上述方案,本发明至少具有以下优点:
1、支持对开源依赖组件与开源许可证的支持,能进行自动化识别与安全、合规分析。
2、通过组件间的依赖关系建立组件关系树,从而进行审查和管理。
3、支持检测组件所关联的漏洞情况。
4、能提供动态修复方案,同时支持自动修复。
5、对漏洞进行持续跟踪与监控,能确保产品的安全性。
6、能够适应敏捷开发,可集成ci/cd工具,做到安全左移,提高开发效率,降低开发成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1是识库构建的流程示意图。
图2是漏洞与依赖信息的采集流程示意图。
图3是漏洞与依赖信息的清洗与关联的流程示意图。
图4是知识库定时更新的实施示意图。
图5是漏洞安全版本修复示意图。
图6是邮箱提醒机制实施示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1至6的适用于开源组件的安全与合规治理方法,其与众不同之处在于包括以下步骤:
步骤一,对知识库进行构建。在此期间,通过采集模块(从多种渠道)通过分布式爬虫、反爬虫绕过及更新策略进行漏洞特征的采集,漏洞特征包括CVE编号、标题、类型、解决方案、组件的名称、版本、许可证信息中的一种或是多种。可采用人工导入模块进行配合,用于特定的组件信息、漏洞基本信息数据的导入,满足在无互联网条件下的数据导入。
步骤二,查找到有漏洞的依赖组件进行分析。通过预设的开源安全与合规治理管理平台***关联各平台仓库。平台仓库包括Github(面向开源及私有软件项目的托管平台)、Gitee(码云)、Gitlab(项目管理和代码托管平台)中的一种或是多种。
实施期间,通过命令行、zip包上传开源项目,或是登录Gitee、Gitlab、Github拉取项开源目。通过对源代码中的依赖文件内容进行解析,将不同的zip包进行分类,因为不同的包有不一样的解析机制,所以需要将包分类。按照不同的包管理器进行解析,分析源代码中所使用的依赖组件情况,形成树状结构并且找出树节点进行节点筛选,筛选出有漏洞的依赖并且进行标记,最后存入到数据库中。同时,***需要时调出展示层进行展示。具体来说,分析源代码中所使用的依赖组件情况的过程为,查找到有漏洞的依赖组件后进行标记,方便溯源查找漏洞,以及根据查找到的漏洞进行分析。之后,分析漏洞的受影响范围、是否有解决方案等信息,如果有就在***中解决方案字段进行展示,没有则显示无,将漏洞的信息进行记录,基于知识库进行开源许可证的风险及合规分析。
步骤三,漏洞进行修复。在此期间,***从漏洞库的中获取包含漏洞编号、漏洞版本以及漏洞发布时间的漏洞相关信息,组件及许可证的合规性,根据输入的组件的groupId(数据库中的字段名)和artifactId(数据库中的字段名)坐标,计算出某个组件当前的无漏洞风险安全版本。随后,将安全版本进行有小到大的排序,安全版本通过数据库中存储的修复建议中的推荐版本字段得到,如果存在多个推荐版本,则比较原有版本与推荐版本之间的距离,取距离最近的推荐版本作为最终的安全版本。
用户在平台上配置邮箱地址,***会对项目进行定时扫描,若项目组件的漏洞情况发生变化,***将漏洞的组件名影响组件以及ID发送至用户设定的通讯***。这些通讯***可以包括邮箱、钉钉、Jira等。
***实时监控项目变化情况,通过与数据库中漏洞的对比,如果重新解析后的项目漏洞数量发生改变,***会生成漏洞信息报告单并发送至项目所属用户的邮箱,该漏洞信息报告单包含了漏洞名称及其影响组件,以及其对应的cve-id或者漏洞ID,用户能通过点击邮件中的项目列表链接跳转到平台查看项目最新检测情况;如果项目解析结果与数据库信息对比无差别则不会发送邮件给项目所属用户。
进一步来看,本发明采用的知识库包括,漏洞知识库、依赖组件知识库及关联知识库,知识库的构成过程通过漏洞与依赖信息的采集、数据的清洗与关联、知识库的持续更新模块完成。同时,对于数据的清洗与关联的过程为,对收集到的漏洞信息先进行清洗去重,再根据统一数据格式存入漏洞库,最后进行关联整合深层去重形成最终的漏洞知识库。
对于爬取到的漏洞信息,先通过去重算法清洗冗余和错误的数据,本方案采取的是一种高效的重复数据检索方法HsDedup。对于数据流中可能的重复数据,HsDedup首先利用布隆过滤器对数据块的重复性进行预判,接下来根据不同的条件分别对缓存区的热区及冷区及磁盘进行三级重复数据的检测。由此,充分利用重复数据中的局部性,提升重复数据的检测效能。并且,清洗后的数据会建立统一、标准的数据格式存入漏洞库。由于漏洞来源多渠道,需要对其进行关联整合再次深度去重。
为了能够更细粒度的与组件、项目信息进行关联整合,首先需要对漏洞数据进行深加工,即提取关键字段信息,漏洞数据中关键字段的提取是为了从组件信息、依赖库信息、文件信息、路径信息、函数信息及具体行数信息等方面与配置文件中的组件信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息等为进行精细关联处理做准备。对其提取关键字后。
对漏洞的基本信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息进行关联整合,若有多条数据各个字段是完全相同的一类数据,则会对其再次去重,关联整合后的漏洞库则是最终的漏洞知识库。
结合实际实施来可能,依赖组件按包管理器分类爬取组件信息,并存入组件知识库,其由组件基本信息库、组件版本库、组件依赖库构成。通过数据清洗脚本对获取到的组件信息和漏洞信息进行处理和分析,并且将基本信息、清洗结果等进行分类存储和管理。清洗关联后的信息统一存储进数据库。数据库包含项目信息库、漏洞库和依赖组件库,将漏洞知识库与组件知识库进行关联整合,形成关联知识库。在本方案中,MongoDB数据库主要作为结果数据库用于存储未处理的漏洞信息,项目信息库、漏洞库和依赖组件库则存于MySQL。
结合本发明一较佳的实施方式来看,漏洞与依赖信息的采集过程为,通过预设渠道获取漏洞和依赖组件的信息,对获取到的信息进行清洗和关联,并保持对知识库的持续更新。由此,可以为其他模块提供数据支撑。
并且,漏洞知识库漏洞和依赖组件知识库的持续更新采用Scrapy爬虫框架基础实施,进行二次开发和优化。之后,通过gerapy(分布式爬虫管理框架)对爬虫进行管理,通过docker(开源的应用容器引擎)的每日定时任务,持续更新全球上百万的开源项目的信息、组件信息以及漏洞信息。
实际实施期间,支持IDE、Jenkins、命令行等工具集成,并通过邮件、钉钉等方式进行精准推送漏洞信息。用户能通过本地命令行工具直接解析压缩包进行本地扫描。集成IDE插件让开发者在开发阶段直接检测出漏洞信息,能进行快速响应,精确到行,选择最合适的修复方案推荐给用户。集成Jenkins根据用户自定义规则进行自动化策略执行,及时阻断构建过程。这样,一旦发现新的漏洞或新的解决方案会通过邮件、钉钉实时通知到用户,让用户能够快速处理问题。
通过上述的文字表述并结合附图可以看出,采用本发明后,拥有如下优点:
1、支持对开源依赖组件与开源许可证的支持,能进行自动化识别与安全、合规分析。
2、通过组件间的依赖关系建立组件关系树,从而进行审查和管理。
3、支持检测组件所关联的漏洞情况。
4、能提供动态修复方案,同时支持自动修复。
5、对漏洞进行持续跟踪与监控,能确保产品的安全性。
6、能够适应敏捷开发,可集成ci/cd工具,做到安全左移,提高开发效率,降低开发成本。
此外,本发明所描述的指示方位或位置关系,均为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或构造必须具有特定的方位,或是以特定的方位构造来进行操作,因此不能理解为对本发明的限制。
术语“主”、“副”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“主”、“副”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“若干”的含义是两个或两个以上,除非另有明确具体的限定。
同样,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“连接”、“设置”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个组件内部的连通或两个组件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。并且它可以直接在另一个组件上或者间接在该另一个组件上。当一个组件被称为是“连接于”另一个组件,它可以是直接连接到另一个组件或间接连接至该另一个组件上。
需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

Claims (9)

1.适用于开源组件的安全与合规治理方法,其特征在于包括以下步骤:
步骤一,对知识库进行构建,扫描依赖配置文件,形成组件成分清单,建立组件关系树,
步骤二,查找到有漏洞的依赖组件进行分析,
步骤三,提供漏洞的修复方案及组件的动态修复方案;
所述知识库包括,漏洞知识库、依赖组件知识库及关联知识库,知识库的构成过程通过漏洞与依赖信息的采集、数据的清洗与关联、知识库的持续更新模块完成,
所述数据的清洗与关联的过程为,对收集到的漏洞信息先进行清洗去重,再根据统一数据格式存入漏洞库,最后进行关联整合深层去重形成最终的漏洞知识库;
对于爬取到的漏洞信息,先通过去重算法清洗冗余和错误的数据,对于数据流中可能的重复数据,HsDedup首先利用布隆过滤器对数据块的重复性进行预判,接下来根据不同的条件分别对缓存区的热区及冷区及磁盘进行三级重复数据的检测;
清洗后的数据会建立统一、标准的数据格式存入漏洞库,对漏洞的基本信息、依赖信息、文件信息、路径信息、函数信息及具体行数信息进行关联整合,若有多条数据各个字段是完全相同的一类数据,则会对其再次去重,关联整合后的漏洞库则是最终的漏洞知识库;
依赖组件按包管理器分类爬取组件信息,并存入组件知识库;
通过数据清洗脚本对获取到的组件信息和漏洞信息进行处理和分析,并且将基本信息、清洗结果等进行分类存储和管理;
清洗关联后的信息统一存储进数据库,数据库包含项目信息库、漏洞库和依赖组件库,将漏洞知识库与组件知识库进行关联整合,形成关联知识库。
2.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述漏洞与依赖信息的采集过程为,通过预设渠道获取漏洞和依赖组件的信息,对获取到的信息进行清洗和关联,并保持对知识库的持续更新。
3.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述步骤一中,通过采集模块通过分布式爬虫、反爬虫绕过及更新策略进行漏洞特征的采集,所述漏洞特征包括CVE编号、标题、类型、解决方案、组件的名称、版本、许可证信息中的一种或是多种。
4.根据权利要求3所述的适用于开源组件的安全与合规治理方法,其特征在于:所述采用人工导入模块进行配合,用于特定的组件信息、漏洞基本信息数据的导入。
5.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述漏洞知识库漏洞和依赖组件知识库的持续更新采用Scrapy爬虫框架基础实施,通过gerapy对爬虫进行管理,通过docker的每日定时任务,持续更新全球开源项目的信息、组件信息以及漏洞信息。
6.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述步骤二中,
通过预设***关联各平台仓库,所述平台仓库包括Github、Gitee、Gitlab中的一种或是多种;
通过命令行、zip包上传开源项目,或是登录Gitee、Gitlab、Github拉取项开源目;
通过对源代码中的依赖文件内容进行解析,将不同的zip包进行分类,按照不同的包管理器进行解析,分析源代码中所使用的依赖组件情况,形成树状结构并且找出树节点进行节点筛选,筛选出有漏洞的依赖并且进行标记,最后存入到数据库中。
7.根据权利要求6所述的适用于开源组件的安全与合规治理方法,其特征在于:所述分析源代码中所使用的依赖组件情况的过程为,
查找到有漏洞的依赖组件后进行标记,分析漏洞的受影响范围、是否有解决方案等信息,如果有就在***中解决方案字段进行展示,没有则显示无,将漏洞的信息进行记录,基于知识库进行开源许可证的风险及合规分析。
8.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述步骤三中,***从漏洞库的中获取包含漏洞编号、漏洞版本以及漏洞发布时间的漏洞相关信息,组件及许可证的合规性,
根据输入的组件的groupId和artifactId坐标,计算出某个组件当前的无漏洞风险安全版本,
将安全版本进行有小到大的排序,安全版本通过数据库中存储的修复建议中的推荐版本字段得到,如果存在多个推荐版本,则比较原有版本与推荐版本之间的距离,取距离最近的推荐版本作为最终的安全版本,
用户在平台上配置邮箱地址,***会对项目进行定时扫描,若项目组件的漏洞情况发生变化,***将漏洞的组件名影响组件以及漏洞ID发送至用户设定的通讯***。
9.根据权利要求1所述的适用于开源组件的安全与合规治理方法,其特征在于:所述步骤三中,***实时监控项目变化情况,通过与数据库中漏洞的对比,如果重新解析后的项目漏洞数量发生改变,***会生成漏洞信息报告单并发送至项目所属用户的邮箱,该漏洞信息报告单包含了漏洞名称及其影响组件,以及其对应的cve-id或者漏洞ID,用户能通过点击邮件中的项目列表链接跳转到平台查看项目最新检测情况;如果项目解析结果与数据库信息对比无差别则不会发送邮件给项目所属用户。
CN202110137645.XA 2021-02-01 2021-02-01 适用于开源组件的安全与合规治理方法 Pending CN112800430A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110137645.XA CN112800430A (zh) 2021-02-01 2021-02-01 适用于开源组件的安全与合规治理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110137645.XA CN112800430A (zh) 2021-02-01 2021-02-01 适用于开源组件的安全与合规治理方法

Publications (1)

Publication Number Publication Date
CN112800430A true CN112800430A (zh) 2021-05-14

Family

ID=75813435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110137645.XA Pending CN112800430A (zh) 2021-02-01 2021-02-01 适用于开源组件的安全与合规治理方法

Country Status (1)

Country Link
CN (1) CN112800430A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113239365A (zh) * 2021-07-12 2021-08-10 深圳市永达电子信息股份有限公司 一种基于知识图谱的漏洞修复方法
CN113268713A (zh) * 2021-06-03 2021-08-17 西南大学 基于软件依赖的开源软件许可证选择方法
CN113297583A (zh) * 2021-07-27 2021-08-24 深圳开源互联网安全技术有限公司 漏洞风险分析方法、装置、设备及存储介质
CN113343222A (zh) * 2021-06-30 2021-09-03 招商局金融科技有限公司 Java项目工程安全校验方法、装置、计算机设备及存储介质
CN113449306A (zh) * 2021-09-02 2021-09-28 湖南省佳策测评信息技术服务有限公司 一种基于软件源代码分析的安全漏洞预警方法及***
CN113553594A (zh) * 2021-07-23 2021-10-26 中信银行股份有限公司 漏洞信息处理方法、装置、电子设备及可读存储介质
CN113961786A (zh) * 2021-10-22 2022-01-21 苏州棱镜七彩信息科技有限公司 多元异构漏洞整合建库方法
CN114168972A (zh) * 2021-12-15 2022-03-11 东北大学 一种npm生态***安全漏洞阻塞点的检测与修复方法
CN116185379A (zh) * 2022-11-17 2023-05-30 北京东方通科技股份有限公司 一种对代码托管平台进行优化的方法
CN117131514A (zh) * 2023-10-25 2023-11-28 中汽智联技术有限公司 一种车联网供应链安全漏洞预警方法、***和存储介质
CN117406967A (zh) * 2023-12-15 2024-01-16 卓望数码技术(深圳)有限公司 组件识别方法、装置、电子设备及存储介质
CN117668327A (zh) * 2024-02-02 2024-03-08 深圳开源互联网安全技术有限公司 组件识别方法、装置、终端设备以及存储介质
CN117688308A (zh) * 2024-01-26 2024-03-12 中国人民解放军军事科学院***工程研究院 一种异构数据智能清洗方法与***

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446691A (zh) * 2016-11-24 2017-02-22 工业和信息化部电信研究院 检测软件中集成或定制的开源项目漏洞的方法和装置
CN107391034A (zh) * 2017-07-07 2017-11-24 华中科技大学 一种基于局部性优化的重复数据检测方法
US20190347422A1 (en) * 2018-05-08 2019-11-14 WhiteSource Ltd. System and method for identifying vulnerabilities in code due to open source usage
CN110543767A (zh) * 2019-08-10 2019-12-06 苏州浪潮智能科技有限公司 一种针对开源组件漏洞自动化监控方法及***
US20200042712A1 (en) * 2018-07-31 2020-02-06 Veracode, Inc. Open-source software vulnerability analysis
CN110795346A (zh) * 2019-10-22 2020-02-14 苏州浪潮智能科技有限公司 产品监控方法、装置、设备及可读存储介质
CN110909363A (zh) * 2019-11-25 2020-03-24 中国人寿保险股份有限公司 基于大数据的软件第三方组件漏洞应急响应***及方法
CN111552504A (zh) * 2020-07-13 2020-08-18 深圳开源互联网安全技术有限公司 一种开源组件的资产信息维护方法、装置及存储介质
CN111967017A (zh) * 2020-07-28 2020-11-20 深圳开源互联网安全技术有限公司 生成依赖关系的方法、装置、终端设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446691A (zh) * 2016-11-24 2017-02-22 工业和信息化部电信研究院 检测软件中集成或定制的开源项目漏洞的方法和装置
CN107391034A (zh) * 2017-07-07 2017-11-24 华中科技大学 一种基于局部性优化的重复数据检测方法
US20190347422A1 (en) * 2018-05-08 2019-11-14 WhiteSource Ltd. System and method for identifying vulnerabilities in code due to open source usage
US20200042712A1 (en) * 2018-07-31 2020-02-06 Veracode, Inc. Open-source software vulnerability analysis
CN110543767A (zh) * 2019-08-10 2019-12-06 苏州浪潮智能科技有限公司 一种针对开源组件漏洞自动化监控方法及***
CN110795346A (zh) * 2019-10-22 2020-02-14 苏州浪潮智能科技有限公司 产品监控方法、装置、设备及可读存储介质
CN110909363A (zh) * 2019-11-25 2020-03-24 中国人寿保险股份有限公司 基于大数据的软件第三方组件漏洞应急响应***及方法
CN111552504A (zh) * 2020-07-13 2020-08-18 深圳开源互联网安全技术有限公司 一种开源组件的资产信息维护方法、装置及存储介质
CN111967017A (zh) * 2020-07-28 2020-11-20 深圳开源互联网安全技术有限公司 生成依赖关系的方法、装置、终端设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
哈力木拉提·巴图尔: "浅谈软件开发中开源组件的应用及产生的安全问题", 《中国新通信》, vol. 21, no. 6, 20 March 2019 (2019-03-20) *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268713A (zh) * 2021-06-03 2021-08-17 西南大学 基于软件依赖的开源软件许可证选择方法
CN113343222A (zh) * 2021-06-30 2021-09-03 招商局金融科技有限公司 Java项目工程安全校验方法、装置、计算机设备及存储介质
CN113343222B (zh) * 2021-06-30 2022-08-02 招商局金融科技有限公司 Java项目工程安全校验方法、装置、计算机设备及存储介质
CN113239365B (zh) * 2021-07-12 2021-10-26 深圳市永达电子信息股份有限公司 一种基于知识图谱的漏洞修复方法
CN113239365A (zh) * 2021-07-12 2021-08-10 深圳市永达电子信息股份有限公司 一种基于知识图谱的漏洞修复方法
CN113553594A (zh) * 2021-07-23 2021-10-26 中信银行股份有限公司 漏洞信息处理方法、装置、电子设备及可读存储介质
CN113297583B (zh) * 2021-07-27 2021-11-09 深圳开源互联网安全技术有限公司 漏洞风险分析方法、装置、设备及存储介质
CN113297583A (zh) * 2021-07-27 2021-08-24 深圳开源互联网安全技术有限公司 漏洞风险分析方法、装置、设备及存储介质
CN113449306A (zh) * 2021-09-02 2021-09-28 湖南省佳策测评信息技术服务有限公司 一种基于软件源代码分析的安全漏洞预警方法及***
CN113961786A (zh) * 2021-10-22 2022-01-21 苏州棱镜七彩信息科技有限公司 多元异构漏洞整合建库方法
CN114168972A (zh) * 2021-12-15 2022-03-11 东北大学 一种npm生态***安全漏洞阻塞点的检测与修复方法
CN114168972B (zh) * 2021-12-15 2024-05-03 东北大学 一种npm生态***安全漏洞阻塞点的检测与修复方法
CN116185379B (zh) * 2022-11-17 2023-09-22 北京东方通科技股份有限公司 一种对代码托管平台进行优化的方法
CN116185379A (zh) * 2022-11-17 2023-05-30 北京东方通科技股份有限公司 一种对代码托管平台进行优化的方法
CN117131514A (zh) * 2023-10-25 2023-11-28 中汽智联技术有限公司 一种车联网供应链安全漏洞预警方法、***和存储介质
CN117131514B (zh) * 2023-10-25 2024-04-09 中汽智联技术有限公司 一种车联网供应链安全漏洞预警方法、***和存储介质
CN117406967A (zh) * 2023-12-15 2024-01-16 卓望数码技术(深圳)有限公司 组件识别方法、装置、电子设备及存储介质
CN117406967B (zh) * 2023-12-15 2024-03-22 卓望数码技术(深圳)有限公司 组件识别方法、装置、电子设备及存储介质
CN117688308A (zh) * 2024-01-26 2024-03-12 中国人民解放军军事科学院***工程研究院 一种异构数据智能清洗方法与***
CN117668327A (zh) * 2024-02-02 2024-03-08 深圳开源互联网安全技术有限公司 组件识别方法、装置、终端设备以及存储介质

Similar Documents

Publication Publication Date Title
CN112800430A (zh) 适用于开源组件的安全与合规治理方法
CN112738126B (zh) 基于威胁情报和att&ck的攻击溯源方法
CN109063421B (zh) 一种开源许可证合规性分析与冲突性检测方法
Sun et al. Detecting anomalous user behavior using an extended isolation forest algorithm: an enterprise case study
US9871815B2 (en) Method and system for automated computer vulnerability tracking
US20190370303A1 (en) Enterprise data processing
Dijkman et al. Identifying refactoring opportunities in process model repositories
WO2020040803A2 (en) Multi-layer data model for security analytics
CN107251024A (zh) 用于诊断执行问题的数据库查询执行跟踪和数据生成
Jokonowo et al. Process mining in supply chains: a systematic literature review
Canfora et al. Tracking your changes: A language-independent approach
CN107077413A (zh) 数据驱动的测试框架
AU2012211490A1 (en) Systems and methods for identifying associations between malware samples
CN112711438A (zh) 依赖组件信息提取方法、设备及计算机可读存储介质
CN110740125A (zh) 一种针对视频监控设备漏洞检测使用的漏洞库的实现方法
Skopik et al. Smart Log Data Analytics
Molka et al. Conformance checking for BPMN-based process models
KR20080084567A (ko) 특허 검색 결과에 대한 신뢰도 검증방법
Agrafiotis et al. Towards a User and Role-based Sequential Behavioural Analysis Tool for Insider Threat Detection.
Dehghanniri et al. Toward a more structured crime scripting method
CN112346964A (zh) 一种智能网联汽车车载终端漏洞管理***及方法
Guzzo et al. Malevolent activity detection with hypergraph-based models
CN116723005A (zh) 多态隐藏下的恶意代码隐式情报追踪方法及***
CN116167441A (zh) 网络安全风险评估的知识图谱及构建方法
CN116248393A (zh) 一种内网数据传输漏洞扫描装置及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination