CN114637675A - 软件评估方法及装置、计算机可读存储介质 - Google Patents

软件评估方法及装置、计算机可读存储介质 Download PDF

Info

Publication number
CN114637675A
CN114637675A CN202210269789.5A CN202210269789A CN114637675A CN 114637675 A CN114637675 A CN 114637675A CN 202210269789 A CN202210269789 A CN 202210269789A CN 114637675 A CN114637675 A CN 114637675A
Authority
CN
China
Prior art keywords
component
software
file
information
comparison result
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
CN202210269789.5A
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN202210269789.5A priority Critical patent/CN114637675A/zh
Publication of CN114637675A publication Critical patent/CN114637675A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种软件评估方法及装置、计算机可读存储介质,所述软件评估方法包括:获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;获取第二软件集合;将各个第二组件的标识与各个第一组件的标识与许可信息进行比对,以得到第一比对结果;将各个第二文件的标识与所述第一组件的第一文件的标识与许可信息进行比对,以得到第二比对结果;至少根据第一比对结果与第二比对结果生成所述第二软件集合的评估报告。使用上述技术方案能够对第二软件集合进行评估,生成第二软件集合的评估报告,评估报告能够准确地反映软件集合中存在的问题。

Description

软件评估方法及装置、计算机可读存储介质
技术领域
本发明涉及计算机技术领域,更具体地,其涉及一种软件评估方法及装置、计算机可读存储介质。
背景技术
目前,大多数互联网企业在软件开发时采用的都是“混源”开发模式,即在代码中自主引入或由第三方代码引入开源代码。但开源代码若存在问题,发布时的软件集合也会存在问题,将给企业带来未知的风险,所以,对代码进行评估格外重要。
现有技术在对代码进行评估时,仅将代码与特征库进行比对,将比对形成的扫描报告提供给检查人员进行人工分析。
但是对现有技术生成的扫描报告进行分析时,分析工作十分依赖检查人员的经验与能力,容易造成结果的误判,且需检查内容繁杂,导致检查效率低下。
发明内容
本发明解决的技术问题是如何高效准确地对代码进行评估。
为解决上述技术问题,本发明实施例提供一种软件评估方法,所述软件评估方法包括:获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;获取第二软件集合,所述第二软件集合包括至少一个第二组件,所述第二组件具有标识与许可信息,每一第二组件包括多个第二文件,所述第二文件具有标识与许可信息;将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果;将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果;至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。
可选的,所述获取第一软件集合包括:根据所述第一软件集合生成软件物料表,所述软件物料表包括至少一个软件包数据交换文件和软件物料表索引,每一软件包数据交换文件包括第一组件中所包括的第一文件的标识与许可信息,所述软件物料表索引包括各个第一组件的标识与许可信息,所述许可信息包括许可证和/或版权;从所述软件物料表索引中获取各个第一组件的标识与许可信息,以及从所述软件包数据交换文件中获取各个第一文件的标识与许可信息。
可选地,所述软件物料表包括包标记清单,所述包标记清单包括各个第一组件之间的依赖关系,所述依赖关系用于指示需要共同运行或共同编译的组件;每一软件物料表索引用于指示对应于同一组件的包标记清单以及软件包数据交换文件。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:获取约束信息,所述约束信息包括许可信息之间的约束关系;根据所述包标记清单中各个第一组件之间的依赖关系确定各个第二组件之间的依赖关系;根据各个第二组件之间的依赖关系确定具有依赖关系的多个第二组件;判断多个第二组件的许可信息是否符合所述约束关系;将不符合所述约束关系的各个第二组件的信息加入所述评估报告。
可选地,所述软件包数据交换文件包括各个第一组件的第一校验和,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:生成各个第二文件的第二校验和;将各个第二文件的第二校验和与对应的第一文件的第一校验和进行比对;将第二校验和与对应的第一文件的第一校验和不一致的第二文件的信息加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:将每个第二组件的标识与所述软件物料表索引中所有第一组件的标识进行比对;如果所有第一组件的标识中不存在与所述第二组件的标识相一致的标识,则将所述第二组件的信息加入所述评估报告;或者,将每个第一组件的标识与所有第二组件的标识进行比对;如果所有第二组件的标识中不存在与所述第一组件的标识相一致的标识,则将所述第一组件的信息加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:将所有软件包数据交换文件中的第一文件的许可信息加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:根据所述第一组件生成软件成分扫描数据,所述软件成分扫描数据包括特征库中与各个第一文件中第一代码片段匹配的第二代码片段及其许可信息、位置,所述特征库包括多个第二代码片段及其许可信息、位置;将所述软件成分扫描数据中匹配的第二代码片段的许可信息与所述软件包数据交换文件中的第一文件的许可信息进行比对;将许可信息与第一文件的许可信息不一致的第二代码片段的许可信息和位置加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:将每个第二文件的标识与软件包数据交换文件中所有第一文件的标识进行比对;如果所有第一文件的标识中不存在与所述第二文件的标识相一致的标识,则将所述第二文件的信息加入所述评估报告;或者,将每个第一文件的标识与所有第二文件的标识进行比对;如果所有第二文件的标识中不存在与所述第一文件的标识相一致的标识,则将所述第一文件的信息加入所述评估报告。
可选的,所述第二软件集合的生成时间晚于所述第一软件集合的生成时间。
可选地,所述第一组件包括衍生类组件,所述衍生类组件包括补丁文件及其应用的原生组件,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:获取所述衍生类组件中的所有补丁文件及其应用的原生组件;如果一个原生组件对应一个补丁文件,则将该补丁文件应用于对应的原生组件,以得到结果组件,并将所述原生组件的代码片段与所述结果组件的代码片段进行比对,以得到差异代码片段;如果一个原生组件对应多个补丁文件,则迭代地确定应用组件,将各个补丁文件应用于所述应用组件,并将应用后的应用组件的代码片段与所述应用组件的代码片段进行比对,以得到差异代码片段;将所述差异代码片段的许可信息加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:判断各个第二组件的许可信息是否符合第一预设条件;将所述许可信息不符合所述第一预设条件的第二组件的信息加入所述评估报告。
可选地,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:判断各个第二文件的许可信息是否符合第二预设条件;将所述许可信息不符合所述第二预设条件的第二文件的信息加入所述比对结果。
可选地,所述第一软件集合和所述第二软件集合为待部署的软件集合。
可选地,在所述评估报告符合预设标准时,将所有第二组件的许可信息与黑名单中各个许可信息进行比对,并将所有第二组件的许可信息与白名单中各个许可信息进行比对,所述黑名单包括多个许可信息,所述白名单包括多个许可信息;当任一第二组件的许可信息与黑名单中任一许可信息一致时,记录与黑名单中任一许可信息一致的第二组件;或者,当每一第二组件的许可信息与白名单中任一许可信息一致时,部署所述第二软件集合。
可选地,当所述第二组件的许可信息与黑名单中任一许可信息不一致,且所述第二组件的许可信息与白名单中任一许可信息不一致时,将所述第二组件的许可信息推送至终端设备;获取终端设备发送的反馈信息,所述反馈信息包括同意或拒绝;当所述反馈信息为同意时,部署所述第二软件集合,并将所述第二组件的许可信息加入所述白名单;或者,当所述反馈信息为拒绝时,记录所述第二组件,并将所述第二组件的许可信息加入所述黑名单。
本发明实施例还公开一种软件评估装置,所述装置包括:第一软件集合获取模块,用于获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;第二软件集合获取模块,用于获取第二软件集合,所述第二软件集合包括至少一个第二组件,所述第二组件具有标识与许可信息,每一第二组件包括多个第二文件,所述第二文件具有标识与许可信息;第一比对模块,用于将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果;第二比对模块,用于将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果;评估报告生成模块,用于至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。
本发明实施例还公开一种服务器,包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述计算机程序被处理器运行时执行上述任一种所述软件评估方法的步骤。
本发明实施例还公开一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种所述软件评估方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明提出一种软件评估方法,通过获取第一软件集合,并获取第一软件集合中各个第一组件的标识与许可信息以及各个第一文件的标识与许可信息,便于进行第一软件集合与第二软件集合的比对。通过获取第二软件集合,得到各个第二组件的标识与许可信息以及各个第二文件的标识与许可信息,将第二组件中的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到组件级别的第一比对结果。再将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到文件级别的第二比对结果,保证第二软件集合的各个风险点都经过评估,并根据第一比对结果和第二比对结果生成第二软件集合的评估报告,方便用户根据评估报告进行问题倒查。
进一步地,根据组件间的依赖关系确定具有依赖关系的多个第二组件,判断多个第二组件的许可信息是否符合约束关系,将不符合约束关系的第二组件加入所述评估报告,确保软件集合在符合授权范围的情况下发布,保证了组件开发者的权益。
进一步地,将每个第二组件的标识与软件物料表索引中所有第一组件的标识进行比对,以及将每个第一组件的标识与所有第二组件的标识进行比对,可确认第二组件是否进行了变更,可防止软件集合被恶意篡改,保证了软件的安全性。
进一步地,对衍生类组件中采取特殊的扫描方法,当一个原生组件对应多个补丁文件时,迭代地确定应用组件,将各个补丁文件应用于应用组件,并计算应用后的应用组件的代码片段与应用组件的代码片段进行比对,将多个差异代码片段的许可信息汇总加入评估报告,相较于直接将全部补丁应用后再进行扫描,这种方法可以得到每个补丁文件的评估报告,当衍生类组件出现问题时,可快速定位至出现问题的补丁文件,提高问题补丁的修复效率。
进一步地,在部署软件集合前,对待部署软件集合进行代码评估,再验证通过评估的组件的许可信息是否在黑名单、白名单内。当通过评估的组件在白名单内才可进行部署,保证每个被应用的组件都符合预设标准,大大提高组件的可靠性与安全性。
附图说明
图1是本发明实施例提供的一种软件评估方法的整体流程图;
图2是本发明实施例提供的一种根据约束关系生成评估报告的具体实施流程图;
图3是本发明实施例提供的一种根据校验和生成评估报告的具体实施流程图;
图4是本发明实施例提供的一种根据比对组件的标识生成评估报告的具体实施流程图;
图5是本发明实施例提供的一种根据比对文件的标识生成评估报告的具体实施流程图;
图6是本发明实施例提供的一种根据软件成分扫描数据生成评估报告的具体实施流程图;
图7是本发明实施例提供的一种生成衍生类组件的评估报告的具体实施流程图;
图8是本发明实施例提供的一种部署软件集合的具体实施流程图;
图9是本发明实施例提供的一种软件评估装置的结构示意图。
具体实施方式
如背景技术中所述,互联网企业在软件开发时在代码中自主引入或由第三方代码引入开源代码,发布时的软件集合容易产生问题,需要进行代码评估。现有技术在对代码进行评估时,仅将代码与特征库进行比对,将比对形成的扫描报告提供给检查人员进行人工分析,但分析工作十分依赖检查人员的经验与能力,容易造成结果的误判,且需检查内容繁杂,导致检查效率低下。
本发明实施例中,通过获取第一软件集合,并获取第一软件集合中各个第一组件的标识与许可信息以及各个第一文件的标识与许可信息,便于进行第一软件集合与第二软件集合的比对。通过获取第二软件集合,得到各个第二组件的标识与许可信息以及各个第二文件的标识与许可信息,将第二组件中的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到组件级别的第一比对结果。再将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到文件级别的第二比对结果,保证第二软件集合的各个风险点都经过评估,并根据第一比对结果和第二比对结果生成第二软件集合的评估报告,方便用户根据评估报告进行问题倒查。
进一步地,根据组件间的依赖关系确定具有依赖关系的多个第二组件,判断多个第二组件的许可信息是否符合约束关系,将不符合约束关系的第二组件加入所述评估报告,确保软件集合在符合授权范围的情况下发布,保证了组件开发者的权益。
进一步地,将每个第二组件的标识与软件物料表索引中所有第一组件的标识进行比对,以及将每个第一组件的标识与所有第二组件的标识进行比对,可确认第二组件是否进行了变更,可防止软件集合被恶意篡改,保证了软件的安全性。
进一步地,对衍生类组件中采取特殊的扫描方法,当一个原生组件对应多个补丁文件时,迭代地确定应用组件,将各个补丁文件应用于应用组件,并计算应用后的应用组件的代码片段与应用组件的代码片段进行比对,将多个差异代码片段的许可信息汇总加入评估报告,相较于直接将全部补丁应用后再进行扫描,这种方法可以得到每个补丁文件的评估报告,当衍生类组件出现问题时,可快速定位至出现问题的补丁文件,提高问题补丁的修复效率。
进一步地,在部署软件集合前,对待部署软件集合进行代码评估,再验证通过评估的组件的许可信息是否在黑名单、白名单内。当通过评估的组件在白名单内才可进行部署,保证每个被应用的组件都符合预设标准,大大提高组件的可靠性与安全性。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种软件评估方法的整体流程图。
所述的软件评估方法可以由计算机设备所执行,例如,可以由服务器所执行。需要说明的是,计算机设备可以并不仅限于所述服务器,还可以为其他具备数据处理能力的设备。
具体地,如图1所示,软件评估方法可以包括步骤101至步骤105。
在步骤101中,获取第一软件集合。
在步骤102中,获取第二软件集合。
在步骤103中,将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果。
在步骤104中,将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果。
在步骤105中,至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。也就是说,至少将第一比对结果以及第二比对结果加入评估报告。
步骤101与步骤102的执行并无逻辑上的先后顺序,可以先执行步骤101后执行步骤102,也可以先执行步骤102后执行步骤101,或者同时执行步骤101与步骤102。
本实施例中,评估报告包括第一比对结果和第二比对结果。进一步地,评估报告还可以包括其他内容,如不符合约束关系的各个第二组件的信息、第二校验和与对应的第一文件的第一校验和不一致的第二文件的信息、许可信息不符合第一预设条件的第二组件的信息等。
在具体实施中,第一软件集合包括至少一个第一组件,每一第一组件包括多个第一文件,第一组件与第一文件具有标识与许可信息。第二软件集合包括至少一个第二组件,每一第二组件包括多个第二文件,第二组件与第二文件具有标识与许可信息,第二软件集合的生成时间晚于所述第一软件集合的生成时间。其中,第一软件集合所包含的内容与第二软件集合所包含的内容可以相同,也可以不同。具体地,第一软件集合与第二软件集合可以是同一个软件产品的软件集合的不同版本。标识可以用于指示组件或文件,例如可以是组件的文件名。
例如,在1月1日10:00生成第一软件集合的软件物料表,在于1月2日10:00进行第二软件集合的评估报告的生成,期间,软件产品的软件集合可能发生代码的变更。
在一个非限制性的实施例中,根据第一软件集合生成软件物料表,软件物料表(Sofware Bill of Material,SBoM)包括至少一个软件包数据交换文件(SoftwarePackage Data Exchange,SPDX)和软件物料表索引(Sofware Bill of Material Index,SBoM Index),每一软件包数据交换文件包括一个第一组件中所包括的第一文件的许可信息,软件物料表索引包括各个第一组件的许可信息,许可信息包括许可证和/或版权。
在具体实施中,软件包数据交换文件的获取方式可以是对第一软件集合添加一个子任务,例如Generate_SPDX_Task,对每个组件生成软件包数据交换文件。
在一个非限制性的实施例中,软件物料表还可以包括包标记清单(Package TagListing,PTL),包标记清单包括各个第一组件之间的依赖关系,依赖关系用于指示需要共同运行或共同编译的组件;每一软件物料表索引用于指示对应于同一组件的包标记清单以及软件包数据交换文件。
在具体实施中,包标记清单的获取方式可以是对第一软件集合添加一个子任务,例如Generate_PTL_Task,对每个组件生成包标记清单。
在步骤105的具体实施中,至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。软件由代码构建而成,对软件进行评估也即对软件的代码进行评估。
在一个非限制性的具体实施中,将所有软件包数据交换文件中的第一文件的许可信息加入评估报告;
判断各个第二组件的许可信息是否符合第一预设条件,将许可信息不符合第一预设条件的第二组件的信息加入评估报告;
判断各个第二文件的许可信息是否符合第二预设条件,将许可信息不符合第二预设条件的第二文件的信息加入评估报告。
在具体实施中,第一预设条件用于对第二组件的许可信息的内容进行限制,第二预设条件用于对第二文件的许可信息的内容进行限制。例如,第一预设条件可以是第二组件的许可信息不能仅包括数字,或者,第二预设条件可以是第二文件的许可信息不能为空值。
在具体实施中,组件的源代码可以以代码仓库的形式进行存储,每一组件对应一个代码仓库。代码仓库包括组件的源代码及其组件类型与许可信息,组件类型与许可信息可以存储于源代码的备注信息或数据库中。当组件类型与许可信息存储于数据库中时,组件与数据库具有对应关系,可从数据库获取组件类型与许可信息。
在具体实施中,第二组件的信息可以包括第二组件的存储位置、组件类型与许可信息。第二文件的信息可以包括第二文件的存储位置、组件类型与许可信息以及所属组件的信息。
需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。
可以理解的是,在具体实施中,所述软件评估方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中。该方法也可以采用软件结合硬件的方式实现,本申请不作限制。
除上述生成评估报告的方法以外,现结合图2至图7对其余评估报告的生成方法进行详细说明。
图2是本发明实施例提供的一种根据约束关系生成评估报告的具体实施流程图。
具体地,如图2所示,根据约束关系生成评估报告可以包括以下步骤:
在步骤201的具体实施中,获取约束信息。约束信息包括许可信息之间的约束关系。
在具体实施中,约束信息可以从组件的许可信息中获取,或者从外部导入,约束信息用于约束许可信息。例如,组件A的许可信息与组件B的许可信息存在约束关系,即组件A不允许与组件B共同进行编译或者共同运行。或者,组件A的许可信息与组件B的许可信息不存在约束关系,此时,外部导入的约束信息包括组件A与组件B的约束关系,即组件A不允许与组件B共同进行编译或者共同运行。
在步骤202的具体实施中,根据包标记清单中各个第一组件之间的依赖关系确定各个第二组件之间的依赖关系。包标记清单包括各个第一组件之间的依赖关系,第一组件与第二组件之间具有对应关系,第一组件之间的依赖关系与第二组件之间的依赖关系一致,可通过包标记清单中的第一组件之间的依赖关系确定第二组件之间的依赖关系。
在步骤203的具体实施中,根据各个第二组件之间的依赖关系确定具有依赖关系的多个第二组件。
在具体实施中,依赖关系用于指示需要共同运行或共同编译的组件。例如,组件A与组件B具有依赖关系,即组件A需要与组件B共同运行或共同编译。
在步骤204的具体实施中,判断多个第二组件的许可信息是否符合约束关系,将不符合约束关系的各个第二组件的信息加入评估报告。
在一个具体的实施例中,根据包标记清单中各个第一组件之间的依赖关系,确定第二组件A与第二组件B、第二组件C存在依赖关系,第二组件A、第二组件B、第二组件C需要共同运行或共同编译。根据组件C的许可信息中包括的约束信息,即组件C不允许与组件A共同进行编译或者共同运行,组件A与组件C不符合约束关系,将组件A与组件C的信息加入评估报告;或者,根据包标记清单中各个第一组件之间的依赖关系,确定第二组件A与第二组件B、第二组件C存在依赖关系,第二组件A、第二组件B、第二组件C需要共同运行或共同编译。外部导入的约束信息包括组件C与组件A的约束关系,即组件C不允许与组件A共同进行编译或者共同运行,组件A与组件C不符合约束关系,将组件A与组件C的信息加入评估报告。
在该实施例中,根据组件间的依赖关系确定具有依赖关系的多个第二组件,判断多个第二组件的许可信息是否符合约束关系,将不符合约束关系的第二组件加入所述评估报告,确保软件集合在符合授权范围的情况下发布,保证了组件开发者的权益。
图3是本发明实施例提供的一种根据校验和生成评估报告的具体实施流程图。
具体地,如图3所示,所述根据校验和生成评估报告可以包括以下步骤:
在步骤301中,生成各个第二文件的第二校验和。
在步骤302中,将各个第二文件的第二校验和与软件包数据交换文件中对应的第一文件的第一校验和进行比对。
具体实施中,校验和可通过算法计算得到。例如,可采用安全散列算法1(SecureHash Algorithm 1,SHA-1)或者安全散列算法256(Secure Hash Algorithm 256,SHA-256)作为校验和的计算算法。
在步骤303中,将第二校验和与对应的第一文件的第一校验和不一致的第二文件的信息加入所述评估报告。
本实施例中,通过比对各个第二文件的第二校验和与对应的第一文件的第一校验和,可以判断各个第二文件是否与对应的第一文件一致,确认第二文件没有经过篡改,保证文件的安全性。第一校验和是指第一文件的校验和,第二校验和是指第二文件的校验和,校验和是指传输位数的累加。
图4是本发明实施例提供的一种根据比对组件的许可信息生成评估报告的具体实施流程图。
具体地,如图4所示,根据比对组件的标识生成评估报告可以包括以下步骤:
在步骤401的具体实施中,将每个第二组件的标识与软件物料表索引中所有第一组件的标识进行比对。
在步骤402的具体实施中,判断所有第一组件的标识中是否存在与第二组件的标识相一致的标识。如果所有第一组件的标识中不存在与第二组件的标识相一致的标识,将第二组件的信息加入评估报告。
在步骤403的具体实施中,将每个第一组件的标识与所有第二组件的标识进行比对。
在步骤404的具体实施中,判断所有第二组件的标识中是否存在与第一组件的标识相一致的标识。如果所有第二组件的标识中不存在与第一组件的标识相一致的标识,将第一组件的信息加入评估报告。
在具体实施中,第一组件的信息可以包括第一组件的存储位置、组件类型与许可信息。
本实施例中,通过将每个第二组件的标识与软件物料表索引中所有第一组件的标识进行比对,以及将每个第一组件的标识与所有第二组件的标识进行比对,确认第二组件是否进行了变更,防止软件集合被恶意篡改,保证了软件的安全性。
图5是本发明实施例提供的一种根据比对文件的标识生成评估报告的具体实施流程图。
具体地,如图5所示,根据比对文件的标识生成评估报告可以包括以下步骤:
在步骤501的具体实施中,将每个第二文件的标识与软件包数据交换文件中所有第一文件的标识进行比对。
在步骤502的具体实施中,判断所有第一文件的标识中是否存在与第二文件的标识相一致的标识。如果所有第一文件的标识中不存在与第二文件的标识相一致的标识,将第二文件的信息加入评估报告。
在步骤503的具体实施中,将每个第一文件的标识与所有第二文件的标识进行比对。
在步骤504的具体实施中,判断所有第二文件的标识中是否存在与第一文件的标识相一致的标识。如果所有第二文件的标识中不存在与第一文件的标识相一致的标识,将第一文件的信息加入评估报告。
在具体实施中,第一文件的信息可以包括第一文件的存储位置、组件类型、许可信息以及所属组件的信息。
本实施例中,通过将每个第二文件的标识与所有第一文件的标识进行比对,以及将每个第一文件的标识与所有第二文件的标识进行比对,确认第二文件是否进行了变更,避免了软件集合被恶意篡改的可能性,确保软件的安全。
图6是本发明实施例提供的一种根据软件成分扫描数据生成评估报告的具体实施流程图。
具体地,如图6所示,根据软件成分扫描数据生成评估报告可以包括以下步骤:
在步骤601的具体实施中,根据第一组件生成软件成分扫描数据。软件成分扫描数据包括特征库中与各个第一文件中第一代码片段匹配的第二代码片段及其许可信息、位置,特征库包括多个第二代码片段及其许可信息、位置。
在具体实施中,特征库包括多个第二代码片段及其许可信息、位置,所述第二代码片段的位置用于指示第二代码片段的具体存储位置,例如第二代码片段所属文件的路径以及第二代码片段的偏移位置。
在具体实施中,软件成分扫描数据的获取方式可以是对第一软件集合添加一个子任务,例如Generate_SCAData_Task,对每个组件生成软件成分扫描数据。
在步骤602中,将软件成分扫描数据中匹配的第二代码片段的许可信息与软件包数据交换文件中的第一文件的许可信息进行比对。
在步骤603中,将许可信息与第一文件的许可信息不一致的第二代码片段的许可信息和位置加入评估报告。
图7是本发明实施例提供的一种生成衍生类组件的评估报告的具体实施流程图。
具体地,如图7所示,生成衍生类组件的评估报告可以包括以下步骤:
在步骤701的具体实施中,获取衍生类组件中的所有补丁文件及其应用的原生组件。
在具体实施中,第一组件包括衍生类组件、开源类组件和第三方组件,衍生类组件基于原生组件开发得到,所述原生组件可以是开源类组件或第三方组件。
在步骤702的具体实施中,迭代地确定应用组件,将各个补丁文件应用于应用组件,并将应用后的应用组件的代码片段与应用组件的代码片段进行比对。通过比对得到差异代码片段,原生组件对应多个补丁文件。
在一个具体的实施例中,衍生类组件A中共有2个补丁文件,应用顺序排列为补丁文件1、补丁文件2。衍生类组件A的原生组件为组件B。先将补丁文件1应用于组件B,此时组件B为应用组件,以得到应用后的应用组件B1,计算组件B1与组件B的差异代码片段C1。再将补丁文件2应用于组件B1,此时组件B1为应用组件,以得到应用后的应用组件B2,计算组件B2与组件B1的差异代码片段C2。
在具体实施中,若一个原生组件对应一个补丁文件,则将该补丁文件应用于对应的原生组件,并将所述原生组件的代码片段与所述结果组件中代码片段进行比对,以得到差异代码片段。
在步骤703的具体实施中,将差异代码片段的许可信息加入评估报告。
本发明实施例中,对衍生类组件中采取特殊的扫描方法,当一个原生组件对应多个补丁文件时,迭代地确定应用组件,将各个补丁文件应用于应用组件,并计算应用后的应用组件的代码片段与应用组件的代码片段进行比对,将多个差异代码片段的许可信息汇总加入评估报告,相较于直接将全部补丁应用后再进行扫描,这种方法可以得到每个补丁文件的评估报告,当衍生类组件出现问题时,可快速定位至出现问题的补丁文件,提高问题补丁的修复效率。
图8是本发明实施例提供的一种部署软件集合的具体实施流程图。
在步骤801的具体实施中,获取待部署软件集合,生成待部署软件集合的评估报告。关于待部署软件集合的评估报告生成方法,可参考前述评估报告生成步骤,此处不再赘述。
在具体实施中,根据待部署软件集合生成软件物料表,此时的待部署软件集合为第一软件集合,软件物料表在第一时间生成。将待部署软件集合在第二时间与软件物料表进行比对,以得到评估报告,此时的待部署软件集合为第二软件集合,第一时间早于第二时间。
在步骤802的具体实施中,当第二软件集合的评估报告符合预设标准时,获取黑名单与白名单。黑名单包括多个许可信息,白名单包括多个许可信息。当任一第二组件的许可信息与黑名单中任一待部署软件集合的评估报告许可信息一致时,不允许部署第二软件集合,当每一第二组件的许可信息与白名单中任一许可信息一致时,才允许部署第二软件集合。
在具体实施中,符合预设标准表示第二软件集合的评估报告中的内容与用户设置的预设标准一致,例如,预设标准可以是评估报告中仅包括所有软件包数据交换文件中的第一文件的许可信息,没有记录不一致的许可信息。不符合预设标准可以是存在不一致的许可信息,例如,评估报告中包括许可信息存在冲突的组件,或者评估报告中存在校验和不一致的文件。第二软件集合符合预设标准是部署第二软件集合的前提条件,预设标准可由用户自定义。
在步骤803的具体实施中,判断任一第二组件的许可信息是否与黑名单中任一许可信息一致,若是,执行步骤804,记录与黑名单中任一许可信息一致的第二组件;否则,执行步骤805。
在步骤805的具体实施中,判断每一第二组件的许可信息是否与白名单中任一许可信息一致,若是,执行步骤806,部署第二软件集合;否则,执行步骤807,将第二组件的许可信息推送至终端设备。
在步骤808中,获取终端设备发送的反馈信息,反馈信息包括同意或拒绝。当所述反馈信息为同意时,允许部署第二软件集合,并将第二组件的许可信息加入所述白名单;当所述反馈信息为拒绝时,不允许部署第二软件集合,记录第二组件并将第二组件的许可信息加入黑名单。
在步骤809中,判断反馈信息是否为同意,若是,执行步骤810,部署第二软件集合,并将第二组件的许可信息加入白名单;否则,执行步骤811,记录第二组件,并将第二组件的许可信息加入黑名单。
本发明实施例中,在部署软件集合前,对待部署软件集合进行代码评估,当第二软件集合的评估报告符合预设标准时,判断第二组件的许可信息是否在黑名单、白名单内。当第二组件的许可信息与白名单中的许可信息一致时才可进行部署,保证每个被应用的组件都符合预设标准,大大提高组件的可靠性与安全性。
如图9所示,本发明实施例还公开了一种软件评估装置。软件评估装置90包括:
第一软件集合获取模块901,用于获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;
第二软件集合获取模块902,用于获取第二软件集合,所述第二软件集合包括至少一个第二组件,所述第二组件具有标识与许可信息,每一第二组件包括多个第二文件,所述第二文件具有标识与许可信息;
第一比对模块903,用于将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果;
第二比对模块904,用于将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果;
评估报告生成模块905,用于至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。
在具体实施中,上述软件评估装置可以对应于服务器中具有代码评估功能的芯片,例如SOC(System-On-a-Chip,片上系统)、基带芯片等;或者对应于服务器中包括具有代码评估功能的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于服务器。
关于所述软件评估装置90的工作原理、工作方式的更多内容,可以参照图1至图8中的相关描述,这里不再赘述。
关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本发明实施例还公开了一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图1至图8中所示方法的步骤。所述存储介质可以包括ROM、RAM、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
本发明实施例还公开了一种服务器,所述服务器可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时可以执行图1至图8中所示方法的步骤。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
应理解,本申请实施例中,所述处理器可以为中央处理单元(central processingunit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(application specific integrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (19)

1.一种软件评估方法,其特征在于,包括:
获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;
获取第二软件集合,所述第二软件集合包括至少一个第二组件,所述第二组件具有标识与许可信息,每一第二组件包括多个第二文件,所述第二文件具有标识与许可信息;
将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果;
将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果;
至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。
2.根据权利要求1所述的软件评估方法,其特征在于,所述获取第一软件集合包括:
根据所述第一软件集合生成软件物料表,所述软件物料表包括至少一个软件包数据交换文件和软件物料表索引,每一软件包数据交换文件包括第一组件中所包括的第一文件的标识与许可信息,所述软件物料表索引包括各个第一组件的标识与许可信息,所述许可信息包括许可证和/或版权;从所述软件物料表索引中获取各个第一组件的标识与许可信息,以及从所述软件包数据交换文件中获取各个第一文件的标识与许可信息。
3.根据权利要求2所述的软件评估方法,其特征在于,所述软件物料表包括包标记清单,所述包标记清单包括各个第一组件之间的依赖关系,所述依赖关系用于指示需要共同运行或共同编译的组件;每一软件物料表索引用于指示对应于同一组件的包标记清单以及软件包数据交换文件。
4.根据权利要求3所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
获取约束信息,所述约束信息包括许可信息之间的约束关系;
根据所述包标记清单中各个第一组件之间的依赖关系确定各个第二组件之间的依赖关系;
根据各个第二组件之间的依赖关系确定具有依赖关系的多个第二组件;
判断多个第二组件的许可信息是否符合所述约束关系;
将不符合所述约束关系的各个第二组件的信息加入所述评估报告。
5.根据权利要求2所述的软件评估方法,其特征在于,所述软件包数据交换文件包括各个第一组件的第一校验和,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
生成各个第二文件的第二校验和;
将各个第二文件的第二校验和与对应的第一文件的第一校验和进行比对;将第二校验和与对应的第一文件的第一校验和不一致的第二文件的信息加入所述评估报告。
6.根据权利要求2所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
将每个第二组件的标识与所述软件物料表索引中所有第一组件的标识进行比对;
如果所有第一组件的标识中不存在与所述第二组件的标识相一致的标识,则将所述第二组件的信息加入所述评估报告;
或者,将每个第一组件的标识与所有第二组件的标识进行比对;
如果所有第二组件的标识中不存在与所述第一组件的标识相一致的标识,则将所述第一组件的信息加入所述评估报告。
7.根据权利要求2所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
将所有软件包数据交换文件中的第一文件的许可信息加入所述评估报告。
8.根据权利要求2所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
根据所述第一组件生成软件成分扫描数据,所述软件成分扫描数据包括特征库中与各个第一文件中第一代码片段匹配的第二代码片段及其许可信息、位置,所述特征库包括多个第二代码片段及其许可信息、位置;
将所述软件成分扫描数据中匹配的第二代码片段的许可信息与所述软件包数据交换文件中的第一文件的许可信息进行比对;
将许可信息与第一文件的许可信息不一致的第二代码片段的许可信息和位置加入所述评估报告。
9.根据权利要求2所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
将每个第二文件的标识与软件包数据交换文件中所有第一文件的标识进行比对;
如果所有第一文件的标识中不存在与所述第二文件的标识相一致的标识,则将所述第二文件的信息加入所述评估报告;
或者,将每个第一文件的标识与所有第二文件的标识进行比对;
如果所有第二文件的标识中不存在与所述第一文件的标识相一致的标识,则将所述第一文件的信息加入所述评估报告。
10.根据权利要求1所述的软件评估方法,其特征在于,所述第二软件集合的生成时间晚于所述第一软件集合的生成时间。
11.根据权利要求1所述的软件评估方法,其特征在于,所述第一组件包括衍生类组件,所述衍生类组件包括补丁文件及其应用的原生组件,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
获取所述衍生类组件中的所有补丁文件及其应用的原生组件;
如果一个原生组件对应一个补丁文件,则将该补丁文件应用于对应的原生组件,以得到结果组件,并将所述原生组件的代码片段与所述结果组件的代码片段进行比对,以得到差异代码片段;
如果一个原生组件对应多个补丁文件,则迭代地确定应用组件,将各个补丁文件应用于所述应用组件,并将应用后的应用组件的代码片段与所述应用组件的代码片段进行比对,以得到差异代码片段;
将所述差异代码片段的许可信息加入所述评估报告。
12.根据权利要求1所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
判断各个第二组件的许可信息是否符合第一预设条件;
将所述许可信息不符合所述第一预设条件的第二组件的信息加入所述评估报告。
13.根据权利要求1所述的软件评估方法,其特征在于,所述至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告包括:
判断各个第二文件的许可信息是否符合第二预设条件;
将所述许可信息不符合所述第二预设条件的第二文件的信息加入所述比对结果。
14.根据权利要求1所述的软件评估方法,其特征在于,所述第一软件集合和所述第二软件集合为待部署的软件集合。
15.据权利要求14所述的软件评估方法,其特征在于,还包括:
在所述评估报告符合预设标准时,将所有第二组件的许可信息与黑名单中各个许可信息进行比对,并将所有第二组件的许可信息与白名单中各个许可信息进行比对,所述黑名单包括多个许可信息,所述白名单包括多个许可信息;
当任一第二组件的许可信息与黑名单中任一许可信息一致时,记录与黑名单中任一许可信息一致的第二组件;
或者,当每一第二组件的许可信息与白名单中任一许可信息一致时,部署所述第二软件集合。
16.据权利要求15所述的软件评估方法,其特征在于,还包括:
当所述第二组件的许可信息与黑名单中任一许可信息不一致,且所述第二组件的许可信息与白名单中任一许可信息不一致时,将所述第二组件的许可信息推送至终端设备;
获取终端设备发送的反馈信息,所述反馈信息包括同意或拒绝;
当所述反馈信息为同意时,部署所述第二软件集合,并将所述第二组件的许可信息加入所述白名单;
或者,当所述反馈信息为拒绝时,记录所述第二组件,并将所述第二组件的许可信息加入所述黑名单。
17.一种软件评估装置,其特征在于,包括:
第一软件集合获取模块,用于获取第一软件集合,所述第一软件集合包括至少一个第一组件,所述第一组件具有标识与许可信息,每一第一组件包括多个第一文件,所述第一文件具有标识与许可信息;
第二软件集合获取模块,用于获取第二软件集合,所述第二软件集合包括至少一个第二组件,所述第二组件具有标识与许可信息,每一第二组件包括多个第二文件,所述第二文件具有标识与许可信息;
第一比对模块,用于将各个第二组件的标识与各个第一组件的标识进行比对,并在存在标识一致的第一组件与第二组件的组件对时,将所述组件对的许可信息进行比对,以得到第一比对结果;
第二比对模块,用于将所述组件对中第二组件所包括的各个第二文件的标识与所述组件对中第一组件所包括的第一文件的标识进行比对,并在存在标识一致的第一文件与第二文件的文件对时,将所述文件对的许可信息进行比对,以得到第二比对结果;
评估报告生成模块,用于至少根据所述第一比对结果以及所述第二比对结果生成所述第二软件集合的评估报告。
18.一种服务器,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至16中任一项所述软件评估方法的步骤。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至16中任一项所述软件评估方法的步骤。
CN202210269789.5A 2022-03-18 2022-03-18 软件评估方法及装置、计算机可读存储介质 Pending CN114637675A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210269789.5A CN114637675A (zh) 2022-03-18 2022-03-18 软件评估方法及装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210269789.5A CN114637675A (zh) 2022-03-18 2022-03-18 软件评估方法及装置、计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114637675A true CN114637675A (zh) 2022-06-17

Family

ID=81950475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210269789.5A Pending CN114637675A (zh) 2022-03-18 2022-03-18 软件评估方法及装置、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114637675A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028078A (zh) * 2022-12-15 2023-04-28 广州鲁邦通智能科技有限公司 一种基于vpn技术的软件远程升级方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028078A (zh) * 2022-12-15 2023-04-28 广州鲁邦通智能科技有限公司 一种基于vpn技术的软件远程升级方法
CN116028078B (zh) * 2022-12-15 2023-10-03 广州鲁邦通智能科技有限公司 一种基于vpn技术的软件远程升级方法

Similar Documents

Publication Publication Date Title
Zhan et al. Atvhunter: Reliable version detection of third-party libraries for vulnerability identification in android applications
US9489687B2 (en) Methods and systems for managing software development
Allix et al. A Forensic Analysis of Android Malware--How is Malware Written and How it Could Be Detected?
US11263120B2 (en) Feature-based deployment pipelines
KR101214893B1 (ko) 어플리케이션의 유사성 검출 장치 및 방법
CN108763951B (zh) 一种数据的保护方法及装置
CN111835756B (zh) App隐私合规检测方法、装置、计算机设备及存储介质
JP2012525648A (ja) バイナリソフトウェア分析
TW201403368A (zh) 運算環境安全方法和電子運算系統
CN109344657B (zh) 隐私风险评估方法和装置
Duarte et al. An empirical study of docker vulnerabilities and of static code analysis applicability
CN112115473A (zh) 一种用于Java开源组件安全检测的方法
Marshall Digital forensic tool verification: An evaluation of options for establishing trustworthiness
US9268944B2 (en) System and method for sampling based source code security audit
CN114637675A (zh) 软件评估方法及装置、计算机可读存储介质
Yang et al. Definition and Detection of Defects in NFT Smart Contracts
CN110597496A (zh) 应用程序的字节码文件获取方法及装置
Senanayake et al. Labelled Vulnerability Dataset on Android source code (LVDAndro) to develop AI-based code vulnerability detection models.
CN115587359A (zh) 应用程序包的权限检测方法、装置、电子设备及存储介质
CN115080426A (zh) 程序文件的检测方法及装置、存储介质和电子设备
US10574632B2 (en) System and method for secure sharing of a source code
Lu et al. A hybrid interface recovery method for Android kernels fuzzing
Pöll et al. Automating the Quantitative Analysis of Reproducibility for Build Artifacts derived from the Android Open Source Project
Cam et al. Detect repackaged android applications by using representative graphs
CN114048481A (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