西安银行科技部总经理  吴得耀

开源软件治理体系建设的背景与现状

开源技术在推动金融机构科技创新和数字化转型方面发挥着积极作用,根据我国金融行业开源技术应用社区调研结果显示,金融机构中超过90%的企业引入了开源软件,近四成金融机构使用超过1000个开源软件。伴随着开源软件在金融行业的广泛应用,给金融机构带来合规、安全和自主可控等方面的风险与挑战。2021年10月,人民银行联合“四部委”发布了《关于规范金融业开源技术应用与发展的意见》,鼓励金融机构把开源技术应用纳入自身信息化发展规划,建立健全开源技术应用管理制度体系,开源软件治理被监管部门提升到了新的历史高度。

西安银行自2020年启动开源软件治理体系建设工作,2021年上半年完成了开源软件应用现状调研、知识导入和存量开源软件治理探索;2021年下半年加入金融行业开源技术应用社区,学习和借鉴行业开源软件治理先进经验,逐步完成了开源软件治理工作实施方案规划;2022年上半年先后完成了制度流程、基础设施工具、存量台账等企业级开源治理能力的构筑和落地,并成功投入运行;2022年9月,西安银行正式通过中国信通院开源治理能力成熟度评估,获得增强级认证。

开源软件应用面临的主要风险

根据金融行业生产要素实际,开源软件在金融行业的应用主要面临合规风险、安全风险、技术风险和管理风险等四类风险(如图1所示)。

图1  开源软件风险概览

1.合规风险。开源软件受开源许可协议保护,使用开源软件必须遵守开源许可协议。在引入开源软件时面临的合规风险主要有:一是因违法开源许可协议而被迫开放源代码;二是商业软件是否遵守开源约定未知;三是部分开源许可协议并未包含明确的专利授予条款,知识产权风险易被忽略;四是开源许可协议之间可能不兼容。

2.安全风险。在使用开源软件时,如不能准确掌握并及时修复开源软件的安全漏洞,可能使漏洞风险流入到生产环节,从而成为被渗透攻击的对象,给各机构的资金安全、服务质量、客户留存率等带来巨大风险和不良影响。

3.技术风险。开源软件在使用过程中,由于各机构对开源软件的功能、性能、安全性、可靠性、可扩展性等方面技能储备不足,存在对开源软件配置不当,导致开源软件运行故障,影响系统的正常运行。

4.管理风险。管理风险主要有开源软件引入阶段缺乏必要评估的引入管理风险,开源软件部署、维护和运营主体权责不明晰导致的使用管理风险,开源信息列表管理缺失带来的台账管理风险,开源软件补丁升级时无法根据依赖关系准确评估影响范围的依赖管理风险等。

开源软件治理体系建设的实践方案

1.目标规划。将安全、合规和供应链安全作为开源软件治理体系建设的顶层战略目标,分两阶段进行实施落地(如图2所示)。第一阶段完成企业级开源软件治理关键能力构筑,包括建章建制、资产梳理、关键工具建设、出入口管控、漏洞精准识别与修复。第二阶段完成项目级开源软件治理能力构筑,将开源软件治理能力嵌入到项目端到端交付过程。总体工作方法以场景为出发点,分阶段逐步构筑各领域开源软件治理能力;通过条线试点方式,逐步实践、优化和推广开源软件治理方案;开发、运维、安全等多部门协同配合,确保方案“可行可落”;尝试以“开源软件治理开源”思路建设开源软件治理平台,提供开源软件治理的工具支撑。

图2  开源软件治理体系建设目标和规划

2.建设思路。落实组织架构和工作协同机制、建设开源软件治理工具平台、开展能力评估,持续提升开源软件治理能力,以此作为西安银行开源软件治理体系建设工作的指导原则,多角度和深度开展工作。建设方案具体为(如图3所示):一是基础能力建设,包括建立组织机制、管理制度和风险应急处置机制等。二是平台能力建设,包括建设开源制品库、软件成分分析工具(SCA)、开源软件治理平台、漏洞管理平台、研发管理平台、配置库和知识库。三是过程能力建设,包括引入、使用和退出三大过程,存量治理、采购、新申请、生产配置变更、安全漏洞处理、生产问题处理、升级和退出等八大关键流程。四是全场景覆盖,包括自研、采购、采购+自研和存量开源软件治理场景。

图3  开源软件治理体系建设实践方案

3.组织机制建设实践。开源软件治理组织架构主要涉及开源软件治理办公室、开源软件治理项目管理方、开源引入方、开源安全评估方、开源许可协议风险评估方、开源运维方和第三方。各团队的关键职责和分工见下表。

表  开源软件治理体系组织职责设置

4.制度流程建设实践。通过对开源软件使用现状进行调研,结合开源软件治理的目标找出差距,并设计合理的流程制度规范,将各团队、各角色和各流程结合起来,形成对开源软件全生命周期的治理制度流程。在日常运营过程中,基于实践反馈对制度流程进行持续优化。

开源软件治理全生命周期包括存量治理、采购、新申请、生产配置变更、安全漏洞处理、生产问题处理、升级和退出等八大关键流程。

存量治理流程关键活动包括系统排查、录入台账、系统整改。采购流程关键活动包括编写标书、开源软件信息披露、检视开源软件信息、开源软件使用申请。新申请流程关键活动包括提交开源软件申请单、合规评估、安全评估、技术评估、登记台账、软件入库。生产配置变更流程关键活动包括发起配置变更申请、配置变更安全评估、识别配置变更项、实施变更、更新配置库。安全漏洞处理流程关键活动包括披露开源安全漏洞、修复安全漏洞。生产问题处理流程关键活动包括提出问题、查阅问题库、输出问题解决方案、修复问题、更新问题库。升级流程关键活动包括识别待升级开源软件、评估升级可行性、规划升级需求、落地升级需求、更新台账。退出流程关键活动包括识别待退出开源软件、提交开源软件退出需求、实施开源软件退出、删除制品库开源制品。

5.基础设施建设实践。开源软件治理基础设施(如图4所示)包括制品库、代码库、漏洞库、软件成分分析工具、研发管理平台、漏洞管理平台和开源软件治理平台。

图4  开源软件治理基础设施架构

软件成分分析工具对接项目工程源码、目标码或制品库,对开源软件进行成分分析和安全漏洞扫描,识别系统与开源软件的依赖关系;研发管理平台用于需求和项目全生命周期研发管理;漏洞管理平台用于管理漏洞工单,并对漏洞工单进行跟踪处理;开源软件治理平台可对开源软件清单、版本、协议、台账、引入、退出、协议风险等进行管理处置。

基础设施为开源软件治理流程在多角色之间的高效协同提供了平台支撑,降低了开源软件治理工作的复杂性,提升了治理工作的效率与质量。

开源软件治理体系建设效果

截至2022年年中,西安银行开源治理体系建设工作已经完成了企业级开源软件治理能力建设,形成了从开源软件引入到开源软件退出全生命周期的开源软件治理方法论,并通过组织结构、制度流程、基础设施工具等方面的落地实践,助力开源软件治理体系高效运行,防范化解了开源软件应用带来的金融科技风险。中国信通院“2022中国开源软件产业大会”上公布了西安银行开源软件治理能力通过了企业级增强认证评定,标志着西安银行已具备成熟稳定的开源软件治理能力。

开源软件治理进一步探索

项目是需求交付的载体,企业级开源软件治理能力从制度规范、流程管理、资产管理、关键环节管控等方面构筑了大颗粒度开源软件治理能力,如何在企业级开源软件治理能力基础上构筑细粒度项目级开源软件治理能力,将开源软件治理融入到项目的端到端交付过程中,将作为西安银行进一步探索的方向。下一步西安银行将依托现有的开源软件治理基础设施,建设多平台联动机制,将开源安全扫描、黑名单控制、统一私服构建等融入到项目级流水线工具链,实现开源软件安全管控左移,增强项目级开源软件治理能力。

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