CN117370984A - 组件安全检测方法、装置、计算机设备及存储介质 - Google Patents

组件安全检测方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN117370984A
CN117370984A CN202311284720.0A CN202311284720A CN117370984A CN 117370984 A CN117370984 A CN 117370984A CN 202311284720 A CN202311284720 A CN 202311284720A CN 117370984 A CN117370984 A CN 117370984A
Authority
CN
China
Prior art keywords
component
rule
dependent
detection result
relying
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
CN202311284720.0A
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.)
Picc Information Technology Co ltd
Original Assignee
Picc 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 Picc Information Technology Co ltd filed Critical Picc Information Technology Co ltd
Priority to CN202311284720.0A priority Critical patent/CN117370984A/zh
Publication of CN117370984A publication Critical patent/CN117370984A/zh
Pending legal-status Critical Current

Links

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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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)

Abstract

本申请关于一种组件安全检测方法、装置、设备及存储介质,涉及软件安全技术领域。该方法包括:获取源代码依赖的依赖组件集合,该依赖组件集合中包含至少一个依赖组件;对依赖组件集合进行漏洞检测,获得依赖组件集合的漏洞检测结果;该漏洞检测用于检测依赖组件集合中包含的依赖组件的风险等级;对依赖组件集合进行规则检测,获得依赖组件集合的规则检测结果;该规则检测用于检测依赖组件集合中包含的依赖组件的必要性;基于漏洞检测结果以及规则检测结果,确定依赖组件集合的安全性检测结果。通过上述方法,可以实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性。

Description

组件安全检测方法、装置、计算机设备及存储介质
技术领域
本申请实施例涉及软件安全技术领域,特别涉及一种组件安全检测方法、装置、计算机设备及存储介质。
背景技术
目前在软件供应链市场中,开源软件和开源开发组件的占比日益增多。开源软件和开源开发组件可以极大增加开发效率,降低开发成本和门槛。甚至一些核心的软件架构中,都是以开源软件为核心进行构建。因此,若开源软件或开源开发组件存在致命漏洞,就会导致大范围的连锁反应。所以开源软件和开源开发组件不仅提高了开发效率,同时还带来了更大的供应链安全性挑战。
在相关技术中,通常通过针对软件产品的安全漏洞扫描的方式进行安全性检测,包括网络漏扫,主机漏扫,数据库漏扫,镜像漏扫等。
然在,相关技术的方案主要是针对操作系统、数据库和开源产品等进行安全检测,无法实现对源代码依赖的开发组件的有效控制,使得安全性检测效果较差。
发明内容
本申请实施例提供了一种组件安全检测方法、装置、计算机设备及存储介质,可以实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性,该技术方案如下。
一方面,提供了一种组件安全检测方法,所述方法包括:
获取源代码依赖的依赖组件集合,所述依赖组件集合中包含至少一个依赖组件;
对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果;所述漏洞检测用于检测所述依赖组件集合中包含的依赖组件的风险等级;
对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果;所述规则检测用于检测所述依赖组件集合中包含的依赖组件的必要性;
基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果。
另一方面,提供了一种组件安全检测装置,所述装置包括:
组件集合获取模块,用于获取源代码依赖的依赖组件集合,所述依赖组件集合中包含至少一个依赖组件;
漏洞检测模块,用于对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果;所述漏洞检测用于检测所述依赖组件集合中包含的依赖组件的风险等级;
规则检测模块,用于对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果;所述规则检测用于检测所述依赖组件集合中包含的依赖组件的必要性;
安全性确定模块,用于基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果。
在一种可能的实现方式中,每个依赖组件具有对应的组件信息,所述组件信息包括组件名称以及组件版本信息;
所述漏洞检测模块,包括:
漏洞查询子模块,用于遍历所述依赖组件集合中的至少一个依赖组件,对于至少一个依赖组件中的任一目标组件,在基于组件名称确定漏洞库中包含所述目标组件时,基于所述目标组件的组件版本信息查询并返回所述目标组件的子检测结果;所述漏洞库中记录有各个版本的依赖组件的风险等级;在所述漏洞库中不包含所述目标组件时,对所述目标组件进行即时风险分析,获得所述目标组件的子检测结果;所述即时风险分析是指在周期性更新的漏洞共享平台中对组件进行漏洞查询;
第一确定子模块,用于基于至少一个依赖组件的子检测结果确定所述依赖组件集合的漏洞检测结果。
在一种可能的实现方式中,所述装置还包括:
记录模块,用于在所述漏洞库中不包括所述目标组件时,在通过即时风险分析获得所述目标组件的风险等级后,将所述目标组件对应的风险等级记录到所述漏洞库中。
在一种可能的实现方式中,所述规则检测模块,包括:
规则匹配子模块,用于将所述依赖组件集合与规则库中的各个规则进行匹配,获得所述依赖组件集合相对于各个规则对应的匹配结果;所述规则库中的规则用于指示所述依赖组件集合中依赖组件存在的必要性;所述匹配结果用于指示所述依赖组件集合与规则匹配或不匹配;
第二确定子模块,用于基于所述依赖组件集合相对于各个规则对应的匹配结果,确定所述依赖组件集合的所述规则检测结果;
其中,所述规则库中的规则包括以下至少之一:必备依赖规则,排斥依赖规则以及组件版本依赖规则;所述必备依赖规则指示所述依赖组件集合中必备的依赖组件;所述排斥依赖规则指示所述依赖组件集合中不能存在的依赖组件;所述组件版本依赖规则指所述依赖组件集合中的依赖组件的必备版本。
在一种可能的实现方式中,在所述规则库中包含所述必备依赖规则,所述排斥规则以及所述组件版本依赖规则的情况下,所述第二确定子模块,用于,
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则均匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配成功;
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则中的任一规则不匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配失败;
其中,所述依赖组件集合与所述必备依赖规则相匹配是指所述依赖组合中包含所述必备依赖规则指示的全部必备组件;所述依赖组件集合与所述排斥依赖规则相匹配是指所述依赖组合中不包含所述排斥依赖规则指示的全部组件;所述依赖组件集合与所述组件版本依赖规则相匹配是指所述依赖组合中包含所述组件依赖版本规则指示的必备版本的依赖组件。
在一种可能的实现方式中,所述安全性确定模块,用于在所述漏洞检测结果指示所述依赖组件集合中包含风险等级高于等级阈值的依赖组件,或,所述规则检测结果指示所述依赖组件集合规则匹配失败时,确定所述安全性检测结果指示所述依赖组件集合未通过安全性检测。
在一种可能的实现方式中,所述安全性确定模块,用于在所述漏洞检测结果指示的至少一个依赖组件中的任一目标组件的子检测结果与所述规则检测结果指示的所述目标组件的规则匹配结果冲突时,基于所述规则检测结果确定所述依赖组件集合的安全性检测结果。
另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述的组件安全检测方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述的组件安全检测方法。
另一方面,提供了一种计算机程序产品,所述计算机程序产品包括至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述各种可选实现方式中提供的组件安全检测方法。
本申请提供的技术方案可以包括以下有益效果:
本申请实施例提供的组件安全检测方法,通过对源代码依赖的依赖组件集合进行漏洞检测以及规则检测,可以实现对源代码依赖的各个依赖组件的风险等级以及必要性的检测,从两方面综合评估依赖组件集合中的依赖组件的安全性,从而实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1示出了本申请一示例性实施例提供的流水线任务的示意图;
图2示出了本申请一示例性实施例提供的组件安全检测方法的流程图;
图3示出了本申请一示例性实施例提供的组件安全检测方法的流程图;
图4示出了本申请一示例性实施例提供的依赖关系列表的示意图;
图5示出了本申请一示例性实施例提供的定时任务的示意图;
图6示出了本申请一示例性实施例提供的组件安全检测方法的示意图;
图7示出了本申请一示例性实施例提供的组件安全检测装置的方框图;
图8是根据一示例性实施例示出的计算机设备的结构框图;
图9是根据一示例性实施例示出的计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了提高对开源组件和开源开发组件的检测效果,本申请实施例提供了一种组件安全检测方法,该方法可以集成于CI(Continuous Integration,持续集成)/CD(Continuous Delivery,持续交付;Continuous Deployment,持续部署)流水线中,作为软件成分分析(SCA,Software Composition Analysis)中的一环,在软件构造过程中对开发组件进行风险和合规性检查,有效在应用部署阶段阻断将存在高危漏洞的开源开发组件部署上线,图1示出了本申请一示例性实施例提供的流水线任务的示意图,图1所示,本申请提供的组件安全检测方法应用为SCA校验110,在此情况下,在触发流水线任务后,应用开始构建,在经过静态应用程序安全测试(SAST,Static Application Security Testing)通过后,触发SCA校验110,即执行本申请提供的组件安全检测方法。或者,该方法可以封装为开发组件漏洞检测工具单独使用,在此情况下,开发人员可以通过API的方式,调用开发组件漏洞检测工具的接口,传入源代码的相关信息,启动开发组件漏洞检测工具以获得分析结果。本申请对组件安全检测方法的实施方式不进行限制。图2示出了本申请一示例性实施例提供的组件安全检测方法的流程图,该方法可以由组件安全检测工具执行,该组件安全检测工具可以实现为服务器或者终端,如图2所示,该组件安全检测方法可以包括以下步骤:
步骤210,获取源代码依赖的依赖组件集合,该依赖组件集合中包含至少一个依赖组件。
源代码依赖的依赖组件集合中的依赖组件是指该源代码运行所需要调用或访问的组件,用于为源代码的运行提供支持。
步骤220,对依赖组件集合进行漏洞检测,获得依赖组件集合的漏洞检测结果;该漏洞检测用于检测依赖组件集合中包含的依赖组件的风险等级。
依赖组件集合的漏洞检测结果是基于依赖组件集合中包含的各个依赖组件的检测结果综合确定的,该依赖组件集合的漏洞检测结果中包含各个依赖组件的风险等级的检测结果;在本申请实施例中,对依赖组件的漏洞检测包括对依赖组件的类型以及依赖组件的版本的漏洞检测,不同版本的依赖组件的漏洞检测结果可能不同。
步骤230,对依赖组件集合进行规则检测,获得依赖组件集合的规则检测结果;该规则检测用于检测依赖组件集合中包含的依赖组件的必要性。
依赖组件集合的规则检测结果是基于对依赖组件集合相对于规则库中的各个规则的各自的检测结果综合确定的;对依赖组件集合的规则检测可以包括对依赖组件的必要性的检测以及对依赖组件的版本的必要性的检测。
在本申请实施例中,对依赖组件集合进行漏洞检测以及规则检测的过程可以同步进行,或者,也可以异步进行,本申请对进行两个检测过程的时序不进行限制。
步骤240,基于漏洞检测结果以及规则检测结果,确定依赖组件集合的安全性检测结果。
在漏洞检测结果以及规则检测结果均通过时,确定依赖组件集合的安全性检测结果指示通过安全性检测;在漏洞检测结果或规则检测结果均未通过时,确定依赖组件集合的安全性检测结果指示安全性检测未通过。
进一步的,基于依赖组件的安全性检测结果生成检验报告;此外,在该方法应用于流水线任务中的情况下,在确定依赖组件的安全性检测结果指示安全性检测未通过时,终止流水线任务。
综上所述,本申请实施例提供的组件安全检测方法,通过对源代码依赖的依赖组件集合进行漏洞检测以及规则检测,可以实现对源代码依赖的各个依赖组件的风险等级以及必要性的检测,从两方面综合评估依赖组件集合中的依赖组件的安全性,从而实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性。
每个依赖组件具有对应的组件信息,该组件信息包括组件名称以及组件版本信息,在一些应用场景中,除对依赖组件的类型有要求外,要对依赖组件的版本有要求,比如,在一个应用场景中,源代码所需的依赖组件为版本1的组件1,在另一个应用场景中,源代码的依赖组件的为本3的组件1,因此,在进行安全性检测时,除了对依赖组件进行漏洞检测和必要性检测,在一些场景中还需对依赖组件的版本进行漏洞检测和必要性检测。图3示出了本申请一示例性实施例提供的组件安全检测方法的流程图,该方法可以由组件安全检测工具执行,该组件安全检测工具可以实现为服务器或者终端,如图3所示,该组件安全检测方法可以包括以下步骤:
步骤310,获取源代码依赖的依赖组件集合,该依赖组件集合中包含至少一个依赖组件。
在本申请实施例中,组件安全检测工具可以基于传入的项目编码、源码类型枚举、源码仓库地址、源码仓库授权以及线程方式,进行源代码下载;其中,在线程方式为异步方式时,传入数据还包括callback回调地址;以JAVA项目为例,需要向组件安全检测工具中传入的源码类型枚举为JAVA,源码仓库地址为git和git的授权token或git的凭据,以及线程方式是同步方式还是异步方式,若线程方式采用异步方式,需要提供callback回调地址。
组件安全检测工具根据上述传入的参数下载源代码,扫描源代码结构并根据源码类型枚举,获取该源码类型的依赖关系模型的类型,以JAVA项目为例,需根据源码类型枚举判断JAVA项目的依赖关系模型是maven类型、gradle类型或者传统的包含了依赖包的类型。
通过依赖关系模型对源代码的依赖关系进行分析,并输出依赖关系列表,以基于依赖关系列表得到源代码依赖的依赖组件集合。其中,依赖关系模型中包含依赖关系匹配规则以及依赖关系分析方法,在对源代码进行依赖关系分析时,可以采用热加载方式对依赖关系分析功能进行加载分析;图4示出了本申请一示例性实施例提供的依赖关系列表的示意图,如图4所示,以JAVA项目为例,在分析出源代码的依赖关系模型为maven时,开始根据依赖关系模型中的依赖关系分析方法,解析pom.xml,对依赖关系进行分析并输出依赖关系列表。其中,由于依赖关系模型的依赖关系均为树形结构,因此,在进行分析时,可以采用递归分析的方式进行依赖关系分析;比如,org.apache.poi:poi:5.2的依赖中,还包含了org.apache.commons、org.apache.logging.log4j等相关依赖,org.apache.logging.log4j的依赖中,还包含了com.fasterxml.jackson、org.junit等相关依赖。这种树形依赖关系构成了整个开发组件的整体依赖。在对依赖关系分析完成后,输出依赖关系列表,该依赖关系列表中的对象为依赖组件和版本,格式为[groupId:artifactId:version],比如[org.apache.poi:poi:5.2.2,org.apache.logging.log4j:log4j-api:2.18.0],从而得到依赖组件集合。
步骤320,遍历依赖组件集合中的至少一个依赖组件,对于至少一个依赖组件中的任一目标组件,在基于组件名称确定漏洞库中包含目标组件时,基于目标组件的组件版本信息查询并返回目标组件的子检测结果;该漏洞库中记录有各个版本的依赖组件的风险等级;在漏洞库中不包含目标组件时,对目标组件进行即时风险分析,获得目标组件的子检测结果;该即时风险分析是指在周期性更新的漏洞共享平台中对组件进行漏洞查询。
目标组件的子检测结果即为目标组件的风险等级。目标组件的风险等级可以基于预设的风险等级评估规则进行划分的,不同的风险等级评估规则下的风险等级划分不同,示意性的,该风险等级可以包括高风险等级、中风险等级以及低风险等级等等,本申请对风险等级的划分方式不进行限制。
可选的,该漏洞库是存储在组件安全检测工具本地的、定期更新的数据库;在漏洞库中不包含目标组件时,表示该目标组件可能是更新的或者新开发的目标组件,可以在周期性更新的漏洞共享平台中查询获得该目标组件的风险等级,其中,示意性的,该漏洞共享平台可以包括但不限于国家信息安全漏洞共享平台(China National VulnerabilityDatabase,CNVD)、美国信息安全漏洞共享平台(Common Vulnerabilities and Exposures,CVE)、美国国家计算机通用漏洞数据库(National Vulnerability Database,NVD)、开发组件共享中心等等。
在一种可能的实现方式中,为了完善本地漏洞库,在漏洞库中不包括目标组件时,在通过即时风险分析获得目标组件的风险等级后,将目标组件对应的风险等级记录到漏洞库中。在漏洞库中进行风险等级记载时,对应于依赖组件的版本进行风险等级的记载。
步骤330,基于至少一个依赖组件的子检测结果确定依赖组件集合的漏洞检测结果。
在至少一个依赖组件的子检测结果中包含目标风险等级的子检测结果时,确定依赖组件集合的漏洞检测结果不通过;示意性的,在该目标风险等级为高风险等级时,若依赖组件结合中包含高风险等级的依赖组件,则表示漏洞检测结果不通过。需要说明的是,基于实际需求的不同以及风险等级划分的不同,该目标风险等级可以设置为不同的风险等级,该目标风险等级中包含的风险等级数量可以为一个或多个,比如,目标风险等级可以包括高风险等级以及中风险等级等等,本申请对此不进行限制。在至少一个依赖组件的子检测结果中不包含目标风险等级的子检测结果时,确定依赖组件集合的漏洞检测结果通过。
步骤340,将依赖组件集合与规则库中的各个规则进行匹配,获得依赖组件集合相对于各个规则对应的匹配结果;该规则库中的规则用于指示依赖组件集合中依赖组件存在的必要性;该匹配结果用于指示依赖组件集合与规则匹配或不匹配。
其中,规则库中的规则包括以下至少之一:必备依赖规则,排斥依赖规则以及组件版本依赖规则;必备依赖规则指示依赖组件集合中必备的依赖组件;排斥依赖规则指示依赖组件集合中不能存在的依赖组件;组件版本依赖规则指依赖组件集合中的依赖组件的必备版本。
在本申请实施例中,规则库中里可以自定义一些用于对依赖组件集合的组成进行限定的规则,比如,限定依赖组件集合中必须包含的依赖组件,限定依赖组件集合中不能包含的依赖组件,以及限定依赖组件集合中包含的依赖组件的版本等等;进一步的,还可以限定依赖集合中包含的依赖组件的相斥关系,即在一个依赖组件存在时,不能存在其他依赖组件;限定依赖组件中包含的依赖组件的组合关系,在一个依赖组件存在时,另一个依赖组件一定存在等等,基于实际业务需求的不同,规则库中的规则设定也可以不同,本申请实施例对此不进行限制。
在进行规则检测时,组件安全检测工具可以先通过组件名称判断规则库中是否存在该依赖组件,在规则库中存在该依赖组件时,检查该依赖组件的组件版本信息与规则库中是否一致,或者,检查该依赖组件的组件名称是否存在于必备依赖规则以及排斥依赖规则中。
其中,必备依赖规则是指要求项目必须依赖指定的一些组件,例如,服务状态组件,该组件的功能是部署后自动连接服务中台,并定时推送心跳状态,同时依赖该组建后,需要必须配置项目编码,项目编码在连接服务中台后与项目中台进行通讯,确保该项目为已备案项目,在依赖组件集合中不包含必备依赖规则指定的依赖组件时,中止项目的运行。排斥依赖规则可以用于进行许可风险检查,例如排除掉一些GPL(GNU General PublicLicense,GNU通用公共许可证)/AGPL(Affero通用公众特许条款)等协议的依赖组件,在依赖组件集合中包含排斥依赖规则指定的依赖组件时,中止项目的运行。组件版本依赖规则可以用于规范开发组件的版本,例如service:2.8-3.0,意思是只允许service开发组件使用2.8到3.0版本,或service:2.8,3.0,意思是只允许service开发组件使用2.8或3.0版本。
步骤350,基于依赖组件集合相对于各个规则对应的匹配结果,确定依赖组件集合的规则检测结果。
在依赖组件集合相对于各个规则对应的匹配结果指示依赖组件集合与必备依赖规则、与排斥依赖规则以及组件版本依赖规则均匹配时,确定依赖组件集合的规则检测结果指示依赖组件集合规则匹配成功;
在依赖组件集合相对于各个规则对应的匹配结果指示依赖组件集合与必备依赖规则、与排斥依赖规则以及组件版本依赖规则中的任一规则不匹配时,确定依赖组件集合的规则检测结果指示依赖组件集合规则匹配失败;
其中,依赖组件集合与必备依赖规则相匹配是指依赖组合中包含必备依赖规则指示的全部必备组件;依赖组件集合与排斥依赖规则相匹配是指依赖组合中不包含排斥依赖规则指示的全部组件;依赖组件集合与组件版本依赖规则相匹配是指依赖组合中包含组件依赖版本规则指示的必备版本的依赖组件。
在进行规则检测的过程中,可以设置有各个规则的检测顺序,在确定依赖组件集合与其中一个规则不匹配时,则可以直接确定依赖组件集合规则匹配失败,不进行后续的规则检测过程;示意性的,若各个规则的检测顺序为必备依赖规则、排斥依赖规则以及组件版本依赖规则,那么在确定依赖组件集合中不包含必备依赖规则指定的依赖组件时,确定该依赖组件集合规则匹配失败,无需进行后续的排斥依赖规则以及组件版本依赖规则的检测。上述规则的检测顺序仅为示意性的,本申请对各个规则的检测顺序不进行限制。
步骤360,基于漏洞检测结果以及规则检测结果,确定依赖组件集合的安全性检测结果。
在一种可能的实现方式中,在漏洞检测结果指示依赖组件集合中包含风险等级高于等级阈值的依赖组件,或,规则检测结果指示依赖组件集合规则匹配失败时,确定安全性检测结果指示依赖组件集合未通过安全性检测。
也就是说,在此情况下,漏洞检测结果和规则检测结果中任一检测结果指示依赖组件集合匹配失败,即可确定依赖组件集合未通过安全性检测。
在另一种可能的实现方式中,在漏洞检测结果指示的至少一个依赖组件中的任一目标组件的子检测结果与规则检测结果指示的目标组件的规则匹配结果冲突时,基于规则检测结果确定依赖组件集合的安全性检测结果。
也就是说,在此情况下,规则检测结果的优先级高于漏洞检测结果的优先级,比如,当规则检测结果中指示必须依赖组件集合中必须包含目标版本的目标组件,但该目标版本的目标组件的漏洞检测结果指示该目标版本的目标组件存在高风险漏洞,此时,以规则检测结果为准,忽略该目标版本的目标组件的漏洞检测结果。
在本申请实施例中,规则库与漏洞库可以通过定时任务进行定期更新,该定时任务用于日常维度更新开发组件的风险漏洞。版本以及规则库,图5示出了本申请一示例性实施例提供的定时任务的示意图,如图5所示,该定时任务包括漏洞查找510、组件版本更新520以及规则库更新530;其中,漏洞查找可以实现为根据组件库的所有组件,通过爬虫的方式,在CNVD、CVE、NVD中查找其包含的目标风险等级的漏洞,如发现组件存在目标风险等级的漏洞,则会将该组件存在漏洞的版本进行标记,记录在漏洞库中;进一步的,还可以通知运维管理员进行人工二次确认,确保漏洞版本范围的准确性。组件版本更新可以实现为根据组件库的所有组件,通过爬虫的方式,在公共组件仓库中,寻找该组件的其他版本,如果存在其他本地未记录版本,则将该版本记录在开发组件库中,在进行漏洞查找时,将其新版本的漏洞情况更新在漏洞库中。规则库更新可以实现为定期从指定的更新发布地址,获取符合实际业务需求的技术架构规范的开发组件版本规则,并将其更新到规则库中。
在另一种可能的实现方式中,对应于组件安全检测工具可以对应设置有管理端,该管理端可以对规则库进行维护,比如定义必备依赖、排斥依赖以及组件版本依赖等;另外,该管理端还可以用于进行项目分析的结果审计,对各项目的各版本检测结果进行展示;此外,该管理端还可以对定时任务进行执行管理,对源代码枚举类型进行维度,对依赖关系模型进行维护以及实现rbac等常规功能。
综上所述,本申请实施例提供的组件安全检测方法,通过对源代码依赖的依赖组件集合进行漏洞检测以及规则检测,可以实现对源代码依赖的各个依赖组件的风险等级以及必要性的检测,从两方面综合评估依赖组件集合中的依赖组件的安全性,从而实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性。
图6示出了本申请一示例性实施例提供的组件安全检测方法的示意图,该方法可以由组件安全检测工具执行,该组件安全检测工具可以实现为服务器或者终端,如图6所示,在启动组件安全检测时,组件安全检测组件可以并行进行漏洞检测610以及规则检测620;在漏洞检测610过程中,通过在漏洞库中查找依赖组件集合中的各个依赖组件,以获得各个依赖组件的风险等级,在漏洞库中不包含当前查找的依赖组件时,通过即时风险分析获得当前依赖组件的风险等级,并将当前依赖组件对应的风险等级记录到漏洞库中,在遍历完依赖组件结合中的全部依赖组件后,完成对依赖组件集合的漏洞检测,获得依赖组件集合的漏洞检测结果;在规则检测620过程中,对依赖组件集合依次通过必备依赖规则检测、排斥依赖规则检测以及组件版本依赖规则检测,依次确定依赖组件集合中是否包含对应规则指定的依赖组件,在完成全部规则检测后,或者在依赖组件集合不满足其中任一规则时,获得该依赖组件集合的规则检测结果;在依赖组件集合的漏洞检测结果指示依赖组件集合中包含风险等级较高的依赖组件,或,规则检测结果指示依赖组件集合规则匹配失败时,生成检测报告;在依赖组件结合的漏洞检测结果指示依赖组件集合中不包含风险等级较高的依赖组件,且规则检测结果指示依赖组件集合规则匹配成功,或者,在依赖组件结合的漏洞检测结果指示依赖组件集合中包含风险等级较高的依赖组件,但该风险等级较高的依赖组件为规则检测结果指示的该依赖组件集合中的必备组件时,确定该依赖组件集合通过安全性检测。
图7示出了本申请一示例性实施例提供的组件安全检测装置的方框图,该组件安全检测装置用于执行如图2或图3所示实施例的全部或部分步骤,如图7所示,该组件安全检测装置包括:
组件集合获取模块710,用于获取源代码依赖的依赖组件集合,所述依赖组件集合中包含至少一个依赖组件;
漏洞检测模块720,用于对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果;所述漏洞检测用于检测所述依赖组件集合中包含的依赖组件的风险等级;
规则检测模块730,用于对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果;所述规则检测用于检测所述依赖组件集合中包含的依赖组件的必要性;
安全性确定模块740,用于基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果。
在一种可能的实现方式中,每个依赖组件具有对应的组件信息,所述组件信息包括组件名称以及组件版本信息;
所述漏洞检测模块720,包括:
漏洞查询子模块,用于遍历所述依赖组件集合中的至少一个依赖组件,对于至少一个依赖组件中的任一目标组件,在基于组件名称确定漏洞库中包含所述目标组件时,基于所述目标组件的组件版本信息查询并返回所述目标组件的子检测结果;所述漏洞库中记录有各个版本的依赖组件的风险等级;在所述漏洞库中不包含所述目标组件时,对所述目标组件进行即时风险分析,获得所述目标组件的子检测结果;所述即时风险分析是指在周期性更新的漏洞共享平台中对组件进行漏洞查询;
第一确定子模块,用于基于至少一个依赖组件的子检测结果确定所述依赖组件集合的漏洞检测结果。
在一种可能的实现方式中,所述装置还包括:
记录模块,用于在所述漏洞库中不包括所述目标组件时,在通过即时风险分析获得所述目标组件的风险等级后,将所述目标组件对应的风险等级记录到所述漏洞库中。
在一种可能的实现方式中,所述规则检测模块730,包括:
规则匹配子模块,用于将所述依赖组件集合与规则库中的各个规则进行匹配,获得所述依赖组件集合相对于各个规则对应的匹配结果;所述规则库中的规则用于指示所述依赖组件集合中依赖组件存在的必要性;所述匹配结果用于指示所述依赖组件集合与规则匹配或不匹配;
第二确定子模块,用于基于所述依赖组件集合相对于各个规则对应的匹配结果,确定所述依赖组件集合的所述规则检测结果;
其中,所述规则库中的规则包括以下至少之一:必备依赖规则,排斥依赖规则以及组件版本依赖规则;所述必备依赖规则指示所述依赖组件集合中必备的依赖组件;所述排斥依赖规则指示所述依赖组件集合中不能存在的依赖组件;所述组件版本依赖规则指所述依赖组件集合中的依赖组件的必备版本。
在一种可能的实现方式中,在所述规则库中包含所述必备依赖规则,所述排斥规则以及所述组件版本依赖规则的情况下,所述第二确定子模块,用于,
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则均匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配成功;
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则中的任一规则不匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配失败;
其中,所述依赖组件集合与所述必备依赖规则相匹配是指所述依赖组合中包含所述必备依赖规则指示的全部必备组件;所述依赖组件集合与所述排斥依赖规则相匹配是指所述依赖组合中不包含所述排斥依赖规则指示的全部组件;所述依赖组件集合与所述组件版本依赖规则相匹配是指所述依赖组合中包含所述组件依赖版本规则指示的必备版本的依赖组件。
在一种可能的实现方式中,所述安全性确定模块740,用于在所述漏洞检测结果指示所述依赖组件集合中包含风险等级高于等级阈值的依赖组件,或,所述规则检测结果指示所述依赖组件集合规则匹配失败时,确定所述安全性检测结果指示所述依赖组件集合未通过安全性检测。
在一种可能的实现方式中,所述安全性确定模块740,用于在所述漏洞检测结果指示的至少一个依赖组件中的任一目标组件的子检测结果与所述规则检测结果指示的所述目标组件的规则匹配结果冲突时,基于所述规则检测结果确定所述依赖组件集合的安全性检测结果。
综上所述,本申请实施例提供的组件安全检测装置,通过对源代码依赖的依赖组件集合进行漏洞检测以及规则检测,可以实现对源代码依赖的各个依赖组件的风险等级以及必要性的检测,从两方面综合评估依赖组件集合中的依赖组件的安全性,从而实现对源代码依赖的开发组件的有效控制,提高安全性检测的效果,进而提高源代码应用的安全性。
图8示出了本申请一示例性实施例示出的计算机设备800的结构框图。该计算机设备可以实现为本申请上述方案中的组件安全检测工具。所述计算机设备800包括中央处理单元(Central Processing Unit,CPU)801、包括随机存取存储器(Random Access Memory,RAM)802和只读存储器(Read-Only Memory,ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。所述计算机设备800还包括用于存储操作系统809、应用程序810和其他程序模块811的大容量存储设备806。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory,EEPROM)闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(DigitalVersatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备806可以统称为存储器。
根据本公开的各种实施例,所述计算机设备800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备800可以通过连接在所述系统总线805上的网络接口单元807连接到网络808,或者说,也可以使用网络接口单元807来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,中央处理器801通过执行该至少一条指令、至少一段程序、代码集或指令集来实现上述各个实施例所示的组件安全检测方法中的全部或部分步骤。
图9示出了本申请一个示例性实施例示出的计算机设备900的结构框图。该计算机设备900可以实现为上述的后端服务节点,比如:智能手机、平板电脑、笔记本电脑、台式电脑等。计算机设备900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、9核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例示出的组件安全检测方法中的全部或部分步骤。
在一些实施例中,计算机设备900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
在一些实施例中,计算机设备900还包括有一个或多个传感器909。该一个或多个传感器909包括但不限于:加速度传感器910、陀螺仪传感器911、压力传感器912、光学传感器913以及接近传感器914。
本领域技术人员可以理解,图9中示出的结构并不构成对计算机设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该计算机程序由处理器加载并执行以实现上述组件安全检测方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在一示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括至少一条计算机程序,该计算机程序由处理器加载并执行上述图2或图3任一实施例所示的组件安全检测方法的全部或部分步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种组件安全检测方法,其特征在于,所述方法包括:
获取源代码依赖的依赖组件集合,所述依赖组件集合中包含至少一个依赖组件;
对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果;所述漏洞检测用于检测所述依赖组件集合中包含的依赖组件的风险等级;
对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果;所述规则检测用于检测所述依赖组件集合中包含的依赖组件的必要性;
基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果。
2.根据权利要求1所述的方法,其特征在于,每个依赖组件具有对应的组件信息,所述组件信息包括组件名称以及组件版本信息;
所述对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果,包括:
遍历所述依赖组件集合中的至少一个依赖组件,对于至少一个依赖组件中的任一目标组件,在基于组件名称确定漏洞库中包含所述目标组件时,基于所述目标组件的组件版本信息查询并返回所述目标组件的子检测结果;所述漏洞库中记录有各个版本的依赖组件的风险等级;在所述漏洞库中不包含所述目标组件时,对所述目标组件进行即时风险分析,获得所述目标组件的子检测结果;所述即时风险分析是指在周期性更新的漏洞共享平台中对组件进行漏洞查询;
基于至少一个依赖组件的子检测结果确定所述依赖组件集合的漏洞检测结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述漏洞库中不包括所述目标组件时,在通过即时风险分析获得所述目标组件的风险等级后,将所述目标组件对应的风险等级记录到所述漏洞库中。
4.根据权利要求2所述的方法,其特征在于,所述对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果,包括:
将所述依赖组件集合与规则库中的各个规则进行匹配,获得所述依赖组件集合相对于各个规则对应的匹配结果;所述规则库中的规则用于指示所述依赖组件集合中依赖组件存在的必要性;所述匹配结果用于指示所述依赖组件集合与规则匹配或不匹配;
基于所述依赖组件集合相对于各个规则对应的匹配结果,确定所述依赖组件集合的所述规则检测结果;
其中,所述规则库中的规则包括以下至少之一:必备依赖规则,排斥依赖规则以及组件版本依赖规则;所述必备依赖规则指示所述依赖组件集合中必备的依赖组件;所述排斥依赖规则指示所述依赖组件集合中不能存在的依赖组件;所述组件版本依赖规则指所述依赖组件集合中的依赖组件的必备版本。
5.根据权利要求4所述的方法,其特征在于,在所述规则库中包含所述必备依赖规则,所述排斥规则以及所述组件版本依赖规则的情况下,所述基于至所述依赖组件集合相对于各个规则对应的匹配结果,确定所述依赖组件集合的所述规则检测结果,包括:
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则均匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配成功;
在所述依赖组件集合相对于各个规则对应的匹配结果指示所述依赖组件集合与所述必备依赖规则、与所述排斥依赖规则以及所述组件版本依赖规则中的任一规则不匹配时,确定所述依赖组件集合的所述规则检测结果指示所述依赖组件集合规则匹配失败;
其中,所述依赖组件集合与所述必备依赖规则相匹配是指所述依赖组合中包含所述必备依赖规则指示的全部必备组件;所述依赖组件集合与所述排斥依赖规则相匹配是指所述依赖组合中不包含所述排斥依赖规则指示的全部组件;所述依赖组件集合与所述组件版本依赖规则相匹配是指所述依赖组合中包含所述组件依赖版本规则指示的必备版本的依赖组件。
6.根据权利要求5所述的方法,其特征在于,所述基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果,包括:
在所述漏洞检测结果指示所述依赖组件集合中包含风险等级高于等级阈值的依赖组件,或,所述规则检测结果指示所述依赖组件集合规则匹配失败时,确定所述安全性检测结果指示所述依赖组件集合未通过安全性检测。
7.根据权利要求5所述的方法,其特征在于,所述基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果,包括:
在所述漏洞检测结果指示的至少一个依赖组件中的任一目标组件的子检测结果与所述规则检测结果指示的所述目标组件的规则匹配结果冲突时,基于所述规则检测结果确定所述依赖组件集合的安全性检测结果。
8.一种组件安全检测装置,其特征在于,所述装置包括:
组件集合获取模块,用于获取源代码依赖的依赖组件集合,所述依赖组件集合中包含至少一个依赖组件;
漏洞检测模块,用于对所述依赖组件集合进行漏洞检测,获得所述依赖组件集合的漏洞检测结果;所述漏洞检测用于检测所述依赖组件集合中包含的依赖组件的风险等级;
规则检测模块,用于对所述依赖组件集合进行规则检测,获得所述依赖组件集合的规则检测结果;所述规则检测用于检测所述依赖组件集合中包含的依赖组件的必要性;
安全性确定模块,用于基于所述漏洞检测结果以及所述规则检测结果,确定所述依赖组件集合的安全性检测结果。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至7任一所述的组件安全检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至7任一所述的组件安全检测方法。
CN202311284720.0A 2023-09-28 2023-09-28 组件安全检测方法、装置、计算机设备及存储介质 Pending CN117370984A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311284720.0A CN117370984A (zh) 2023-09-28 2023-09-28 组件安全检测方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311284720.0A CN117370984A (zh) 2023-09-28 2023-09-28 组件安全检测方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117370984A true CN117370984A (zh) 2024-01-09

Family

ID=89399489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311284720.0A Pending CN117370984A (zh) 2023-09-28 2023-09-28 组件安全检测方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117370984A (zh)

Similar Documents

Publication Publication Date Title
NL2029881B1 (en) Methods and apparatus for automatic detection of software bugs
CN110968437A (zh) 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
CN113961919B (zh) 恶意软件检测方法和装置
US10229273B2 (en) Identifying components for static analysis of software applications
CN111158741A (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
CN103186463B (zh) 确定软件的测试范围的方法和系统
US20220244931A1 (en) Image file obtaining method and apparatus
CN115576600A (zh) 基于代码变更的差异处理方法、装置、终端及存储介质
US11474795B2 (en) Static enforcement of provable assertions at compile
CN111240987A (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN114116505A (zh) 代码测试方法及装置
US9064042B2 (en) Instrumenting computer program code by merging template and target code methods
CN116700768B (zh) 一种应用的处理方法及相关装置
CN110908882A (zh) 一种应用程序的性能分析方法、装置、终端设备及介质
CN115828262A (zh) 开源组件漏洞扫描方法、装置、设备及存储介质
CN117370984A (zh) 组件安全检测方法、装置、计算机设备及存储介质
US11947966B2 (en) Identifying computer instructions enclosed by macros and conflicting macros at build time
CN114942887A (zh) 一种程序安全测试方法、装置、设备和介质
CN113419738A (zh) 接口文档的生成方法、装置及接口管理设备
CN114780952B (zh) 敏感应用调用场景的检测方法、系统及存储介质
CN112579242B (zh) 一种页面跳转关系分析方法、装置、设备及存储介质
Ghorbani Validation and Verification of Modular Software Applications
CN118672642A (zh) 一种基于Maven的依赖管理方法、装置、电子设备及存储介质
CN116339843A (zh) 一种鸿蒙系统的驱动适配方法、装置、设备及介质
CN116048999A (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