CN114996668B - 开源组件的处理方法、装置、设备及介质 - Google Patents
开源组件的处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114996668B CN114996668B CN202210773007.1A CN202210773007A CN114996668B CN 114996668 B CN114996668 B CN 114996668B CN 202210773007 A CN202210773007 A CN 202210773007A CN 114996668 B CN114996668 B CN 114996668B
- Authority
- CN
- China
- Prior art keywords
- evaluated
- open source
- security
- source component
- safety
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000011156 evaluation Methods 0.000 claims abstract description 178
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000013210 evaluation model Methods 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 84
- 238000000354 decomposition reaction Methods 0.000 claims description 37
- 238000004422 calculation algorithm Methods 0.000 claims description 27
- 230000008439 repair process Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000009960 carding Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 5
- 239000000758 substrate Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种开源组件的处理方法、装置、设备及介质,涉及互联网技术领域。该方法包括:获取待评估开源组件的多个待评估安全点;基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值;在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件;将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。根据本申请实施例,能够提升软件开发的安全性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种开源组件的处理方法、装置、设备及介质。
背景技术
软件开发是互联网技术领域不可或缺的技术流程。开源组件,即一类可应用于软件应用程序开发的第三方组件,其往往因具有开放性、多元性、便捷性等特点在软件开发过程中广泛使用。具体地,在软件开发的过程中,软件开发人员可以通过预先设置的开源组件进行软件开发来加快开发进程、降低开发成本等。因此,开源组件日益成为互联网技术研发的重要工作基础。
然而,由于开源组件往往因其来源于社区或者自研等原因导致其自身的安全性往往不可知、不可控,进而影响软件开发的安全性。
因此,如何提高软件开发安全性成为了亟待解决的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请提供一种开源组件的处理方法、装置、设备及介质,至少在一定程度上克服因开源组件安全性问题所导致的软件开发安全性较低的问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一个方面,提供了一种开源组件的处理方法,方法包括:
获取待评估开源组件的多个待评估安全点;
基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值;
在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件;
将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
在一个实施例中,基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值,具体包括:
基于多个待评估安全点,构成待评估开源组件的待评估安全点集合;
构建待评估开源组件的评价集合,其中,评价集合包括用于表征不同危险程度的多个评价值;
基于待评估安全点集合中各待评估安全点的模糊信息,构建待评估开源组件的模糊评价矩阵;
基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
在一个实施例中,基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值,具体包括:
基于模糊评价矩阵、评价集合以及矩阵分解算法模型,得到矩阵分解结果;
基于矩阵分解结果,得到安全值;
其中,矩阵分解算法模型表示为:
其中,P为矩阵分解结果,为模糊评价矩阵,为评价集合。
在一个实施例中,在基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值之前,方法还包括:
基于参考开源组件中多个待评估安全点各自的风险次数,确定多个待评估安全点的安全影响因子;
基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值,包括:
根据多个待评估安全点的安全影响因子,对模糊评价矩阵进行加权计算,得到加权模糊评价矩阵;
根据加权模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
在一个实施例中,获取待评估开源组件的多个待评估安全点,具体包括:
基于预设安全属性树对待评估开源组件进行安全点梳理,得到多个待评估安全点。
在一个实施例中,安全组件库包括相互隔离的多个安全组件子库,其中,每个安全组件子库对应一个安全等级;
将待评估开源组件添加至安全组件库,具体包括:
在多个安全组件子库对应的安全等级中,确定待评估开源组件所属安全等级;
将待评估开源组件添加至所属安全等级对应的安全组件子库。
在一个实施例中,多个待评估安全点包括待评估开源组件的多个安全漏洞;
获取待评估开源组件的多个待评估安全点,包括:
利用漏洞扫描工具对待评估开源组件进行漏洞扫描,得到待评估开源组件的多个安全漏洞。
在一个实施例中,多个待评估安全点包括至少一个评价维度各自的待评估安全点;
至少一个评价维度包括以下至少一者:
安全许可证维度,多个待评估安全点包括安全许可证规定的组件使用范围和/或组件使用条件;
支撑稳定性维度,多个待评估安全点包括待评估开源组件是否具有维护服务、待评估开源组件是否定期更新以及待评估开源组件的更新频率中的至少一者;
安全漏洞维度,多个待评估安全点包括漏洞数量、待评估开源组件存在的各个漏洞中的至少一者;
组件修复成本维度,多个待评估安全点包括待评估开源组件的修复成本,待评估开源组件的修复耗时。
在一个实施例中,在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件之前,方法还包括:
判断安全值是否小于预设安全阈值;
在判断安全值是否小于预设安全阈值之后,方法还包括:
在安全值大于或等于预设安全阈值的情况下,确定待评估开源组件不是安全开源组件;
对待评估开源组件的安全问题进行修复。
根据本申请的另一个方面,提供一种开源组件的处理装置,包括:
安全点获取模块,用于获取待评估开源组件的多个待评估安全点;
安全值计算模块,用于基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值;
安全组件判断模块,用于在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件;
组件处理模块,用于将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
根据本申请的又一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述的开源组件的处理方法。
根据本申请的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的开源组件的处理方法。
根据本申请的再一个方面,提供一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现上述的开源组件的处理方法。
本申请实施例所提供的开源组件的处理方法、装置、设备及介质,可以在软件开发之前,获取待评估开源组件的多个待评估点,并根据预先设置的模糊评价模型以对待评估开源组件进行模糊评价的方式来准确计算得到待评估开源组件的安全值。由于通过模糊评价方式计算得到的安全值能够准确衡量待评估开源组件的安全性,能够保证软件开发过程中能够从安全组件库获取得到符合安全要求的开源组件进行软件开发,从而保证了所开发软件的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种开源组件的处理场景的示意图;
图2示出本申请实施例中一种开源组件的处理方法流程图;
图3示出了本申请实施例所提供的一种示例性的安全属性树的结构示意图;
图4示出了本申请实施例提供的另一种开源组件的处理方法的流程示意图;
图5示出了本公开实施例提供的另一种开源组件的处理方法的流程示意图;
图6示出本申请实施例提供的一种开源组件的处理装置示意图;
图7示出本申请实施例中一种电子设备的结构框图;
图8示出本公开实施例中一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
在互联网技术领域中,软件开发是不可或缺的流程。在软件开发过程中,软件开发人员可以通过预先设置的开源组件进行软件开发来加快开发进程、降低开发成本等。因此,开源组件日益成为互联网技术研发的重要工作基础。
开源组件,即一类可应用于软件应用程序开发的第三方组件,其具有开放性、多元性、便捷性等特点,而在软件开发过程中广泛使用。
然而,由于开源组件一般来源于社区或者自研,其自身的安全性具有不可知、不可控的安全风险。比如,广泛应用的开源组件,其风险影响面往往更加不可估量,影响软件开发安全性。
比如,在软件供应链的具体场景中,随着软件供应链日趋复杂且链条过长,安全风险则会随着软件沟通盈利自上而下扩散。比如,当网络攻击行为渗透到开源组件的供应商时,则会导致使用该开源组件开发得到的软件的安全性也受到影响。
发明人意识到软件开发过程中开源组件安全的重要性,也意识到在软件开发过程中避免开源组件的随意使用、加强开源组件使用安全性很有必要。因此,如何通过提高开源组件的安全性来提高软件开发的安全性成为了亟待解决的问题。
基于此,本申请实施例提供了一种开源组件的处理方法、装置、设备及介质,可以通过模糊评价方式计算得到能够准确衡量待评估开源组件的安全性的安全值,从而能够保证软件开发过程中能够从安全组件库获取得到符合安全要求的开源组件进行软件开发,保证了所开发软件的安全性。
下面结合附图及实施例对本示例实施方式进行详细说明。
为了便于理解本申请实施例提供在开始详细说明本申请实施例的开源组件的处理方法、装置、设备及介质之前,本申请实施例的下述部分先对本申请实施例的开源组件的处理场景进行说明。
图1示出了本申请实施例提供的一种开源组件的处理场景的示意图。其中,为了便于示出,图1中的开源组件简称为组件。
如图1所示,可以利用开源组件的处理装置100对组件6和组件7进行处理。具体地,若开源组件的处理装置100确定组件6的安全值小于预设安全阈值,则可以确定组件6为安全开源组件。然后,将组件6添加至安全组件库200中。示例性地,安全组件库200中除了放置有组件6之外,还可以放置有其他安全组件,比如组件1-组件5。
当软件开发人员需要进行软件开发时,可以从安全组件库200的组件,比如组件1-组件6中选择合适的开源组件进行软件开发,由于安全组件库200中收录的均是已经确认其安全性的开源组件,可以保证所开发软件的安全性。
还需要说明的是,相较于在软件开发完成之后再进行软件安全性检测的技术方案,本申请实施例可以将组件安全检测的流程前置,在软件开发完成之后无需再进行安全检测,减少了后续过程的组件修复时间和人工修复成本,提高了软件开发效率。
在一些实施例中,若开源组件的处理装置100确定组件7的安全值大于或等于预设安全阈值,则可以确定组件7为非安全开源组件,或者确定其为风险开源组件,以及对组件7进行修复。
在通过开源组件的处理场景对本申请实施例提供的技术方案进行整体说明之后,接下来对依次对本申请实施例提供的开源组件的处理方法、装置、设备及介质依次进行说明。
首先,本申请实施例中提供了一种开源组件的处理方法,该方法可以由任意具备计算处理能力的电子设备执行,比如服务器、台式计算机等,对此不作限定。
图2示出本申请实施例中一种开源组件的处理方法流程图,如图2所示,本申请实施例中提供的开源组件的处理方法包括如下步骤S210至S240。
S210,获取待评估开源组件的多个待评估安全点。
对于待评估开源组件,其可以是需要进行安全评估的开源组件。
在一个实施例中,为了提高安全组件库的全面性,可以将未进行安全评测过的开源组件作为待评估开源组件。示例性地,可以将当前所有可用的开源组件作为待评估开源组件。
在另一个实施例中,为了保证安全组件库的可靠性,可以对安全组件库中的开源组件进行监测。在监测到安全检测触发事件时,可以将安全组件库中的开源组件作为待评估开源组件,以重新对其安全性进行评测。
其中,安全检测触发事件可以是能够影响到开源组件的使用安全性的事件。示例性地,安全检测触发事件可以包括以下至少一者:开源组件出现新的安全漏洞、开源组件的使用寿命即将耗尽,或者开源组件的开发者放弃该开源组件或者开源组件的开发者停止对开源组件进行支持维护。
通过本实施例,对于安全组件库中的开源组件,可以在监测到影响开源组件的安全性的事件时,重新对开源组件的安全性进行评测,从而能够实时检测到开源组件风险状态的变化,以及在开源组件产生风险时及时将其移出安全组件库,进而保证了安全组件库的可靠性。
在说明了待评估开源组件之后,接下来对待评估安全点进行说明。
待评估安全点,即可能会导致待评估开源组件产生安全风险的风险点。
在一些实施例中,为了保证评估的可靠性,多个待评估安全点包括至少一个评价维度各自的待评估安全点。
维度一,安全许可证维度。相应地,在安全许可证维度下,多个待评估安全点可以包括:安全许可证规定的组件使用范围,和/或组件使用条件。示例性地,安全许可证可以包括Apache(即一种由Apache软件基金会发布的自由软件许可证)、源自麻省理工学院的许可证(Massachusetts Institute of Technology,MIT)、源自伯克利软体散布授权条款的许可证(Berkeley Software Distribution,BSD)、通用性公开许可证(General PublicLicense,GPL)、较宽松公共许可证(Lesser General Public License,LGPL)、源自Mozilla小组的软件许可证(Mozilla Public License,MPL)、服务器端公共许可证(Server SidePublic License,SSPL)等,对此不作具体限定。
需要说明的是,待评估安全点还可以从安全许可证上获取的其他能够影响开源组件使用安全性的风险点,对此不作具体限定。
可选地,安全许可证维度的至少一个待评估安全点的具体获取步骤可以包括下述步骤A1。
步骤A1,利用预设的安全点梳理工具,基于待评估安全组件的安全许可证获取待评估安全点。
需要说明的是,还可以通过诸如人工提取等方式,从待评估安全组件的安全许可证中获取待评估安全点,对此不作具体限定。
维度二,支撑稳定性维度。相应地,在支撑稳定性维度下,多个待评估安全点包括待评估开源组件是否具有维护服务、待评估开源组件是否定期更新以及待评估开源组件的更新频率中的至少一者。
需要说明的是,待评估安全点还可以从支撑稳定性维度上获取的其他能够影响开源组件使用安全性的风险点,对此不作具体限定。
可选地,支撑稳定性维度下的至少一个待评估安全点的获取方式可以具体包括下述步骤A2。
步骤A2,通过人工查找的方式获取待评估开源组件在支撑稳定性维度下的至少一个待评估安全点。
需要说明的是,还可以通过其他方式获取支撑稳定性维度下的至少一个待评估安全点,对此不作具体限定。
维度三,安全漏洞维度。相应地,在安全漏洞维度下,多个待评估安全点包括漏洞数量、待评估开源组件存在的各个漏洞中的至少一者。示例性地,对于漏洞,其可以是待检测开源组件实际存在的具体漏洞。比如,经检测开源组件存在漏洞1和漏洞2,则可以将漏洞1和漏洞2分别作为一个待检测安全点。
需要说明的是,待评估安全点还可以从安全漏洞维度上获取的其他能够影响开源组件使用安全性的风险点,对此不作具体限定。
可选地,多个安全漏洞的获取方式可以具体包括下述步骤A3。
步骤A3,利用漏洞扫描工具对待评估开源组件进行漏洞扫描,得到待评估开源组件的多个安全漏洞。
需要说明的是,还可以通过其他方式获取待评估开源组件的安全漏洞,对此不作具体限定。
维度四,组件修复成本维度。相应地,在组件修复成本维度下,多个待评估安全点包括待评估开源组件的修复成本,待评估开源组件的修复耗时。
需要说明的是,待评估安全点还可以从修复成本维度上获取的其他能够影响开源组件使用安全性的风险点,对此不作具体限定。
可选地,组件修复成本维度下的至少一个待评估安全点的获取方式可以具体包括下述步骤A4。
步骤A4,通过人工查找的方式获取待评估开源组件在组件修复成本维度下的至少一个待评估安全点。
需要说明的是,还可以通过其他方式获取组件修复成本维度下的至少一个待评估安全点,对此不作具体限定。
通过本申请实施例,可以从多个维度对待评估开源组件的安全性进行评估,从而提高了评估的准确性及全面性。
在介绍了待评估安全点之后,接下来对S110的具体实施方式进行说明。
在一些实施例中,为了提高待评估安全点的获取效率,S110可以包括下述步骤B1。
步骤B1,基于预设安全属性树对待评估开源组件进行安全点梳理,得到多个待评估安全点。
对于安全属性树,其可以是基于开源组件的可评估安全点所构成的逻辑树结构。其中,可评估安全点可以是预先设置的、可以进行安全性评估的安全点。在一些实施例中,对于同一父节点下的多个子节点,其可以是一个评价维度下的多个可评估安全点。相应地,该父节点可以表示该评价维度。
示例性地,图3示出了本申请实施例所提供的一种示例性的安全属性树的结构示意图。如图3所示,开源组件所对应的根节点下的多个第一级子节点(比如节点31-34)表示开源组件的多个评价维度。比如,节点31表示安全许可证维度,节点32表示支撑稳定性维度,节点33表示安全漏洞维度,节点34表示组件维修成本维度。
以及,对于第一级子节点下的第二级子节点,其可以表示各评价维度下的待评估安全点。比如,对于节点31下的第二级子节点(比如节点311-313),其可以表示安全许可证维度下的多个待评估安全点。又比如,对于节点32下的第二级子节点(节点321-322),其可以表示支撑稳定性维度下的多个待评估安全点。再比如,对于节点33下的第二级子节点(节点331-33k+1),其可以表示安全漏洞维度下的多个待评估安全点。其中,k表示开源组件的安全漏洞的数量,k可以为大于或等于1的任意整数。再比如,对于节点34下的第二级子节点(节点341-342),其可以表示组件修复成本维度下的多个待评估安全点。
对于步骤B1,在获取安全属性树之后,可以逐个维度进行安全点梳理,比如在第一级子节点31下的多个可评估安全点中进行安全点梳理。以及,在完成对第一级子节点31下的可评估安全点梳理之后,可以继续对第一级子节点32下的多个可评估安全点中进行安全点梳理,直到完成对最后一个第一级子节点(比如节点34)下的多个可评估安全点的梳理,得到待评估开源组件的多个待评估安全点。
需要说明的,在S210还可以以其他方式获取待评估开源组件的多个待评估安全点,对此不作具体限定。
S220,基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值。
对于模糊评价模型,其可以是利用模糊数学的方法,对受到多个待评估安全点的安全影响的待评估开源组件,按照一定的评判标准,给出待评估开源组件的安全风险概率。
在一些实施例中,可以先获取多个待评估安全点的模糊信息,然后基于模糊评价模型计算得到待评估开源组件的安全值。示例性地,待评估安全点的模糊信息可以是在进行模糊评价时需要用到的信息,比如可以是待评估安全点的安全风险值。其中,安全风险值可以用于评价待评估安全点的危险程度或者风险程度。
对于待评估开源组件的安全值,其用于评价待评估开源组件的风险程度。在一些实施例中,安全值可以与待评估开源组件的风险程度成正比、与安全程度成反比,即若待评估开源组件的安全值越小,则该待评估开源组件的安全风险程度越低,即该待评估开源组件的安全程度越高。在另一些实施例中,安全值可以与待评估开源组件的风险程度成反比、与安全程度成正比,即若待评估开源组件的安全值越小,则该待评估开源组件的安全风险程度越高,即该待评估开源组件的安全程度越低。
在介绍了S220中涉及的技术术语之后,接下来对S220的具体实施方式进行说明。
在一些实施例中,图4示出了本申请实施例提供的另一种开源组件的处理方法的流程示意图。图4与图2的不同之处在于,S220可以包括下述步骤S221至步骤S224。
S221,基于多个待评估安全点,构成待评估开源组件的待评估安全点集合。
示例性地,待评估开源组件的待评估安全点集合I可以表示为下述公式(1):
I={i1,…,im} (1)
其中,i1表示m个待评估安全点中的第1个待评估安全点,以此类推,im表示第m个待评估安全点。其中,m为大于或等于1的正整数。
S222,构建待评估开源组件的评价集合。其中,评价集合包括用于表征不同危险程度的多个评价值。示例性地,评价值的大小可以与危险程度成正比。相应地,安全值越低则开源组件的危险性越低。又一示例性地,评价值的大小可以与危险程度成反比。相应地,安全值越低则开源组件的危险性越高。
示例性地,待评估开源组件的评价集合E可以表示为下述公式(2):
E={e1,…,en} (2)
其中,e1表示n个评价值中的第1个评价值,以此类推,en表示第n个待评估安全点。其中,n为大于或等于1的正整数。示例性地,评价集合E可以为{1,3,5,7,9}。其中,安全对应的评价值为1、低危对应的评价值为3、中危对应的评价值为5、高危对应的评价值为7、超危对应的评价值为9。
需要说明的是,还可以根据实际情况和具体需求选择其他个数的评价值或者其他危险程度对应的评价值,以及还可以选择其他数值作为评价值,对此不作具体限定。
S223,基于待评估安全点集合中各待评估安全点的模糊信息,构建待评估开源组件的模糊评价矩阵。
对于模糊信息,其可以是在模糊评价中需要使用到的信息。示例性地,模糊信息可以是对各待评估安全点的安全风险的评价值。
示例性地,各待评估安全点的评价值,其可以是通过现有组件得到的。比如,对于安全漏洞维度下的各待评估安全点,其可以是通过漏洞扫描组件获取的。
又一示例性地,各评估安全点的评价值,其可以是由多名评估人员根据评价集合中的评价值对评估安全点的危险性进行评级,然后对多名评估人员的评级结果统计得到的。比如,对于安全许可证维度、支撑稳定性维度、组件修复成本维度下的各评估安全点的评价值可以是通过评估人员评估得到的。
在初步介绍了模糊信息之后,接下来对模糊评价矩阵进行说明。模糊评价矩阵可以是根据各待评估节点对评价结合中各评价值的隶属程度确定的。
示例性地,模糊评价矩阵可以表示为下述公式(3)
其中,矩阵中的元素rij可以表示第i个待评估安全点对评估集合中第j个评价值的隶属程度。其中,i可以是小于或等于m的任意正整数,j可以是小于或等于n的任意正整数。
在一个示例中,在获取任一待评估安全点的危险程度的评估值之后,可以根据隶属函数计算得到该评估值对评价集合中代表各危险程度的评价值的隶属程度。
S224,基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
在一个实施例中,S224可以包括下述步骤C1和步骤C2。
步骤C1,基于模糊评价矩阵、评价集合以及矩阵分解算法模型,得到矩阵分解结果。
其中,矩阵分解算法模型表示为下述公式(4)
相应地,矩阵分解结果P可以表示为(p1…pm)T。其中,pi满足下述公式(5):
步骤C2,基于矩阵分解结果,得到安全值。
在一个示例中,可以选取p1至pm的平均值等方式来确定安全值。
在另一个示例中,可以将p1至pm的和值确定为安全值。
需要说明的是,还可以根据其他具体情况来设置安全值,对此不作具体限定。
通过上述步骤S221至S224,由于矩阵分解算法可以通过隐含特征(latentfactor)联系待评估安全点和表征不同危险程度的评价值。基于待评估安全点的特点找出潜在的分类,然后对评价值进行自动聚类,划分到不同类别(安全开源组件或者非安全开源组件),从而提高了开源组件安全性评估的准确性。
在另一个实施例中,S224之前还可以包括步骤D1。
步骤D1,基于参考开源组件中多个待评估安全点各自的风险次数,确定多个待评估安全点的安全影响因子。
示例性地,风险次数可以是待评估安全点被异常攻击的次数。
示例性地,风险次数可以与安全影响因子成正比。也就是说,待评估安全点被异常攻击的次数越多,则安全影响因子越大。
步骤D2,根据多个待评估安全点的安全影响因子,对模糊评价矩阵进行加权计算,得到加权模糊评价矩阵。
示例性地,可以利用每一待评估安全点的安全影响因子,对该待评估安全点对应的多个隶属程度进行加权计算。比如,计算每一个隶属程度与一个安全影响因子的乘积,得到一个加权隶属程度。
相应地,S224可以具体包括下述步骤D3。
步骤D3,根据加权模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
需要说明的是,步骤D3与S224的具体实施方式相似,可以参见本公开实施例上述部分对S224的相关说明,在此不再赘述。
通过上述步骤D1和步骤D2,可以对于被攻击频繁的待评估安全点,增加其对安全值的影响,对于攻击不频繁或者不被攻击的待评估安全点,可以降低其对安全值的影响,从而可以提高安全值的计算准确性。
S230,在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件。
示例性地,可以为该待评估安全组件添加安全开源组件的标识。
在一个实施例中,若评估集合中的评价值与危险程度呈反比,则可以在安全值大于或等于预设安全阈值的情况下,确定待评估开源组件为安全开源组件。
S240,将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
对于安全组件库,其可以是用于收录安全开源组件的组件库。
在一些实施例中,安全组件库包括相互隔离的多个安全组件子库,其中,每个安全组件子库对应一个安全等级。示例性地,若安全等级包括一般安全,非常安全、绝对安全等多个等级。则每一个安全等级可以对应一个安全组件子库。
相应地,S440可以具体包括下述步骤E1和步骤E2。
步骤E1,确定待评估开源组件所属安全等级。
示例性地,各安全等级可以对应于不同的安全取值范围。若待评估开源组件的安全值落入某一安全等级的安全取值范围时,则确定该安全等级为待评估开源组件所属安全等级。
步骤E2,将待评估开源组件添加至所属安全等级对应的安全组件子库。示例性地,可以将对应于绝对安全的待评估安全组件添加至绝对安全的安全组件子库中。
在介绍了安全组件库之后,接下来对S240的具体实施方式进行说明。
在一个实施例中,可以以将待评估开源组件的信息收录入安全组件库对应的列表或者清单的方式,实现待评估开源组件的添加。需要说明的是,还可以以其他方式将待评估开源组件添加至安全组件库,对此不作具体限定。
在介绍完S240的具体实施方式之后,接下来对软件开发人员基于安全组件库的具体软件开发方式进行说明。软件开发人员可以从安全组件库中获取安全开源组件进行软件开发。
可选地,对于开发完成的软件,可以基于预设的软件安全值计算模型,根据开发所采用的各个开源组件的安全值计算开发安全的软件的预测安全值,以及通过判断该预测安全值是否大于预设安全阈值的方式,来确定开发完成的软件的安全性。
本申请实施例提供的开源组件的处理方法,可以在软件开发之前,获取待评估开源组件的多个待评估点,并根据预先设置的模糊评价模型以对待评估开源组件进行模糊评价的方式来准确计算得到待评估开源组件的安全值。由于通过模糊评价方式计算得到的安全值能够准确衡量待评估开源组件的安全性,能够保证软件开发过程中能够从安全组件库获取得到符合安全要求的开源组件进行软件开发,从而保证了所开发软件的安全性。
图5示出了本公开实施例提供的另一种开源组件的处理方法的流程示意图。本公开实施例在上述实施例的基础上进行优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。
如图5所示,开源组件的处理方法可以包括下述步骤
S510,获取待评估开源组件的多个待评估安全点。
其中,S510与S210类似,可以参见S210的具体内容,在此不再赘述。
S520,基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值。
其中,S520与S220类似,可以参见S220的具体内容,在此不再赘述。
S530,判断安全值是否小于预设安全阈值。
S540,在判断结果为安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件。
其中,S540与S230类似,可以参见S230的具体内容,在此不再赘述。
S550,将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
其中,S550与S240类似,可以参见S240的具体内容,在此不再赘述。
S560,在安全值大于或等于预设安全阈值的情况下,确定待评估开源组件不是安全开源组件。又或者,可确定其为风险开源组件或者危险开源组件。
S570,对待评估开源组件的安全问题进行修复。
在一些实施例中,可以利用预设的软件修复工具对该待评估开源组件进行修复。
在另一些实施例中,可以生成该待评估开源组件具有安全问题的提示信息。以使软件修复人员基于该提示信息对待评估开源组件的安全问题进行修复。
在一些实施例中,为了兼顾开源组件的利用率以及安全性,在对待评估开源组件的安全问题进行修复之后,可以重新对修复后的待评估开源组件进行安全性评估,比如重新执行S510至S570。
本申请实施例提供的开源组件的处理方法,可以在软件开发之前,获取待评估开源组件的多个待评估点,并根据预先设置的模糊评价模型以对待评估开源组件进行模糊评价的方式来准确计算得到待评估开源组件的安全值。由于通过模糊评价方式计算得到的安全值能够准确衡量待评估开源组件的安全性,能够保证软件开发过程中能够从安全组件库获取得到符合安全要求的开源组件进行软件开发,从而保证了所开发软件的安全性。
基于同一发明构思,本申请实施例中还提供了一种开源组件的处理装置,如下面的实施例。
图6示出本申请实施例提供的一种开源组件的处理装置示意图,如图6所示,该开源组件的处理装置600包括安全点获取模块610、安全值计算模块620、安全组件判断模块630和组件处理模块640。
安全点获取模块610,用于获取待评估开源组件的多个待评估安全点;
安全值计算模块620,用于基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值;
安全组件判断模块630,用于在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件;
组件处理模块640,用于将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
在一个实施例中,安全值计算模块620,包括:安全点集合构建单元、评价集合构建单元、矩阵构建单元和计算单元。
安全点集合构建单元,用于基于多个待评估安全点,构成待评估开源组件的待评估安全点集合;
评价集合构建单元,用于构建待评估开源组件的评价集合,其中,评价集合包括用于表征不同危险程度的多个评价值;
矩阵构建单元,用于基于待评估安全点集合中各待评估安全点的模糊信息,构建待评估开源组件的模糊评价矩阵;
计算单元,用于基于模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
在一个实施例中,计算单元,可以具体被配置为:
基于模糊评价矩阵、评价集合以及矩阵分解算法模型,得到矩阵分解结果;
基于矩阵分解结果,得到安全值;
其中,矩阵分解算法模型表示为:
其中,P为矩阵分解结果,为模糊评价矩阵,为评价集合。
在一个实施例中,开源组件的处理装置600还包括:影响因子确定单元。
影响因子确定单元,用于基于参考开源组件中多个待评估安全点各自的风险次数,确定多个待评估安全点的安全影响因子;
相应地,计算单元,可以被配置为:
根据多个待评估安全点的安全影响因子,对模糊评价矩阵进行加权计算,得到加权模糊评价矩阵;
根据加权模糊评价矩阵、评价集合以及矩阵分解算法模型,计算得到安全值。
在一个实施例中,安全点获取模块610,具体被配置为:
基于预设安全属性树对待评估开源组件进行安全点梳理,得到多个待评估安全点。
在一个实施例中,安全组件库包括相互隔离的多个安全组件子库,其中,每个安全组件子库对应一个安全等级;
组件处理模块640,具体被配置为:
在多个安全组件子库对应的安全等级中,确定待评估开源组件所属安全等级;
将待评估开源组件添加至所属安全等级对应的安全组件子库。
在一个实施例中,多个待评估安全点包括待评估开源组件的多个安全漏洞;
安全点获取模块610,具体被配置为:
利用漏洞扫描工具对待评估开源组件进行漏洞扫描,得到待评估开源组件的多个安全漏洞。
在一个实施例中,多个待评估安全点包括至少一个评价维度各自的待评估安全点;
至少一个评价维度包括以下至少一者:
安全许可证维度,多个待评估安全点包括安全许可证规定的组件使用范围和/或组件使用条件;
支撑稳定性维度,多个待评估安全点包括待评估开源组件是否具有维护服务、待评估开源组件是否定期更新以及待评估开源组件的更新频率中的至少一者;
安全漏洞维度,多个待评估安全点包括漏洞数量、待评估开源组件存在的各个漏洞中的至少一者;
组件修复成本维度,多个待评估安全点包括待评估开源组件的修复成本,待评估开源组件的修复耗时。
在一个实施例中,开源组件的处理装置600还包括:判断模块、危险组件判断模块和安全问题修复模块。
判断模块,用于判断安全值是否小于预设安全阈值;
危险组件判断模块,用于在安全值大于或等于预设安全阈值的情况下,确定待评估开源组件不是安全开源组件;
安全问题修复模块,用于对待评估开源组件的安全问题进行修复。
本申请实施例提供的开源组件的处理装置,可以在软件开发之前,获取待评估开源组件的多个待评估点,并根据预先设置的模糊评价模型以对待评估开源组件进行模糊评价的方式来准确计算得到待评估开源组件的安全值。由于通过模糊评价方式计算得到的安全值能够准确衡量待评估开源组件的安全性,能够保证软件开发过程中能够从安全组件库获取得到符合安全要求的开源组件进行软件开发,从而保证了所开发软件的安全性。
以及,还需要说明的是,图6所示的开源组件的处理装置600可以执行图2至图5所示的方法实施例中的各个步骤,并且实现图2至图5所示的方法实施例中的各个过程和效果,在此不做赘述。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本申请的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。例如,处理单元710可以执行上述方法实施例的如下步骤:
获取待评估开源组件的多个待评估安全点;基于多个待评估安全点以及预先设置的模糊评价模型,对待评估开源组件进行模糊评价,得到待评估开源组件的安全值;在安全值小于预设安全阈值的情况下,确定待评估开源组件为安全开源组件;将待评估开源组件添加至安全组件库,以便于软件开发人员基于安全组件库进行软件开发。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备740(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。
并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。
如图7所示,网络适配器760通过总线730与电子设备700的其它模块通信。
应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。图8示出本公开实施例中一种计算机可读存储介质示意图,如图8所示,该计算机可读存储介质800上存储有能够实现本公开上述方法的程序产品。
在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
本申请中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。
可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
在一些示例中,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本公开任一实施例中的各种可选方式中提供的开源组件的处理方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。
本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
Claims (12)
1.一种开源组件的处理方法,其特征在于,所述方法包括:
获取待评估开源组件的多个待评估安全点;
基于所述多个待评估安全点以及预先设置的模糊评价模型,对所述待评估开源组件进行模糊评价,得到所述待评估开源组件的安全值;
在所述安全值小于预设安全阈值的情况下,确定所述待评估开源组件为安全开源组件;
将所述待评估开源组件添加至安全组件库,以便于软件开发人员基于所述安全组件库进行软件开发;
其中,所述待评估开源组件的安全值为基于模糊评价矩阵、评价集合和矩阵分解算法模型计算得到的,所述评价集合包括用于表征不同危险程度的多个评价值;所述模糊评价矩阵中的元素表示每个待评估安全点对所述评价集合中每个评级值的隶属程度,所述矩阵分解算法模型用于计算所述模糊评价矩阵与所述评价集合的点乘。
2.根据权利要求1所述的方法,其特征在于,所述基于所述多个待评估安全点以及预先设置的模糊评价模型,对所述待评估开源组件进行模糊评价,得到所述待评估开源组件的安全值,具体包括:
基于所述多个待评估安全点,构成所述待评估开源组件的待评估安全点集合;
构建所述待评估开源组件的评价集合;
基于所述待评估安全点集合中各待评估安全点的模糊信息,构建所述待评估开源组件的模糊评价矩阵;
基于所述模糊评价矩阵、所述评价集合以及矩阵分解算法模型,计算得到所述安全值。
3.根据权利要求2所述的方法,其特征在于,
所述基于所述模糊评价矩阵、所述评价集合以及矩阵分解算法模型,计算得到所述安全值,具体包括:
基于所述模糊评价矩阵、所述评价集合以及矩阵分解算法模型,得到矩阵分解结果;
基于矩阵分解结果,得到所述安全值;
其中,所述矩阵分解算法模型表示为:
其中,P为矩阵分解结果,为模糊评价矩阵,为所述评价集合。
4.根据权利要求2所述的方法,其特征在于,在所述基于所述模糊评价矩阵、所述评价集合以及矩阵分解算法模型,计算得到所述安全值之前,所述方法还包括:
基于参考开源组件中多个待评估安全点各自的风险次数,确定所述多个待评估安全点的安全影响因子;
所述基于所述模糊评价矩阵、所述评价集合以及矩阵分解算法模型,计算得到所述安全值,包括:
根据所述多个待评估安全点的安全影响因子,对所述模糊评价矩阵进行加权计算,得到加权模糊评价矩阵;
根据所述加权模糊评价矩阵、所述评价集合以及矩阵分解算法模型,计算得到所述安全值。
5.根据权利要求1所述的方法,其特征在于,所述获取待评估开源组件的多个待评估安全点,具体包括:
基于预设安全属性树对所述待评估开源组件进行安全点梳理,得到所述多个待评估安全点。
6.根据权利要求1所述的方法,其特征在于,所述安全组件库包括相互隔离的多个安全组件子库,其中,每个安全组件子库对应一个安全等级;
所述将所述待评估开源组件添加至安全组件库,具体包括:
在所述多个安全组件子库对应的安全等级中,确定所述待评估开源组件所属安全等级;
将所述待评估开源组件添加至所属安全等级对应的安全组件子库。
7.根据权利要求1所述的方法,其特征在于,所述多个待评估安全点包括所述待评估开源组件的多个安全漏洞;
所述获取待评估开源组件的多个待评估安全点,包括:
利用漏洞扫描工具对所述待评估开源组件进行漏洞扫描,得到所述待评估开源组件的多个安全漏洞。
8.根据权利要求1所述的方法,其特征在于,所述多个待评估安全点包括至少一个评价维度各自的待评估安全点;
所述至少一个评价维度包括以下至少一者:
安全许可证维度,所述多个待评估安全点包括所述安全许可证规定的组件使用范围和/或组件使用条件;
支撑稳定性维度,所述多个待评估安全点包括所述待评估开源组件是否具有维护服务、所述待评估开源组件是否定期更新以及所述待评估开源组件的更新频率中的至少一者;
安全漏洞维度,所述多个待评估安全点包括漏洞数量、所述待评估开源组件存在的各个漏洞中的至少一者;
组件修复成本维度,所述多个待评估安全点包括所述待评估开源组件的修复成本,所述待评估开源组件的修复耗时。
9.根据权利要求1所述的方法,其特征在于,所述在所述安全值小于预设安全阈值的情况下,确定所述待评估开源组件为安全开源组件之前,所述方法还包括:
判断所述安全值是否小于所述预设安全阈值;
在所述判断所述安全值是否小于所述预设安全阈值之后,所述方法还包括:
在所述安全值大于或等于所述预设安全阈值的情况下,确定所述待评估开源组件不是安全开源组件;
对所述待评估开源组件的安全问题进行修复。
10.一种开源组件的处理装置,其特征在于,包括:
安全点获取模块,用于获取待评估开源组件的多个待评估安全点;
安全值计算模块,用于基于所述多个待评估安全点以及预先设置的模糊评价模型,对所述待评估开源组件进行模糊评价,得到所述待评估开源组件的安全值;
安全组件判断模块,用于在所述安全值小于预设安全阈值的情况下,确定所述待评估开源组件为安全开源组件;
组件处理模块,用于将所述待评估开源组件添加至安全组件库,以便于软件开发人员基于所述安全组件库进行软件开发;
其中,所述待评估开源组件的安全值为基于模糊评价矩阵、评价集合和矩阵分解算法模型计算得到的,所述评价集合包括用于表征不同危险程度的多个评价值;所述模糊评价矩阵中的元素表示每个待评估安全点对所述评价集合中每个评级值的隶属程度,所述矩阵分解算法模型用于计算所述模糊评价矩阵与所述评价集合的点乘。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9中任意一项所述的开源组件的处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9中任意一项所述的开源组件的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210773007.1A CN114996668B (zh) | 2022-06-30 | 2022-06-30 | 开源组件的处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210773007.1A CN114996668B (zh) | 2022-06-30 | 2022-06-30 | 开源组件的处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114996668A CN114996668A (zh) | 2022-09-02 |
CN114996668B true CN114996668B (zh) | 2024-01-02 |
Family
ID=83020398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210773007.1A Active CN114996668B (zh) | 2022-06-30 | 2022-06-30 | 开源组件的处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996668B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826071A (zh) * | 2019-09-24 | 2020-02-21 | 平安科技(深圳)有限公司 | 软件漏洞风险预测方法、装置、设备及存储介质 |
CN111695831A (zh) * | 2020-06-18 | 2020-09-22 | 中国信息安全测评中心 | 一种开源代码的使用风险评估方法、装置及电子设备 |
CN112434299A (zh) * | 2020-10-23 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种开源软件安全管理方法和装置 |
CN114065223A (zh) * | 2021-11-26 | 2022-02-18 | 西安工业大学 | 一种基于cvss的多维度软件安全风险评估方法 |
CN114528195A (zh) * | 2022-01-12 | 2022-05-24 | 北京交通大学 | 铁路系统开源软件分层分类定量风险评估方法 |
-
2022
- 2022-06-30 CN CN202210773007.1A patent/CN114996668B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826071A (zh) * | 2019-09-24 | 2020-02-21 | 平安科技(深圳)有限公司 | 软件漏洞风险预测方法、装置、设备及存储介质 |
CN111695831A (zh) * | 2020-06-18 | 2020-09-22 | 中国信息安全测评中心 | 一种开源代码的使用风险评估方法、装置及电子设备 |
CN112434299A (zh) * | 2020-10-23 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种开源软件安全管理方法和装置 |
CN114065223A (zh) * | 2021-11-26 | 2022-02-18 | 西安工业大学 | 一种基于cvss的多维度软件安全风险评估方法 |
CN114528195A (zh) * | 2022-01-12 | 2022-05-24 | 北京交通大学 | 铁路系统开源软件分层分类定量风险评估方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114996668A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120066166A1 (en) | Predictive Analytics for Semi-Structured Case Oriented Processes | |
Luo et al. | Threat analysis and risk assessment for connected vehicles: A survey | |
CN113837596B (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
CN115841255B (zh) | 基于在线分析的建筑工程现场预警方法及系统 | |
CN113688398B (zh) | 漏洞扫描结果的评估方法、装置及系统 | |
CN115034596A (zh) | 一种风险传导预测方法、装置、设备和介质 | |
CN112016138A (zh) | 一种车联网自动化安全建模的方法、装置和电子设备 | |
CN110348999B (zh) | 金融风险敏感用户识别方法、装置及电子设备 | |
CN115987641A (zh) | 一种攻击测试方法、装置、电子设备及存储介质 | |
CN115225336A (zh) | 一种面向网络环境的漏洞可利用性的计算方法及装置 | |
US11663547B2 (en) | Evolutionary software prioritization protocol for digital systems | |
CN113127351A (zh) | 一种第三方组件检测方法、系统和计算机设备 | |
CN117725594A (zh) | 智能合约的多重复合检测方法、装置、设备及存储介质 | |
CN110704614B (zh) | 对应用中的用户群类型进行预测的信息处理方法及装置 | |
CN114996668B (zh) | 开源组件的处理方法、装置、设备及介质 | |
CN111783956A (zh) | 特征维度重要性分析方法、装置、设备及可读存储介质 | |
CN116861236A (zh) | 违规用户识别方法、装置、设备、存储介质以及产品 | |
CN115964701A (zh) | 应用安全检测方法、装置、存储介质及电子设备 | |
CN115719167A (zh) | 一种车辆信息安全的监控方法及装置 | |
CN115412358A (zh) | 网络安全风险评估方法、装置、电子设备及存储介质 | |
CN113254944A (zh) | 漏洞处理方法、系统、电子设备、存储介质及程序产品 | |
CN112433939A (zh) | 智能合约的测试方法、装置 | |
CN111651753A (zh) | 用户行为分析系统及方法 | |
CN118276933B (zh) | 软件兼容性问题的处理方法、装置、设备和介质 | |
CN116719654B (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 |