CN116661841A - 一种基于知识图谱的组件版本确认方法、存储介质及终端 - Google Patents

一种基于知识图谱的组件版本确认方法、存储介质及终端 Download PDF

Info

Publication number
CN116661841A
CN116661841A CN202310499108.9A CN202310499108A CN116661841A CN 116661841 A CN116661841 A CN 116661841A CN 202310499108 A CN202310499108 A CN 202310499108A CN 116661841 A CN116661841 A CN 116661841A
Authority
CN
China
Prior art keywords
component
entity
file
graph
nodes
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
CN202310499108.9A
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.)
Ruan'an Technology Co ltd
Original Assignee
Ruan'an 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 Ruan'an Technology Co ltd filed Critical Ruan'an Technology Co ltd
Priority to CN202310499108.9A priority Critical patent/CN116661841A/zh
Publication of CN116661841A publication Critical patent/CN116661841A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于知识图谱的组件版本确认方法、存储介质及终端,包括:获取开源组件代码并确定其依赖和克隆关系;将开源组件解析成三元组{组件A,组件B,克隆于}和{组件A,组件B,依赖于}存入图数据库,判断图数据库中是否存在组件实体A或者B;解析开源组件A,从中提取目录D和文件F,将文件关系存入图数据库中,判断图数据库中是否存在相应实体;统计组件节点被克隆和被依赖的数据值;通过目录/文件版本确认算法计算该节点的实际应该归属,遍历所有目录/文件类节点,输出到关系型数据库。本发明利用知识图谱有效的提升了SCA软件通过目录/文件进行第三方组件检出的精度,且使用图数据库实现,拥有较好的查询性能。

Description

一种基于知识图谱的组件版本确认方法、存储介质及终端
技术领域
本发明涉及软件安全技术领域,尤其涉及一种基于知识图谱的组件版本确认方法、存储介质及终端。
背景技术
软件成分分析(SCA)的研究背景主要与软件安全和分析等领域有关,随着软件开发的日益普及,软件安全问题也越发严重,许多软件面临着被黑客攻击和数据泄露的风险,其中,第三方组件的安全性问题就占了很大一部分,另外开源软件的使用也越来越普遍,但是与商业软件不同,开源软件的安全性和质量往往难以保证;因此,如何识别和评估软件中使用的第三方组件以及开源软件的安全性和合规性,就成了目前一个重要的研究方向。
目前软件成分分析主要包括以下内容:1、依赖检测:通过包管理器解析配置文件获取依赖的组件;2、文件树检测:基于目录和文件的哈希值在SCA知识库中匹配相关组件和版本;3、二进制检测:提取二进制文件中的信息和相关指纹,在SCA知识库中匹配相关组件和版本;4、代码片段检测:通过相似的代码片段在SCA知识库中匹配相关组件和版本;5、对提取的组件和库进行分类和归纳,以便对它们进行更细致的分析;这些分类可以基于组件的语言、版本、作者等等信息;对每个组件进行详细的分析,包括漏洞扫描、安全性评估、许可证分析等等。组合分析结果,确定组件的安全性和合规性。
但是当前的SCA技术不能很好的处理同一个目录或者文件在多个项目、组件和版本中出现的归属判定问题,容易造成漏波和误报的情况;虽然通过采集不同的属性信息,比如文件名、文件大小、路径等,来提取不同维度的指纹可以一定程度缓解这个问题,但是对于路径、内容完全一致的目录或文件,则无法处理。且属性采集过多,也会造成匹配时限制过多,而产生漏报。
需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于克服现有技术的缺点,提供了一种基于知识图谱的组件版本确认方法、存储介质及终端,解决了现有技术存在的不足。
本发明的目的通过以下技术方案来实现:一种基于知识图谱的组件版本确认方法,所述组件版本确认方法包括:
S1、获取开源组件代码并确定开源组件的依赖关系和克隆关系;
S2、根据依赖关系和克隆关系将开源组件解析成三元组{组件A,组件B,克隆于}和{组件A,组件B,依赖于}存入图数据库,判断图数据库中是否存在组件实体A或者B;
S3、解析开源组件A,并从中提取目录D和文件F,将文件关系存入图数据库中,判断图数据库中是否存在相应实体;重新步骤S3,解析开源组件B;
S4、根据步骤S2和S3建立的图关系知识图谱,统计组件节点被克隆和被依赖的数据值;
S5、针对目录与文件类实体节点,通过目录/文件版本确认算法计算该节点实际应该归属的组件节点,遍历所有目录/文件类节点计算得到所有目录/文件类节点的实际归属组件信息,并输出到关系型数据库以便查询。
所述判断图数据库中是否存在组件实体A或者B包括:
如果图数据库中存在组件实体A或组件实体B,则建立实体A和B之间的边,并添加类型属性值为克隆或依赖,如果不存在组件实体A或者B,则新建组件实体。
所述判断图数据库中是否存在相应实体包括:
如果图数据库中存在组件实体A、目录实体D和文件实体F,则新建组件实体A和目录实体D与组件实体A和文件实体F之间的边,并添加路径属性值,即将目录D和文件F在A中的路径记录在边的属性中;
如果图数据库中不存在组件实体A、目录实体D和文件实体F,则新建组件实体A、目录实体D和文件实体F。
所述根据步骤S2建立的图关系知识图谱,统计组件节点被克隆和被依赖的数据值包括:
以组件、目录和文件为节点,组件之间的关系、组件与目录、文件关系为边构建图关系知识图谱;
当一个组件包含某目录和某文件时,则有边从组件指向该目录和文件,当边连接组件和目录/文件时,边的属性信息为路径信息,当边连接组件时,边的属性为克隆或依赖标识;
统计组件被直接依赖数量和间接依赖数量以及组件被克隆数量。
所述通过目录/文件版本确认算法计算该节点实际应该归属的组件节点包括:
判断该节点是否属于多个组件,如果是属于一个组件,则该节点归属于该组件;
如果该节点属于多个组件,则判断组件之间是否有克隆和依赖关系,如果有,则将节点优先归属于被克隆和被依赖的组件;
如果有多个被克隆或被依赖的组件,则向上回溯这些组件的祖先节点之间的克隆与依赖关系,则将节点优先归属于被克隆和被依赖的祖先节点的子节点所属的组件,如果这些组件与其祖先节点都无克隆与依赖关系,则依据路径相关规则和组件热度规则进行归属。
所述依据路径相关规则和组件热度规则进行归属包括:
计算目录/文件路径与组件名称的相关性,则将节点优先归属于相关性大的组件,如果路径无关联,则使用热度规则,则将节点优先归属于被依赖数量更高和被克隆数量更高的组件。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述组件版本确认方法的步骤。
一种终端设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述组件版本确认方法的步骤。
本发明具有以下优点:一种基于知识图谱的组件版本确认方法、存储介质及终端,利用知识图谱有效的提升了SCA软件通过目录/文件进行第三方组件检出的精度,且使用图数据库实现,拥有较好的查询性能。
附图说明
图1为本发明方法的流程示意图;
图2为知识图谱结构示意图;
图3为目录/文件版本确认算法示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下结合附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
如图1所示,本发明其中一种实施方式涉及一种基于知识图谱的组件版本确认方法,所述组件版本确认方法包括:
S1、获取开源组件代码并确定开源组件的依赖关系和克隆关系;
S2、根据依赖关系和克隆关系将开源组件解析成三元组{组件A,组件B,克隆于}和{组件A,组件B,依赖于}存入图数据库,判断图数据库中是否存在组件实体A或者B;
S3、解析开源组件A,并从中提取目录D和文件F,将文件关系存入图数据库中,判断图数据库中是否存在相应实体;重新步骤S3,解析开源组件B;
S4、根据步骤S2和S3建立的图关系知识图谱,统计组件节点被克隆和被依赖的数据值;
S5、针对目录与文件类实体节点,通过目录/文件版本确认算法计算该节点实际应该归属的组件节点,遍历所有目录/文件类节点计算得到所有目录/文件类节点的实际归属组件信息,并输出到关系型数据库以便查询。
进一步地,判断图数据库中是否存在组件实体A或者B包括:
如果图数据库中存在组件实体A或组件实体B,则建立实体A和B之间的边,并添加类型属性值为克隆或依赖,如果不存在组件实体A或者B,则新建组件实体。
进一步地,判断图数据库中是否存在相应实体包括:
如果图数据库中存在组件实体A、目录实体D和文件实体F,则新建组件实体A和目录实体D与组件实体A和文件实体F之间的边,并添加路径属性值,即将目录D和文件F在A中的路径记录在边的属性中;
如果图数据库中不存在组件实体A、目录实体D和文件实体F,则新建组件实体A、目录实体D和文件实体F。
进一步地,传统的SCA知识库一般基于关系型数据库,在发明中,以组件(带版本)、目录、文件为节点,组件之间关系,组件与目录、文件关系为边,将传统的关系型知识库转换为图关系的知识图谱。
如图2所示,其中CompVer表示组件节点,DirSha1表示目录节点,FileSha1表示文件节点,当一个组件包含某目录和某文件时,则有边从组件指向该目录和文件;组件之间的关系主要有克隆关系、依赖被依赖关系等。边有相应的属性信息,比如边连接组件和目录/文件时,边的属性信息为路径信息;当边连接组件时,则边的属性为克隆或依赖标识。
进一步地,通过目录/文件版本确认算法计算该节点实际应该归属的组件节点包括:
判断该节点是否属于多个组件,如果是属于一个组件,则该节点归属于该组件;
如果该节点属于多个组件,则判断组件之间是否有克隆和依赖关系,如果有,则将节点优先归属于被克隆和被依赖的组件;
如果有多个被克隆或被依赖的组件,则向上回溯这些组件的祖先节点之间的克隆与依赖关系,则将节点优先归属于被克隆和被依赖的祖先节点的子节点所属的组件,如果这些组件与其祖先节点都无克隆与依赖关系,则依据路径相关规则和组件热度规则进行归属。
其中,依据路径相关规则和组件热度规则进行归属包括:
计算目录/文件路径与组件名称的相关性,则将节点优先归属于相关性大的组件,如果路径无关联,则使用热度规则,则将节点优先归属于被依赖数量更高和被克隆数量更高的组件。
如图3所示,图3的a图中组件A、B具有相同的图关系,通过路径关联规则和组件热度进行判定文件归属;图3的b图中组件A、B的祖先具有相同的图关系,因此也通过路径关联规则和组件热度进行判定文件归属;图3的c图中组件A、B的祖先中,组件C被组件D克隆或依赖,因此文件归属到组件A。
进一步地,路径关联规则主要包括:对于包含3rdparty、third-party、third_party等关键词的路径,降低优先级;根据业务知识,收集关键词字典;对于包含对方组件名的路径,降低优先级。热度规则包括:根据组件统计的被依赖数、克隆数,以及从公开信息中获取的,比如github-star数量等降序排序,取排序最靠前的作为结果。
通过以上算法,能够有效的降低目录/文件在知识库中被错误归属的问题,且通过图数据库来存储知识谱图,拥有比传统关系数据库更高效的查询性能。
本发明的又一实施方式涉及一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述组件版本确认方法的步骤。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本发明的再一实施方式涉及一种终端设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述组件版本确认方法的步骤。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (8)

1.一种基于知识图谱的组件版本确认方法,其特征在于:所述组件版本确认方法包括:
S1、获取开源组件代码并确定开源组件的依赖关系和克隆关系;
S2、根据依赖关系和克隆关系将开源组件解析成三元组{组件A,组件B,克隆于}和{组件A,组件B,依赖于}存入图数据库,判断图数据库中是否存在组件实体A或者B;
S3、解析开源组件A,并从中提取目录D和文件F,将文件关系存入图数据库中,判断图数据库中是否存在相应实体;重新步骤S3,解析开源组件B;
S4、根据步骤S2和S3建立的图关系知识图谱,统计组件节点被克隆和被依赖的数据值;
S5、针对目录与文件类实体节点,通过目录/文件版本确认算法计算该节点实际应该归属的组件节点,遍历所有目录/文件类节点计算得到所有目录/文件类节点的实际归属组件信息,并输出到关系型数据库以便查询。
2.根据权利要求1所述的一种基于知识图谱的组件版本确认方法,其特征在于:所述判断图数据库中是否存在组件实体A或者B包括:
如果图数据库中存在组件实体A或组件实体B,则建立实体A和B之间的边,并添加类型属性值为克隆或依赖,如果不存在组件实体A或者B,则新建组件实体。
3.根据权利要求1所述的一种基于知识图谱的组件版本确认方法,其特征在于:所述判断图数据库中是否存在相应实体包括:
如果图数据库中存在组件实体A、目录实体D和文件实体F,则新建组件实体A和目录实体D与组件实体A和文件实体F之间的边,并添加路径属性值,即将目录D和文件F在A中的路径记录在边的属性中;
如果图数据库中不存在组件实体A、目录实体D和文件实体F,则新建组件实体A、目录实体D和文件实体F。
4.根据权利要求1所述的一种基于知识图谱的组件版本确认方法,其特征在于:所述根据步骤S2建立的图关系知识图谱,统计组件节点被克隆和被依赖的数据值包括:
以组件、目录和文件为节点,组件之间的关系、组件与目录、文件关系为边构建图关系知识图谱;
当一个组件包含某目录和某文件时,则有边从组件指向该目录和文件,当边连接组件和目录/文件时,边的属性信息为路径信息,当边连接组件时,边的属性为克隆或依赖标识;
统计组件被直接依赖数量和间接依赖数量以及组件被克隆数量。
5.根据权利要求1所述的一种基于知识图谱的组件版本确认方法,其特征在于:所述通过目录/文件版本确认算法计算该节点实际应该归属的组件节点包括:
判断该节点是否属于多个组件,如果是属于一个组件,则该节点归属于该组件;
如果该节点属于多个组件,则判断组件之间是否有克隆和依赖关系,如果有,则将节点优先归属于被克隆和被依赖的组件;
如果有多个被克隆或被依赖的组件,则向上回溯这些组件的祖先节点之间的克隆与依赖关系,则将节点优先归属于被克隆和被依赖的祖先节点的子节点所属的组件,如果这些组件与其祖先节点都无克隆与依赖关系,则依据路径相关规则和组件热度规则进行归属。
6.根据权利要求5所述的一种基于知识图谱的组件版本确认方法,其特征在于:所述依据路径相关规则和组件热度规则进行归属包括:
计算目录/文件路径与组件名称的相关性,则将节点优先归属于相关性大的组件,如果路径无关联,则使用热度规则,则将节点优先归属于被依赖数量更高和被克隆数量更高的组件。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-6中任意一项所述组件版本确认方法的步骤。
8.一种终端设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1-6中任意一项所述组件版本确认方法的步骤。
CN202310499108.9A 2023-05-05 2023-05-05 一种基于知识图谱的组件版本确认方法、存储介质及终端 Pending CN116661841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310499108.9A CN116661841A (zh) 2023-05-05 2023-05-05 一种基于知识图谱的组件版本确认方法、存储介质及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310499108.9A CN116661841A (zh) 2023-05-05 2023-05-05 一种基于知识图谱的组件版本确认方法、存储介质及终端

Publications (1)

Publication Number Publication Date
CN116661841A true CN116661841A (zh) 2023-08-29

Family

ID=87716198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310499108.9A Pending CN116661841A (zh) 2023-05-05 2023-05-05 一种基于知识图谱的组件版本确认方法、存储介质及终端

Country Status (1)

Country Link
CN (1) CN116661841A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841536A (zh) * 2023-08-30 2023-10-03 成都摹客科技有限公司 一种组件引用关系重构方法、装置、系统及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841536A (zh) * 2023-08-30 2023-10-03 成都摹客科技有限公司 一种组件引用关系重构方法、装置、系统及存储介质
CN116841536B (zh) * 2023-08-30 2023-12-05 成都摹客科技有限公司 一种组件引用关系重构方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
CN109753800B (zh) 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
US11533373B2 (en) Global iterative clustering algorithm to model entities' behaviors and detect anomalies
CN111723371B (zh) 构建恶意文件的检测模型以及检测恶意文件的方法
CN110688549B (zh) 一种基于知识体系图谱构建的人工智能分类方法与系统
CN116661841A (zh) 一种基于知识图谱的组件版本确认方法、存储介质及终端
CN111353005A (zh) 一种药品研发申报文档管理方法和系统
CN115357904A (zh) 一种基于程序切片和图神经网络的多类漏洞检测方法
CN115098440A (zh) 电子档案查询方法、装置、存储介质和设备
CN116541887B (zh) 一种大数据平台数据安全保护方法
CN112069305A (zh) 数据筛选方法、装置及电子设备
CN116821903A (zh) 检测规则确定及恶意二进制文件检测方法、设备及介质
CN109918638B (zh) 一种网络数据监测方法
CN111723122A (zh) 数据间关联规则的确定方法、装置、设备及可读存储介质
CN114817518A (zh) 基于大数据档案识别的证照办理方法、系统及介质
CN115392238A (zh) 一种设备识别方法、装置、设备及可读存储介质
CN114495138A (zh) 一种智能文档识别与特征提取方法、装置平台和存储介质
CN112100670A (zh) 一种基于大数据的隐私数据分级保护方法
CN114155012A (zh) 欺诈群体识别方法、装置、服务器及存储介质
CN116136866B (zh) 基于知识图谱的中文新闻摘要事实性知识校正方法和装置
CN113138936B (zh) 数据处理方法、装置、存储介质及处理器
CN117112846B (zh) 一种多信息源证照信息管理方法、系统及介质
CN114943004B (zh) 属性图查询方法、属性图查询装置以及存储介质
CN114860673B (zh) 基于动静结合的日志特征识别方法及装置
Fan Tweet analysis for Android malware detection in Google Play Store
CN115967562A (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