CN116305167A - 开源组件安全漏洞处理方法和装置 - Google Patents

开源组件安全漏洞处理方法和装置 Download PDF

Info

Publication number
CN116305167A
CN116305167A CN202310433230.6A CN202310433230A CN116305167A CN 116305167 A CN116305167 A CN 116305167A CN 202310433230 A CN202310433230 A CN 202310433230A CN 116305167 A CN116305167 A CN 116305167A
Authority
CN
China
Prior art keywords
open source
vulnerability
source component
processed
dependency tree
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
CN202310433230.6A
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310433230.6A priority Critical patent/CN116305167A/zh
Publication of CN116305167A publication Critical patent/CN116305167A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种开源组件安全漏洞处理方法和装置,涉及计算机技术领域,方法包括:扫描项目代码目录获取项目的开源组件信息;从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息;将开源组件信息和开源组件漏洞舆情信息进行比对,获得比对结果一致的待处理开源组件;基于待处理开源组件的漏洞影响依赖树来确定待处理开源组件的漏洞修复优先度;基于漏洞修复优先度修复待处理开源组件的安全漏洞。本发明通过漏洞依赖树来确定漏洞修复优先度,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。通过数学计算结果评估开源组件是否存在潜在的漏洞风险,使得漏洞确认结果更加的精准,极大的提高了开源组件升级及管控的效率。

Description

开源组件安全漏洞处理方法和装置
技术领域
本发明涉及计算机技术领域,可用于金融领域,尤其涉及一种开源组件安全漏洞处理方法和装置。
背景技术
随着互联网金融的兴起,开源组件在日常的开发应用中越来越广泛,开源组件是一类可应用于软件应用程序开发的第三方组件,它具有开放性、多元性和便捷性的特点。开发人员基于开源组件来开发软件应用程序可减少开发时间,提高开发效率,能够更快速地开发出软件应用程序。基于开源组件的特点,开始将开源组件应用于金融科技领域,以便为金融企业的开发人员提供更为便利的服务。
软件安全漏洞指的是在软件功能、性能方面具体实现以及安全策略上的缺陷,攻击者利用安全漏洞,可以在未授权的情况下访问软件系统、读取业务数据甚至破坏软件正常运行,造成重大损失。随着业务架构的日趋复杂、开源社区的发展以及各种技术框架的引入,软件研发过程中对开源软件的使用量大幅增加,相应地,由开源软件引入的安全漏洞也频繁出现。由于开源软件的通用性,使得攻击者利用开源漏洞的成本也在降低,安全形势日趋严峻。
目前对于开源组件安全漏洞的处理方法为:由安全扫描工具对开源组件漏洞进行周期性扫描,一旦涉及到相关应用漏洞版本则立刻通知应用开发人员进行人工确认是否需要升级修复开源组件漏洞。对于开源组件的漏洞利用难度也没有一套系统的评估机制,完全依赖开发人员人工确认处理。对于需要升级修复的开源组件漏洞,也需要开发人员自发进行版本升级,没有统一的开源组件漏洞升级管理平台。目前的开源组件漏洞确认方式,难以精准的确认项目是否可能受到潜在的开源组件漏洞威胁的影响、开源组件的受到漏洞的影响程度也没有一个判定标准,完全由开发人员人工进行评估,极大的增加了开发人员的工作量,同时也降低开源组件的漏洞升级修复工作的精确性。
发明内容
有鉴于此,本发明提供一种开源组件安全漏洞处理方法和装置,以解决上述提及的至少一个问题。
为了实现上述目的,本发明采用以下方案:
根据本发明的第一方面,提供一种开源组件安全漏洞处理方法,所述方法包括:扫描项目代码目录获取项目的开源组件信息;从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息;将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件;基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度;基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
作为本发明的一个实施例,上述方法中扫描项目代码目录获取项目的开源组件信息包括:利用持续化集成工具对接代码仓库,实现扫描项目代码目录获取项目的开源组件信息。
作为本发明的一个实施例,上述方法中将所述开源组件信息和所述开源组件漏洞舆情信息进行比对包括:将所述开源组件信息及所述开源组件漏洞舆情信中开源组件的名称及版本号进行比对。
作为本发明的一个实施例,上述方法中获得比对结果一致的具有安全漏洞的待处理开源组件之后,所述方法还包括:提取所述待处理开源组件的依赖树建立信息;基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树。
作为本发明的一个实施例,上述方法中基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树包括:以所述待处理开源组件的名称作为漏洞影响依赖树的根节点;基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点。
作为本发明的一个实施例,上述方法中基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点包括:判断所述待处理开源组件是否为互联网应用,若为互联网应用则在根节点下建立左侧第一层分支节点,若为内网应用则在根节点下建立右侧第一层分支节点,若既为互联网应用又为内网应用,则在根节点下建立左右两侧第一层分支节点;判断所述待处理开源组件是否存在父组件,若存在父组件则在所述第一层分支节点下建立左侧第二层分支节点,若不存在父组件则在所述第一层分支节点下建立右侧第二层分支节点;判断所述待处理开源组件在项目代码中所占比例是否大于开源组件均值比例,若大于,则在所述第二层分支节点下建立左侧第三层分支节点,若不大于,则在所述第二层分支节点下建立右侧第三层分支节点;判断所述待处理开源组件所存在的漏洞是否有公开的漏洞验证程序或漏洞利用程序,若有,则在所述第三层分支节点下建立左侧第四层分支节点,若没有,则结束漏洞影响依赖树的构建,并将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复;判断所述待处理开源组件所存在的漏洞的危害程度,若为高危等级,则在所述第四层分支节点下建立左侧第五层分支节点,并在所述第五层分支节点下建立左侧叶子节点;若为中危等级,则在所述第四层分支节点下建立左侧叶子节点;若为低危等级,则在所述第四层分支节点下建立右侧叶子节点。
作为本发明的一个实施例,上述方法中基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度包括:当所述漏洞影响依赖树具有一个左侧分支节点或叶子节点,给优先度值赋值1分,当所述漏洞影响依赖树具有一个右侧分支节点或叶子节点,给优先度值赋值0.5分;统计所述漏洞影响依赖树的优先度值总分;根据所述优先度值总分确定所述待处理开源组件的漏洞修复优先度。
根据本发明的第二方面,提供一种开源组件安全漏洞处理装置,所述装置包括:扫描单元,用于扫描项目代码目录获取项目的开源组件信息;舆情获取单元,用于从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息;比对单元,用于将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件;优先度确定单元,用于基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度;漏洞修复单元,用于基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
作为本发明的一个实施例,上述扫描单元具体用于:利用持续化集成工具对接代码仓库,实现扫描项目代码目录获取项目的开源组件信息。
作为本发明的一个实施例,上述比对单元具体用于:将所述开源组件信息及所述开源组件漏洞舆情信中开源组件的名称及版本号进行比对。
作为本发明的一个实施例,上述装置还包括:
提取单元,用于提取所述待处理开源组件的依赖树建立信息;
依赖树构建单元,用于基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树。
作为本发明的一个实施例,上述依赖树构建单元具体用于:以所述待处理开源组件的名称作为漏洞影响依赖树的根节点;基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点。
作为本发明的一个实施例,上述依赖树构建单元包括:
第一判断模块,用于判断所述待处理开源组件是否为互联网应用,若为互联网应用则在根节点下建立左侧第一层分支节点,若为内网应用则在根节点下建立右侧第一层分支节点,若既为互联网应用又为内网应用,则在根节点下建立左右两侧第一层分支节点;
第二判断模块,用于判断所述待处理开源组件是否存在父组件,若存在父组件则在所述第一层分支节点下建立左侧第二层分支节点,若不存在父组件则在所述第一层分支节点下建立右侧第二层分支节点;
第三判断模块,用于判断所述待处理开源组件在项目代码中所占比例是否大于开源组件均值比例,若大于,则在所述第二层分支节点下建立左侧第三层分支节点,若不大于,则在所述第二层分支节点下建立右侧第三层分支节点;
第四判断模块,用于判断所述待处理开源组件所存在的漏洞是否有公开的漏洞验证程序或漏洞利用程序,若有,则在所述第三层分支节点下建立左侧第四层分支节点,若没有,则结束漏洞影响依赖树的构建,并将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复;
第五判断模块,用于判断所述待处理开源组件所存在的漏洞的危害程度,若为高危等级,则在所述第四层分支节点下建立左侧第五层分支节点,并在所述第五层分支节点下建立左侧叶子节点;若为中危等级,则在所述第四层分支节点下建立左侧叶子节点;若为低危等级,则在所述第四层分支节点下建立右侧叶子节点。
作为本发明的一个实施例,上述优先度确定单元包括:
赋值模块,用于当所述漏洞影响依赖树具有一个左侧分支节点或叶子节点时,给优先度值赋值1分,当所述漏洞影响依赖树具有一个右侧分支节点或叶子节点时,给优先度值赋值0.5分;
统计模块,用于统计所述漏洞影响依赖树的优先度值总分;
优先度确定模块,用于根据所述优先度值总分确定所述待处理开源组件的漏洞修复优先度。
根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
由上述技术方案可知,本发明提供的开源组件安全漏洞处理方法和装置,以天为周期实时更新外界漏洞舆情信息,一旦出现新的舆情漏洞,可以在第一时间获取感知并完成漏洞修复,增强了系统的抗攻击性;另外本发明通过漏洞依赖树来确定漏洞修复优先度,漏洞依赖树采取二叉树的模式,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。而且各因素相互关联,通过数学计算结果评估开源组件是否存在潜在的漏洞风险,使得漏洞确认结果更加的精准,避免开发人员陷入繁杂的安全治理及安全确认工作中,减少了开发人员进行单独对漏洞组件升级修复的成本,极大的提高了开源组件升级及管控的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请实施例提供的一种开源组件安全漏洞处理方法的流程示意图;
图2是本申请另一实施例提供的一种开源组件安全漏洞处理方法的流程示意图;
图3是本申请实施例提供的漏洞影响依赖树的构建流程示意图;
图4是本申请实施例提供的确定漏洞修复优先度的流程示意图;
图5是本申请实施例提供的一种开源组件的漏洞影响依赖树的示意图;
图6是本申请实施例提供的一种开源组件安全漏洞处理装置的结构示意图;
图7是本申请另一实施例提供的一种开源组件安全漏洞处理装置的结构示意图;
图8是本申请实施例提供的依赖树构建单元的结构示意图;
图9是本申请实施例提供的优先度确定单元的结构示意图;
图10是本申请实施例提供的电子设备的系统构成示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本申请中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。本申请实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等经过客户授权同意的。
如图1所示为本申请实施例提供的一种开源组件安全漏洞处理方法的流程示意图,该方法包括如下步骤:
步骤S101:扫描项目代码目录获取项目的开源组件信息。
每一个软件项目都有一项目代码目录,通过扫描构建好的项目代码目录可以获取该项目代码中使用的全部开源组件的信息,这些信息包括开源组件的名称、版本号、所属应用名称、父组件信息、子组件信息、是否联网应用等等。在收集到这些信息后,可以名称或版本号,或者它们的组合为主键,将所有信息整合后存入开源组件信息数据库中。
优选的,本实施例可以通过利用持续化集成工具对接代码仓库(比如GitLab),来实现扫描项目代码目录获取项目的开源组件信息。从而可以实现代码的自动化扫描以及开源组件信息的自动化获得。
步骤S102:从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息。
比如可以从公共漏洞和暴露(Common Vulnerabilities and Exposures,CVE)、国家信息安全漏洞库(China National Vulnerability Database of InformationSecurity,CNNVD)、国家信息安全漏洞共享平台(China National VulnerabilityDatabase,CNVD)等漏洞披露平台获取前一日发布的开源组件漏洞舆情信息。该开源组件漏洞舆情信息包括但不限于:漏洞编号、危害等级、发布时间、漏洞简介、漏洞公告等,这些信息中必然包含具有漏洞的开源组件的名称及版本号信息。在获取到上述舆情信息后,可以名称或版本号,或者它们的组合为主键,将所有信息整合后存入漏洞舆情数据库中。
优选的,由于上述开源组件信息数据库及漏洞舆情数据库中的数据涉及大量应用项目的敏感信息,一旦此类信息遭到窃取或者破坏将对系统带来严重的影响,因此可以其采取同态加密算法进行加密后存储。
步骤S103:将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件。
优选的,可以通过将开源组件信息中的名称和版本号与开源组件漏洞舆情信息中的名称和版本号进行比对,比对结果一致就说明该开源组件具有安全漏洞,因此该开源组件就被标记为待处理开源组件。
步骤S104:基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度。
在本实施例中,漏洞影响依赖树具体为一二叉树,其对开源组件漏洞影响因素进行二叉树的建模,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。
在本实施例中,漏洞修复优先度一方面可以通过数值来表示,数值越高,优先度越高,然后按照优先度高低进行漏洞修复处理。另一方面,本实施例也可以将优先度进行分级,分为高优先度、中优先度和低优先度:当为高优先度时,需要优先对该存在安全漏洞的开源组件进行紧急升级修复;当为中优先度时,需要对该存在漏洞的开源组件进行排期修复;当为低优先度时,则可先对该存在漏洞的开源组件保持关注并等待更多细节披露。当然,本实施例也可以结合上述数值和分级两种方式,根据数值来进行分级,再基于分级进行响应的处理。
步骤S105:基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
由上述技术方案可知,本发明提供的开源组件安全漏洞处理方法,以天为周期实时更新外界漏洞舆情信息,一旦出现新的舆情漏洞,可以在第一时间获取感知并完成漏洞修复,增强了系统的抗攻击性;另外本发明对开源组件漏洞影响因素进行二叉树的建模的模式,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。而且各因素相互关联,通过数学计算结果评估开源组件是否存在潜在的漏洞风险,使得漏洞确认结果更加的精准,避免开发人员陷入繁杂的安全治理及安全确认工作中,减少了开发人员进行单独对漏洞组件升级修复的成本,极大的提高了开源组件升级及管控的效率。
如图2所示为本申请另一实施例提供的一种开源组件安全漏洞处理方法的流程示意图,该方法包括如下步骤:
步骤S201:利用持续化集成工具对接代码仓库,实现扫描项目代码目录获取项目的开源组件信息。
步骤S202:从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息。
步骤S203:将所述开源组件信息及所述开源组件漏洞舆情信中开源组件的名称及版本号进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件。
步骤S204:提取所述待处理开源组件的依赖树建立信息。
这里的依赖树建立信息是对开源组件漏洞的影响因素,其包括但不限于开源组件的名称、所属应用名称、版本号、父组件信息、是否为互联网应用、开源组件代码占比、是否有公开的漏洞验证程序(Proof of Concept,POC)或漏洞利用程序(Exploit,EXP)、漏洞危害程度等等。
步骤S205:基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树。
本步骤即依据依赖树建立信息构建二叉树的过程,二叉树的节点包括根节点、分支节点和叶节点,因此本实施例中具体可以将处理开源组件的名称作为漏洞影响依赖树的根节点,然后基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点。
进一步优选的,上述基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点进一步可以包括如图3所示的子步骤:
步骤S2051:判断所述待处理开源组件是否为互联网应用,若为互联网应用则在根节点下建立左侧第一层分支节点,若为内网应用则在根节点下建立右侧第一层分支节点,若既为互联网应用又为内网应用,则在根节点下建立左右两侧第一层分支节点。
在本实施例中,将是否为互联网应用作为次根节点,由于该属性是存在既为互联网应用又为内网应用的情况,因此适合作为次根节点。然后以该次根节点继续生成后续的分支节点和最后的叶子节点。
步骤S2052:判断所述待处理开源组件是否存在父组件,若存在父组件则在所述第一层分支节点下建立左侧第二层分支节点,若不存在父组件则在所述第一层分支节点下建立右侧第二层分支节点。
如果该开源组件有父组件,则说明该开源组件是项目的间接引入组件;如果该开源组件没有父组件,则说明该开源组件是项目的直接引入组件。示例性地,针对开源组件的父组件信息,比如项目存在有开源组件A和开源组件B,但该开源组件A需要调用外部的开源组件C,而开源组件B不需要调用外部的开源组件,因此开源组件A为开源组件C的父组件,则开源组件A和开源组件B为项目的直接引入组件,开源组件C为项目的间接引入组件。
步骤S2053:判断所述待处理开源组件在项目代码中所占比例是否大于开源组件均值比例,若大于,则在所述第二层分支节点下建立左侧第三层分支节点,若不大于,则在所述第二层分支节点下建立右侧第三层分支节点。
假设此项目共有M个开源组件,则每个开源组件在总体开源组件的占比为1/M,此开源组件在代码项目被引用的次数P,在此代码项目总体的开源组件引入次数为Q,则开源组件均值比例为P/Q,现就1/M与P/Q进行比较,判断此开源组件是为高频引入开源组件还是低频引入开源组件。若1/M大于P/Q,则为高频引入开源组件,在左侧建立第三层分支节点,若1/M不大于P/Q,则为低频引入开源组件,在右侧建立第三层分支节点。
步骤S2054:判断所述待处理开源组件所存在的漏洞是否有公开的漏洞验证程序或漏洞利用程序,若有,则在所述第三层分支节点下建立左侧第四层分支节点,若没有,则结束漏洞影响依赖树的构建,并将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复。
若漏洞具有公开的POC或EXP,则对于应用来说,认为其遭受开源组件攻击成功的概率较大,反之则认为其不容易遭受攻击,因此可以将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复。
另外优选的,如果开源组件所存在的漏洞有公开的POC或EXP,但能确定攻击者不能远程利用漏洞攻击代码项目所在服务器,而只能利用漏洞直接在本地进行攻击该本地服务器,如该漏洞可在利用本地服务器的账号密码进行远程登录该本地服务器,并利用漏洞直接在本地进行攻击该本地服务器,或者可以通过利用项目所在本地服务器的账号密码进行本地登录该本地服务器,并利用该漏洞直接在本地进行攻击该本地服务器,这时可以认为仅内网应用会受到此开源漏洞影响,而对于互联网应用可认为不会遭受此种漏洞情况的影响。因此仅需在内网应用的下方节点建立左侧分支节点,而互联网应用的下方相应节点处无需再建立分支节点。
步骤S2055:判断所述待处理开源组件所存在的漏洞的危害程度,若为高危等级,则在所述第四层分支节点下建立左侧第五层分支节点,并在所述第五层分支节点下建立左侧叶子节点;若为中危等级,则在所述第四层分支节点下建立左侧叶子节点;若为低危等级,则在所述第四层分支节点下建立右侧叶子节点。
在本实施例中,将开源组件所存在的漏洞的危害程度分为高危等级、中危等级和低危等级三个等级,由于危害程度是本实施例的最后一次判断,因此最后建立的节点为叶子节点。其中:
a)、高危等级:如果漏洞可造成部署该代码项目的服务器中的命令执行、权限提升(比如修改管理使用权限,将低权限修改为高权限等)或者用户敏感数据泄露,则划入高危等级,此时对于互联网应用开源组件和内网应用开源组件都在其左侧连续建立两个次根节点,即一个分支节点和该分支节点下的一个叶子节点。
b)、中危等级:如果漏洞造成服务不可用,即:使得计算机或网络无法提供正常的服务,比如DOS攻击漏洞和DDOS攻击漏洞。则对于互联网应用开源组件和内网应用开源组件都在其左侧建立一个次根节点,即一个叶子节点。
c)、低危等级:其它对系统可用性无特别严重影响的漏洞,则可认为此开源组件的漏洞影响情况暂时可控,则建立一个右次根节点,即一个叶子节点。
步骤S206:基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度。
优选的,如图4所示,本实施例中本步骤具体可以包括:
步骤S2061:当所述漏洞影响依赖树具有一个左侧分支节点或叶子节点,给优先度值赋值1分,当所述漏洞影响依赖树具有一个右侧分支节点或叶子节点,给优先度值赋值0.5分。
由上述步骤S2051-S2055的描述可知,左侧分支节点表示漏洞对于应用的影响较大,而右侧分支节点表示漏洞对于应用的影响较小,因此优选度值左侧的分值设置会比右侧高,本实施例也并不限定上述分值的设置,而仅是较优的选择,本领域技术人员也可以根据需要进行其他分值的设定,仅需要保证左侧分支节点分值高于右侧分支节点即可。
步骤S2062:统计所述漏洞影响依赖树的优先度值总分。
如图5所示为本实施例提供的一种开源组件的漏洞影响依赖树的示意图,由图5可见,该开源组件既用于互联网应用,又用于内网应用,其最后得到的优先度值总分为:1+0.5+1+1+0.5+0.5+1+1+1+1=8.5分。
步骤S2063:根据所述优先度值总分确定所述待处理开源组件的漏洞修复优先度。
在本实施例中,比如可以将优先度值总分划分为几个区间,分成A、B、C三级:
A、若8.5≤x≤11.5,需要优先对该存在漏洞的开源组件进行紧急升级修复。
B、若5.5<x<8.5,需要对该存在漏洞的开源组件进行排期修复。
C、若1.5≤x≤5.5,可先对该存在漏洞的开源组件保持关注并等待更多细节披露。
步骤S207:基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
具体来说,根据优先度值总分落入上述哪个空间,按照对应的处理措施进行漏洞的修复处理。
当判定项目应用所属的开源组件优先度值位于A区间需要紧急修复时,则立刻通过开源组件升级修复模块的应急响应模块,发送紧急漏洞修复邮件至此开源组件的开发使用人员。对于需要紧急修复的升级组件,需要在7天内完成开源组件漏洞升级及修复。(由于应用运行环境已经部署了防火墙、天眼、WAF、HIPS等安全防护功能平台,此开源组件被一次性利用成功的可能性暂时可控。建议对于需要紧急漏洞修复的开源组件,为缓解开发人员对于开源组件漏洞升级的任务量压力,建议7天内完成漏洞升级修复即可。)
具体操作为:由开源组件升级修复模块的应急响应模块引入此漏洞组件最新版本无漏洞的开源组件,由此模块的漏洞升级下发模块对有漏洞的开源组件进行统一组件下发升级。为了保障系统的高可用性,在进行开源组件下发升级时,可以采用主备园区下发或灰度下发,即对于涉及需紧急修复的开源组件,可采用20%、30%、50%的比例对全量开源组件进行修复。此种灰度漏洞修复方法优点如下:可减轻开发升级投产的压力、对于组件升级所产生的影响进行可控,万一出现由于组件升级造成的系统不可用,也可以进行灵活切换回退。
当判定项目应用所属的开源组件优先度值位于B区间需要排期修复时,则立刻通过开源组件升级修复模块的应急响应模块,发送紧急漏洞修复邮件至此开源组件的开发使用人员,对于需要排期修复的升级组件,需要在30天内完成开源组件漏洞升级及修复。
当判定项目应用所属的开源组件优先度值位于C区间需要对开源组件保持关注并等待更多细节披露时,说明此开源组件被利用的可能性较小,为减轻开发人员升级修复漏洞的压力,可认为此开源组件即使存在漏洞舆情信息,但是实际对应用项目无法造成实际影响或者利用难度较大。或者一旦遭受漏洞攻击,造成的漏洞影响风险可控。则无需通知开源组件的开发使用人员,对此开源组件保持关注即可,若后续有保持关注并等待更多细节披露,若其对应用项目造成的漏洞危害升级,则需要对此开源组件经过再次评估后,进一步对漏洞修复时效要求进行评估。
由上述技术方案可知,本发明提供的开源组件安全漏洞处理方法,以天为周期实时更新外界漏洞舆情信息,一旦出现新的舆情漏洞,可以在第一时间获取感知并完成漏洞修复,增强了系统的抗攻击性;另外本发明对开源组件漏洞影响因素进行二叉树的建模的模式,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。而且各因素相互关联,通过数学计算结果评估开源组件是否存在潜在的漏洞风险,使得漏洞确认结果更加的精准,避免开发人员陷入繁杂的安全治理及安全确认工作中,减少了开发人员进行单独对漏洞组件升级修复的成本,极大的提高了开源组件升级及管控的效率。
如图6所示为本申请实施例提供的一种开源组件安全漏洞处理装置的结构示意图,该装置包括:扫描单元610、舆情获取单元620、比对单元630、优先度确定单元640和漏洞修复单元650,它们之间依次相连。
扫描单元610用于扫描项目代码目录获取项目的开源组件信。
舆情获取单元620用于从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息。
比对单元630用于将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件。
优先度确定单元640用于基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度。
漏洞修复单元650用于基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
优选的,本实施例中上述扫描单元610具体可以用于:利用持续化集成工具对接代码仓库,实现扫描项目代码目录获取项目的开源组件信息。
优选的,本实施例中上述比对单元630具体可以用于:将所述开源组件信息及所述开源组件漏洞舆情信中开源组件的名称及版本号进行比对。
优选的,如图7所示,本实施例中上述装置还包括提取单元660和依赖树构建单元670,其中:
提取单元660用于提取所述待处理开源组件的依赖树建立信息。
依赖树构建单元670用于基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树。
优选的,本实施例中上述依赖树构建单元670具体用于:以所述待处理开源组件的名称作为漏洞影响依赖树的根节点;基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点。
优选的,如图8所示,本实施例中上述依赖树构建单元670进一步可以包括:
第一判断模块671,用于判断所述待处理开源组件是否为互联网应用,若为互联网应用则在根节点下建立左侧第一层分支节点,若为内网应用则在根节点下建立右侧第一层分支节点,若既为互联网应用又为内网应用,则在根节点下建立左右两侧第一层分支节点;
第二判断模块672,用于判断所述待处理开源组件是否存在父组件,若存在父组件则在所述第一层分支节点下建立左侧第二层分支节点,若不存在父组件则在所述第一层分支节点下建立右侧第二层分支节点;
第三判断模块673,用于判断所述待处理开源组件在项目代码中所占比例是否大于开源组件均值比例,若大于,则在所述第二层分支节点下建立左侧第三层分支节点,若不大于,则在所述第二层分支节点下建立右侧第三层分支节点;
第四判断模块674,用于判断所述待处理开源组件所存在的漏洞是否有公开的漏洞验证程序或漏洞利用程序,若有,则在所述第三层分支节点下建立左侧第四层分支节点,若没有,则结束漏洞影响依赖树的构建,并将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复;
第五判断模块675,用于判断所述待处理开源组件所存在的漏洞的危害程度,若为高危等级,则在所述第四层分支节点下建立左侧第五层分支节点,并在所述第五层分支节点下建立左侧叶子节点;若为中危等级,则在所述第四层分支节点下建立左侧叶子节点;若为低危等级,则在所述第四层分支节点下建立右侧叶子节点。
优选的,如图9所示,本实施例中上述优先度确定单元640可以包括:
赋值模块641,用于当所述漏洞影响依赖树具有一个左侧分支节点或叶子节点时,给优先度值赋值1分,当所述漏洞影响依赖树具有一个右侧分支节点或叶子节点时,给优先度值赋值0.5分;
统计模块642,用于统计所述漏洞影响依赖树的优先度值总分;
优先度确定模块643,用于根据所述优先度值总分确定所述待处理开源组件的漏洞修复优先度。
由上述技术方案可知,本发明提供的开源组件安全漏洞处理装置,以天为周期实时更新外界漏洞舆情信息,一旦出现新的舆情漏洞,可以在第一时间获取感知并完成漏洞修复,增强了系统的抗攻击性;另外本发明对开源组件漏洞影响因素进行二叉树的建模的模式,可以直观的展示各个因素对开源组件可能遭受的漏洞攻击影响。而且各因素相互关联,通过数学计算结果评估开源组件是否存在潜在的漏洞风险,使得漏洞确认结果更加的精准,避免开发人员陷入繁杂的安全治理及安全确认工作中,减少了开发人员进行单独对漏洞组件升级修复的成本,极大的提高了开源组件升级及管控的效率。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述方法的计算机程序。
如图10所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理器130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图10中所示的所有部件;此外,电子设备600还可以包括图10中没有示出的部件,可以参考现有技术。
如图10所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种开源组件安全漏洞处理方法,其特征在于,所述方法包括:
扫描项目代码目录获取项目的开源组件信息;
从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息;
将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件;
基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度;
基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
2.如权利要求1所述的开源组件安全漏洞处理方法,其特征在于,所述扫描项目代码目录获取项目的开源组件信息包括:利用持续化集成工具对接代码仓库,实现扫描项目代码目录获取项目的开源组件信息。
3.如权利要求1所述的开源组件安全漏洞处理方法,其特征在于,所述的将所述开源组件信息和所述开源组件漏洞舆情信息进行比对包括:
将所述开源组件信息及所述开源组件漏洞舆情信中开源组件的名称及版本号进行比对。
4.如权利要求1所述的开源组件安全漏洞处理方法,其特征在于,所述获得比对结果一致的具有安全漏洞的待处理开源组件之后,所述方法还包括:
提取所述待处理开源组件的依赖树建立信息;
基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树。
5.如权利要求4所述的开源组件安全漏洞处理方法,其特征在于,所述的基于所述依赖树建立信息构建所述待处理开源组件的漏洞影响依赖树包括:
以所述待处理开源组件的名称作为漏洞影响依赖树的根节点;
基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点。
6.如权利要求5所述的开源组件安全漏洞处理方法,其特征在于,所述的基于依赖树建立信息中的各个信息构建漏洞影响依赖树的分支节点和叶子节点包括:
判断所述待处理开源组件是否为互联网应用,若为互联网应用则在根节点下建立左侧第一层分支节点,若为内网应用则在根节点下建立右侧第一层分支节点,若既为互联网应用又为内网应用,则在根节点下建立左右两侧第一层分支节点;
判断所述待处理开源组件是否存在父组件,若存在父组件则在所述第一层分支节点下建立左侧第二层分支节点,若不存在父组件则在所述第一层分支节点下建立右侧第二层分支节点;
判断所述待处理开源组件在项目代码中所占比例是否大于开源组件均值比例,若大于,则在所述第二层分支节点下建立左侧第三层分支节点,若不大于,则在所述第二层分支节点下建立右侧第三层分支节点;
判断所述待处理开源组件所存在的漏洞是否有公开的漏洞验证程序或漏洞利用程序,若有,则在所述第三层分支节点下建立左侧第四层分支节点,若没有,则结束漏洞影响依赖树的构建,并将所述处理开源组件的漏洞修复优先度设为最低,即暂不进行漏洞修复;
判断所述待处理开源组件所存在的漏洞的危害程度,若为高危等级,则在所述第四层分支节点下建立左侧第五层分支节点,并在所述第五层分支节点下建立左侧叶子节点;若为中危等级,则在所述第四层分支节点下建立左侧叶子节点;若为低危等级,则在所述第四层分支节点下建立右侧叶子节点。
7.如权利要求6所述的开源组件安全漏洞处理方法,其特征在于,所述的基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度包括:
当所述漏洞影响依赖树具有一个左侧分支节点或叶子节点,给优先度值赋值1分,当所述漏洞影响依赖树具有一个右侧分支节点或叶子节点,给优先度值赋值0.5分;
统计所述漏洞影响依赖树的优先度值总分;
根据所述优先度值总分确定所述待处理开源组件的漏洞修复优先度。
8.一种开源组件安全漏洞处理装置,其特征在于,所述装置包括:
扫描单元,用于扫描项目代码目录获取项目的开源组件信息;
舆情获取单元,用于从漏洞披露平台获取前一日发布的开源组件漏洞舆情信息;
比对单元,用于将所述开源组件信息和所述开源组件漏洞舆情信息进行比对,获得比对结果一致的具有安全漏洞的待处理开源组件;
优先度确定单元,用于基于所述待处理开源组件的漏洞影响依赖树来确定所述待处理开源组件的漏洞修复优先度;
漏洞修复单元,用于基于所述漏洞修复优先度修复所述待处理开源组件的安全漏洞。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202310433230.6A 2023-04-21 2023-04-21 开源组件安全漏洞处理方法和装置 Pending CN116305167A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310433230.6A CN116305167A (zh) 2023-04-21 2023-04-21 开源组件安全漏洞处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310433230.6A CN116305167A (zh) 2023-04-21 2023-04-21 开源组件安全漏洞处理方法和装置

Publications (1)

Publication Number Publication Date
CN116305167A true CN116305167A (zh) 2023-06-23

Family

ID=86794296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310433230.6A Pending CN116305167A (zh) 2023-04-21 2023-04-21 开源组件安全漏洞处理方法和装置

Country Status (1)

Country Link
CN (1) CN116305167A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117201119A (zh) * 2023-09-07 2023-12-08 中移互联网有限公司 开源组件的风险识别方法、装置及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117201119A (zh) * 2023-09-07 2023-12-08 中移互联网有限公司 开源组件的风险识别方法、装置及电子设备

Similar Documents

Publication Publication Date Title
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN102739868A (zh) 移动终端的丢失处理方法及系统
CN116305167A (zh) 开源组件安全漏洞处理方法和装置
CN110808839B (zh) 一种区块链异常数据的处理方法、装置、设备和介质
CN112187471A (zh) 基于区块链与智能合约的数据抄送方法、系统及介质
CN106203092A (zh) 一种拦截恶意程序关机的方法、装置及电子设备
US10177919B2 (en) Fuzzy hashes for code signing
CN113779562A (zh) 基于零信任的计算机病毒防护方法、装置、设备及介质
CN114253579A (zh) 一种基于白名单机制的软件更新方法、装置及介质
US10862831B2 (en) System, method, and computer program product providing end-to-end security of centrally accessible group membership information
CN114329622A (zh) 一种文件保护方法、验证方法、装置、设备和介质
CN117640154A (zh) 防御策略生成方法、装置、存储介质以及终端
CN112243007A (zh) 一种单用户登录的方法、设备、存储介质
CN108989298A (zh) 一种设备安全监控方法和装置
CN115238248A (zh) Sdk离线授权方法、装置、设备及介质
CN110661789B (zh) 地址重置方法、装置、设备及计算机可读存储介质
CN112948815A (zh) 基于哈希匹配的离线弱密码核查方法及装置
CN113763178A (zh) 一种多区块链跨链交易方法、装置、设备及可读存储介质
CN114039779A (zh) 一种安全接入网络的方法、装置、电子设备及存储介质
CN113256256A (zh) 一种工单预警方法、装置、设备及存储介质
CN112101810A (zh) 风险事件控制方法、装置及系统
CN114006701A (zh) 一种名单共享方法、装置、设备及存储介质
CN108764899B (zh) 基于云计算网络的数字资产管理方法、装置和存储设备
CN112883418A (zh) 数据库的表字段值保护方法及装置
CN111522563A (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