Page 95 - 《软件学报》2020年第10期
P. 95
梁冠宇 等:面向操作系统可靠性保障的开源软件供应链 3071
通过开源协议分布数据可以看出,在该供应链中,LGPLv2+、GPLv2+、GPLv3+、BSD、MIT 这几种协议的
采用率较高,占到总数的 73.2%.其中,采用率最高的是 LGPLv2+,该种类型协议约束下的开源软件允许商业软件
直接使用,但是不允许修改源代码;GPLv2+和 GPLv3+的采用率次之,总体来说,GPL 类协议约束下的开源软件,
允许使用和修改源代码,但不允许修改后的代码作为闭源商业软件的一部分发布和销售;BSD 和 MIT 两种协议
约束更为宽松,既允许使用和修改,也允许商业发售.整体来看,目前大部分开源软件所采用的协议以鼓励开放
和共享为主,同时,对于无条件索取的行为也在进一步加以限制.对于国内大部分软件产品的供应链可靠性来
说,若不尽快调整我们对开源的认知和态度,构建更加可靠的软件生态,这些限制无疑将在未来给开源软件供应
可靠性带来巨大的挑战.
此外,从图 8 的两个地理分布相关的图例中,可以明显地看出,在构建操作系统这类基础软件所需的开源软
件包中,无论是在项目维护者还是直接参与贡献的人员中,我国的比例都相对较低.造成这种现象的原因,一方
面可能是因为国内开源文化起步较晚,大部分从业人员或相关公司都对开源的理解有限,与此同时,基础软件开
发也存在门槛相对较高且投入成本较大等现实问题,这些因素综合起来导致整体参与度不高;另一方面,也可能
是我国的开源贡献人员在这些开源软件中缺少话语权,很多建议和贡献都很难被采纳,因而导致贡献度较低.显
然,较低的主导权和参与度会对开源软件供应链的可靠性带来巨大的风险.
根据第 3.3.1 节描述的可靠性评分生成过程,在本实验中,由于缺少途径 1 相关数据,我们主要依赖途径 3,
为了尽可能地保证数据的客观、有效,我们邀请了 4 位长期从事基础软件可靠性和安全性研究的博士,10 位具
备硕士学位或 5 年以上工作经验的相关专业从业者参与实验,以及 10 位有 2 年以上开源软件使用经验的在读
研究生,所有评分参与者均依据系统提供的统计数据和自己的经验进行打分.考虑到 3 类人员不同的专业能力,
为他们分别分配了 0.5、0.3 和 0.2 的权值.配合途径 2 和途径 4 的机制,系统最终收敛得到该供应链的可靠性评
分.最终评分占比如图 10 中蓝色柱形(“事件发生前”)所示,其中低风险为 27.68%,中等风险为 70.54%,高风险为
1.79%.结合供应链统计数据,我们发现,参与人员的评分结果更加关注地理分布和开源协议类型这两个指标的
数据,评分较低的软件包均归属于来自美国的组织或个人,同时采用的开源协议类型约束相对较大.这说明参与
评分的人员对政治风险以及开源协议约束相对关注.进一步观察后发现,活跃程度和可替代性等指标所起到的
指导作用有限,是因为当前实验用例中,目标系统的供应链在这些指标的数据并无明显差异.
Fig.10 The proportion of reliability score
图 10 可靠性评分占比
为验证系统关于途径 1 以及事件监控相关的能力,我们特意在系统评分稳定后,通过事件注入的方式,注入
事件“GNU 组织限制中国企业使用 bash”.该事件中,“GNU”“bash”均为系统用于事件提取的关键字,“限制”是负
向影响事件的关键字,当系统捕获该事件后,系统对整个供应链的可靠性评分做出调整,结果如图 10 中橙色柱
形(“事件发生后”)所示.从结果可以看出,由于负向事件的捕获,系统对供应链中“bash”软件包节点的可靠性评
估做出相应的调整,同时,由于系统的更新机制,依赖“bash”的软件包,其可靠性评分也相应做出调整.