1月15日,人民银行发布金融行业标准《金融业开源软件应用 评估规范》(JR/T 0291-2024)(以下简称“《规范》”),于当天实施。
据悉,在金融业信息系统建设过程中,开源软件得到了广泛应用,在促进金融机构科技创新和数字化转型等方面发挥了积极作用,但也带来安全、合规等方面的风险与挑战。因此,有必要对开源软件的引入、维护、退出阶段进行规范,提出相应的评估指标。
《规范》旨在针对开源软件使用过程中的风险与难点,提出一套完整的开源软件生命周期管理各阶段评估项与评估方法,降低金融机构开源软件评估过程的复杂度和时间成本,提升金融机构开源治理能力。
《规范》规定了金融机构在应用开源软件时的评估要求,对开源软件的引入、维护和退出提出实现要求、评估方法和判定准则。适用于金融机构对应用的开源软件进行评估。
《规范》提到,引入的开源软件按照实际应用情况,可分为开源基础软件、开源组件和开源工具3类。
开源软件引入评估
开源软件引入流程分为3个阶段:
- 一是需求确定阶段。应明确软件功能需求与非功能需求。
- 二是初步筛选阶段。应根据需求展开调研,依照初选评估要求,对开源软件进行评估,建立若干可进入终选评估的开源软件名单。
- 三是终选评估阶段。应根据初选阶段建立的开源软件名单,依照终选评估要求进行评估,并确定最终引入的开源软件。
在初选评估要求上,评估维度包括:
1、开源许可证。金融机构在选用开源软件时,应遵守该开源许可证对使用、修改等行为的规定。 2、产品认可度。产品认可度反映了开源软件在行业生产实践中的应用情况。 3、产品活跃度。产品活跃度反映了开源软件的可持续性和可进化能力,主要从开源软件的版本发布情况、开源社区情况、软件关注情况等方面进行评估。 4、行业支持情况。行业支持情况反映开源软件在业界提供专业化服务的情况。 5、功能特性。不同软件用于解决不同场景的特定问题,其功能特性也不相同,对于功能的评测应结合具体场景进行。 6、安全性。初步筛选阶段安全性重点考查已暴露的漏洞情况。 7、可靠性。重点考察开源软件自身或者结合其他开源软件的高可用性,在出现故障时是否具备自动故障切换能力和容错能力。 8、兼容性。可通过查看文档的方式评估开源软件的兼容性,例如开源软件对不同硬件的兼容性、对不同操作系统的兼容性。
在终选评估要求上,评估维度则包括:
1、安全性。终选阶段安全性重点考查安全机制方面的支持情况。 2、可靠性。终选阶段可靠性重点考察外部开源软件长时间无故障运行的能力,系统可在极限情况下长时间稳定运行,保证业务成功率以及执行效率。 3、性能效率。终选阶段性能效率重点考查在实际压测环境下开源软件的TPS、QPS、平均响应时间、最大响应时间、最大并发数、服务调用成功率、时间标准差、CPU使用率、内存占用率、带宽占用及I/O情况。 4、兼容性。兼容性包括硬件兼容性、操作系统平台兼容性、数据库兼容性、开源软件版本之间的兼容性,以及编程语言的兼容性、协议兼容性、同一运行环境的其他组件兼容性、开源软件与国产操作系统兼容性。 5、可维护性。可维护性即维护人员对该开源软件进行维护的难易程度,具体包括理解、改正、改动和改进该软件的难易程度。 6、可扩展性。可扩展性主要包括分布式系统下节点的水平扩展、动态扩展及代码扩展能力。 7、易用性。易用性描述了开源软件的学习成本、安装和部署的难易程度等。
开源软件维护评估
在开源软件维护过程中,金融机构应根据开源软件的自主可控程度将开源软件进行分类管理,根据其对主营业务的影响程度分为3类:
- 简单使用类开源软件:可搭建环境,且功能可正常使用。
- 深度使用类开源软件:在满足简单使用类开源软件要求基础上,掌握开源软件容灾容错机制、实现原理、核心算法等重要内容。
- 定制开发类开源软件:在满足深度使用类开源软件要求基础上,熟悉代码实现、设计思路,通过定制开发能够较好地满足平台需求。
其中,简单实用类开源软件维护评估内容有:
深度使用类开源软件维护评估内容为:
定制开发类开源软件维护评估内容为:
开源软件退出评估
对于开源软件当前版本已无法满足功能、性能需求,或发现当前版本存在重大风险隐患,或该开源软件已停止更新等情况,应进行退出评估。开源软件的退出可通过开源软件版本升级或开源软件更换来实现。
开源软件退出评估内容包括:开源软件退出机制、开源软件的升级具备兼容性、开源软件在升级后开源许可证的变化,以及更换的开源软件。