CN116561756A - 基于信息匹配的组件风险检测方法、装置、设备和介质 - Google Patents

基于信息匹配的组件风险检测方法、装置、设备和介质 Download PDF

Info

Publication number
CN116561756A
CN116561756A CN202310315326.2A CN202310315326A CN116561756A CN 116561756 A CN116561756 A CN 116561756A CN 202310315326 A CN202310315326 A CN 202310315326A CN 116561756 A CN116561756 A CN 116561756A
Authority
CN
China
Prior art keywords
component
information
risk
code
matching
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
CN202310315326.2A
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.)
Fujian Rural Credit Union
Original Assignee
Fujian Rural Credit Union
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 Fujian Rural Credit Union filed Critical Fujian Rural Credit Union
Priority to CN202310315326.2A priority Critical patent/CN116561756A/zh
Publication of CN116561756A publication Critical patent/CN116561756A/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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种基于信息匹配的组件风险检测方法、装置、设备和介质,所述方法包括:对网页信息进行文本解析获取多维度的组件信息,将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。本发明提供的一种基于信息匹配的组件风险检测方法、装置、设备和介质,实现多语言源代码包得以一次性完成风险检测,精确、快速地查找出源代码中存在的风险组件。

Description

基于信息匹配的组件风险检测方法、装置、设备和介质
技术领域
本发明涉及计算机技术领域,特别涉及一种基于信息匹配的组件风险检测方法、装置、设备和介质。
背景技术
互联网的发展促进了时代的进步,而互联网发展的核心在于计算机技术的日新月异。随着经济全球化,科技也突破地域、时间、空间的限制,逐渐往共享、开源等方面发展。例如各种编程中高频使用的组件也正趋向共享开源,此举解决众多科技人员编程过程中重复造轮子的问题,极大提升了技术的发展速度,但同时也带来了不少安全隐患。如何通过有力并且简易的手段实现对风险组件的有效甄别,发现代码组件中存在的漏洞风险,提前规避系统可能遭受的攻击,从而避免出现大规模的经济损失,是当下安全领域的痛点问题。
针对以上情况,现有期刊文献、专利等提出了一些解决方案,如公开号112001376A,公开日为2020-11-27的发明专利《基于开源组件的指纹识别方法、装置、设备及存储介质》,公开了一种基于开源组件的指纹识别方法、装置、识别设备及存储介质,能够利用待识别的应用程序的第一指纹与预设的开源组件指纹库中的第二指纹匹配,确定包含第二指纹的开源组件,相对于现有技术,该指纹匹配的方式可提高对应用程序的识别性和识别速度。
公开号为112118251A,公开日为2020-12-22的发明专利“一种基于maven插件的JAVA项目开源组件的漏洞检测方法”,公开了一种基于maven插件的JAVA项目开源组件的漏洞检测方法,采用maven插件的方式获取项目开发中引用的开源组件,调用云端存储的组件安全状态,确定组件安全性,组件采集准确,实时性高,通过maven插件方式不存在误报。
公开号为112868008A,公开日为2021-05-28的发明专利“JAVA开源组件的漏洞检测方法、装置及存储介质”,提供了一种JAVA开源组件的漏洞检测方法、装置及存储介质,方法为生成包括所有JAVA开源组件的漏洞数据的漏洞数据库,获取待检测组件的相关信息与漏洞数据库进行匹配,匹配成功则获取待检测组件的漏洞数据。该方法节省了人力、时间资源,使得结果更加精准。
公开号为110109699A,公开日为2019-08-09的发明专利“一种漏洞组件查找方法、系统、介质和电子设备”,提供一种漏洞组件查找方法、系统、介质及电子设备。该方法获取漏洞组件名称、漏洞版本号及版本号对比位,通过判断版本号区间来判定组件版本中存在漏洞。该方法能够更准确对比出存在漏洞的组件区间版本。
上述发明专利实现了利用待识别应用程序的指纹信息与预设的开源组件指纹库中的指纹进行匹配、采用maven插件获取项目中引用的开源组件等方式,进行组件风险的判断,有其独创性,但仍然存在以下缺点。
上述现有技术的主要缺点有:
1、利用maven插件采集项目中的开源组件信息或者是直接获取待检测JAVA开源组件的信息,其只针对JAVA语言进行代码检测,范围比较有限。
2、通过指纹信息来匹配风险的组件,可能存在较多的风险组件漏报,开源组件的指纹信息并不全面,组件经过二次开发导致指纹信息改变而导致风险不能被暴露。
3、应用系统由多种语言共同实现时,未提出具体的风险组件检测方案,未实现多语言同时检测。
4、通过组件名称进行查询,但忽略指纹信息,将导致组件信息对比不准确、误扫描、漏检测的情况。
发明内容
本发明要解决的技术问题,在于提供一种基于信息匹配的组件风险检测方法、装置、设备和介质,实现多语言源代码包得以一次性完成风险检测,精确、快速地查找出源代码中存在的风险组件。
第一方面,本发明提供了一种基于信息匹配的组件风险检测方法,包括:
组件风险信息库构建过程:对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;
风险组件扫描过程:获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
进一步地,所述风险组件扫描过程中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息。
进一步地,所述组件风险信息库构建过程通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
进一步地,还包括内部代码扫描过程:当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
第二方面,本发明提供了一种基于信息匹配的组件风险检测装置,包括:
组件风险信息库构建模块:用于对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;
风险组件扫描模块:用于获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
进一步地,所述风险组件扫描模块中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息。
进一步地,所述组件风险信息库构建模块通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
进一步地,还包括:内部代码扫描模块:用于当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下优点:
1、实现跨代码语言的组件风险检测:对于不同的代码语言,本发明跨越代码语言的限制,自动化定位、识别不同类型的风险组件,从而可以同时检测带有不同语言的代码项目,可对不同语言、不同类型的组件都达成预警效果。
2、通过可自定义的爬虫技术快速适配多个开源组件信息发布方,自动爬取、建立组件风险信息库,搜集网络资源中大量且完备的风险组件信息,加以利用和整合,建立较为完备的风险信息库,为风险信息进行进一步的甄别奠定了基础。
3、实现风险信息与检测逻辑整合:通过建立可定期更新的风险库,对于权威的漏洞、风险资源进行整合,借此完成一套完善的检测逻辑。
4、扫描效果显著提升:通过多种信息匹配的方式,对于同一组件的不同表示形式,均有着相应的检测方式,也扩大了其可分析的范围,可以做到应检尽检,降低漏检测的概率;通过文件名匹配、指纹匹配、代码语言匹配等多种匹配模式提高组件风险分析的准确性,能够精确、快速地查找系统存在的风险组件。
5、实现便捷的快速检测:对于开发人员来说,代码上传后即可自动检测、报告导出,根据具体的风险等级与修复建议进行调整和修复。
6、实现自建组件风险管理:对于未开源的内部研发的组件,利用内部扫描系统将其并入风险管理系统,待分析出内部漏洞之后,存档、更新至风险信息库,给予开发人员提示与改进建议。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中方法的流程图;
图2为本发明实施例一中组件信息爬虫实现原理示意图;
图3为本发明实施例一中自动风险组件检测流程图;
图4为本发明实施例一中自动风险组件检测后台实现原理示意图;
图5为本发明实施例二中装置的结构示意图;
图6为本发明实施例三中电子设备的结构示意图;
图7为本发明实施例四中介质的结构示意图。
具体实施方式
本发明实施例通过提供一种基于信息匹配的组件风险检测方法、装置、设备和介质,实现多语言源代码包得以一次性完成风险检测,精确、快速地查找出源代码中存在的风险组件。
本发明实施例中的技术方案,总体思路如下:
1、本发明实施例通过爬虫方式建立可定期更新的组件风险信息库,搜集网络资源中大量且完备的风险组件信息,加以利用和整合,建立较为完备的风险信息库,为风险信息进行进一步的甄别奠定基础。
2、通过文件名匹配、指纹匹配、代码语言匹配等多种匹配模式跨越了代码语言限制,自动定位和识别不同类型的组件,提高组件风险分析的准确性和全面性,通过丰富多语言组件风险信息库,可同时支持JAVA、Python、JS、PHP等多语言代码包的风险检测。
3、对于未开源的内部定义组件,通过并入内部代码扫描系统,探析内部漏洞,存档至组件风险信息库表中,多次扫描可分析漏洞的改动与修复,并且给予项目组反馈与预警。
在介绍具体实施例之前,先介绍本申请实施例方法所对应的系统框架,系统大概分三个部分:前端页面模块、自动扫描模块以及后端库表。
前端页面模块包括代码包登记上传、扫描结果展示、扫描结果导出等功能。自动扫描模块包括源代码解析、组件详细信息解析、组件风险信息匹配等功能。后端库表包括扫描结果、项目信息、组件风险信息库等表结构。前端页面模块通过接收用户上传的代码包,将代码包传入自动扫描模块进行解析及检测,待得出结果后将检测的详细信息传入后端库表中保存。之后在前端页面中展示扫描的结果,包括组件风险的提示、匹配模式、修复建议等。
实施例一
本实施例提供一种基于信息匹配的组件风险检测方法,如图1所示,包括:
组件风险信息库构建过程:对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库。
风险组件扫描过程:获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,还可以包括组件发行方和组件版本,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
本发明实施例可跨越代码语言的限制,自动化定位、识别不同类型的风险组件。具体而言,本发明实施例内部设计了针对不同语言代码文件及该语言对应组件类型的分辨模式,因此可对不同类型的代码语言自动套用相应的检测策略。此外,本发明实施例在组件风险信息库的在构建时,便对不同类型组件进行了统一管理,不以代码语言类型来强调和分类组件,而是采用一致的归纳方式。当进行风险扫描的时候,本发明实施例就可以在依赖包检测方面无需依靠代码语言的识别,直接对组件进行信息匹配以检测组件的风险信息,这也使得多语言源代码包得以一次性完成风险检测和定级。
在一种可能的实现方式中,所述风险组件扫描过程中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息(比如组件名称、组件发行方、组件版本、路径以及指纹信息等,至少包括组件名称、路径以及指纹信息这三种信息)。
源代码解析功能提取用户上传源代码,将之从内部进行解析,若是用户上传非源代码,则提示报错重传。源代码从文件结构、代码语言等角度进行解析,将代码的详细结构与文件信息存入表1中。
组件详细信息解析功能根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件,之后根据代码结构、配置文件的结构、依赖包等提取组件发行方、版本、指纹等详细信息。再通过自动录入库表将上一步解析出的组件信息进行自动保存,加入表1中。
表1扫描结果库表结构
编号 1
压缩包名称 2022121356.zip
文件路径 F:\2022121356\pom.xml
文件名称 pom
组件发行方 xml-apis
组件名称 xml-apis
组件版本 1.3.04
组件指纹信息 318c75e1645f23ba6bbb6919c76c9782e4449141
检测时间 2022-12-1416:01:21
在一种可能的实现方式中,所述组件风险信息库构建过程通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
通过网络爬虫技术获取丰富的组件信息,并且对相应版本组件下已探明的风险等级加以收集、汇总。具体来说,本发明实施例通过对网页信息进行文本解析,找到同类网页中相同字段分布的规律,解析网页中的有价值信息,利用爬虫获取信息(例如组件发行方、组件名称、组件版本、指纹信息、组件风险信息等),对于组件指纹信息,还可通过获取组件链接将其下载并且进行本地指纹计算。由此,爬虫功能就可以将获取的信息组成结构化的组件字典,将这些字典汇总并入数据库,就形成了丰富的组件风险信息库,用以在组件信息匹配时进行比对,在后续通过爬虫继续获取、更新组件风险信息时进行统一归纳。具体流程参阅图2。
组件信息匹配功能通过综合运用多种匹配模式包括命名匹配、指纹匹配、代码语言匹配、组件类型匹配等,进行组件信息的精准匹配,将组件信息与组件风险信息库中内容进行匹配,之后将结果进行归纳展示在前端页面上。若是用户需要结果随时查阅,可以随时打开页面进行查询,为不同IP地址开放其各自的页面,仅能在自己的页面看到自己登记的项目。最后,对于每个项目,都提供了详细检测结果的导出功能,方便本地查询。
扫描结果库用于存放历史扫描结果,扫描结果与源代码解析、组件详细信息解析对接。
项目信息库用于在用户上传项目检测后,记录项目整体检测情况,比如表2。
表2项目信息库表结构表
组件风险信息库用于存储定时更新的组件风险漏洞,是一个庞大的已查明风险组件信息总结表,比如表3。
表3组件风险信息库表结构表
在一种可能的实现方式中,所述方法还包括内部代码扫描过程:当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
除去网络上的信息,内部研发的组件也可以予以检测并登记,每个字段说明如下:
编号:记录组件编号;
组件发行方:记录该组件的发行方信息;
组件名称:记录组件的具体名称信息;
组件版本:记录组件的版本号;
指纹信息:计算或者获取已知的组件指纹信息,并加以记录,用于信息校对和指纹匹配;
风险等级:记录组件的风险等级,对组件中包含的漏洞等级进行划分,分成三个风险等级,包括高风险、中风险、低风险三个等级;
组件详情:记录组件的详细信息,例如用途、使用范围等等;
修复建议:记录组件的修复建议,对于不同的组件给出具体详细的修复建议,开发者可根据此修复建议进行组件的修复,例如更新、修复漏洞等,完成最终修复组件风险、填补安全隐患的目的。
在一具体实施例中,工作流程如下:
(一)风险组件扫描前台工作流程,如图3所示:
步骤1:需检测代码的项目人员打开自助风险检测页面进行信息登记填写;
步骤2:项目人员上传代码包,程序会进行自动解析并开始后台组件检测;
步骤3:等待网页给出扫描完成的提示;
步骤4:待扫描完成后,项目人员可以打开组件风险检测的详情页面进行扫描结果的详细查看;
步骤5:组件扫描结果提供了组件版本、风险信息、修复建议等众多信息,项目人员可根据这些信息对风险组件进行下一步的修复、更新等操作。
(二)风险组件扫描后台工作流程,如图4所示:
步骤1:后台循环检测源代码上传情况;
步骤2:若有多个项目上传,并发执行检测;
步骤3:解析源代码包,获得所有文件信息;
步骤4:检测所有文件信息,包括各个语言的依赖控制文件、代码中包含的依赖包;
步骤5:提取各类组件的详细信息,包括组件发行方、版本、路径、计算指纹信息;
步骤6:风险组件信息自动录入数据库;
步骤6.1:清除解压的所有文件;
步骤7:数据库后台进行指纹、版本信息和组件信息库中信息进行匹配;
步骤8:将匹配结果呈现在组件检测详情界面;
步骤9:根据结果中的组件详细信息、修复建议等进行风险组件的修复。
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
在本实施例中提供了一种基于信息匹配的组件风险检测装置,如图5所示,包括:
组件风险信息库构建模块:用于对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;
风险组件扫描模块:用于获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
在一种可能的实现方式中,所述风险组件扫描模块中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息。
在一种可能的实现方式中,所述组件风险信息库构建模块通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
在一种可能的实现方式中,还包括:内部代码扫描模块:用于当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图6所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图7所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的计算机可读存储介质为实施本申请实施例一中方法所采用的计算机可读存储介质,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的计算机可读存储介质的具体实施方式以及其各种变化形式,所以在此对于该计算机可读存储介质如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的计算机可读存储介质,都属于本申请所欲保护的范围。
本申请实施例提供了一种基于信息匹配的组件风险检测方法,通过该方法能够精确、快速的查找系统存在的风险组件。通过可自定义的爬虫快速适配多个开源组件信息发布方,自动爬取、建立组件风险信息库,搜集了网络资源中大量且完备的风险组件信息,加以利用和整合,建立较为完备的风险信息库,为风险信息进行进一步的甄别奠定了基础。跨越代码语言的限制,自动化定位、识别不同类型的风险组件,从而可以同时检测带有不同语言的代码项目。用户通过上传源代码文件进行风险组件的检测,从而得到文件的所有组件进而完成所有风险组件的预警。通过文件名匹配、指纹匹配、代码语言匹配等多种匹配模式提高组件风险分析的准确性,同时也扩大了其可分析的范围。对于未开源的内部定义组件,通过并入内部代码扫描系统,探析内部漏洞,存档至组件风险信息库,多次扫描可分析漏洞的改动与修复,并且给予项目组反馈与预警。能够支持并发扫描多个源代码文件,增强了大批量需求时候的处理性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (10)

1.一种基于信息匹配的组件风险检测方法,其特征在于,包括:
组件风险信息库构建过程:对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;
风险组件扫描过程:获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
2.根据权利要求1所述的方法,其特征在于,所述风险组件扫描过程中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息。
3.根据权利要求1或2所述的方法,其特征在于:所述组件风险信息库构建过程通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
4.根据权利要求1所述的方法,其特征在于,还包括:内部代码扫描过程:当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
5.一种基于信息匹配的组件风险检测装置,其特征在于,包括:
组件风险信息库构建模块:用于对网页信息进行文本解析获取组件信息,所述组件信息至少包括组件发行方、组件名称、组件版本以及指纹信息;将获取的组件信息构建结构化组件信息字典,将所述组件信息字典汇总并入组件风险数据库;
风险组件扫描模块:用于获取上传的待检测源代码包,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,至少包括组件名称、路径以及指纹信息,将提取出的该源代码包中所有组件的详细信息与组件风险数据库综合运用多种匹配模式进行匹配得到风险组件匹配结果,显示并存储该结果。
6.根据权利要求5所述的装置,其特征在于:所述风险组件扫描模块中,建立针对不同语言代码文件及该语言对应组件类型的分辨模式,解析并提取各类组件的详细信息,具体包括:
将待检测源代码包从文件结构、代码语言角度进行解析,得到文件信息与文件结构;然后根据源代码解析的结果进行依赖组件的进一步解析,区分出不同代码语言的组件;最后根据代码结构、配置文件的结构、依赖包提取各类组件的详细信息。
7.根据权利要求5或6所述的装置,其特征在于:所述组件风险信息库构建模块通过爬虫技术获取组件信息,且在获取到新的组件信息时对组件风险信息库进行更新。
8.根据权利要求5所述的装置,其特征在于,还包括:内部代码扫描模块:用于当待检测源代码包为内部定义组件时,探析内部漏洞,然后存档至所述组件风险信息库,多次扫描可分析内部漏洞的改动与修复,并且给予项目组反馈与预警。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4任一项所述的方法。
CN202310315326.2A 2023-03-28 2023-03-28 基于信息匹配的组件风险检测方法、装置、设备和介质 Pending CN116561756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310315326.2A CN116561756A (zh) 2023-03-28 2023-03-28 基于信息匹配的组件风险检测方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310315326.2A CN116561756A (zh) 2023-03-28 2023-03-28 基于信息匹配的组件风险检测方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN116561756A true CN116561756A (zh) 2023-08-08

Family

ID=87495447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310315326.2A Pending CN116561756A (zh) 2023-03-28 2023-03-28 基于信息匹配的组件风险检测方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116561756A (zh)

Similar Documents

Publication Publication Date Title
US11221832B2 (en) Pruning engine
CN111459799B (zh) 一种基于Github的软件缺陷检测模型建立、检测方法及系统
US7340475B2 (en) Evaluating dynamic expressions in a modeling application
EP3695310A1 (en) Blackbox matching engine
KR101751388B1 (ko) 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법
CN107608732B (zh) 一种基于bug知识图谱的bug搜索定位方法
CN107967208A (zh) 一种基于深度神经网络的Python资源敏感缺陷代码检测方法
Alrubaye et al. On the use of information retrieval to automate the detection of third-party java library migration at the method level
CN104520871A (zh) 漏洞矢量信息分析
CN111181805B (zh) 一种基于测试用例的微服务测试挡板生成方法及系统
CN115033894B (zh) 一种基于知识图谱的软件组件供应链安全检测方法及装置
CN112733156A (zh) 基于代码属性图的软件脆弱性智能检测方法、系统及介质
CN110059006A (zh) 代码审计方法及装置
CN105122208A (zh) 源程序分析系统、源程序分析方法和记录有程序的非瞬时记录介质
CN103955429B (zh) 确定回归测试范围的方法及装置
CN108090234A (zh) 一种面向软件缺陷的信息网络自动构建方法
CN108286972B (zh) 导航电子地图数据的智能查错方法和装置及混合导航系统
CN110633290A (zh) 一种sql语句分析方法及分析装置
CN114676231A (zh) 一种目标信息检测方法、设备和介质
Rajbahadur et al. Pitfalls analyzer: quality control for model-driven data science pipelines
CN116561756A (zh) 基于信息匹配的组件风险检测方法、装置、设备和介质
Aung et al. Interactive traceability links visualization using hierarchical trace map
CN115391230A (zh) 一种测试脚本生成、渗透测试方法、装置、设备及介质
Zhao et al. Knowledge-based version incompatibility detection for deep learning
CN112464237B (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