一种开源代码的风险分析方法及装置制造方法及图纸

技术编号:38042778 阅读:19 留言:0更新日期:2023-06-30 11:09
本申请公开的开源代码的风险分析方法及装置中,通过构建与目标开源代码项目相关的知识图谱,实现通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析,该分析过程充分考虑了其它开源代码项目对目标开源代码项目的影响,从而可以发现更多潜在的开源许可证风险,进而增强了开源代码项目开源许可证风险检测的全面性和结果的准确性。风险检测的全面性和结果的准确性。风险检测的全面性和结果的准确性。

【技术实现步骤摘要】
一种开源代码的风险分析方法及装置


[0001]本专利技术涉及数据处理领域,尤其涉及一种开源代码的风险分析方法及装置。

技术介绍

[0002]软件开发过程中,依赖开源代码进行二次开发的情况屡见不鲜,虽然开源代码、开源社区的存在意义是为了代码共享、知识共享,但是开源代码在使用的过程中,也存在使用要求,包括社区要求、开源协议要求等,在使用代码过程中如果违反使用要求,例如,存在使用存在开源许可证风险的开源软件代码,可能会发生诉诸法律的风险。这些情况给开源代码二次开发的工作带来的很大困难,一定程度上阻碍了开源代码二次开发技术的发展。
[0003]为了避免开源许可证风险,在二次开发之前,通常需要对代码本身的风险进行分析,但是这种分析结果的准确性较低,无法满足更高的准确性需求。
[0004]因此亟需能够更准确的分析出开源许可证风险的方法。

技术实现思路

[0005]本申请公开了一种开源代码的风险分析方法及装置,已解决目前开源代码分析结果准确性低的问题。
[0006]一种开源代码的风险分析方法,包括:
[0007]确定目标开源代码项目;
[0008]构建与所述目标开源代码项目相关的知识图谱;其中,与所述目标开源代码项目相关的知识图谱包括多个端点,每个端点为一个开源代码项目,所述目标开源代码项目为所述知识图谱中的首端,所述知识图谱中直接相连的两个端点的开源代码项目中包含相似的代码成分;
[0009]通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析。
[0010]优选的,所述通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析,包括:
[0011]以所述知识图谱的末端为起始点,依据上一级开源代码项目与下一级开源代码项目之间的关系,逐级检测上一级开源代码项目存在的开源许可证风险,直至检测到目标开源代码项目;所述上一级开源代码项目和下一级开源代码项目表征直接相连的两个开源代码项目,且上一级开源代码项目靠近开源代码项目的首端。
[0012]优选的,所述依据上一级开源代码项目与下一级开源代码项目之间的关系,逐级检测上一级开源代码项目存在的开源许可证风险包括:
[0013]若上一级的开源代码项目中的第一开源代码文件不满足下一级的开源代码项目中的第二开源代码文件的开源许可要求,则通过第一开源代码文件和第二开源代码文件的关系分析所述上一级开源代码的开源许可证风险;所述第一开源代码文件和第二开源代码文件具有相似代码成分;
[0014]若上一级的开源代码项目中的第一开源代码文件不满足下一级的开源代码项目的第三开源代码文件的开源许可要求,且所述第三开源代码文件的开源许可要求对所述第二开源代码文件具有影响,则通过第一开源代码文件和第二开源代码文件的关系分析所述上一级开源代码的开源许可证风险。
[0015]优选的,还包括:
[0016]检测知识图谱中每个端点的开源代码项目的文件的开源许可要求的传染性的强度,并将每个端点的开源代码项目中的开源许可要求划分为强传染性和弱传染性。
[0017]优选的,所述从所述知识图谱的末端开始,逐级检测上一级的开源代码项目是否满足下一级的开源代码项目的开源许可要求,包括:
[0018]检测上一级的开源代码项目中的第一开源代码文件是否满足下一级的开源代码项目中的第二开源代码文件的许可要求;
[0019]若上一级的开源代码项目中的第一开源代码文件满足下一级的开源代码项目中的第二开源代码文件的许可要求,检测所述下一级的开源代码项目是否包含具有强传染性的开源许可要求的第四开源代码文件;
[0020]若所述下一级的开源代码项目中包含具有强传染性的开源许可要求的第四开源代码文件,则基于第四开源代码文件对第二开源代码文件的传染性,以及第二开源代码文件与第一开源代码文件的关系,所述上一级的开源代码项目的开源许可证风险。
[0021]优选的,所述通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析,包括:
[0022]检测知识图谱中每个端点的开源代码项目是否存在开源许可证风险;
[0023]从所述知识图谱的末端开始,通过下一级的开源代码项目的开源许可证风险对上一级的开源代码项目的开源许可证风险进行分析,直至分析到目标开源代码项目。
[0024]优选的,所述检测知识图谱中每个端点的开源代码项目是否存在开源许可证风险,包括:
[0025]针对知识图谱中的任意一个开源代码项目,提取该开源代码项目包含的各个文件;
[0026]获取该开源代码项目中每个开源代码文件的开源许可要求;
[0027]将该开源代码项目中任意一个开源代码文件的开源许可要求与该开源代码项目中其它的开源代码文件的开源许可要求进行比对,在比对结果不一致的情况下,确定该开源代码项目的开源许可证风险。
[0028]优选的,还包括:
[0029]检测具有相似代码成分的两个开源代码项目的版权是否一致;
[0030]若所述具有相似代码成分的两个开源代码项目的版权一致,则将具有相似代码成分的两个开源代码项目采用第一连接方式进行连接;
[0031]若具有相似代码成分的两个开源代码项目的版权不一致,则将所述具有相似代码成分的两个开源代码项目采用第二连接方式进行连接。
[0032]优选的,还包括:
[0033]针对知识图谱中任意一个开源代码项目,获取该开源代码项目与其它开源代码项目包含的相同代码成分与该开源代码项目的比值;
[0034]若所述比值大于预设的基准线,则表示该开源代码项目与其它开源代码项目具有相似的代码成分。
[0035]优选的,还包括:
[0036]通过知识图谱中各个端点的开源代码项目之间的关系,对知识图谱中每个端点上的开源代码项目的开源许可证风险进行分析。
[0037]优选的,所述通过知识图谱中各个端点的开源代码项目之间的关系,对知识图谱中每个端点上的开源代码项目的开源许可证风险进行分析,包括:
[0038]从所述知识图谱的首端开始,逐级检测下一级的开源代码项目是否满足上一级的开源代码项目的开源许可要求;
[0039]若下一级的开源代码项目不满足上一级的开源代码项目的开源许可要求,确定下一级的开源代码项目的开源许可证风险,直至检测到末端开源代码项目。
[0040]优选的,所述通过知识图谱中各个端点的开源代码项目之间的关系,对知识图谱中每个端点上的开源代码项目的开源许可证风险进行分析,包括:
[0041]检测知识图谱中每个端点的开源代码项目是否存在开源许可证风险;
[0042]从所述知识图谱的首端开始,通过下一级的开源代码项目的开源许可证风险确定上一级的开源代码项目的开源许可证风险,直至检测到末端开源代码项目。
[0043]本申请实施例还公开了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种开源代码的风险分析方法,其特征在于,包括:确定目标开源代码项目;构建与所述目标开源代码项目相关的知识图谱;其中,与所述目标开源代码项目相关的知识图谱包括多个端点,每个端点为一个开源代码项目,所述目标开源代码项目为所述知识图谱中的首端,所述知识图谱中直接相连的两个端点的开源代码项目中包含相似的代码成分;通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析。2.根据权利要求1所述的方法,其特征在于,所述通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析,包括:以所述知识图谱的末端为起始点,依据上一级开源代码项目与下一级开源代码项目之间的关系,逐级检测上一级开源代码项目存在的开源许可证风险,直至检测到目标开源代码项目;所述上一级开源代码项目和下一级开源代码项目表征直接相连的两个开源代码项目,且上一级开源代码项目靠近开源代码项目的首端。3.根据权利要求2所述的方法,其特征在于,所述依据上一级开源代码项目与下一级开源代码项目之间的关系,逐级检测上一级开源代码项目存在的开源许可证风险包括:若上一级的开源代码项目中的第一开源代码文件不满足下一级的开源代码项目中的第二开源代码文件的开源许可要求,则通过第一开源代码文件和第二开源代码文件的关系分析所述上一级开源代码的开源许可证风险;所述第一开源代码文件和第二开源代码文件具有相似代码成分;若上一级的开源代码项目中的第一开源代码文件不满足下一级的开源代码项目的第三开源代码文件的开源许可要求,且所述第三开源代码文件的开源许可要求对所述第二开源代码文件具有影响,则通过第一开源代码文件和第二开源代码文件的关系分析所述上一级开源代码的开源许可证风险。4.根据权利要求2所述的方法,其特征在于,还包括:检测知识图谱中每个端点的开源代码项目的文件的开源许可要求的传染性的强度,并将每个端点的开源代码项目中的开源许可要求划分为强传染性和弱传染性。5.根据权利要求4所述的方法,其特征在于,所述从所述知识图谱的末端开始,逐级检测上一级的开源代码项目是否满足下一级的开源代码项目的开源许可要求,包括:检测上一级的开源代码项目中的第一开源代码文件是否满足下一级的开源代码项目中的第二开源代码文件的许可要求;若上一级的开源代码项目中的第一开源代码文件满足下一级的开源代码项目中的第二开源代码文件的许可要求,检测所述下一级的开源代码项目是否包含具有强传染性的开源许可要求的第四开源代码文件;若所述下一级的开源代码项目中包含具有强传染性的开源许可要求的第四开源代码文件,则基于第四开源代码文件对第二开源代码文件的传染性,以及第二开源代码文件与第一开源代码文件的关系,所述上一级的开源代码项目的开源许可证风险。6.根据权利要求1所述的方法,其特征在于,所述通过知识图谱中各个端点的开源代码项目与目标开源代码项目的关系,对目标开源代码项目的开源许可证风险进行分析,包括:
检测知识图谱中每个端点的开源代码项目是否存在开源许...

【专利技术属性】
技术研发人员:邓辉张宝峰杨永生孙亚飞王亚楠黄小莉
申请(专利权)人:中国信息安全测评中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1