CN112016100A - 基于sca工具的数据库维护方法、装置及可读存储介质 - Google Patents
基于sca工具的数据库维护方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN112016100A CN112016100A CN202011159371.6A CN202011159371A CN112016100A CN 112016100 A CN112016100 A CN 112016100A CN 202011159371 A CN202011159371 A CN 202011159371A CN 112016100 A CN112016100 A CN 112016100A
- Authority
- CN
- China
- Prior art keywords
- open source
- information
- types
- permission
- components
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于SCA工具的数据库维护方法、装置及可读存储介质,其中,方法包括:获取一类开源组件的信息;基于SCA工具,对一类开源组件的信息进行检测,若对一类开源组件的信息的检测结果为安全,则将一类开源组件的信息维护至私有库;获取二类开源组件的信息;基于SCA工具,对二类开源组件的信息进行分析,若对二类开源组件的信息的分析结果为安全,则将二类开源组件的信息维护至私有库。本发明在维护企业私有库的两种途径中,均利用SCA工具进行检测、分析工作,使得企业私有库具备足够的安全保障,提升企业私有库的安全性,更进一步保障企业的利益。
Description
技术领域
本发明涉及软件信息维护技术领域,尤其是指一种基于SCA工具的数据库维护方法、装置及可读存储介质。
背景技术
开源组件主要被散布在全世界的编程者队伍开发,同时一些大学,政府机构承包商,协会和商业公司也会对开源组件进行开发。开源组件的源代码的开放性,是信息技术发展引发网络革命所带来的面向未来以开放创新、共同创新为特点的、以人为本的创新2.0模式在软件行业的典型体现和生动注解。由于开源组件的源码分发是实现交叉平台可移植性的唯一实际可行的办法,且诸如UNIX,Internet等系统中存在许多需要开源组件支持的硬件,所以,开源组件在历史上,曾经与UNIX,Internet之间具有非常紧密的联系。
目前,软件开发人员广泛使用开源组件,事实上,据估计,每个应用程序的80-90%都是由开源组件组成的。Synopsys的研究显示,在软件应用程序中被使用的第三方组件,有一半已经过时,很可能存在安全隐患。另一份来自Black Duck的报告称,使用开源组件的所有应用程序中,超过60%包含已知的软件漏洞,而对于企业来说,这些已知的软件漏洞是致命的。大部分企业内部都会建立一个私有库(此处的私有库是一个开源组件数据库,用于存储于企业内网环境中,企业内部开发应用程序所用到的开源组件),维护该私有库的途径一般分为两种:其一,先从外网下载开源组件,再将开源组件维护至私有库;其二,企业内部某一应用开发一开源组件,将此开源组件维护至私有库。不管私有库通过哪种途径进行维护,都没有足够的安全保障,进而导致私有库的安全性较差,更无法保障企业的利益。
因此,有必要对上述私有库的维护方法进行改进。
发明内容
本发明所要解决的技术问题是:提供一种基于SCA工具的数据库维护方法、装置及可读存储介质,旨在解决企业私有库安全性较差的问题。
为了解决上述技术问题,本发明采用的技术方案为:
本发明实施例第一方面提供了一种基于SCA工具的数据库维护方法,所述方法应用于企业内部私有库的数据维护,所述私有库包括企业内部应用程序开发所用的开源组件,所述开源组件包括一类开源组件和二类开源组件,所述一类开源组件为从云服务下载至私有库的开源组件,所述二类开源组件为企业内部应用上传至私有库的开源组件,所述方法包括:
获取所述一类开源组件的信息;
基于SCA工具,对所述一类开源组件的信息进行检测,若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库;
获取所述二类开源组件的信息;
基于SCA工具,对所述二类开源组件的信息进行分析,若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库。
在一些实施方案中,所述SCA工具包括开源组件的版本信息库、漏洞信息库及许可信息库,所述版本信息库包括指纹信息,所述版本信息库内的指纹信息对应于漏洞信息库中的漏洞信息及许可信息库中的许可信息,所述一类开源组件的信息包括一类开源组件的版本信息,所述基于SCA工具,对所述一类开源组件的信息进行检测,具体包括:
匹配所述一类开源组件的版本信息和版本信息库;
若匹配结果一致,则基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述一类开源组件是否存在漏洞和/或具有安全风险的许可;
若匹配结果不一致,则获取所述一类开源组件的漏洞信息和许可信息,并将所述一类开源组件的版本信息、漏洞信息及许可信息对应存储至版本信息库、漏洞信息库及许可信息库;
基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述一类开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述一类开源组件不存在漏洞和/或具有安全风险的许可,则对所述一类开源组件的信息的检测结果为安全。
在一些实施方案中,若所述一类开源组件存在漏洞和/或具有安全风险的许可,则对所述一类开源组件的信息的检测结果为危险,所述SCA工具还包括预警中心,所述若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库,还包括:
若对所述一类开源组件的信息的检测结果为危险,则将所述一类开源组件的信息发送至预警中心进行预警。
在一些实施方案中,所述基于SCA工具,对所述一类开源组件的信息进行检测,还包括:
若未获取到所述一类开源组件的漏洞信息和许可信息,则将所述一类开源组件的版本信息发送至预警中心进行预警。
在一些实施方案中,所述二类开源组件的信息包括二类开源组件的源码片段指纹信息和第三方开源组件的依赖配置信息,所述SCA工具还包括开源组件的源码指纹信息库,所述基于SCA工具,对所述二类开源组件的信息进行分析,具体包括:
匹配所述二类开源组件的源码片段指纹信息和源码指纹信息库;
若匹配结果一致,则得到三类开源组件,所述三类开源组件为二类开源组件的源码所拷贝的开源组件;
获取所述三类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述三类开源组件是否存在漏洞和/或具有安全风险的许可;
分析所述第三方开源组件的依赖配置信息,得到四类开源组件,所述四类开源组件为二类开源组件所引用的直接依赖或间接依赖的开源组件;
获取所述四类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述四类开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述三类开源组件和四类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全。
在一些实施方案中,所述指纹信息包括二进制指纹信息,所述二类开源组件的信息还包括二类开源组件的二进制指纹信息,所述基于SCA工具,对所述二类开源组件的信息进行分析,还包括:
匹配所述二类开源组件的二进制指纹信息和版本信息库;
若匹配结果一致,则得到五类开源组件,所述五类开源组件为二类开源组件内的二进制文件所引用的开源组件;
获取所述五类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述五类开源组件是否存在漏洞和/或具有安全风险的许可;
所述若所述三类开源组件和四类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全,具体包括:
若所述三类开源组件、四类开源组件和五类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全。
在一些实施方案中,所述基于SCA工具,对所述二类开源组件的信息进行分析,还包括:
若所述三类开源组件、四类开源组件和五类开源组件中至少一开源组件存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为危险;
所述若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库,还包括:
若对所述二类开源组件的信息的分析结果为危险,则将所述二类开源组件的信息发送至预警中心进行预警。
在一些实施方案中,所述基于SCA工具的数据库维护方法,还包括:
获取所述私有库中开源组件的版本信息;
匹配所述私有库中开源组件的版本信息和版本信息库;
若匹配结果一致,则基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述私有库中的开源组件是否存在漏洞和/或具有安全风险的许可;
若匹配结果不一致,则获取所述私有库中开源组件的源码片段指纹信息、第三方开源组件的依赖配置信息及二进制指纹信息,并基于SCA工具,判断所述私有库中的开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述私有库中的开源组件存在漏洞和/或具有安全风险的许可,则将所述私有库中存在漏洞和/或具有安全风险的许可的开源组件剔除,并将所述私有库中存在漏洞和/或具有安全风险的许可的开源组件的信息发送至预警中心进行预警。
本发明实施例第二方面提供了一种基于SCA工具的数据库维护装置,包括:
第一获取模块,用于获取一类开源组件的信息;
检测模块,用于基于SCA工具,对所述一类开源组件的信息进行检测,若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库;
第二获取模块,用于获取二类开源组件的信息;
分析模块,用于基于SCA工具,对所述二类开源组件的信息进行分析,若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库。
本发明实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,所述可执行指令被执行时执行如本发明实施例第一方面所述的方法。
从上述描述可知,与现有技术相比,本发明的有益效果在于:
在维护企业私有库的两种途径中(其一,先从外网下载开源组件,再将开源组件维护至私有库;其二,企业内部某一应用开发一开源组件,将此开源组件维护至私有库),均利用SCA工具进行检测、分析工作,使得企业私有库具备足够的安全保障,提升企业私有库的安全性,更进一步保障企业的利益。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的基于SCA工具的数据库维护方法的流程示意图;
图2为本发明实施例提供的图1中步骤S12的流程示意图;
图3为本发明实施例提供的图1中步骤S14的流程示意图;
图4为本发明实施例提供的连接图3中步骤S146的流程示意图;
图5为本发明实施例提供的基于SCA工具的数据库维护方法的附加流程示意图;
图6为本发明实施例提供的基于SCA工具的数据库维护装置的模块方框图;
图7为本发明实施例提供的基于SCA工具的数据库维护设备的模块方框图;
图8为本发明实施例提供的计算机可读存储介质的模块方框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明的各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
请参阅图1,图1为本发明实施例提供的基于SCA工具的数据库维护方法的流程示意图。
如图1所示,本发明第一实施例提供的基于SCA工具的数据库维护方法,应用于企业内部私有库的数据维护,此处的私有库包括企业内部应用程序开发所用的开源组件,此处的开源组件包括一类开源组件和二类开源组件,此处的一类开源组件为从云服务下载至私有库的开源组件,二类开源组件为企业内部应用上传至私有库的开源组件,本实施例提供的方法包括:
S11、获取一类开源组件的信息;
S12、基于SCA工具,对一类开源组件的信息进行检测,若对一类开源组件的信息的检测结果为安全,则将一类开源组件的信息维护至私有库;
S13、获取二类开源组件的信息;
S14、基于SCA工具,对二类开源组件的信息进行分析,若对二类开源组件的信息的分析结果为安全,则将二类开源组件的信息维护至私有库。
本发明第一实施例提供的基于SCA工具的数据库维护方法,在维护企业私有库的两种途径中(此处的两种途径分别对应于上述步骤S11和S13),均利用SCA工具进行检测、分析工作,使得企业私有库具备足够的安全保障,提升企业私有库的安全性,更进一步保障企业的利益。
实施例2
请参阅图2,图2为本发明实施例提供的图1中步骤S12的流程示意图。
与本发明第一实施例提供的基于SCA工具的数据库维护方法相比,本发明第二实施例针对维护企业私有库的第一种途径(即步骤S12)的安全检测进行详细设计。
在本实施例中,SCA工具包括开源组件的版本信息库、漏洞信息库及许可信息库,此处的版本信息库包括指纹信息,且版本信息库内的指纹信息对应于漏洞信息库中的漏洞信息及许可信息库中的许可信息。
上述指纹信息按照一定的哈希算法计算生成,每一开源组件具有唯一的指纹信息,只要开源组件内的文件被修改,那么该开源组件的指纹信息就会改变。
此外,一类开源组件的信息至少包括一类开源组件的版本信息。
如图2所示,本实施例提供一种步骤S12的具体流程,如下:
S121、匹配一类开源组件的版本信息和版本信息库;
这里,实际上是匹配一类开源组件的版本信息中的指纹信息和版本信息库中的指纹信息。
S122、若匹配结果一致,则基于版本信息库与漏洞信息库及许可信息库的对应关系,判断一类开源组件是否存在漏洞和/或具有安全风险的许可;
这里,若一类开源组件不存在漏洞和/或具有安全风险的许可,则对一类开源组件的信息的检测结果为安全;若一类开源组件存在漏洞和/或具有安全风险的许可,则对一类开源组件的信息的检测结果为危险。
S123、若匹配结果不一致,则获取一类开源组件的漏洞信息和许可信息,并将一类开源组件的版本信息、漏洞信息及许可信息对应存储至版本信息库、漏洞信息库及许可信息库;
这里,若匹配结果不一致,说明当前的一类开源组件的版本信息不在SCA工具的版本信息库中,同时SCA工具的漏洞信息库和许可信息库也不会收录当前的一类开源组件的漏洞信息和许可信息,此时便需要从云服务获取该一类开源组件的版本信息、漏洞信息及许可信息,以保证SCA工具中各数据库的完整性。
应当注意,若未获取到一类开源组件的漏洞信息和许可信息,则将一类开源组件的版本信息发送至预警中心进行预警,其中,预警的方式包括但不限于邮件、短信、语音、系统通知。此处的预警中心为SCA工具的组成部分。
S124、基于版本信息库与漏洞信息库及许可信息库的对应关系,判断一类开源组件是否存在漏洞和/或具有安全风险的许可;
这里,根据一类开源组件是否存在漏洞和/或具有安全风险的许可判断对一类开源组件的信息的检测结果的方式与上述步骤S122一致,此处不再赘述。
S125、若对一类开源组件的信息的检测结果为安全,则将一类开源组件的信息维护至私有库;
这里,若对一类开源组件的信息的检测结果为危险,则将一类开源组件的信息发送至预警中心进行预警。
实施例3
请参阅图3以及图4,图3为本发明实施例提供的图1中步骤S14的流程示意图,图4为本发明实施例提供的连接图3中步骤S146的流程示意图。
与本发明第一实施例提供的基于SCA工具的数据库维护方法相比,本发明第三实施例针对维护企业私有库的第二种途径(即步骤S14)的安全分析进行详细设计。
在本实施例中,二类开源组件的信息包括二类开源组件的源码片段指纹信息、第三方开源组件的依赖配置信息及二进制指纹信息。版本信息库内的指纹信息至少包括二进制指纹信息。SCA工具还包括开源组件的源码指纹信息库。
如图3以及图4所示,本实施例提供一种步骤S14的具体流程,如下:
S141、匹配二类开源组件的源码片段指纹信息和源码指纹信息库;
S142、若匹配结果一致,则得到三类开源组件;
此处,三类开源组件为二类开源组件的源码所拷贝的开源组件,也就是说,二类开源组件的源码拷贝了三类开源组件的代码。
S143、获取三类开源组件的版本信息,并基于版本信息库与漏洞信息库及许可信息库的对应关系,判断三类开源组件是否存在漏洞和/或具有安全风险的许可;
S144、分析第三方开源组件的依赖配置信息,得到四类开源组件;
此处,四类开源组件为二类开源组件所引用的直接依赖或间接依赖的开源组件;
S145、获取四类开源组件的版本信息,并基于版本信息库与漏洞信息库及许可信息库的对应关系,判断四类开源组件是否存在漏洞和/或具有安全风险的许可;
S146、匹配二类开源组件的二进制指纹信息和版本信息库;
S147、若匹配结果一致,则得到五类开源组件;
此处,五类开源组件为二类开源组件内的二进制文件所引用的开源组件;
S148、获取五类开源组件的版本信息,并基于版本信息库与漏洞信息库及许可信息库的对应关系,判断五类开源组件是否存在漏洞和/或具有安全风险的许可;
S149、若三类开源组件、四类开源组件和五类开源组件均不存在漏洞和/或具有安全风险的许可,则对二类开源组件的信息的分析结果为安全;
此处,若三类开源组件、四类开源组件和五类开源组件中至少一开源组件存在漏洞和/或具有安全风险的许可,则对二类开源组件的信息的分析结果为危险。
S1410、若对二类开源组件的信息的分析结果为安全,则将二类开源组件的信息维护至私有库;
此处,若对二类开源组件的信息的分析结果为危险,则将二类开源组件的信息发送至预警中心进行预警。
实施例4
请参阅图5,图5为本发明实施例提供的基于SCA工具的数据库维护方法的附加流程示意图。
与本发明第一实施例提供的基于SCA工具的数据库维护方法相比,本发明第四实施例增加了对私有库的实时监控流程,此处,增加对私有库的实时监控流程的原因是某一开源组件在维护至私有库之前没有漏洞和/或有风险的许可,但是经过一段时间后,该开源组件可能会产生漏洞和/或有风险的许可。
如图5所示,本实施例提供的对私有库的实时监控流程,如下:
S21、获取私有库中开源组件的版本信息;
S22、匹配私有库中开源组件的版本信息和版本信息库;
S23、若匹配结果一致,则基于版本信息库与漏洞信息库及许可信息库的对应关系,判断私有库中的开源组件是否存在漏洞和/或具有安全风险的许可;
S24、若匹配结果不一致,则获取私有库中开源组件的源码片段指纹信息、第三方开源组件的依赖配置信息及二进制指纹信息,并基于SCA工具,判断私有库中的开源组件是否存在漏洞和/或具有安全风险的许可。
上述步骤S23-S24中,若私有库中的开源组件存在漏洞和/或具有安全风险的许可,则将私有库中存在漏洞和/或具有安全风险的许可的开源组件剔除,并将私有库中存在漏洞和/或具有安全风险的许可的开源组件的信息发送至预警中心进行预警。
实施例5
请参阅图6,图6为本发明实施例提供的基于SCA工具的数据库维护装置的模块方框图。
如图6所示,与本发明第一实施例提供的基于SCA工具的数据库维护方法对应,本发明第五实施例提供的基于SCA工具的数据库维护装置100,包括:
第一获取模块101,用于获取一类开源组件的信息;
检测模块102,用于基于SCA工具,对一类开源组件的信息进行检测,若对一类开源组件的信息的检测结果为安全,则将一类开源组件的信息维护至私有库;
第二获取模块103,用于获取二类开源组件的信息;
分析模块104,用于基于SCA工具,对二类开源组件的信息进行分析,若对二类开源组件的信息的分析结果为安全,则将二类开源组件的信息维护至私有库。
实施例6
请参阅图7,图7为本发明实施例提供的基于SCA工具的数据库维护设备的模块方框图。
如图7所示,本发明第六实施例提供的基于SCA工具的数据库维护设备200,包括存储装置201及一个或多个处理器202,存储装置201用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器202执行时,使得一个或多个处理器202执行如本发明第一实施例至第四实施例任一实施例所提供的方法。
需要说明的是,本实施例提供的基于SCA工具的数据库维护设备200还包括总线203,用于存储装置201与一个或多个处理器202之间的通信连接。
实施例7
请参阅图8,图8为本发明实施例提供的计算机可读存储介质的模块方框图。
如图8所示,本发明第七实施例提供的计算机可读存储介质300上存储有可执行指令301,该可执行指令301被执行时执行如本发明第一实施例至第四实施例任一实施例所提供的方法。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。
需要说明的是,本发明内容中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于产品类实施例而言,由于其与方法类实施例相似,所以描述的比较简单,相关之处参见方法类实施例的部分说明即可。
还需要说明的是,在本发明内容中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明内容。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本发明内容中所定义的一般原理可以在不脱离本发明内容的精神或范围的情况下,在其它实施例中实现。因此,本发明内容将不会被限制于本发明内容所示的这些实施例,而是要符合与本发明内容所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于SCA工具的数据库维护方法,其特征在于,所述方法应用于企业内部私有库的数据维护,所述私有库包括企业内部应用程序开发所用的开源组件,所述开源组件包括一类开源组件和二类开源组件,所述一类开源组件为从云服务下载至私有库的开源组件,所述二类开源组件为企业内部应用上传至私有库的开源组件,所述方法包括:
获取所述一类开源组件的信息;
基于SCA工具,对所述一类开源组件的信息进行检测,若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库;
获取所述二类开源组件的信息;
基于SCA工具,对所述二类开源组件的信息进行分析,若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库。
2.如权利要求1所述的基于SCA工具的数据库维护方法,其特征在于,所述SCA工具包括开源组件的版本信息库、漏洞信息库及许可信息库,所述版本信息库包括指纹信息,所述版本信息库内的指纹信息对应于漏洞信息库中的漏洞信息及许可信息库中的许可信息,所述一类开源组件的信息包括一类开源组件的版本信息,所述基于SCA工具,对所述一类开源组件的信息进行检测,具体包括:
匹配所述一类开源组件的版本信息和版本信息库;
若匹配结果一致,则基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述一类开源组件是否存在漏洞和/或具有安全风险的许可;
若匹配结果不一致,则获取所述一类开源组件的漏洞信息和许可信息,并将所述一类开源组件的版本信息、漏洞信息及许可信息对应存储至版本信息库、漏洞信息库及许可信息库;
基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述一类开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述一类开源组件不存在漏洞和/或具有安全风险的许可,则对所述一类开源组件的信息的检测结果为安全。
3.如权利要求2所述的基于SCA工具的数据库维护方法,其特征在于,若所述一类开源组件存在漏洞和/或具有安全风险的许可,则对所述一类开源组件的信息的检测结果为危险,所述SCA工具还包括预警中心,所述若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库,还包括:
若对所述一类开源组件的信息的检测结果为危险,则将所述一类开源组件的信息发送至预警中心进行预警。
4.如权利要求3所述的基于SCA工具的数据库维护方法,其特征在于,所述基于SCA工具,对所述一类开源组件的信息进行检测,还包括:
若未获取到所述一类开源组件的漏洞信息和许可信息,则将所述一类开源组件的版本信息发送至预警中心进行预警。
5.如权利要求3所述的基于SCA工具的数据库维护方法,其特征在于,所述二类开源组件的信息包括二类开源组件的源码片段指纹信息和第三方开源组件的依赖配置信息,所述SCA工具还包括开源组件的源码指纹信息库,所述基于SCA工具,对所述二类开源组件的信息进行分析,具体包括:
匹配所述二类开源组件的源码片段指纹信息和源码指纹信息库;
若匹配结果一致,则得到三类开源组件,所述三类开源组件为二类开源组件的源码所拷贝的开源组件;
获取所述三类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述三类开源组件是否存在漏洞和/或具有安全风险的许可;
分析所述第三方开源组件的依赖配置信息,得到四类开源组件,所述四类开源组件为二类开源组件所引用的直接依赖或间接依赖的开源组件;
获取所述四类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述四类开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述三类开源组件和四类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全。
6.如权利要求5所述的基于SCA工具的数据库维护方法,其特征在于,所述指纹信息包括二进制指纹信息,所述二类开源组件的信息还包括二类开源组件的二进制指纹信息,所述基于SCA工具,对所述二类开源组件的信息进行分析,还包括:
匹配所述二类开源组件的二进制指纹信息和版本信息库;
若匹配结果一致,则得到五类开源组件,所述五类开源组件为二类开源组件内的二进制文件所引用的开源组件;
获取所述五类开源组件的版本信息,并基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述五类开源组件是否存在漏洞和/或具有安全风险的许可;
所述若所述三类开源组件和四类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全,具体包括:
若所述三类开源组件、四类开源组件和五类开源组件均不存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为安全。
7.如权利要求6所述的基于SCA工具的数据库维护方法,其特征在于,所述基于SCA工具,对所述二类开源组件的信息进行分析,还包括:
若所述三类开源组件、四类开源组件和五类开源组件中至少一开源组件存在漏洞和/或具有安全风险的许可,则对所述二类开源组件的信息的分析结果为危险;
所述若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库,还包括:
若对所述二类开源组件的信息的分析结果为危险,则将所述二类开源组件的信息发送至预警中心进行预警。
8.如权利要求7所述的基于SCA工具的数据库维护方法,其特征在于,还包括:
获取所述私有库中开源组件的版本信息;
匹配所述私有库中开源组件的版本信息和版本信息库;
若匹配结果一致,则基于所述版本信息库与漏洞信息库及许可信息库的对应关系,判断所述私有库中的开源组件是否存在漏洞和/或具有安全风险的许可;
若匹配结果不一致,则获取所述私有库中开源组件的源码片段指纹信息、第三方开源组件的依赖配置信息及二进制指纹信息,并基于SCA工具,判断所述私有库中的开源组件是否存在漏洞和/或具有安全风险的许可;
其中,若所述私有库中的开源组件存在漏洞和/或具有安全风险的许可,则将所述私有库中存在漏洞和/或具有安全风险的许可的开源组件剔除,并将所述私有库中存在漏洞和/或具有安全风险的许可的开源组件的信息发送至预警中心进行预警。
9.一种基于SCA工具的数据库维护装置,其特征在于,包括:
第一获取模块,用于获取一类开源组件的信息;
检测模块,用于基于SCA工具,对所述一类开源组件的信息进行检测,若对所述一类开源组件的信息的检测结果为安全,则将所述一类开源组件的信息维护至私有库;
第二获取模块,用于获取二类开源组件的信息;
分析模块,用于基于SCA工具,对所述二类开源组件的信息进行分析,若对所述二类开源组件的信息的分析结果为安全,则将所述二类开源组件的信息维护至私有库。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可执行指令,所述可执行指令被执行时执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159371.6A CN112016100B (zh) | 2020-10-27 | 2020-10-27 | 基于sca工具的数据库维护方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011159371.6A CN112016100B (zh) | 2020-10-27 | 2020-10-27 | 基于sca工具的数据库维护方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112016100A true CN112016100A (zh) | 2020-12-01 |
CN112016100B CN112016100B (zh) | 2021-01-29 |
Family
ID=73528020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011159371.6A Active CN112016100B (zh) | 2020-10-27 | 2020-10-27 | 基于sca工具的数据库维护方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112016100B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420697A (zh) * | 2011-09-07 | 2012-04-18 | 北京邮电大学 | 一种可配置服务的综合资源监测管理系统及其方法 |
CN106295343A (zh) * | 2016-08-24 | 2017-01-04 | 北京奇虎测腾科技有限公司 | 一种基于序列化中间表示的源代码分布式检测系统及方法 |
CN106445804A (zh) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | 一种基于序列化中间表示的源代码云检测系统及方法 |
CN110543767A (zh) * | 2019-08-10 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种针对开源组件漏洞自动化监控方法及系统 |
CN111552504A (zh) * | 2020-07-13 | 2020-08-18 | 深圳开源互联网安全技术有限公司 | 一种开源组件的资产信息维护方法、装置及存储介质 |
-
2020
- 2020-10-27 CN CN202011159371.6A patent/CN112016100B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420697A (zh) * | 2011-09-07 | 2012-04-18 | 北京邮电大学 | 一种可配置服务的综合资源监测管理系统及其方法 |
CN106295343A (zh) * | 2016-08-24 | 2017-01-04 | 北京奇虎测腾科技有限公司 | 一种基于序列化中间表示的源代码分布式检测系统及方法 |
CN106445804A (zh) * | 2016-08-24 | 2017-02-22 | 北京奇虎测腾安全技术有限公司 | 一种基于序列化中间表示的源代码云检测系统及方法 |
CN110543767A (zh) * | 2019-08-10 | 2019-12-06 | 苏州浪潮智能科技有限公司 | 一种针对开源组件漏洞自动化监控方法及系统 |
CN111552504A (zh) * | 2020-07-13 | 2020-08-18 | 深圳开源互联网安全技术有限公司 | 一种开源组件的资产信息维护方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
王颉 等: "从软件安全开发生命周期实践的角度保障软件供应链安全", 《网络空间安全》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112016100B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455400B2 (en) | Method, system, and storage medium for security of software components | |
US9330095B2 (en) | Method and system for matching unknown software component to known software component | |
US9792429B2 (en) | Detection of malicious software packages | |
CN112639782A (zh) | 隐私保护部件隐患检测和处置 | |
CN109598127B (zh) | 隐私风险评估方法和装置 | |
US20220198003A1 (en) | Detecting added functionality in open source package | |
CN112115473A (zh) | 一种用于Java开源组件安全检测的方法 | |
US11893117B2 (en) | Software package analysis for detection of malicious properties | |
US10241759B2 (en) | Detecting open source components built into mobile applications | |
Latendresse et al. | Not all dependencies are equal: An empirical study on production dependencies in npm | |
US9621677B1 (en) | Monitoring accesses to computer source code | |
Dunlap et al. | Finding Fixed Vulnerabilities with Off-the-Shelf Static Analysis | |
CN112016100B (zh) | 基于sca工具的数据库维护方法、装置及可读存储介质 | |
CN112868008A (zh) | Java开源组件的漏洞检测方法、装置及存储介质 | |
CN102982280B (zh) | 阻止计算机辅助设计cad病毒感染的方法及装置 | |
US20220405397A1 (en) | Detection of supply chain-related security threats to software applications | |
CN109472138B (zh) | 一种检测snort规则冲突的方法、装置和存储介质 | |
CN112231302A (zh) | Java开源组件数据库的维护方法、装置及存储介质 | |
Takahashi et al. | Data model for android package information and its application to risk analysis system | |
US20240086187A1 (en) | Source Code Programming Language Prediction for a Text File | |
US20230367883A1 (en) | Systems and processes for tailoring risk mitigation of threat events associated with software bill of materials | |
US20230376603A1 (en) | Techniques for identifying and validating security control steps in software development pipelines | |
US20240020266A1 (en) | Methods and systems for external migration collaboration | |
US20230367881A1 (en) | Systems and processes for creating software bill of materials for large distributed builds | |
Koponen | Securing software supply chain |
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 |