OpenHarmony License识别与污染治理:现状与未来 | xxxOpenHarmony License识别与污染治理:现状与未来 – xxx
菜单

OpenHarmony License识别与污染治理:现状与未来

四月 26, 2024 - 安全内参

演讲嘉宾 | 刘新&刘子昂

回顾整理 | 廖 涛

排版校对 | 宋夕明

OpenHarmony License识别与污染治理:现状与未来

嘉宾介绍

OS内核及视窗分论坛

刘新,兰州大学信息科学与工程学院副教授、硕士生导师,长期从事网络空间安全基础技术研究,主要包括代码安全、人工智能对抗、开源情报(OSINT)等。现为OpenHarmony 安全委员会委员、供应链来源安全与可信工作组组长,兰州大学 OpenHarmony 俱乐部指导教师。

刘子昂,兰州大学信息科学与工程学院博士研究生,主要从事知识图谱驱动安全技术研究,现为兰州大学 OpenHarmony 技术俱乐部开源许可证治理课题组负责人。

正文内容

开源许可证是开源软件生态系统的基础,可以促进软件的协同开发;开源软件的使用、复制、修改和再发布等都需要通过开源许可证的验证。在OpenHarmony开源生态发展的过程中,如何通过加强对开源软件许可证的管理保障开发安全?兰州大学OpenHarmony技术俱乐部的指导教师刘新和开源许可证治理课题组负责人刘子昂在第二届OpenHarmony技术大会上进行了精彩分享。

OpenHarmony License识别与污染治理:现状与未来

OpenHarmony License识别与污染治理:现状与未来

开源生态发展势头迅猛,企业或个人在使用、参与或主导开源项目的过程中,一般都会涉及开源许可证的相关问题。如果对开源许可证的理解或适用上存在误区,引入第三方组件可能会产生诸多风险,如:被迫开放源代码的风险、许可证的兼容性风险、违约风险及知识产权风险。

OpenHarmony License识别与污染治理:现状与未来

许可证兼容性是指能够将不同许可证授权的源代码组合到同一软件中。如果开源软件开发过程中组合了多个基于不同许可证的源代码,并且这些许可证条款中包含相互冲突的必要条件,那么开发者无法将这些源代码组合到同一软件,从而引发许可证兼容性风险。

通过对许可证进行结构化表示与兼容性推理,能够分析各个许可证之间的兼容性关系,为开源开发者对许可证的理解和合规使用提供参考和决策支持。目前,兼容性关系分析的方法主要分为多跳关系和单跳关系两种建模方式。其中,多跳的兼容性关系图在检索多跳关系时,时间复杂度上升很高,精心设计的兼容性关系只能压缩兼容性数据表示规模,并不会减少开销;而单跳关系建模许可证兼容性关系可以应对该问题,意味着对于任意许可证A和B而言,两者之间如果不存在直接相连的兼容/条件兼容关系,则A与B不兼容。

OpenHarmony License识别与污染治理:现状与未来

据Linux基金会开源项目SPDX统计,目前大量开源许可证的兼容性关系处于无人维护状态。针对该问题,作者本人及其所在团队搜集了目前公开渠道能够获取的109个开源许可证和834个兼容性关系的数据(其中正样本(兼容)400个;负样本(不兼容)434个),并通过许可证结构化表示与兼容性推理,分析出其余许可证的兼容性关系。

基于以单跳关键系建模的开源许可证知识库,设计了一款许可证兼容性分析系统,该系统基于消息队列的简单分布式事务实现,兼容性分析主体通过拉取 SBOM 信息,检索知识图谱中的兼容性关系,分析待检测代码仓的兼容性关系。此外,知识图谱也提供许可证结构化表示能力。

OpenHarmony License识别与污染治理:现状与未来

考虑到实际被SPDX索引的开源许可证数目仍远大于已经涵盖的许可证,团队基于机器学习方法在开源许可证兼容性问题上进行了一些尝试,主要有:

一、基于结构化信息和License认证信息一共搜集了30种特征。针对每个特征构造二值向量作为特征向量。初步验证时采用SVM将两个特征向量拼接后做二分类,即兼容/不兼容。

OpenHarmony License识别与污染治理:现状与未来

二、同基于结构化信息和License认证信息,采用图神经网络将兼容性推理看作链接预测问题,通过正负采样兼容性关系训练图神经网络再使用FFN对边进行预测。

OpenHarmony License识别与污染治理:现状与未来

后续,作者本人及其所在团队在构建许可证兼容性分析数据、创建开源许可证知识图谱、开源许可证兼容性分析方法研究以及开源许可证合规性分析系统设计等方向将进一步研究和探索,保障开源软件开发安全。

声明:本文来自OpenHarmony TSC,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。


Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51