CN112001376B - 基于开源组件的指纹识别方法、装置、设备及存储介质 - Google Patents

基于开源组件的指纹识别方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112001376B
CN112001376B CN202011177798.9A CN202011177798A CN112001376B CN 112001376 B CN112001376 B CN 112001376B CN 202011177798 A CN202011177798 A CN 202011177798A CN 112001376 B CN112001376 B CN 112001376B
Authority
CN
China
Prior art keywords
fingerprint
open source
component
source component
file
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.)
Active
Application number
CN202011177798.9A
Other languages
English (en)
Other versions
CN112001376A (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 CN202011177798.9A priority Critical patent/CN112001376B/zh
Publication of CN112001376A publication Critical patent/CN112001376A/zh
Application granted granted Critical
Publication of CN112001376B publication Critical patent/CN112001376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明公开了一种基于开源组件的指纹识别方法、装置、识别设备及存储介质,属于应用软件识别领域,该方法包括:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与开源组件对应关系的指纹相似值;根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;根据目标开源组件及映射信息识别应用程序的安全信息。本方案通过利用待识别的应用程序的第一指纹与预设的开源组件指纹库中的第二指纹匹配,确定对应的开源组件,相对于现有技术,该指纹匹配的方式可提高对应用程序的识别性和识别速度。

Description

基于开源组件的指纹识别方法、装置、设备及存储介质
技术领域
本发明涉及应用软件识别的技术领域,尤其涉及一种基于开源组件的指纹识别方法、装置、识别设备及存储介质。
背景技术
在应用程序开发领域中,开源组件被开发人员广泛使用,据估计,每个应用程序的80%-90%都由开源组件组成。据开源代码领域的研究报告显示,软件应用程序中使用的第三方组件中有一半已经过时,可能不安全;及使用开源组件的所有应用程序中,超过60%包含已知的软件漏洞;另一方面,在知识产权方面,很多开源组件都有自己的许可声明,如果在项目或应用程序中使用了未获得许可的开源组件,那么可能会面临侵权的问题。因此,需要识别应用程序中是否使用或占用开源组件。
相关技术在识别应用程序中的开源组件时,通过代码扫描识别方式对该应用程序中的组件进行识别,但是识别速度比较慢,效率低;或通过目录结构扫描的方式对该应用程序中的组件进行识别,但无法识别目录结构相同但文件不同的的开源组件,识别性差。
因此,有必要提出一种新的开源组件的识别技术。
发明内容
本发明提供了一种基于开源组件的指纹识别方法、装置、识别设备及存储介质,可以解决现有技术中对开源组件的识别速度慢及识别性差的技术问题。
本发明第一方面提供一种基于开源组件的指纹识别方法,包括:
利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值;
根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息;
根据所述目标开源组件及所述映射信息识别所述应用程序的安全信息。
可选的,所述利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹的步骤之前包括:
从开源组件生态系统中分别获取各所述开源组件及对应的映射信息;
根据各所述开源组件的内容及对应的所述映射信息生成包含所述开源组件对应的一个或多个所述第二指纹的第二指纹列表;
利用所述第二指纹列表组建所述开源组件指纹库。
可选的,所述开源组件的内容包括:组件包、所述组件包内的多个组件文件及所述组件文件内的多个片段源代码,所述根据各所述开源组件的内容及对应的所述映射信息生成包含所述开源组件对应的一个或多个所述第二指纹的第二指纹列表的步骤包括:
根据各所述开源组件的组件包及对应的所述映射信息生成包含一个或多个所述第二组件指纹的第二组件指纹列表;
根据各所述开源组件的多个组件文件及对应的所述映射信息生成包含一个或多个所述第二文件指纹的第二文件指纹列表;及
根据各所述开源组件的多个片段源代码及对应的所述映射信息生成包含一个或多个所述第二片段指纹的第二片段指纹列表;
则所述利用所述第二指纹列表组建所述开源组件指纹库,包括:
利用所述第二组件指纹列表、所述第二文件指纹列表及所述第二片段指纹列表组建所述开源组件指纹库。
可选的,所述第一指纹包括:第一组件指纹、第一文件指纹及第一片段指纹,所述利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值的步骤包括:
利用所述待识别的应用程序对应的所述第一组件指纹匹配所述第二组件指纹列表内的第二组件指纹;
若匹配到所述第二组件指纹,则生成包含所述应用程序与所述开源组件对应关系的组件指纹相似值,若无法匹配到所述第二组件指纹,则利用所述第一文件指纹匹配所述第二文件指纹列表中的第二文件指纹;
若匹配到所述第二文件指纹,则生成包含所述应用程序与多个所述开源组件对应关系的文件指纹相似值,若无法匹配到所述第二文件指纹,则利用所述第一片段指纹匹配所述第二文件指纹列表中的第二片段指纹;
若匹配到所述第二片段指纹,则生成包所述应用程序与多个所述开源组件对应关系的片段指纹相似值。
可选的,所述根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
将所述指纹相似值与预设的指纹相似阈值对比;
根据对比结果确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息。
可选的,所述指纹相似值包括:组件指纹相似值、文件指纹相似值及片段指纹相似值,则所述将所述指纹相似值与预设的指纹相似阈值对比,根据对比结果确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
将所述组件指纹相似值与预设的组件指纹相似阈值对比;
若所述对比结果为所述组件指纹相似值大于或等于所述组件指纹相似阈值,则显示包含所述第一组件指纹对应的第二组件指纹的目标开源组件及所述目标开源组件对应的映射信息;
若所述对比结果为所述组件指纹相似值小于所述组件指纹相似阈值,则将所述文件指纹相似值与预设的文件指纹相似阈值对比;
若所述对比结果为所述文件指纹相似值大于或等于所述文件指纹相似阈值,则显示包含所述第一文件指纹对应的第二文件指纹的至少一个目标开源组件及所述目标开源组件对应的映射信息;
若所述对比结果为所述文件指纹相似值小于所述文件指纹相似阈值,则将所述片段指纹相似值与预设的片段指纹相似阈值对比;
若所述对比结果为所述片段指纹相似值大于或等于所述片段指纹相似阈值,则显示包含所述第一片段指纹对应的第二片段指纹的至少一个目标开源组件及所述目标开源组件对应的映射信息。
可选的,所述根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
根据所述指纹相似值确定预设的开源组件指纹库中与所述应用程序对应的目标第二指纹;
根据所述目标第二指纹查找对应的至少一个目标开源组件及所述目标开源组件对应的映射信息;
显示所述目标开源组件及对应的所述映射信息。
本发明第二方面提供一种基于开源组件的指纹识别装置,包括:
匹配模块,用于利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值;
确定模块,用于根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息;
识别模块,用于根据所述目标开源组件及所述映射信息识别所述应用程序的安全信息。
本发明第三方面提供一种识别设备,包括存储器、处理器及通信总线,所述通信总线分别与所述存储器与所述处理器通信连接,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时,实现上述任意一项所述的储基于开源组件的指纹识别方法中的各个步骤。
本发明第四方面提供一种存储介质,所述存储介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任意一项所述的基于开源组件的指纹识别中的各个步骤。
本发明提供的基于开源组件的指纹识别方法,包括:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值;根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;根据目标开源组件及映射信息识别应用程序的安全信息。通过实施本方案,利用待识别应用程序的第一指纹与预设开源指纹库中的第二指纹匹配,以确定包含第二指纹的开源组件,利用指纹匹配的方式可提高对应用程序的识别性,且相对于现有技术,通过指纹匹配的方式可提高在识别应用程序的第一指纹时的速度,具有可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于开源组件的指纹识别方法的步骤流程图;
图2为本发明实施例提供的基于开源组件的指纹识别方法的又一步骤流程图;
图3为本发明实施例提供的基于开源组件的指纹识别装置的模块方框图;
图4为本发明实施例提供的电子设备的架构图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中对基于开源组件的指纹识别速度慢及识别性差的技术问题。
为了解决上述技术问题,本发明提出一种基于开源组件的指纹识别方法、装置、识别设备及存储介质。
在应用程序软件领域中,开发人员在开发时通常广泛使用开源组件,这使得现有的应用程序都涉及大部分开源组件,据统计显示,每个应用程序的80%-90%都由开源组件组成。据研究报告显示,软件应用所使用的第三方组件(开源组件)中,一半以上的开源组件已经过时,含有一直的软件漏洞,具体为使用开源组件的所有应用程序中,超过60%包含已经的软件漏洞;及在使用开源组件设计或开发应用程序时,可能会存在所使用的开源组件未得到相关企业的授权许可,构成了侵权问题。因此,在开发设计应用程序时,需要检测或识别应用程序中涉及的开源组件的信息,如开源组件的发布日期、官方网站、源代码存储位置、安全信息等,通过开源组件的信息可识别该开源组件的漏洞信息及许可信息。需要说明的是,互联网作为开源生态系统的载体,开源组件的相关数据信息(发布日期、官方网站、源代码存储位置、安全信息等)可从网上获取,进而可根据获取的数据信息了解该开源组件的相关情况;进一步的,互联网可作为多个开源生态系统的载体,开源生态系统可为maven、npm、pypi等平台网站,或者从一些开源组件社区,如gitlab社区,需要说明的是,上述开源组件获取源头仅仅为示例性,还包括其他任意获取源。
然而,由于应用程序在开发设计中可能涉及较多的开源组件,为了识别应用程序是否涉及有开源组件的开源成分,可通过基于开源组件的指纹识别技术对应用程序中的所涉及的开源组件的开源成分的相关信息进行识别,如是否存在漏洞的信息及是否获得授权许可信息,需要对应用程序的开源组件进行识别,具体的,由于通过网上的各开源生态系统可获取各开源组件的相关信息,因此,在识别应用程序是否涉及开源组件或开源组件中的开源成分时,仅仅通过识别应用程序所使用的开源组件或开源成分与网上各开源组件是否相同或相匹配即可;通过识别应用程序中是否包含与网上的开源组件或开源成分相同或相对应的组件或成分,具体的,在确认应用程序中存在包含的组件或成分与网上各开源生态系统中的一个开源组件相同或相等时,或确认应用程序中存在包含的组件或成分与多个开源组件相对应或相关联时,获取相应的开源组件的相关信息,以得到该应用程序中所涉及的组件或成分的相关信息,如漏洞信息及许可信息等。需要说明的是,在一些开发项目或应用程序软件中,其成分可能包含一个或多个开源组件、部分开源组件的开源成分、多个相关联的开源组件的开源成分,此外,这些开发项目或应用程序软件还可能不包含开源组件或开源组件对应的开源成分。本发明的目的是对待识别的项目或应用程序进行识别。
请参阅图1,为本发明实施例提供的基于开源组件的指纹识别方法的步骤流程图,本发明实施例提供一种基于开源组件的指纹识别方法,该方法对应程序通过处理器执行,当处理器执行程序时,实现本实施例提供的基于开源组件的指纹识别方法,该方法包括:
步骤S101:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值。
在现有的应用程序中,其开发设计涉及开源组件或开源组件中的开源成分,即该应用程序可能包含一个或多个不同的开源组件对应的开源成分,需要对该应用程序中的一个或多个开源组件进行识别,或对一个或多个开源组件对应的开源成分进行识别,以获取所使用的开源组件或开源组件对应的开源成分的信息。由于应用程序已经开发设计完成,本实施例的主要目的是对现有的应用程序中的开源组件或开源组件对应的开源成分进行识别。具体的,首先需要提取应用程序中的所有组件或成分,然后分析待检测的应用程序对应的组件或成分得到第一指纹,最后将待检测的第一指纹与预设的开源组件指纹库中的第二指纹进行匹配,以得到应用程序中的第一指纹与开源组件的第二指纹的指纹相似值。需要说明的是,由于开源组件在数据结构层上包括:组件包(整包)、组件内的多个文件和文件内的多个片段(源代码),通过应用程序的组件包(整包)及组件名称生成第一组件指纹,通过应用程序的文件及文件名称或组件ID等生成第一文件指纹,及通过使用应用程序的片段(源代码)及文件ID等生成第一片段指纹,因此,该应用程序对应的第一指纹可包括:第一组件指纹、第一文件指纹及第一片段指纹。同理,预设的开源组件指纹库中的第二指纹可包括:第二组件指纹、第二文件指纹及第二片段指纹,需要说明的是,预设的开源组件指纹库在存储第二指纹时,可将第二组件指纹生成组件指纹列表,将第二文件指纹生成文件指纹列表,将第二片段指纹生成片段指纹列表。
在本实施例的一实施方式中,在通过应用程序对应的第一指纹匹配预设的开源组件指纹库中的第二指纹,具体的,利用第一指纹按照预设的指纹匹配规则对预设的开源组件指纹库中的第二指纹进行匹配,需要说明的是,为了提高识别应用程序的速度或效率,降低识别应用程序的时间,即降低将应用程序的第一指纹在预设的开源组件指纹库中匹配第二指纹的时间,进而在根据匹配到的第二指纹追溯相关联的开源组件时,可有效提高效率;而本实施例通过设定指纹匹配规则,以根据指纹匹配规则提高识别与应用程序关联的开源组件。可以理解的是,开源组件在数据结构层上包括:组件包(整包)、组件内的多个文件和文件内的多个片段(源代码),即组件包的数量小于文件的数量,文件的数量小于片段的数量,因此,在识别应用程序时,应当先识别应用程序的组件包对应的第一组件指纹,其次,识别应用程序的文件对应的第一文件指纹,最后,识别应用程序的片段对应的第一片段指纹。预设的指纹匹配规则的试试具体如下:
通过将应用程序的第一组件指纹与预设开源组件指纹库中的组件指纹列表包含的所有第二组件指纹进行匹配,实现第一组件指纹分别与组件指纹列表包含的所有第二组件指纹进行一一对应匹配,当第一组件指纹相似值大于或等于预设的组件指纹相似阈值时,示例性的,如设定组件指纹相似阈值为100%,当该第一组件指纹相似值为100%,则视为第一组件指纹与某一第二组件指纹相匹配时,根据该第一组件指纹相似值为100%对应的第二组件指纹查找对应的开源组件,即通过组件包对应的组件指纹识别出与应用程序相同或关联的开源组件,以进一步获取该应用程序的相关信息,如映射信息;当通过应用程序的第一组件指纹无法匹配预设开源组件指纹库中的组件指纹列表包含的所有第二组件指纹时,即第一组件指纹相似值小于100%,通过将应用程序的多个第一文件指纹与预设开源组件指纹库中的组件指纹列表包含的所有第二文件指纹进行匹配,当第一文件指纹相似值大于或等于预设的文件指纹相似阈值时,示例性的,如设定文件指纹相似阈值为100%,当该第一文件指纹相似值为100%,可得到与应用程序的所有第一文件指纹对应的多个第二文件指纹,根据所有第一文件指纹对应的多个第二文件指纹追溯对应的一个或多个开源组件,从而得到应用程序对应或关联的一个或多个开源组件。当通过应用程序的第一文件指纹无法匹配预设开源组件指纹库中的文件指纹列表包含的所有第二文件指纹时,即当该第一文件指纹相似值不是100%,通过将应用程序的多个第一片段指纹与预设开源组件指纹库中的片段指纹列表包含的所有第二片段指纹进行匹配,当第一片段指纹相似值大于或等于预设的片段指纹相似阈值时,示例性的,如设定片段指纹相似阈值为100%,当该第一片段指纹相似值为100%,可得到与应用程序的所有第一片段指纹对应的多个第二片段指纹,根据所有第一片段指纹对应的多个第二片段指纹追溯对应的一个或多个开源组件,从而得到应用程序对应或关联的一个或多个开源组件,以进一步获取该应用程序的相关信息,如映射信息。需要书面的是,上述的指纹相似值(第一组件指纹相似值、第一文件指纹相似值及第一片段指纹相似值)可用于反映应用程序的第一指纹与开源组件的第二指纹的对应关系,且指纹相似值可用于表示应用程序与开源组件的相似度或用于表示应用程序的成分或组件与开源组件的开源成分的占比值;优选的,在计算应用程序与开源组件的相似度时,可直接以第一组件指纹相似值表示,或以第一文件指纹相似值表示,还可以第一片段指纹相似值表示,需要说明的是,在以第一片段指纹相似值表示相似度时,可通过计算第一文件指纹相似值与第一片段指纹相似值的乘积表示。
在本实施例的又一实施方式中,第一指纹包括:第一组件指纹、第一文件指纹及第一片段指纹。利用待识别的应用程序对应的第一组件指纹匹配第二组件指纹列表内的第二组件指纹;若匹配到第二组件指纹,则生成包含应用程序与开源组件对应关系的组件指纹相似值,若无法匹配到第二组件指纹,则利用第一文件指纹匹配第二文件指纹列表中的第二文件指纹;若匹配到第二文件指纹,则生成包含第一文件指纹对应的第二文件指纹的多个开源组件的文件指纹相似值,即生成包含所述应用程序与多个所述开源组件对应关系的文件指纹相似值,若无法匹配到第二文件指纹,则利用第一片段指纹匹配第二片段指纹列表中的第二片段指纹;若匹配到第二片段指纹,则生成包含第一片段指纹对应的第二片段指纹的多个开源组件的片段指纹相似值,即生成包所述应用程序与多个所述开源组件对应关系的片段指纹相似值。通过上述的匹配方式利用第一指纹与第二指纹进行匹配,得到相应的指纹相似值,上述匹配方式无需通过扫描应用程序的源代码,可提高识别应用程序的速度和效率,且通过指纹匹配方式直接对第一指纹进行匹配识别,避免目标结构相同文件不同的现象,从而提高可识别度及识别准确性。
步骤S102:根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息。
在通过匹配或对比的方式得到应用程序与开源组件的指纹相似值后,根据该指纹相似值确定显示与应用程序相同或关联的开源组件,及获取该相同或关联的开源组件对应的映射信息。需要说明的是,该映射信息为开源组件的相关数据信息,当应用程序与开源组件相同或相关联时,开源组件对应的映射信息即为应用程序的相关数据信息,该映射信息可包括:开源组件的发布日期、官方网站、源代码存储位置、安全信息等,通过应用程序的信息可识别该开源组件的漏洞信息及许可信息。
在本步骤中,不限于包括三部分,具体的,第一部分,如果应用程序的整包(组件包)的指纹相同,则将整个包的指纹(即组件指纹)和预设的开源组件指纹库中的开源组件的第二组件指纹信息都列出来,显示100%相似,则可确认当前检测应用程序的包为该开源组件,并显示应用程序对应的开源组件的映射信息。第二部分,如果整包的指纹不相同,则需要列出这个包里面所有文件的指纹对比结果,文件指纹相同的则显示完全相似,并且显示与此文件相同的指纹对应开源组件及对应的映射信息。第三部分,如果文件指纹不相同的,则需要比较这个文件里面的代码片段与预设开源组件指纹库中的代码片段是否有相同的指纹,如果有,则将该文件相同指纹的代码片段用高亮的方式显示出来,并显示该代码片段对应的开源组件的信息。
在本步骤的一实施方式中,步骤S102包括:根据指纹相似值确定预设的开源组件指纹库中与应用程序对应的目标第二指纹;根据目标第二指纹查找对应的至少一个目标开源组件及目标开源组件对应的映射信息;显示目标开源组件及对应的映射信息。
在本步骤的另一实施方式中,将指纹相似值与预设的指纹相似阈值对比;根据对比结果确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息。
进一步的,在本步骤的又一实施方式中,指纹相似值包括:组件指纹相似值、文件指纹相似值及片段指纹相似值。则将组件指纹相似值与预设的组件指纹相似阈值对比;若对比结果为组件指纹相似值大于或等于组件指纹相似阈值,则显示包含第一组件指纹对应的第二组件指纹的目标开源组件及目标开源组件对应的映射信息;若对比结果为组件指纹相似值小于组件指纹相似阈值,则将文件指纹相似值与预设的文件指纹相似阈值对比;若对比结果为文件指纹相似值大于或等于文件指纹相似阈值,则显示包含第一文件指纹对应的第二文件指纹的至少一个目标开源组件及目标开源组件对应的映射信息;若对比结果为文件指纹相似值小于文件指纹相似阈值,则将片段指纹相似值与预设的片段指纹相似阈值对比;若对比结果为片段指纹相似值大于或等于片段指纹相似阈值,则显示包含第一片段指纹对应的第二片段指纹的至少一个目标开源组件及目标开源组件对应的映射信息。
具体的,为了判定待识别的应用程序是否是由开源组件部分修改得到的,本实施方式设定指纹相似阈值。例如,应用程序中的一个应用程序a,应用程序的包内包含总共100个文件,由于在开发或设计应用程序时,仅修改了其中1个文件,其他99个文件与开源组件的包内的文件相同,则应用程序a的99个文件指纹与开源组件指纹库中的开源组件A的99个文件指纹相同;值得注意的是,应用程序a中又有3个文件与开源组件指纹库中的另一个开源组件B中的3个文件相同,这3个文件就会显示两个开源组件A和B,及两个开源组件对应的映射信息,这将妨碍识别应用程序时准确度,降低识别性及可靠性。示例性的,以文件指纹相似值为例,设置一个文件指纹相似阈值,比如设置文件指纹相似阈值为90%,当整个文件相似度在90%以上,则表示待识别的应用程序是某个开源组件的修改版本。可以理解的是,上例中有99个文件与开源组件A对应,有3个组件是开源组件B对应,其相似度分别是99%和3%,因此,可以直接确定该组件就是开源组件A的变形后的应用程序。
需要说明的是,当将组件指纹相似值与预设的组件指纹相似阈值对比时,设定组件指纹相似阈值为100%,以表示有且仅有待检测的项目或应用程序中的组件对应的指纹与一个开源组件的组件指纹完全匹配,以确定待检测的项目或应用程序对应的是哪一目标开源组件完全一样,及未结晶罐变相;进一步的,显示包含第一组件指纹对应的第二组件指纹的目标开源组件及目标开源组件对应的映射信息。
此外,当存在一个或多个文件指纹无法匹配到文件指纹列表的文件指纹时,需要利用无法匹配到文件指纹的文件内的片段指纹与预设的片段指纹列表进行对比或匹配,以确定该待检测组件的片段指纹相似。进一步的,将片段指纹相似值与预设的片段指纹相似阈值对比,该片段相似阈值可设置为100%,使得待检测的项目或应用程序中组件内的文件包含的片段指纹与预设的片段指纹列表中的某一片段指纹完全匹配,则显示包含该第一片段指纹对应的第二片段指纹的至少一个目标开源组件及目标开源组件对应的映射信息。进而得到该待识别项目或应用程序对应的目标开源组件对应的漏洞信息和许可信息。
通过实施本步骤,可防止由于经过对开源组件内的部分未见修改,得到相应的开源组件,提高对待识别的应用程序的识别准确度,具有较高的识别度。
步骤S103:根据目标开源组件及映射信息识别应用程序的安全信息。
具体的,该映射信息可包括:开源组件的发布日期、官方网站、源代码存储位置、配置信息等。在获得目标开源组件及对应的映射信息后,根据该目标开源组件及对应的映射信息对应用程序进行识别,主要是通过识别,分析应用程序的重要成分,如识别应用程序的安全信息,优选的,该安全信息可包括应用程序存在的漏洞信息和未授权许可信息。一方面,根据目标开源组件对应的映射信息中的官方网站和源代码存储位置从开源组件官网中找到目标开源组件的漏洞信息,以识别出应用程序的漏洞信息。另一方面,根据目标开源组件对应的映射信息中的官方网站和配置信息从开源组件官网中找到目标开源组件的许可信息,从而识别出应用程序的许可信息。进一步的,将应用程序的漏洞信息及许可信息罗列出来。
在本步骤的又一实施方式中,通过从开源组件的官网或者漏洞官网中找到该开源组件的漏洞信息,以及造成该漏洞的具体文件的具体代码;及通过官网或者组件内部的一些配置文件获得许可信息;进一步的,根据获得的漏洞信息和许可信息生成开源组件的漏洞信息库和许可信息库。更进一步的,根据已经识别的应用程序,关联其对应的漏洞信息库和许可信息库,将其具体文件和片段代码对应的漏洞信息及许可信息都罗列出来。
本发明提供的基于开源组件的指纹识别方法,包括:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值;根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;根据目标开源组件及映射信息识别应用程序的安全信息。通过实施本方案,利用待识别应用程序的第一指纹与预设开源指纹库中的第二指纹匹配,以确定包含第二指纹的开源组件,利用指纹匹配的方式可提高对应用程序的识别性,且相对于现有技术,通过指纹匹配的方式可提高在识别应用程序的第一指纹时的速度,具有可靠性。
请参阅图2,为本发明实施例提供的基于开源组件的指纹识别方法又一步骤流程图,该方法步骤包括:
步骤S201:从开源组件生态系统中分别获取各开源组件及对应的映射信息。
具体的,互联网作为开源生态系统的载体,开源组件的相关数据信息(发布日期、官方网站、源代码存储位置、安全信息等)可从网上获取,进而可根据获取的数据信息了解该开源组件的相关情况;进一步的,互联网可作为多个开源生态系统的载体,开源生态系统可为maven、npm、pypi等平台网站,或者从一些开源组件社区,如gitlab社区,需要说明的是,上述开源组件获取源头仅仅为示例性,还包括其他任意获取源。通过从开源组件生态系统中分别获取各开源组件及对应的映射信息,该映射信息不限于包括:发布日期、官方网站、源代码存储位置、配置信息等。
步骤S202:根据各开源组件的内容及对应的映射信息生成包含开源组件对应的一个或多个第二指纹的第二指纹列表。
具体的,开源组件(开源组件、应用程序包含的开源组件或开源组件对应的开源成分)的指纹其实就是对该开源组件进行加密生成的一个序列号,称之为哈希码。常见的哈希码编码方式不限于包括:md5、sha1、sha256及sha512,按照上面的哈希码编码方式顺序(md5、sha1、sha256、sha512),加密的复杂度越来越复杂,加密出来的哈希码的长度也是越来越长的。从碰撞的角度来说(加密出来的哈希码重复),哈希码的长度越大,越不易碰撞,即不重复。可以理解的是,sha512这样的编码方式在编码过程中,编码出来的哈希码长度也很长,速度是很慢,消耗时间很长,如sha512编码出来的哈希码长达128位。因此,本实施例采用混合的方式计算第一指纹和第二指纹,首先加密方式采用md5和sha1两种加密方式,其次加密的内容根据开源组件的特性,第一个选取整个开源组件的文件,选用sha1加密,得到一个40位的哈希码,比如56e35e6195f53f1c8fbaa025fd3a308cdfa04a65,第二个选用当前开源组件的名称,选用md5加密,得到一个16位的哈希码,比如0b9cd351e69ae708,然后将两个哈希码进行拼接,
得到0b9cd351e69ae708-56e35e6195f53f1c8fbaa025fd3a308cdfa04a65,最后我们可以根据实际的业务存储需求,可以对上面的字符串进行适当的截取,比如将后面40位的哈希也截取成16位,得到0b9cd351e69ae708-56e35e6195f53f1c。这种计算方式可以根据业务需求和开源组件的不同进行组合和截取,即截取的哈希码的长度不限于16为,还可为8、10、15位等;另一方面,可以采用多个编码方式,如采用三种编码方式,可以组成三段的哈希码,进而截取生成的哈希。进一步的,根据截取生成的哈希,就是开源组件的指纹,由于结合多种特性,如不同编码方式及截取长度的特性,碰撞(重复)的概率远远小于单个加密方式得出来的哈希。因此,通过上述方式生成的指纹有效降低度概率。
进一步的,通过上述方式得到第二指纹后,根据第二指纹及开源组件对应的映射信息生成包含开源组件对应的一个或多个第二指纹的第二指纹列表。
例如,在本步骤的一实施方式,开源组件的内容包括:组件包、组件包内的多个组件文件及组件文件内的多个片段源代码,则步骤S202包括:
根据各开源组件的组件包及对应的映射信息生成包含一个或多个第二组件指纹的第二组件指纹列表;根据各开源组件的多个组件文件及对应的映射信息生成包含一个或多个第二文件指纹的第二文件指纹列表;及根据各开源组件的多个片段源代码及对应的映射信息生成包含一个或多个第二片段指纹的第二片段指纹列表。
具体的,本实施方式根据生成的第二组件指纹、第二文件指纹及第二片段指纹生成相应的指纹表,具体的,如根据第二组件指纹生成用于存放第二组件指纹的组件指纹表,根据第二文件指纹生成用于存放第二文件指纹的文件指纹表,及根据第二片段指纹生成用于存放第二片段指纹的片段指纹表。
示例性的,参见表1,表1为本实施提供的开源组件的组件指纹表,组件指纹表中的开源组件a的id为1;
【表1】
Figure 440086DEST_PATH_IMAGE001
参见如下表2,表2为本发明实施例提供的文件指纹列表,在该第二个的文件指纹表中,开源组件id为1,其包含两个文件,其文件名称有f1和f2,其中,该文件f1对应的文件id为文件1,文件f2对应的文件id为文件2;
【表2】
Figure 547719DEST_PATH_IMAGE002
【表3】
Figure 411770DEST_PATH_IMAGE003
参见表3,表3为本发明实施例提供的片段指纹列表,在第三个指纹表为的文件内的片段指纹表,如当文件id为1时,即表示开源组件a中的f1文件中的片段内容和片段指纹,其包含片段id为1和2的片段内容和片段指纹,需要说明的是,该片段内容为开源组件的部分源代码。
步骤S203:利用第二指纹列表组建开源组件指纹库。
需要说明的是,第二指纹列表包括:第二组件指纹列表、第二文件指纹列表及第二片段指纹列表,利用第二组件指纹列表、第二文件指纹列表及第二片段指纹列表组建开源组件指纹库。
步骤S204:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值。
步骤S205:根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息。
步骤S206:根据目标开源组件及映射信息识别应用程序的安全信息。
具体的,步骤S204、S205及S206中描述的方法步骤为与前述步骤S101、步骤S102及步骤S103的方法步骤相似或相近,关于该部分流程的内容描述与步骤S101至步骤S103的内容描述一致,本实施例对此不做进一步赘述。
请参阅图3,为本发明实施例提供的基于开源组件的指纹识别装置的模块方框图,该管理装置对应上述的基于开源组件的指纹识别方法的执行主体处理器,该识别装置400包括:
匹配模块401,用于利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值;
确定模块402,用于根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;
识别模块403,用于根据目标开源组件及映射信息识别应用程序的安全信息。
本发明提供的基于开源组件的指纹识别装置,包括:匹配模块401、确定模块402及识别模块403,具体的,通过匹配模块401利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值;通过确定模块402根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;通过识别模块403根据目标开源组件及映射信息识别应用程序的安全信息。通过实施本方案,利用待识别应用程序的第一指纹与预设开源指纹库中的第二指纹匹配,以确定包含第二指纹的开源组件,利用指纹匹配的方式可提高对应用程序的识别性,且相对于现有技术,通过指纹匹配的方式可提高在识别应用程序的第一指纹时的速度,具有可靠性。
进一步的,该识别装置400还包括:
获取模块404,用于从开源组件生态系统中分别获取各开源组件及对应的映射信息。
生成模块405,用于根据各开源组件的内容及对应的映射信息生成包含开源组件对应的一个或多个第二指纹的第二指纹列表。
需要说明的是,生成模块405可用于计算生成开源组件的指纹,如第一指纹和第二指纹,具体的,参与计算开源组件的哈希码,从而得到第二指纹,根据第二指纹生成对应的指纹列表,如第二组件指纹列表、第二文件指纹列表及第二片段指纹列表。
组建模块406,用于利用第二指纹列表组建开源组件指纹库。
需要说明的是,关于本实施例提供的基于开源组件的指纹识别装置为前述的基于开源组件的指纹识别方法对应的装置项,该部分的技术特征与前述的方法步骤相似或相近,关于对该装置的技术特征部分的描述可参考与前述实施例的基于开源组件的指纹识别方法的描述,本实施例对此不做进一步赘述。
本发明实施例还提供一种电子设备,该电子设备为识别设备,请参阅图4,为本发明实施例提供的电子设备的架构图,电子设备包括存储器501、处理器502及通信总线503,通信总线503分别与存储器501与处理器通信连接502,存储器502上存储有计算机程序,处理器执行计算机程序时,实现上述任意一项的基于开源组件的指纹识别方法中的各个步骤。
示例性的,基于开源组件的指纹识别方法的计算机程序主要包括:利用待识别的应用程序对应的第一指纹匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含应用程序与至少一个开源组件对应关系的指纹相似值;根据指纹相似值确定显示包含第一指纹对应的第二指纹的目标开源组件及目标开源组件对应的映射信息;根据目标开源组件及映射信息识别应用程序的安全信息。另外,计算机程序也可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算设备中的执行过程。例如,计算机程序可以被分割成如图3所示的匹配模块401、确定模块402、识别模块403、获取模块404、生成模块405及组建模块406。
处理器可以是中央处理模块(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本发明实施例还提供一种存储介质,存储介质为计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述任意一项的基于开源组件的指纹识别方法中的各个步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种基于开源组件的指纹识别方法、装置、识别设备及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种基于开源组件的指纹识别方法,其特征在于,包括:
从开源组件生态系统中分别获取各所述开源组件及对应的映射信息;
根据各所述开源组件的组件包及对应的所述映射信息生成包含一个或多个第二组件指纹的第二组件指纹列表;
根据各所述开源组件的多个组件文件及对应的所述映射信息生成包含一个或多个第二文件指纹的第二文件指纹列表;及
根据各所述开源组件的多个片段源代码及对应的所述映射信息生成包含一个或多个第二片段指纹的第二片段指纹列表;
利用所述第二组件指纹列表、所述第二文件指纹列表及所述第二片段指纹列表组建开源组件指纹库;
利用待识别的应用程序对应的第一指纹中的第一组件指纹、第一文件指纹,或者第一片段指纹,匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值;
根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息;
根据所述目标开源组件及所述映射信息识别所述应用程序的安全信息。
2.根据权利要求1所述的基于开源组件的指纹识别方法,其特征在于,所述第一指纹包括:第一组件指纹、第一文件指纹及第一片段指纹,所述利用待识别的应用程序对应的第一指纹中的第一组件指纹、第一文件指纹,或者第一片段指纹,匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值的步骤,具体包括:
利用所述待识别的应用程序对应的所述第一组件指纹匹配所述第二组件指纹列表内的第二组件指纹;
若匹配到所述第二组件指纹,则生成包含所述应用程序与所述开源组件对应关系的组件指纹相似值,若无法匹配到所述第二组件指纹,则利用所述第一文件指纹匹配所述第二文件指纹列表中的第二文件指纹;
若匹配到所述第二文件指纹,则生成包含所述应用程序与多个所述开源组件对应关系的文件指纹相似值,若无法匹配到所述第二文件指纹,则利用所述第一片段指纹匹配所述第二片段指纹列表中的第二片段指纹;
若匹配到所述第二片段指纹,则生成包所述应用程序与多个所述开源组件对应关系的片段指纹相似值。
3.根据权利要求2所述的基于开源组件的指纹识别方法,其特征在于,所述根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
将所述指纹相似值与预设的指纹相似阈值对比;
根据对比结果确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息。
4.根据权利要求3所述的基于开源组件的指纹识别方法,其特征在于,所述指纹相似值包括:组件指纹相似值、文件指纹相似值及片段指纹相似值,则所述将所述指纹相似值与预设的指纹相似阈值对比,根据对比结果确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
将所述组件指纹相似值与预设的组件指纹相似阈值对比;
若所述对比结果为所述组件指纹相似值大于或等于所述组件指纹相似阈值,则显示包含所述第一组件指纹对应的第二组件指纹的目标开源组件及所述目标开源组件对应的映射信息;
若所述对比结果为所述组件指纹相似值小于所述组件指纹相似阈值,则将所述文件指纹相似值与预设的文件指纹相似阈值对比;
若所述对比结果为所述文件指纹相似值大于或等于所述文件指纹相似阈值,则显示包含所述第一文件指纹对应的第二文件指纹的至少一个目标开源组件及所述目标开源组件对应的映射信息;
若所述对比结果为所述文件指纹相似值小于所述文件指纹相似阈值,则将所述片段指纹相似值与预设的片段指纹相似阈值对比;
若所述对比结果为所述片段指纹相似值大于或等于所述片段指纹相似阈值,则显示包含所述第一片段指纹对应的第二片段指纹的至少一个目标开源组件及所述目标开源组件对应的映射信息。
5.根据权利要求1或2所述的基于开源组件的指纹识别方法,其特征在于,所述根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息的步骤包括:
根据所述指纹相似值确定预设的开源组件指纹库中与所述应用程序对应的目标第二指纹;
根据所述目标第二指纹查找对应的至少一个目标开源组件及所述目标开源组件对应的映射信息;
显示所述目标开源组件及对应的所述映射信息。
6.一种基于开源组件的指纹识别装置,其特征在于,包括:
获取模块,用于从开源组件生态系统中分别获取各所述开源组件及对应的映射信息;
生成模块,用于根据各所述开源组件的组件包及对应的所述映射信息生成包含一个或多个第二组件指纹的第二组件指纹列表;
根据各所述开源组件的多个组件文件及对应的所述映射信息生成包含一个或多个第二文件指纹的第二文件指纹列表;及
根据各所述开源组件的多个片段源代码及对应的所述映射信息生成包含一个或多个第二片段指纹的第二片段指纹列表;
重组模块,用于利用所述第二组件指纹列表、所述第二文件指纹列表及所述第二片段指纹列表组建开源组件指纹库;
匹配模块,用于利用待识别的应用程序对应的第一指纹中的第一组件指纹、第一文件指纹,或者第一片段指纹,匹配预设的开源组件指纹库中多个开源组件的第二指纹,得到包含所述应用程序与至少一个所述开源组件对应关系的指纹相似值;
确定模块,用于根据所述指纹相似值确定显示包含所述第一指纹对应的第二指纹的目标开源组件及所述目标开源组件对应的映射信息;
识别模块,用于根据所述目标开源组件及所述映射信息识别所述应用程序的安全信息。
7.一种识别设备,包括存储器、处理器及通信总线,所述通信总线分别与所述存储器与所述处理器通信连接,其特征在于,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至5任意一项所述的基于开源组件的指纹识别方法中的各个步骤。
8.一种存储介质,所述存储介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至5任意一项所述的基于开源组件的指纹识别方法中的各个步骤。
CN202011177798.9A 2020-10-29 2020-10-29 基于开源组件的指纹识别方法、装置、设备及存储介质 Active CN112001376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011177798.9A CN112001376B (zh) 2020-10-29 2020-10-29 基于开源组件的指纹识别方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011177798.9A CN112001376B (zh) 2020-10-29 2020-10-29 基于开源组件的指纹识别方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112001376A CN112001376A (zh) 2020-11-27
CN112001376B true CN112001376B (zh) 2021-02-26

Family

ID=73475768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011177798.9A Active CN112001376B (zh) 2020-10-29 2020-10-29 基于开源组件的指纹识别方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112001376B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685080B (zh) * 2021-01-08 2023-08-11 深圳开源互联网安全技术有限公司 开源组件查重方法、系统、装置及可读存储介质
CN112527691B (zh) * 2021-02-18 2021-06-11 深圳开源互联网安全技术有限公司 程序安全检测防护方法、中间件系统及安全中间件系统
CN113127355A (zh) * 2021-04-22 2021-07-16 安徽三实信息技术服务有限公司 一种分析识别第三方组件程序及版本的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130102154A (ko) * 2012-03-07 2013-09-17 서명일 트위터 매시업을 이용한 마이스 트윗 북 서비스 제공시스템 및 그 제공방법
CN104866769A (zh) * 2015-06-01 2015-08-26 广东电网有限责任公司信息中心 一种基于业务系统主机指纹采集的漏洞分析方法及系统
KR20170032788A (ko) * 2015-09-15 2017-03-23 정제형 아두이노와 스마트폰이 연동된 실습장치
CN110659502A (zh) * 2019-09-05 2020-01-07 中国科学院软件研究所 一种基于文本信息关联关系分析的项目版本检测方法及系统
CN111460452A (zh) * 2020-03-30 2020-07-28 中国人民解放军国防科技大学 一种基于频率指纹提取的安卓恶意软件检测方法
CN111581638A (zh) * 2020-03-20 2020-08-25 中国电力科学研究院有限公司 一种开源软件的安全分析方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130102154A (ko) * 2012-03-07 2013-09-17 서명일 트위터 매시업을 이용한 마이스 트윗 북 서비스 제공시스템 및 그 제공방법
CN104866769A (zh) * 2015-06-01 2015-08-26 广东电网有限责任公司信息中心 一种基于业务系统主机指纹采集的漏洞分析方法及系统
KR20170032788A (ko) * 2015-09-15 2017-03-23 정제형 아두이노와 스마트폰이 연동된 실습장치
CN110659502A (zh) * 2019-09-05 2020-01-07 中国科学院软件研究所 一种基于文本信息关联关系分析的项目版本检测方法及系统
CN111581638A (zh) * 2020-03-20 2020-08-25 中国电力科学研究院有限公司 一种开源软件的安全分析方法及装置
CN111460452A (zh) * 2020-03-30 2020-07-28 中国人民解放军国防科技大学 一种基于频率指纹提取的安卓恶意软件检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
manok.HoBOT同源分析专注代码安全引领行业应用.《https://blog.csdn.net/manok/article/details/99078051》.2019,第1页. *
李晓明等.开源组成分析工具发展现状及建议.《信息通信技术与政策》.2020,第57页-第60页. *

Also Published As

Publication number Publication date
CN112001376A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN112001376B (zh) 基于开源组件的指纹识别方法、装置、设备及存储介质
CN109040341B (zh) 智能合约地址的生成方法、装置、计算机设备及可读存储介质
US10628577B2 (en) Identifying software components in a software codebase
CN108334753B (zh) 盗版应用验证方法和分布式服务器节点
US9614867B2 (en) System and method for detection of malware on a user device using corrected antivirus records
US9270467B1 (en) Systems and methods for trust propagation of signed files across devices
US9338012B1 (en) Systems and methods for identifying code signing certificate misuse
CN107077540B (zh) 用于提供基于云的应用安全服务的方法和系统
CN110489466B (zh) 邀请码的生成方法、装置、终端设备及存储介质
US9659171B2 (en) Systems and methods for detecting tampering of an information handling system
CN104769598A (zh) 用于检测非法应用程序的系统和方法
CN113704781A (zh) 文件安全传输方法、装置、电子设备及计算机存储介质
CN110210211A (zh) 一种数据保护的方法和计算设备
CN109522683B (zh) 软件溯源方法、系统、计算机设备及存储介质
CN109145589B (zh) 应用程序获取方法及装置
CN113434122A (zh) 多角色页面创建方法、装置、服务器及可读存储介质
US9860230B1 (en) Systems and methods for digitally signing executables with reputation information
WO2021012732A1 (zh) 基于区块链的信息验证装置、方法及存储介质
CN110209347B (zh) 一种可追溯的数据存储方法
US8402545B1 (en) Systems and methods for identifying unique malware variants
CN113051622B (zh) 索引构建方法、装置、设备和存储介质
US10210334B2 (en) Systems and methods for software integrity assurance via validation using build-time integrity windows
US20190188373A1 (en) Systems and methods for obfuscation of password key and dynamic key pool management
US11750660B2 (en) Dynamically updating rules for detecting compromised devices
CN117009982B (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
GR01 Patent grant
GR01 Patent grant