本公开提供了一种组件安全检测方法、装置、电子设备及存储介质,涉及计算机技术领域。该方法包括:确定待检测组件以及待检测组件的依赖关系信息,其中,依赖关系信息用于指示各个与待检测组件具有依赖关系的第一组件;从各个第一组件中筛选得到与待检测组件之间存在代码数据流的至少一个第二组件;对待检测组件以及至少一个第二组件进行安全检测,得到待检测组件的安全检测结果。本公开通过代码数据流是否存在的条件筛选出各个与待检测组件具有真实依赖关系的第二组件。因此,对待检测组件以及各个第二组件进行安全检测,可以降低组件安全检测的误报率,并提高组件安全检测的准确性与可靠性。性与可靠性。性与可靠性。
【技术实现步骤摘要】
组件安全检测方法、装置、电子设备及存储介质
[0001]本公开涉及计算机
,尤其涉及一种组件安全检测方法、装置、电子设备及存储介质。
技术介绍
[0002]开源组件被广泛应用于计算机领域,为确保对开源组件的安全应用,需要对开源组件进行安全检测。在相关技术中,针对于开源组件安全检测的工作,可以通过提取开源组件依赖关系后进行知识库匹配来实现。
[0003]但是,在通过相关技术的方法进行安全检测时,往往涉及大量的真实依赖关系和虚假依赖关系。虚假依赖关系的存在会导致组件安全检测的误报率高,因而组件安全检测的准确性与可靠性较低。
[0004]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
[0005]本公开提供一种开源组件安全检测方法、装置、电子设备及存储介质,至少在一定程度上克服相关技术中组件安全检测的误报率高,因而组件安全检测的准确性与可靠性较低的问题。
[0006]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0007]根据本公开实施例的一个方面,提供一种组件安全检测方法,包括:确定待检测组件以及该待检测组件的依赖关系信息,其中,该依赖关系信息用于指示各个与该待检测组件具有依赖关系的第一组件;从各个第一组件中筛选得到与该待检测组件之间存在代码数据流的至少一个第二组件;对该待检测组件以及至少一个第二组件进行安全检测,得到该待检测组件的安全检测结果。
[0008]在本公开的一些实施例中,本公开实施例提供的组件安全检测方法还可包括:确定该待检测组件的源代码数据以及各个第一组件的源代码数据;
[0009]其中,从各个第一组件中筛选得到与该待检测组件之间存在代码数据流的至少一个第二组件,包括:对该待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到各个第一组件中与该待检测组件之间存在代码数据流的至少一个第二组件。
[0010]在本公开的一些实施例中,对该待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到各个第一组件中与该待检测组件之间存在代码数据流的至少一个第二组件,包括:对该待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到AST(Abstract Syntax Tree,抽象语法树)信息、IR(Intermediate Representation,中间代码)信息与CFG(Control Flow Graph,控制流图)信息中的至少一
个信息;对该AST信息、该IR信息与该CFG信息中的至少一个信息进行数据流与控制流分析,得到代码数据流信息;根据该代码数据流信息,确定各个第一组件中与该待检测组件之间存在代码数据流的至少一个第二组件。
[0011]在本公开的一些实施例中,对该待检测组件以及至少一个第二组件进行安全检测,得到该待检测组件的安全检测结果,包括:确定该待检测组件的漏洞数据以及各个第二组件对应的漏洞数据;根据该待检测组件的漏洞数据以及各个第二组件对应的漏洞数据,确定该待检测组件的安全检测结果。
[0012]在本公开的一些实施例中,从各个第一组件中筛选得到与该待检测组件之间存在代码数据流的至少一个第二组件之后,本公开实施例提供的组件安全检测方法还包括:建立组件关系图形知识库,该组件关系图形知识库用于描述该待检测组件与各个第二组件之间的依赖关系;
[0013]其中,对该待检测组件以及至少一个第二组件进行安全检测,得到该待检测组件的安全检测结果,包括:通过该组件关系图形知识库进行安全检测,得到该待检测组件的安全检测结果。
[0014]在本公开的一些实施例中,本公开实施例提供的组件安全检测方法还包括:获取待检测组件的元数据信息,该元数据信息用于对该待检测组件进行辅助说明;
[0015]其中,建立组件关系图形知识库,包括:根据该待检测组件的元数据信息,建立该组件关系图形知识库。
[0016]在本公开的一些实施例中,任一漏洞数据中包括任一第二组件对应的已知漏洞信息,任一漏洞数据中还包括组件名称、组件版本、组件来源、发布时间、许可证书信息、依赖关系信息中的至少一个。
[0017]根据本公开的另一个方面,提供一种组件安全检测装置,包括:待检测组件确定模块,用于确定待检测组件以及该待检测组件的依赖关系信息,其中,该依赖关系信息用于指示各个与该待检测组件具有依赖关系的第一组件;第二组件筛选模块,用于从各个第一组件中筛选得到与该待检测组件之间存在代码数据流的至少一个第二组件;安全检测模块,用于对该待检测组件以及至少一个第二组件进行安全检测,得到该待检测组件的安全检测结果。
[0018]在本公开的一些实施例中,本公开实施例提供的组件安全检测装置还包括:源代码数据确定模块,用于确定该待检测组件的源代码数据以及各个第一组件的源代码数据;
[0019]其中,第二组件筛选模块,用于对该待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到各个第一组件中与该待检测组件之间存在代码数据流的至少一个第二组件。
[0020]在本公开的一些实施例中,第二组件筛选模块,用于对该待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到AST信息、IR信息与CFG信息中的至少一个信息;对该AST信息、该IR信息与该CFG信息中的至少一个信息进行数据流与控制流分析,得到代码数据流信息;根据该代码数据流信息,确定各个第一组件中与该待检测组件之间存在代码数据流的至少一个第二组件。
[0021]在本公开的一些实施例中,安全检测模块,用于确定该待检测组件的漏洞数据以及各个第二组件对应的漏洞数据;根据该待检测组件的漏洞数据以及各个第二组件对应的
漏洞数据,确定该待检测组件的安全检测结果。
[0022]在本公开的一些实施例中,本公开实施例提供的组件安全检测装置还包括:组件关系图形知识库建立模块,用于建立组件关系图形知识库,该组件关系图形知识库用于描述该待检测组件与各个第二组件之间的依赖关系;
[0023]其中,安全检测模块,用于通过该组件关系图形知识库进行安全检测,得到该待检测组件的安全检测结果。
[0024]在本公开的一些实施例中,本公开实施例提供的组件安全检测装置还包括:获取待检测组件的元数据信息,该元数据信息用于对该待检测组件进行辅助说明;
[0025]其中,组件关系图形知识库建立模块,用于根据该待检测组件的元数据信息,建立该组件关系图形知识库。
[0026]在本公开的一些实施例中,任一漏洞数据中包括任一第二组件对应的已知漏洞信息,任一漏洞数据中还包括组件名称、组件版本、组件来源、发布时间、许可证书信息、依赖关系信息中的至少一个。
[0027]根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储该处理器的可执行指令;其中,该处理器本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种组件安全检测方法,其特征在于,包括:确定待检测组件以及所述待检测组件的依赖关系信息,其中,所述依赖关系信息用于指示各个与所述待检测组件具有依赖关系的第一组件;从各个第一组件中筛选得到与所述待检测组件之间存在代码数据流的至少一个第二组件;对所述待检测组件以及至少一个第二组件进行安全检测,得到所述待检测组件的安全检测结果。2.根据权利要求1所述的组件安全检测方法,其特征在于,所述方法还包括:确定所述待检测组件的源代码数据以及各个第一组件的源代码数据;其中,所述从各个第一组件中筛选得到与所述待检测组件之间存在代码数据流的至少一个第二组件,包括:对所述待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到各个第一组件中与所述待检测组件之间存在代码数据流的至少一个第二组件。3.根据权利要求2所述的组件安全检测方法,其特征在于,所述对所述待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到各个第一组件中与所述待检测组件之间存在代码数据流的至少一个第二组件,包括:对所述待检测组件的源代码数据以及各个第一组件的源代码数据进行可达性分析,得到抽象语法树AST信息、中间代码IR信息与控制流图CFG信息中的至少一个信息;对所述AST信息、所述IR信息与所述CFG信息中的至少一个信息进行数据流与控制流分析,得到代码数据流信息;根据所述代码数据流信息,确定各个第一组件中与所述待检测组件之间存在代码数据流的至少一个第二组件。4.根据权利要求1所述的组件安全检测方法,其特征在于,所述对所述待检测组件以及至少一个第二组件进行安全检测,得到所述待检测组件的安全检测结果,包括:确定所述待检测组件的漏洞数据以及各个第二组件对应的漏洞数据;根据所述待检测组件的漏洞数据以及各个第二组件对应的漏洞数据,确定所述待检测组件的安全检测结果。5.根据权利要求1或4所述的组件...
【专利技术属性】
技术研发人员:纪妙,徐浩,呼博文,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。