CN111552504A - 一种开源组件的资产信息维护方法、装置及存储介质 - Google Patents

一种开源组件的资产信息维护方法、装置及存储介质 Download PDF

Info

Publication number
CN111552504A
CN111552504A CN202010667717.7A CN202010667717A CN111552504A CN 111552504 A CN111552504 A CN 111552504A CN 202010667717 A CN202010667717 A CN 202010667717A CN 111552504 A CN111552504 A CN 111552504A
Authority
CN
China
Prior art keywords
information
base
component
vulnerability
component information
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.)
Granted
Application number
CN202010667717.7A
Other languages
English (en)
Other versions
CN111552504B (zh
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.)
Shenzhen Kaiyuan Internet Security Technology Co Ltd
Original Assignee
Shenzhen Kaiyuan Internet Security 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 Shenzhen Kaiyuan Internet Security Technology Co Ltd filed Critical Shenzhen Kaiyuan Internet Security Technology Co Ltd
Priority to CN202010667717.7A priority Critical patent/CN111552504B/zh
Publication of CN111552504A publication Critical patent/CN111552504A/zh
Application granted granted Critical
Publication of CN111552504B publication Critical patent/CN111552504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种开源组件的资产信息维护方法、装置及存储介质,其中,方法包括:构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库;每隔预设时间分别对组件信息库、漏洞信息库及许可信息库进行实时更新;分别查询组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息、漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息、第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若存在,则基于查询结果对第一关系库、第二关系库进行实时更新。本发明使得软件开发人员在开发软件时,能够规避那些约束要求很高的已授权许可。

Description

一种开源组件的资产信息维护方法、装置及存储介质
技术领域
本发明涉及软件信息维护技术领域,尤其是指一种开源组件的资产信息维护方法、装置及存储介质。
背景技术
开源组件主要被散布在全世界的编程者队伍开发,同时一些大学,政府机构承包商,协会和商业公司也会对开源组件进行开发。开源组件的源代码的开放性,是信息技术发展引发网络革命所带来的面向未来以开放创新、共同创新为特点的、以人为本的创新2.0模式在软件行业的典型体现和生动注解。由于开源组件的源码分发是实现交叉平台可移植性的唯一实际可行的办法,且诸如UNIX,Internet等系统中存在许多需要开源组件支持的硬件,所以,开源组件在历史上,曾经与UNIX,Internet之间具有非常紧密的联系。
目前,软件开发人员广泛使用开源组件,事实上,据估计,每个应用程序的80-90%都是由开源组件组成的。Synopsys的研究显示,在软件应用程序中被使用的第三方组件,有一半已经过时,很可能存在安全隐患。另一份来自Black Duck的报告称,使用开源组件的所有应用程序中,超过60%包含已知的软件漏洞。同样的,在知识产权方面,很多第三方开源组件都有各自的许可声明,如果在软件开发中使用了那些约束要求很高的已授权许可,那么被开发的软件很可能会面临一些法律问题。针对由于使用了那些约束要求很高的已授权许可,所导致的面临法律问题的情况,项目的组成分析(简称SCA)可以提供有效的开源组件的组成清单/资产信息,以规避那些约束要求很高的已授权许可,且SCA的核心主要包括3个方面:开源组件的信息、开源组件涉及的漏洞信息及开源组件涉及的许可信息。而现有的利用SCA提供有效的开源组件的组成清单/资产信息的方法,一般是利用一些基于SCA的使用工具,如一些命令行检测工具、web页面可视化组件等来实现的。但是,基于SCA的使用工具所使用的信息来源需要用户自己去维护,且只会获得部分信息数据,并不会对信息数据进行自动生成及更新。
因此,有必要对上述利用SCA提供有效的开源组件的组成清单/资产信息的方法进行改进。
发明内容
本发明所要解决的技术问题是:提供一种开源组件的资产信息维护方法、装置及存储介质,旨在解决现有的利用SCA提供有效的开源组件的组成清单/资产信息的方法无法自动生成、更新信息数据的问题。
为了解决上述技术问题,本发明采用的技术方案为:
本发明实施例第一方面提供了一种开源组件的资产信息维护方法,包括如下步骤:
构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,所述组件信息库中每一组件信息均至少包括对应的许可信息;
每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库;
查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
在一些实施方案中,所述构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,还包括如下步骤:
构建与所述漏洞信息库中的漏洞信息相映射的CPE信息库、与所述CPE信息库中的CPE信息相映射的厂商产品库。
在一些实施方案中,所述查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库,具体包括如下步骤:
查询所述CPE信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的CPE信息,若不存在,则重复查询;
若存在,则查询所述厂商产品库中是否存在与CPE信息对应的厂商产品信息,若不存在,则重复查询;
若存在,则查询所述组件信息库中是否存在与厂商产品信息对应的组件信息,若不存在,则重复查询;
若存在,则将所述漏洞信息库中新更新的漏洞信息及与厂商产品信息对应的组件信息关联存储至第一关系库。
在一些实施方案中,所述查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库,具体包括如下步骤:
查询所述厂商产品库中是否存在与组件信息库中新更新的组件信息对应的厂商产品信息,若不存在,则重复查询;
若存在,则查询所述CPE信息库中是否存在与厂商产品信息对应的CPE信息,若不存在,则重复查询;
若存在,则查询所述漏洞信息库中是否存在与CPE信息对应的漏洞信息,若不存在,则重复查询;
若存在,则将所述组件信息库中新更新的组件信息及与CPE信息对应的漏洞信息关联存储至第一关系库。
在一些实施方案中,所述查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库之后,还包括如下步骤:
查询所述许可信息库中是否存在与组件信息库中新更新的组件信息对应的许可信息,若不存在,则从所述许可信息库的各种信息来源中获取与新更新的组件信息对应的许可信息,并存储至所述许可信息库。
在一些实施方案中,所述每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库,具体包括如下步骤:
每隔预设时间从所述组件信息库的各种信息来源中获取组件信息、从所述漏洞信息库的各种信息来源中获取漏洞信息、从所述许可信息库的各种信息来源中获取许可信息;
基于新获取的所述组件信息、漏洞信息及许可信息,对所述组件信息库、漏洞信息库及许可信息库进行更新。
在一些实施方案中,所述基于新获取的所述组件信息、漏洞信息及许可信息,对所述组件信息库、漏洞信息库及许可信息库进行更新,具体包括如下步骤:
查询所述组件信息库中是否存在新获取的组件信息,若不存在,则将新获取的所述组件信息更新至组件信息库;
查询所述漏洞信息库中是否存在新获取的漏洞信息,若不存在,则将新获取的所述漏洞信息更新至漏洞信息库;
查询所述许可信息库中是否存在新获取的许可信息,若不存在,则将新获取的所述许可信息更新至许可信息库。
本发明实施例第二方面提供了一种开源组件的资产信息维护装置,包括:
构建模块,用于构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,所述组件信息库中每一组件信息均至少包括对应的许可信息;
更新模块,用于每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库;
第一存储模块,用于查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
第二存储模块,用于查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
第三存储模块,用于查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
本发明实施例第三方面提供了一种电子设备,包括存储装置及一个或多个处理器,所述存储装置用于存储一个或多个程序,其中,当所述一个或多个程序被一个或多个处理器执行时,使得所述一个或多个处理器执行如本发明实施例第一方面所述的方法。
本发明实施例第四方面提供了一种存储介质,其上存储有可执行指令,该可执行指令被执行时执行如本发明实施例第一方面所述的方法。
从上述描述可知,与现有技术相比,本发明的有益效果在于:
本发明针对所有开源组件,构建了组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库。一方面通过每隔预设时间,分别从组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以完成对组件信息库、漏洞信息库及许可信息库的实时更新;另一方面通过漏洞信息库中新更新的漏洞信息、组件信息库中新更新的组件信息、与组件信息库中新更新的组件信息对应的许可信息,实现对第一关系库及第二关系库的实时更新维护,使得软件开发人员在开发软件时,能够获得所有开源组件的完整组成清单/资产信息,以规避那些约束要求很高的已授权许可,避免了不必要的法律问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明第一实施例提供的开源组件的资产信息维护方法的流程示意图;
图2为本发明第二实施例提供的图1中步骤S3的具体流程示意图;
图3为本发明第二实施例提供的图1中步骤S4的具体流程示意图;
图4为本发明第二实施例提供的图1中步骤S2的具体流程示意图;
图5为本发明第二实施例提供的图4中步骤S22的具体流程示意图;
图6为本发明第三实施例提供的开源组件的资产信息维护装置的模块方框图;
图7为本发明第四实施例提供的电子设备的模块方框图;
图8为本发明第五实施例提供的存储介质的模块方框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明的各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1为本发明第一实施例提供的开源组件的资产信息维护方法的流程示意图。
如图1所示,本发明第一实施例提供的开源组件的资产信息维护方法,包括如下步骤:
S1、构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,且组件信息库中每一组件信息均至少包括对应的许可信息;
S2、每隔预设时间分别从组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新组件信息库、漏洞信息库及许可信息库;
S3、查询组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
S4、查询漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
S5、查询第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
具体的,组件信息库的信息来源为一些公开的开源组件维护网站(如maven,npm,pypi等),且组件信息库包括各种语言版本的开源组件的版本信息(如java,js,python等语言),版本信息至少包括版本号,最新版本号,发布时间,组件名称,许可等信息。漏洞信息库的信息来源为目前已公开的漏洞(如CVE、中国的CNNVD等),还有一些官方网站所归纳统计的漏洞(如npm官网,这些漏洞不被官方组织编号,故没有漏洞编号)。许可信息库的信息来源为目前已公开的许可(如apache,gpl等),这些许可来自但不限于一些公开的开源网站(如spdx,opensource等的开源网站)及开源社区。
本发明第一实施例提供的开源组件的资产信息维护方法,针对所有开源组件,构建了组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库。一方面通过每隔预设时间,分别从组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以完成对组件信息库、漏洞信息库及许可信息库的实时更新;另一方面通过漏洞信息库中新更新的漏洞信息、组件信息库中新更新的组件信息、与组件信息库中新更新的组件信息对应的许可信息,实现对第一关系库及第二关系库的实时更新维护,使得软件开发人员在开发软件时,能够获得所有开源组件的完整组成清单/资产信息,以规避那些约束要求很高的已授权许可,避免了不必要的法律问题。
请参阅图2、图3、图4以及图5,图2为本发明第二实施例提供的图1中步骤S3的具体流程示意图,图3为本发明第二实施例提供的图1中步骤S4的具体流程示意图,图4为本发明第二实施例提供的图1中步骤S2的具体流程示意图,图5为本发明第二实施例提供的图4中步骤S22的具体流程示意图。
相对于本发明第一实施例提供的开源组件的资产信息维护方法而言,本发明第二实施例提供的开源组件的资产信息维护方法,给出了步骤S2、S3以及S4的具体步骤流程,且在本发明第二实施例中:
进一步地,步骤S1还包括构建与漏洞信息库中的漏洞信息相映射的CPE信息库、与CPE信息库中的CPE信息相映射的厂商产品库。
需要说明的是,CPE数据库中的每一CPE信息与漏洞信息库中对应的漏洞信息映射,且CPE信息如下所示:
cpe:2.3:part:vendor:product:version:update:edition:language:sw_edition:target_sw:target_hw:other,其中,part表示目标类型,允许的值有a(应用程序)、h(硬件平台)、o(操作系统);vendor表示厂商;product表示产品名称;version表示版本号;update表示更新包;edition表示版本;language表示语言项。厂商产品库中每一厂商产品信息与CPE信息库中对应的CPE信息中的vendor及product保持一致,且一个vendor可能会存在多个product,如厂商微软下有一个产品为office,但是office是个很大的产品,里面有很多系列产品,比如word,excel,PowerPoint等。
还需要说明的是,一条漏洞信息可能有多种CPE信息与其对应,同样的道理,一条CPE信息也可能会存在于多种漏洞信息里面。
进一步地,如图2所示,步骤S3具体包括如下步骤:
S31、查询CPE信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的CPE信息,若不存在,则重复查询;
S32、若存在,则查询厂商产品库中是否存在与CPE信息对应的厂商产品信息,若不存在,则重复查询;
S33、若存在,则查询组件信息库中是否存在与厂商产品信息对应的组件信息,若不存在,则重复查询;
S34、若存在,则将漏洞信息库中新更新的漏洞信息及与厂商产品信息对应的组件信息关联存储至第一关系库。
需要说明的是,漏洞数据库中由各个厂商或者社区维护的漏洞信息,需要以人工的方式进行更新,且每条漏洞信息仅需更新一次即可。厂商产品库中的大部分厂商产品信息均需要以人工的方式进行更新,但其它部分可以利用程序进行更新。
进一步地,如图3所示,步骤S4具体包括如下步骤:
S41、查询厂商产品库中是否存在与组件信息库中新更新的组件信息对应的厂商产品信息,若不存在,则重复查询;
S42、若存在,则查询CPE信息库中是否存在与厂商产品信息对应的CPE信息,若不存在,则重复查询;
S43、若存在,则查询漏洞信息库中是否存在与CPE信息对应的漏洞信息,若不存在,则重复查询;
S44、若存在,则将组件信息库中新更新的组件信息及与CPE信息对应的漏洞信息关联存储至第一关系库。
进一步地,步骤S5之后,还包括如下步骤:
S6、查询许可信息库中是否存在与组件信息库中新更新的组件信息对应的许可信息,若不存在,则从许可信息库的各种信息来源中获取与新更新的组件信息对应的许可信息,并存储至所述许可信息库。
进一步地,如图4所示,步骤S2具体包括如下步骤:
S21、每隔预设时间从组件信息库的各种信息来源中获取组件信息、从漏洞信息库的各种信息来源中获取漏洞信息、从许可信息库的各种信息来源中获取许可信息;
S22、基于新获取的组件信息、漏洞信息及许可信息,对组件信息库、漏洞信息库及许可信息库进行更新。
具体的,如图5所示,步骤S22具体包括如下步骤:
S221、查询组件信息库中是否存在新获取的组件信息,若不存在,则将新获取的所述组件信息更新至组件信息库;
S222、查询漏洞信息库中是否存在新获取的漏洞信息,若不存在,则将新获取的所述漏洞信息更新至漏洞信息库;
S223、查询许可信息库中是否存在新获取的许可信息,若不存在,则将新获取的所述许可信息更新至许可信息库。
为清楚地理解本发明第二实施例提供的开源组件的资产信息维护方法,下面对该方法的步骤,进行详细说明:
S101、构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库、基于组件与许可的第二关系库、与漏洞信息库中的漏洞信息相映射的CPE信息库及与CPE信息库中的CPE信息相映射的厂商产品库,且组件信息库中每一组件信息均至少包括对应的许可信息;
S102、每隔预设时间从组件信息库的各种信息来源中获取组件信息、从漏洞信息库的各种信息来源中获取漏洞信息、从许可信息库的各种信息来源中获取许可信息;
S103、查询组件信息库中是否存在新获取的组件信息,若不存在,则将新获取的所述组件信息更新至组件信息库;
S104、查询漏洞信息库中是否存在新获取的漏洞信息,若不存在,则将新获取的所述漏洞信息更新至漏洞信息库;
S105、查询许可信息库中是否存在新获取的许可信息,若不存在,则将新获取的所述许可信息更新至许可信息库;
S106、查询CPE信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的CPE信息,若不存在,则重复查询;
S107、若存在,则查询厂商产品库中是否存在与CPE信息对应的厂商产品信息,若不存在,则重复查询;
S108、若存在,则查询组件信息库中是否存在与厂商产品信息对应的组件信息,若不存在,则重复查询;
S109、若存在,则将漏洞信息库中新更新的漏洞信息及与厂商产品信息对应的组件信息关联存储至第一关系库;
S110、查询厂商产品库中是否存在与组件信息库中新更新的组件信息对应的厂商产品信息,若不存在,则重复查询;
S111、若存在,则查询CPE信息库中是否存在与厂商产品信息对应的CPE信息,若不存在,则重复查询;
S112、若存在,则查询漏洞信息库中是否存在与CPE信息对应的漏洞信息,若不存在,则重复查询;
S113、若存在,则将组件信息库中新更新的组件信息及与CPE信息对应的漏洞信息关联存储至第一关系库;
S114、查询第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库;
S115、查询许可信息库中是否存在与组件信息库中新更新的组件信息对应的许可信息,若不存在,则从许可信息库的各种信息来源中获取与新更新的组件信息对应的许可信息,并存储至许可信息库。
本发明第二实施例提供的开源组件的资产信息维护方法,通过步骤S31-S34及S41-S44两条路径,实现了对基于组件与漏洞的第一关系库的严密更新,保证了第一关系库中数据的完整性。通过许可信息库不定时从其信息来源中获取信息,以及步骤S5、S6,实现了对第二关系库、许可信息库的严密更新,保证了第二关系库、许可信息库中数据的完整性。漏洞数据库中由各个厂商或者社区维护的漏洞信息,仅需更新一次即可,降低了时间成本。
请参阅图6,图6为本发明第三实施例提供的开源组件的资产信息维护装置的模块方框图。
如图6所示,与本发明第一实施例提供的开源组件的资产信息维护方法对应,本发明第三实施例提供的开源组件的资产信息维护装置100,包括:
构建模块101,用于构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,且组件信息库中每一组件信息均至少包括对应的许可信息;
更新模块102,用于每隔预设时间分别从组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新组件信息库、漏洞信息库及许可信息库;
第一存储模块103,用于查询组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
第二存储模块104,用于查询漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
第三存储模块105,用于查询第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
具体的,更新模块102中设有计时单元,计时单元用于设定每次分别从组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息之间的时间间隔。
请参阅图7,图7为本发明第四实施例提供的电子设备的模块方框图。
如图7所示,本发明第四实施例提供的电子设备200,包括:存储装置201及一个或多个处理器202,存储装置201用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器202执行时,使得一个或多个处理器202执行如本发明第一实施例和/或第二实施例提供的开源组件的资产信息维护方法。
具体的,本实施例提供的电子设备200还包括总线203,总线203用于存储装置201与一个或多个处理器202之间的连接。
请参阅图8,图8为本发明第五实施例提供的存储介质的模块方框图。
如图8所示,本发明第五实施例提供的存储介质300,其上存储有可执行指令301,该可执行指令301被执行时执行如本发明第一实施例和/或第二实施例提供的开源组件的资产信息维护方法。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。
需要说明的是,本发明内容中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于方法类实施例而言,由于其与产品类实施例相似,所以描述的比较简单,相关之处参见产品实施例的部分说明即可。
还需要说明的是,在本发明内容中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明内容。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本发明内容中所定义的一般原理可以在不脱离本发明内容的精神或范围的情况下,在其它实施例中实现。因此,本发明内容将不会被限制于本发明内容所示的这些实施例,而是要符合与本发明内容所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种开源组件的资产信息维护方法,其特征在于,包括如下步骤:
构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,所述组件信息库中每一组件信息均至少包括对应的许可信息;
每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库;
查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
2.如权利要求1所述的开源组件的资产信息维护方法,其特征在于,所述构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,还包括如下步骤:
构建与所述漏洞信息库中的漏洞信息相映射的CPE信息库、与所述CPE信息库中的CPE信息相映射的厂商产品库。
3.如权利要求2所述的开源组件的资产信息维护方法,其特征在于,所述查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库,具体包括如下步骤:
查询所述CPE信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的CPE信息,若不存在,则重复查询;
若存在,则查询所述厂商产品库中是否存在与CPE信息对应的厂商产品信息,若不存在,则重复查询;
若存在,则查询所述组件信息库中是否存在与厂商产品信息对应的组件信息,若不存在,则重复查询;
若存在,则将所述漏洞信息库中新更新的漏洞信息及与厂商产品信息对应的组件信息关联存储至第一关系库。
4.如权利要求2所述的开源组件的资产信息维护方法,其特征在于,所述查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库,具体包括如下步骤:
查询所述厂商产品库中是否存在与组件信息库中新更新的组件信息对应的厂商产品信息,若不存在,则重复查询;
若存在,则查询所述CPE信息库中是否存在与厂商产品信息对应的CPE信息,若不存在,则重复查询;
若存在,则查询所述漏洞信息库中是否存在与CPE信息对应的漏洞信息,若不存在,则重复查询;
若存在,则将所述组件信息库中新更新的组件信息及与CPE信息对应的漏洞信息关联存储至第一关系库。
5.如权利要求1所述的开源组件的资产信息维护方法,其特征在于,所述查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库之后,还包括如下步骤:
查询所述许可信息库中是否存在与组件信息库中新更新的组件信息对应的许可信息,若不存在,则从所述许可信息库的各种信息来源中获取与新更新的组件信息对应的许可信息,并存储至所述许可信息库。
6.如权利要求1所述的开源组件的资产信息维护方法,其特征在于,所述每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库,具体包括如下步骤:
每隔预设时间从所述组件信息库的各种信息来源中获取组件信息、从所述漏洞信息库的各种信息来源中获取漏洞信息、从所述许可信息库的各种信息来源中获取许可信息;
基于新获取的所述组件信息、漏洞信息及许可信息,对所述组件信息库、漏洞信息库及许可信息库进行更新。
7.如权利要求6所述的开源组件的资产信息维护方法,其特征在于,所述基于新获取的所述组件信息、漏洞信息及许可信息,对所述组件信息库、漏洞信息库及许可信息库进行更新,具体包括如下步骤:
查询所述组件信息库中是否存在新获取的组件信息,若不存在,则将新获取的所述组件信息更新至组件信息库;
查询所述漏洞信息库中是否存在新获取的漏洞信息,若不存在,则将新获取的所述漏洞信息更新至漏洞信息库;
查询所述许可信息库中是否存在新获取的许可信息,若不存在,则将新获取的所述许可信息更新至许可信息库。
8.一种开源组件的资产信息维护装置,其特征在于,包括:
构建模块,用于构建组件信息库、漏洞信息库、许可信息库、基于组件与漏洞的第一关系库及基于组件与许可的第二关系库,所述组件信息库中每一组件信息均至少包括对应的许可信息;
更新模块,用于每隔预设时间分别从所述组件信息库、漏洞信息库及许可信息库的各种信息来源中获取信息,以更新所述组件信息库、漏洞信息库及许可信息库;
第一存储模块,用于查询所述组件信息库中是否存在与漏洞信息库中新更新的漏洞信息对应的组件信息,若不存在,则重复查询,若存在,则将所述新更新的漏洞信息及与新更新的漏洞信息对应的组件信息关联存储至第一关系库;
第二存储模块,用于查询所述漏洞信息库中是否存在与组件信息库中新更新的组件信息对应的漏洞信息,若不存在,则重复查询,若存在,则将所述新更新的组件信息及与新更新的组件信息对应的漏洞信息关联存储至第一关系库;
第三存储模块,用于查询所述第二关系库中是否存在组件信息库中新更新的组件信息及与新更新的组件信息对应的许可信息,若不存在,则将所述新更新的组件信息及与新更新的组件信息对应的许可信息关联存储至第二关系库。
9.一种电子设备,包括:存储装置及一个或多个处理器,所述存储装置用于存储一个或多个程序,其中,当所述一个或多个程序被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-7任一项所述的方法。
10.一种存储介质,其上存储有可执行指令,该可执行指令被执行时执行如权利要求1-7任一项所述的方法。
CN202010667717.7A 2020-07-13 2020-07-13 一种开源组件的资产信息维护方法、装置及存储介质 Active CN111552504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010667717.7A CN111552504B (zh) 2020-07-13 2020-07-13 一种开源组件的资产信息维护方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010667717.7A CN111552504B (zh) 2020-07-13 2020-07-13 一种开源组件的资产信息维护方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111552504A true CN111552504A (zh) 2020-08-18
CN111552504B CN111552504B (zh) 2020-10-27

Family

ID=72005375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010667717.7A Active CN111552504B (zh) 2020-07-13 2020-07-13 一种开源组件的资产信息维护方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111552504B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000931A (zh) * 2020-10-30 2020-11-27 深圳开源互联网安全技术有限公司 获取Java开源组件许可的方法及系统、设备及存储介质
CN112016100A (zh) * 2020-10-27 2020-12-01 深圳开源互联网安全技术有限公司 基于sca工具的数据库维护方法、装置及可读存储介质
CN112231302A (zh) * 2020-10-30 2021-01-15 深圳开源互联网安全技术有限公司 Java开源组件数据库的维护方法、装置及存储介质
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法
CN112926060A (zh) * 2021-04-13 2021-06-08 深圳开源互联网安全技术有限公司 一种检测.net项目组件及其漏洞的方法和装置
CN113590213A (zh) * 2021-06-24 2021-11-02 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216233A (ja) * 2004-02-02 2005-08-11 Nec Corp オープンソースソフトウェアのバグ修正システム
CN106888194A (zh) * 2015-12-16 2017-06-23 国家电网公司 基于分布式调度的智能电网it资产安全监测系统
CN106951743A (zh) * 2017-03-22 2017-07-14 上海英慕软件科技有限公司 一种软件代码侵权检测方法
CN108984391A (zh) * 2018-06-06 2018-12-11 优视科技有限公司 应用程序的分析方法、装置及电子设备
CN109918285A (zh) * 2018-12-28 2019-06-21 北京奇安信科技有限公司 一种开源软件的安全识别方法及装置
CN111104677A (zh) * 2019-12-18 2020-05-05 哈尔滨安天科技集团股份有限公司 基于cpe规范的漏洞补丁检测方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005216233A (ja) * 2004-02-02 2005-08-11 Nec Corp オープンソースソフトウェアのバグ修正システム
CN106888194A (zh) * 2015-12-16 2017-06-23 国家电网公司 基于分布式调度的智能电网it资产安全监测系统
CN106951743A (zh) * 2017-03-22 2017-07-14 上海英慕软件科技有限公司 一种软件代码侵权检测方法
CN108984391A (zh) * 2018-06-06 2018-12-11 优视科技有限公司 应用程序的分析方法、装置及电子设备
CN109918285A (zh) * 2018-12-28 2019-06-21 北京奇安信科技有限公司 一种开源软件的安全识别方法及装置
CN111104677A (zh) * 2019-12-18 2020-05-05 哈尔滨安天科技集团股份有限公司 基于cpe规范的漏洞补丁检测方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016100A (zh) * 2020-10-27 2020-12-01 深圳开源互联网安全技术有限公司 基于sca工具的数据库维护方法、装置及可读存储介质
CN112016100B (zh) * 2020-10-27 2021-01-29 深圳开源互联网安全技术有限公司 基于sca工具的数据库维护方法、装置及可读存储介质
CN112000931A (zh) * 2020-10-30 2020-11-27 深圳开源互联网安全技术有限公司 获取Java开源组件许可的方法及系统、设备及存储介质
CN112231302A (zh) * 2020-10-30 2021-01-15 深圳开源互联网安全技术有限公司 Java开源组件数据库的维护方法、装置及存储介质
CN112000931B (zh) * 2020-10-30 2021-03-02 深圳开源互联网安全技术有限公司 获取Java开源组件许可的方法及系统、设备及存储介质
CN112800430A (zh) * 2021-02-01 2021-05-14 苏州棱镜七彩信息科技有限公司 适用于开源组件的安全与合规治理方法
CN112926060A (zh) * 2021-04-13 2021-06-08 深圳开源互联网安全技术有限公司 一种检测.net项目组件及其漏洞的方法和装置
CN113590213A (zh) * 2021-06-24 2021-11-02 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质
CN113590213B (zh) * 2021-06-24 2023-04-25 深圳开源互联网安全技术有限公司 组件维护方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN111552504B (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
CN111552504B (zh) 一种开源组件的资产信息维护方法、装置及存储介质
US20210073211A1 (en) Management Of Entitlements Using Blockchain
CN107609848B (zh) 一种基于物联网的知识产权许可方法及系统
CN111052120A (zh) 使用分布式账本的数字资产可追溯性和保证
US7873625B2 (en) File indexing framework and symbolic name maintenance framework
EP3807828B1 (en) Distributed database structures for anonymous information exchange
US11057219B2 (en) Timestamped license data structure
US9542181B2 (en) Software component configuration identification
US20200082336A1 (en) Database Code Execution
US11409847B2 (en) Source-based authentication for a license of a license data structure
CN112486552A (zh) 服务器热更新方法、装置、设备和存储介质
CN112948433A (zh) 一种跨区块链查询方法、装置、系统、设备及介质
US20180260536A1 (en) License data structure including license aggregation
CN112868008B (zh) Java开源组件的漏洞检测方法、装置及存储介质
US20120084421A1 (en) Model slicing and versioning
CN110321505A (zh) 数据一致性校验方法及装置
US20180260541A1 (en) License data structure including location-based application features
CN112231302A (zh) Java开源组件数据库的维护方法、装置及存储介质
Lorenz et al. Separation of powers in the cloud: Where applications and users become peers
CN115438145B (zh) 企业详情内链的添加方法及装置
US9886715B2 (en) Associating interdependent subscriptions
CN114723532A (zh) 订单操作的限制方法、装置、设备及存储介质
US20160072810A1 (en) Entity-based application selection/installation
CN117290253B (zh) 代码测试方法、装置、通信设备及存储介质
Smith et al. SAS Viya: The Python Perspective

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
GR01 Patent grant
GR01 Patent grant