当前,越来越多的企业申请通过信通院的开源治理成熟度评估和认证,获得增强级或先进级评估。这些企业包括中国工商银行股份有限公司、中国农业银行、上海浦东发展银行股份有限公司、中信银行股份有限公司、中国太平洋保险(集团)股份有限公司、招商银行股份有限公司(增强级)、西安银行股份有限公司(增强级)、宁波银行股份有限公司(增强级)、中国联合网络通信有限公司软件研究院(增强级)、中国移动通信集团有限公司等。下面我编著了这些企业在开源治理评估中的一些关键点,并对这些关键点添加作者的一些观点。
(1)工商银行
一是开源介质的管理问题。开源介质的下载及日常管理是一项落地执行难度非常大的工作。例如以Java语言技术栈为主的银行,从互联网外部软件库下载开源软件时到行内版本库,无法避免地会陷入到不同开源软件之间复杂的继承包含关系。下载大量开源组件的同时,不同的开源项目里可能引用了不同相同的组件。一个引用了多个开源项目的应用系统里内部,会产生大量组件版本冲突的问题。消除不同开源项目里包含组件的版本冲突,以及确保所有的开源介质都已经完成了引入登记,是我们日常工作中的一个难点问题。
注:这里的开源介质应该就是开源组件,上述描述是开源软件,实际上是开源组件,开源软件是指开源操作系统、数据库和中间件等完整软件发布和使用的开源软件。开源组件是指主要以jar包二进制形式引入的为实现某个或某组特定功能的软件功能的程序,当然也可以以源代码形式引入。作者认为对引入的开源组件进行登记是必要的,不管是人工线下登记流程还是线上登记流程,对开源组件登记并不是我们做开源治理的主要目的,而是登记的开源组件是否存在风险的组件,这种风险一方面是否包含高危安全漏洞;另一个方面是否是高传染性的许可证。登记不是目的,登记上如何对其进行跟踪管理才是重点。
二是开源许可证变更的合规管理。开源许可证的合规检查,并不是引入开源项目时一次性工作。我们发现有些开源产品在版本升级的同时,也对开源协议也进行变更。例如从原有的宽松协议变更为具有强传染性的AGPL协议,可能导致银行侧使用开源产品从合规变成不合规,防范难度大、改造成本高。要求我们日常要加大力度开源软件的生命周期、版本变化,日常运营阶段提高工具扫描和检查整改的频度。工商银行为了规避此类风险,日常会特别注意扫描应用版本库和开源软件登记台帐,确实也增加了大量管理成本。
注:关于开源组件的许可证变更问题,实际上在一个企业引入的是几千、几万个开源组件中,这种情况的确会存在,但是也只能是开源治理中需要关注的一个点。解决现有使用的开源组件中具有高传染性的GPL许可证协议组件本身就是一个巨大的工作量了。企业不能丢了西瓜捡芝麻。
(2)中信银行
随着开源的技术应用越来越多,中信银行形成了一套覆盖事前、事中、事后的管控机制。我们会将一些可掌控的关键核心组件纳入进管控基线中,形成主推,在设计阶段强制使用,从而减少同类组件的多头引用。
注:这实际上是在开源治理中,为了简化管理的开源组件数量,把引入开源组件进行归一化,同功能组件尽量做到只选择一个。
目前,中信银行保存的开源软件引用信息超过30万条,日常工作中主要挑战就是安全漏洞的整改,这也是行业里的一个痛点问题。这里为大家分享我们日常管理过程中一些比较具体的举措:一是要管好入口,形成统一的可信源,让所有的开源组件基于一个统一的制品库去引用;二是开源组件的管理要纳入到自身管控体系中,把它作为一个常态化技术架构的管控元素去看待;三是漏洞未必是风险,需要结合安全的分级策略,对漏洞进行分级,来让我们更好地去判断如何整改;四是考虑成本和收益的平衡,优先整改渠道系统和重要系统。五是关注差异化处理,高危的漏洞优先整改。
注:对于一个存在上百个业务系统的银行开源治理活动中,对存量系统检测一遍,可能就会有几万个漏洞,这些安全漏洞全部进行修复基本上是一个不太可能得事情,对应用系统、安全漏洞采取分类、分级方式进行归类,对于部分安全漏洞进行修复是可行方案,其它漏洞纳入台账进行跟踪监控是切实可行的方案之一。
(3)农业银行
机遇与挑战并存,开源技术渗透金融全场景
开源技术开放、共享、自由的特性,助推了金融科技应用。在自主可控、提质增效压力驱动下,金融行业越来越多地选择开源技术产品作为其“分布式”架构组成部分,开源技术已成为金融服务的重要技术支撑。金融机构基于开源技术应用取得科技创新、业务赋能等积极成效时,也面临诸多风险。一是因开源漏洞引发的安全事件时有发生。例如2021年,Log4j2远程代码执行漏洞引发了重大风险。根据安全公司Snyk发布的报告,2012年以来,每年公布的开源软件漏洞都在快速增长,严重影响开源软件在金融领域的价值发挥。二是金融机构如果在没有自主可控能力的情况下过度依赖开源技术,将面临失去科技控制及创新能力,影响安全生产,并引发业务创新的风险。三是开源许可证带来了法律合规方面的风险。2021年,我国首例GPL协议著作权纠纷案在广东省深圳市宣判,标志着我国法律正式承认开源许可证的合法地位,金融机构应结合使用场景防范开源许可证带来的风险。
兼顾安全与创新,凝聚金融业开源技术发展方向
因开源技术的广泛使用,金融机构日益重视开源治理工作。在此背景下,人民银行联合四部委发布的《意见》,整体从金融机构使用开源、金融机构自发开源、开源生态构建、标准体系与法律保障等4个方面提出了指导意见,并重点提出了金融机构在使用开源技术时应遵循“安全可控、合规使用、问题导向、开放创新”四大基本原则,以及“鼓励金融机构将开源技术应用作为提高核心技术自主可控能力的重要手段”。《意见》的出台,为规范和鼓励金融机构合理应用开源技术,提高应用水平和自主可控能力,促进开源技术健康可持续发展,提出了目标,厘清了定位,指明了方向。
融合五位一体,农业银行开源治理实践
农业银行较早使用了开源技术,长期开展开源治理实践,按照“统筹规划、合理布局、分布实施、优化改进”的原则,提出了融合传统和开源理念的软件管理体系和框架TOSIM(Traditional & Opensource Software Integrated Management),并以平台化、专业化建设为主线,深化开源技术自主可控和融合创新之路,结合DevOps体系建设,支持银行在研发、测试和运维过程中实现开源技术的全流程一体化管理。
1.管理体系和框架概述
农业银行对开源技术进行分级分类管理:对重要开源基础软件和开源框架采取强管理措施;对开源组件和工具,在安全合规的前提下适度降低管理成本。农业银行按照统一的评估方法、评估模型和平台工具,以软件研发的全生命周期为主线,实施五位一体的规范化管理。一是在架构管理领域,建立开源技术使用规划,并对开源技术引入、各系统使用何种开源技术进行评审;二是在项目管理领域,明确使用开源技术的工作流程和要求,在项目需求、设计规范中综合融入开源技术管理要求;三是在安全管理领域,建立开源技术安全管理体系,及时发现和妥善处置开源技术安全漏洞;四是在配置管理领域,建立开源技术配置库,提供稳定可靠的开源技术使用服务,建立开源技术与应用系统之间的关系视图;五是在运维管理领域,将开源技术纳入应急管理体系,建立开源技术应急预案,提高对开源技术引发事件的应急处置能力。
2.建立评估方法与模型
农业银行从业务需求及目标入手,制定测评方案,开展引入选型。选型过程中遵守关于开源技术使用的成本、研发周期、知识产权、法律合规等相关约束条件。在测评过程中,充分考虑组织、技术、环境、适配、过程等领域的实际情况,制定合理有效的测评指标,确保所引入开源技术的综合能力与企业需求匹配程度的最大化。
农业银行开源技术测评模型包括了开源许可证、行业认可度、产品活力、服务支持、功能性、性能效率、安全性、可扩展性、可靠性、可维护性、兼容性、易用性等。并在此基础上,补充了应用系统定级模型、开源技术分类模型和风险定级模型,共同打造开源技术的可信评估模型,全面强化了评估的综合化与可信性。
3.制订管理制度与流程
农业银行按照分级分类管理、拥抱创新、风险可控的管理原则,建立了管理组织架构,在科技与产品创新委员会统筹和管理下,设立了部门技术委员会和专业的开源技术管理团队,从全局出发统筹和评审开源技术应用和管理工作。明确了管理流程,将开源技术进行一体化融合式管理,在应用系统的需求分析、设计、开发、测试交付、投产运行的全生命周期工程中,按软件的分级分类特征,对开源技术进行规划、引入、使用、运维支持、退出的全流程管理。其中,对重要开源基础软件和开源框架,通过专业团队测评和支持、提升审查级别等措施加强管理;对开源组件和开源工具,在安全合规的前提下,通过简化测评模板、降低审批层级等方式适度减少管理成本。同时,明确该流程中伴随的安全管理、配置管理和知识产权管理。
4.建设管理平台与工具
农业银行建设了完善的开源管理平台与工具。一是研发工具平台,由管理态和运行态两大工具集组成。二是资产管理平台,将开源软件统一纳入配置库进行管理,支持管理多种语言类型组件,具备与构建管理工具、源代码安全检查工具、漏洞扫描工具集成的功能。三是安全管理平台,对开源软件开展统一的安全检查及处置,通过开展漏洞扫描及源代码安全检查,及时发现开源软件可能存在的安全风险,生成处置任务,根据不同的处置策略开展安全治理。四是研发支持平台,提供专业化、标准化、精细化的线上支持服务,构建传播知识、解决问题的线上平台,打造企业内部的社交网络和技术文化。
通过管理平台和工具的贯通,农业银行将开源技术的管理规则固化到DevOps流程中,在开发测试过程中实现自动化触发、审查、拦截。一是在开发阶段,自动从可信渠道自动下载开源软件。二是在提交测试准入时,自动建立使用视图并识别首次使用的组件,向开发人员推送技术测评任务。三是在投产构建时,自动校验测评信息,对未完成技术测评的开源软件推送补测任务。四是设置质量门禁,自动根据测评、漏洞情况判定是否进行制品晋级,制品晋级后方可用于投产。通过自动化流程,实现了开源技术精细化管理并大幅提高了工作效率。
5.基于开源技术开展平台化封装
农业银行十分重视开源技术自主可控能力建设,对关键开源软件进行二次开发,封装成技术平台供行内应用系统使用。重点打造了全栈式技术中台,在人机交互、应用协同、外联开放、应用服务、公共服务和运营管理等6个子域,融合多种开源技术和自研能力,形成技术平台。例如:基于Spring Boot框架建设了综合应用平台,提供完善的基础架构降低开发技术难度,让研发人员能够专注业务,快速开发出复杂的业务功能;基于Nginx建设了综合网关平台,为应用系统提供多样的软负载均衡能力,支持TCP/HTTP/HTTPS等多种协议。农业银行对开源技术的平台化封装具有以下特点:一是范围广,涉及大部分自研技术平台;二是程度深,部分平台核心功能基于开源技术建设,供外围系统和核心系统有序应用;三是技术栈收敛,采用主流开源技术,保持技术平台在长周期的稳定性;四是自主化高,配备专业团队建设和运营,深度掌控开源技术。
截至目前,农业银行已规范使用了超过5000种开源软件,涉及30多种开源许可证,有力支撑了本行金融科技创新,契合了《意见》要求,获得了监管机构和同业的认可。2018年,农业银行《金融科技转型中商业银行开源软件管理和应用的探索与实践》课题,获得了银保监会银行业信息科技风险管理课题一类成果。2019年,农业银行成为首批通过信通院可信开源治理能力评估的金融企业。2020年,农业银行在信通院可信开源治理成熟度评估中被评为最高等级“先进级”。2021年,农业银行课题《金融业开源治理体系与标准化研究》获得金标委2020年度金融标准化重点研究课题一等奖。
展望未来发展,从开源使用者向开源贡献者转型
开源大势浩浩荡荡,金融机构既是开源技术的使用者,也必将成为开源技术的参与者和贡献者。农业银行将进一步贯彻落实《意见》要求,一是以开源促创新,持续优化行内使用开源技术的管理体系,坚守安全可控底线,合规使用开源技术,加强金融科技创新能力。二是以创新谋发展,积极开展对外开源工作,通过试点项目探索外部路径,形成参与外部开源建设的规范化引导;深度参与开源项目相关的开源社区、基金会等组织,鼓励研发人员代表本行深度参与外部开源项目,加深技术掌控力,体现大行担当。农业银行将在监管机构的指导下,携手同业,为金融行业开源生态建设贡献力量。
(4)浦发银行
老师您好,请介绍一下您和您的企业,以及此次参与评估的项目。
A:您好,我是来自浦发银行总行信息科技部创新实验室的杨欣捷,负责浦发银行开源治理相关工作。浦发银行有科技人员近5000人,开发过程中大量使用了开源软件和组件。我行去年作为首批单位,通过了信通院发起的可信开源治理能力评估。今年,也顺利通过了可信开源治理成熟度评估-达到先进级,也就是最高等级。
Q:恭喜您通过可信开源治理成熟度评估,您的感受是怎样的?
A:随着开源软件的广泛使用,开源治理能力愈发重要。我认为信通院设立开源治理成熟度评估很有意义,这样在业内形成了开源治理能力统一的评判标准。给各单位开源治理能力的形成设定了明确目标。此外感谢我行支持开源治理工作的领导,和参与开源治理工作的同事。自2018年初以来,开始筹建开源治理体系,至今形成制度、团队、流程、工具、评估机制、社区等较为全面的开源治理体系,能顺利通过可信开源治理成熟度评估。
Q:贵单位参与本次可信开源治理成熟度评估,请问企业有哪些考量?
A:一是能了解同业开源治理现状,学习优秀经验,了解我行现有的开源治理能力在业内的水平;二是检视我行现有开源治理实践还存在哪些不存之处,以找到后续迭代优化的方向;三是获得行业认可,彰显浦发银行科技输出的实力。
Q:通过可信开源治理成熟度评估带给企业和团队哪些变化?
A:一是肯定了团队的前期工作成果,鼓舞团队士气;二是帮助我们找到完善开源治理体系的方向,形成工作计划。
Q:在可信开源治理成熟度评估过程中的困难与解决办法,可以分享一下吗?
A:对于我们这种大型组织,开源治理过程中最大的挑战就是组织上下的共识。需要领导层面对开源治理工作的认可和重视,以及组织内部的充分宣贯。
Q:对于开源治理工作的开展,下一步计划有几方面?
A:下一步计划引入开源扫描工具,自动化扫描项目中用到的开源组件,和CI/CD流程结合,减少人工收集的工作量和误报率,提高我行开源组件信息账单的准确率、覆盖率及自动化程度。
Q:对于开源治理的未来发展方向,您有何看法?
A:开源软件的特定性质决定了需要特定的管理方法。开源治理就是针对开源软件管理的一套体系和方法论。目前国内开源治理大部分处于起步阶段,但包括金融机构在内的越来越多的企业逐渐重视并参与开源治理能力建设。由于开源治理的涉及面比较广,开源治理标准的形成,以及开源治理社区共享机制的建立,能大大促进开源治理实践经验交流,降低企业开源治理的门槛,提升开源治理能力建设的效率。浦发银行在2018年和信通院联合发起成立了金融行业开源技术社区,就是金融行业在开源应用和开源治理领域共享和对话的很好的平台,随着更多社区成员的加入,社区本身运作的完善,相信聚集大家的力量,国内的开源治理工作能越做越好
(5)西安银行
西安银行自2020年启动开源软件治理体系建设工作,2021年上半年完成了开源软件应用现状调研、知识导入和存量开源软件治理探索;2021年下半年加入金融行业开源技术应用社区,学习和借鉴行业开源软件治理先进经验,逐步完成了开源软件治理工作实施方案规划;2022年上半年先后完成了制度流程、基础设施工具、存量台账等企业级开源治理能力的构筑和落地,并成功投入运行;2022年9月,西安银行正式通过中国信通院开源治理能力成熟度评估,获得增强级认证。
注:存量开源软件治理探索应该是口误,不能误导大家。应该是对存量系统治理探索。
开源软件应用面临的主要风险
根据金融行业生产要素实际,开源软件在金融行业的应用主要面临合规风险、安全风险、技术风险和管理风险等四类风险(如图1所示)。
开源软件风险概览
1.合规风险。开源软件受开源许可协议保护,使用开源软件必须遵守开源许可协议。在引入开源软件时面临的合规风险主要有:一是因违法开源许可协议而被迫开放源代码;二是商业软件是否遵守开源约定未知;三是部分开源许可协议并未包含明确的专利授予条款,知识产权风险易被忽略;四是开源许可协议之间可能不兼容。
注:这里开源软件还是开源组件的意思。
2.安全风险。在使用开源软件时,如不能准确掌握并及时修复开源软件的安全漏洞,可能使漏洞风险流入到生产环节,从而成为被渗透攻击的对象,给各机构的资金安全、服务质量、客户留存率等带来巨大风险和不良影响。
注:实际上,对于银行存量系统中存在的几万个安全漏洞,短期内不太可能进修复,带着漏洞运行是必然的。但是对这些漏洞根据威胁情报进行跟踪管控是必要的。
3.技术风险。开源软件在使用过程中,由于各机构对开源软件的功能、性能、安全性、可靠性、可扩展性等方面技能储备不足,存在对开源软件配置不当,导致开源软件运行故障,影响系统的正常运行。
注:使用开源软件时,大多数人都是百度网络上的帖子和博客,尤其是刚刚引入使用开源软件时,这是存在着风险的。
4.管理风险。管理风险主要有开源软件引入阶段缺乏必要评估的引入管理风险,开源软件部署、维护和运营主体权责不明晰导致的使用管理风险,开源信息列表管理缺失带来的台账管理风险,开源软件补丁升级时无法根据依赖关系准确评估影响范围的依赖管理风险等。
开源软件治理体系建设的实践方案
- 目标规划。将安全、合规和供应链安全作为开源软件治理体系建设的顶层战略目标,分两阶段进行实施落地(如图2所示)。第一阶段完成企业级开源软件治理关键能力构筑,包括建章建制、资产梳理、关键工具建设、出入口管控、漏洞精准识别与修复。第二阶段完成项目级开源软件治理能力构筑,将开源软件治理能力嵌入到项目端到端交付过程。总体工作方法以场景为出发点,分阶段逐步构筑各领域开源软件治理能力;通过条线试点方式,逐步实践、优化和推广开源软件治理方案;开发、运维、安全等多部门协同配合,确保方案“可行可落”;尝试以“开源软件治理开源”思路建设开源软件治理平台,提供开源软件治理的工具支撑。
开源软件治理体系建设目标和规划
2.建设思路。落实组织架构和工作协同机制、建设开源软件治理工具平台、开展能力评估,持续提升开源软件治理能力,以此作为西安银行开源软件治理体系建设工作的指导原则,多角度和深度开展工作。建设方案具体为(如图3所示):一是基础能力建设,包括建立组织机制、管理制度和风险应急处置机制等。二是平台能力建设,包括建设开源制品库、软件成分分析工具(SCA)、开源软件治理平台、漏洞管理平台、研发管理平台、配置库和知识库。三是过程能力建设,包括引入、使用和退出三大过程,存量治理、采购、新申请、生产配置变更、安全漏
洞处理、生产问题处理、升级和退出等八大关键流程。四是全场景覆盖,包括自研、采购、采购自研和存量开源软件治理场景。
开源软件治理体系建设实践方案
组织机制建设实践。开源软件治理组织架构主要涉及开源软件治理办公室、开源软件治理项目管理方、开源引入方、开源安全评估方、开源许可协议风险评估方、开源运维方和第三方。各团队的关键职责和分工见下表。
开源软件治理体系组织职责设置
4.制度流程建设实践。通过对开源软件使用现状进行调研,结合开源软件治理的目标找出差距,并设计合理的流程制度规范,将各团队、各角色和各流程结合起来,形成对开源软件全生命周期的治理制度流程。在日常运营过程中,基于实践反馈对制度流程进行持续优化。
开源软件治理全生命周期包括存量治理、采购、新申请、生产配置变更、安全漏洞处理、生产问题处理、升级和退出等八大关键流程。
存量治理流程关键活动包括系统排查、录入台账、系统整改。采购流程关键活动包括编写标书、开源软件信息披露、检视开源软件信息、开源软件使用申请。新申请流程关键活动包括提交开源软件申请单、合规评估、安全评估、技术评估、登记台账、软件入库。生产配置变更流程关键活动包括发起配置变更申请、配置变更安全评估、识别配置变更项、实施变更、更新配置库。安全漏洞处理流程关键活动包括披露开源安全漏洞、修复安全漏洞。生产问题处理流程关键活动包括提出问题、查阅问题库、输出问题解决方案、修复问题、更新问题库。升级流程关键活动包括识别待升级开源软件、评估升级可行性、规划升级需求、落地升级需求、更新台账。退出流程关键活动包括识别待退出开源软件、提交开源软件退出需求、实施开源软件退出、删除制品库开源制品。
5.基础设施建设实践。开源软件治理基础设施(如图4所示)包括制品库、代码库、漏洞库、软件成分分析工具、研发管理平台、漏洞管理平台和开源软件治理平台。
开源软件治理基础设施架构
软件成分分析工具对接项目工程源码、目标码或制品库,对开源软件进行成分分析和安全漏洞扫描,识别系统与开源软件的依赖关系;研发管理平台用于需求和项目全生命周期研发管理;漏洞管理平台用于管理漏洞工单,并对漏洞工单进行跟踪处理;开源软件治理平台可对开源软件清单、版本、协议、台账、引入、退出、协议风险等进行管理处置。
基础设施为开源软件治理流程在多角色之间的高效协同提供了平台支撑,降低了开源软件治理工作的复杂性,提升了治理工作的效率与质量。
开源软件治理体系建设效果
截至2022年年中,西安银行开源治理体系建设工作已经完成了企业级开源软件治理能力建设,形成了从开源软件引入到开源软件退出全生命周期的开源软件治理方法论,并通过组织结构、制度流程、基础设施工具等方面的落地实践,助力开源软件治理体系高效运行,防范化解了开源软件应用带来的金融科技风险。中国信通院“2022中国开源软件产业大会”上公布了西安银行开源软件治理能力通过了企业级增强认证评定,标志着西安银行已具备成熟稳定的开源软件治理能力。
开源软件治理进一步探索
项目是需求交付的载体,企业级开源软件治理能力从制度规范、流程管理、资产管理、关键环节管控等方面构筑了大颗粒度开源软件治理能力,如何在企业级开源软件治理能力基础上构筑细粒度项目级开源软件治理能力,将开源软件治理融入到项目的端到端交付过程中,将作为西安银行进一步探索的方向。下一步西安银行将依托现有的开源软件治理基础设施,建设多平台联动机制,将开源安全扫描、黑名单控制、统一私服构建等融入到项目级流水线工具链,实现开源软件安全管控左移,增强项目级开源软件治理能力。
(6)国泰君安
在大会开始前,我们有幸邀请到了国泰君安证券股份有限公司信息技术部总经理黄韦与大家聊一聊开源技术在证券行业的应用问题与成功实践,并从组织设立、标准制定、平台建设、生态打造等多维度,详细分享了国泰君安证券的开源治理思路与成效,希望为证券行业开展开源治理工作提供价值参考。
以下是访谈实录,略有删减。
Q1:开源软件在金融行业有着广泛的应用,能和我们分享一下目前国泰君安证券开源软件应用情况吗?
国泰君安证券始终坚持自主研发和创新,科技赋能业务,提前布局前沿技术领域,把牢“科技制高点”,同时积极拥抱开源技术和开源生态,通过引入开源技术建设系统平台,帮助公司提高敏捷开发效率,满足金融客户需求,加快海量数据处理,促进公司数字化转型。
目前,公司组建技术团队,研究和使用研究开源组件涉及 3000 余种,涵盖了数据库、中间件、大数据、AI、云计算等多种领域,如 MongoDB、Kafka、RocketMQ、Redis、Spark、ElasticSerach 等。
Q2:国泰君安证券在业内率先提出“开放证券”理念,采用 OpenStack 开源事实标准技术路线构建的金融云平台正是其中的一项重要实践,请和我们具体分享一下。
对云计算平台的选择,安全性和可靠性对证券行业而言至关重要。OpenStack稳定开放的技术架构、健全庞大的生态体系,以及积极分享、开源开放的社区模式,能高效支持国泰君安证券稳定安全地开展创新业务,为用户提供高质量的金融服务。
从 2016 年开始,国泰君安证券私有云基于开源 OpenStack 技术路线,在开发测试、同城灾备、异地容灾等场景构建了 IaaS 云底座。OpenStack 技术栈在灵活性、软件自定义方面有着极大优势,可以根据业务需求进行定制和优化。通过该技术方案,公司私有云实现了计算、存储的存算分离架构部署,提高了云资源的利用率。
同时,随着国内芯片行业的发展,OpenStack在兼容性、自主掌控层面表现突出,公司私有云在行业内率先实现了鲲鹏、海光、飞腾等芯片云资源的多地多中心统一管理,实现了“一云多芯”,为用户在无感知的情况下提供 IaaS 服务的自助申请,加速了业务系统的敏捷交付速度。
Q3:国泰君安证券今年也参与了中国信通院组织的开源治理能力成熟度评估,请您和我们介绍一下此次参与评估的情况?
国泰君安证券一直致力于开源技术研究与使用,近几年更是持续投入资源用于公司内部开源治理体系建设。作为证券期货业首批参与测评的公司,国泰君安证从组织机制、管理制度、风险管理、软件测评、开发测试管理、运维管理、持续跟踪、退出管理、存量管理、第三方软件管理等维度,全方面对开源软件治理体系进行了建设。
国泰君安证券成立开源治理组织架构并建立相关标准,为行业内制定并落实开源治理制度办法和标准流程提供了有效参考;建立开源软件治理技术平台,以云原生为基座,实现开源治理整个过程管控实现敏捷化、自动化和系统化,实现同业开源建设的敏捷交付、智能发布、弹性伸缩,提高开源运营效能,提升开发人员的工作效率,也减少了企业支出,让软件开源治理得简单、可行、安全,为行业开源治理体系提供新的建设思路,促进行业开源软件治理生态发展;建立健全的开源技术基本功能、性能指标、安全性、社区成熟度、商业支持度、行业认可度等方面评估模型,为行业打造可实施可量化的软件评估体系提供参考。
此外,国泰君安证券打造了具有自主知识产权的开源软件全生命周期治理平台,避免受到外部的制约,为保障行业开源软件质量进行了有益尝试。
Q4:在此次评估之后,后续贵司在开源治理方面还会如何进行提升和优化?
国泰君安证券公司内部开源治理体系建设的理念和方向与中国信通院开源治理能力成熟度测评思路不谋而合。健全的开源治理体系不仅保障了公司内部引入使用开源软件安全合规,规范了开源软件生命周期治理和控制风险,确保了信息系统安全运行,同时能够及时发现薄弱环节和安全隐患,避免供应链安全合规问题,有效防范信息安全事件发生,支撑业务发展。
后续国泰君安证券主要将从三个方面继续深耕开源治理相关工作:一是完善内部开源治理。开源软件治理是一个长期持续的过程,公司内需要集团公司组织架构、制度体系、技术平台等多方共同支持与协调,完成公司内部的开源治理和开源生态的建设。同时打造公司集团内部开源软件体系,实现自研软件的共享共治。二是促进同业开源能力共建。国泰君安证券将积极与产学研专家一起合作打磨开源治理的相关标准和公共服务平台建设,促进行业内软件供应链安全发展。三是协同打造开源生态。国泰君安证券将持续深入探索和研究开源技术,加强与开源社区合作及生态共建,配合行业侧、产业侧各机构共同打造行业通用架构的开源生态圈。
Q5:结合国泰君安证券在开源软件的应用实践,您认为,证券期货行业在开源治理方面遇到哪些挑战?
行业遇到的挑战主要包含软件供应链、软件管理、安全漏洞、技术运维、制度合规等 5 个方面。
在软件供应链上,行业缺少全量开源数据,传统软件供应链安全无法对开源软件来源进行分析判断,无法对开源代码中的来源风险、恶意代码引入风险、后门风险、断供风险进行统计;缺乏对突发的开源组件高风险等级安全漏洞的应急预案及处置措施;安全团队订阅的威胁情报信息繁杂,缺少专精开源组件的情报,导致信息差滞后;对中间件、数据库、K8S、Docker 云环境等真实生产环境中的开源软件风险进行检查能力有待加强。
在软件管理上,行业内缺少统一的软件全生命周期管理平台;开源组件历史积累过多,部分组件难以治理;应用的开源软件许可证多样化;外采产品中的开源组件成份未知,风险不可控等痛点;左侧安全缺少质量门禁,缺乏流程管控。
在安全漏洞上,行业内缺少有效漏洞、组件等公共信息通知渠道和共享机制;部分开源软件出现重大安全漏洞,对业务的影响较大,紧急修复难;系统左右两侧安全通道尚未打通,无法快速定位到问题组件影响范围。
在技术运维方面,部分开源软件的社区不够成熟、配套的文档不完善;技术难点不能及时解决,运维投入成本大;开源产品供给与服务保障能力欠缺等。
在制度合规上,开源相关组织架构、标准及评估体系不够健全;开源软件安全与合规风险日渐凸显,开源专项的安全与合规较弱;公司内部开源治理评估模型与方法不够成熟;开源组件治理持续跟踪体系需进一步落实等。
Q6:面对这些挑战,请您和我们分享一下国泰君安证券目前开源治理体系的建设情况?
国泰君安证券以开源组织架构作支撑,以制度规范为指引,以技术平台作抓手构建了整个公司的开源软件治理体系,旨在打造以软件供应链安全为基础的自动闭环治理机制,其涵盖了组织制度、治理平台、闭环管控、检测能力等维度。
一是建立配置公司级别的开源治理委员会、开源治理工作组、开源组件管理维护团队、安全合规风控团队等组织机构,促进开源治理工作积极有序的开展。
二是制定落实公司开源治理管理制度和标准流程,包括制定并发布公司级别的开源治理管理制度、开源软件引入/退出流程、使用流程、定期评估流程、审批流程、制品进阶流程,以满足开源治理要求,规范开源软件生命周期的治理,控制风险,保障信息系统的安全能运行。同时确立安全合规负责人持续跟踪机制,避免发生供应链安全合规问题,为行业内制定并落实开源治理制度办法和标准流程提供有效参考。
三是建设全栈信创开源软件治理技术平台。平台提供开源软件全生命周期治理能力,实现开源软件引入、检测、升级、退出等整个流程的自动化管理,确保介质来源可控,确保安全风险的及时识别和规避;平台升华开源软件检测能力,整合多种产业侧安全合规检测工具,加强开源软件成分分析、安全漏洞影响分析、安全漏洞修复、知识产权冲突检测水平,从运行态和编译态维度,对运维研发两侧进行探测,定期扫描,记录软件依赖关系,快速定位影响范围,实现治理的闭环流程,提高治理效率;平台提供软件供应链分析能力,以软件成分检测、漏洞检测、许可证检测为基础,对软件漏洞、许可证风险进行追踪,快速定位危险软件;平台建立集团统一制品库,通过严格的进阶流程,高质量的门禁控制,定期的漏洞扫描修复,实现对制品、公共组件的统一管控与应用;平台建立内部公共信息库,包括组件库管理、漏洞库管理、许可证库管理等,同时对接行业开源信息门户和公共漏洞库,与行业数据进行共享共治。
四是构建开源软件评估体系。从基本功能、性能指标、安全性、社区成熟度、商业支持度、行业认可度等方面建立开源软件评估模型,同时对开源软件技术引入、使用、更新、退出等环节开展定期评估,持续跟踪,生成开源软件综合质量报告。
五是积极探索内部开源社区。研究制定公司内部开源社区章程规范,打造内部开源社区运营管理平台,覆盖项目的对内源发布、审批、申请、开源代码定期扫描、开源许可证使用登记、运行维护、操作说明等功能,为公司内部开源项目全生命周期提供一站式管理,便于开源贡献者版本迭代,同时也利于使用者应用实践,使得公司项目实现共享共治。
Q7:请分享一下国泰君安证券与信通院此前已建立的合作有哪些?
国泰君安证券和中国信通院在课题、标准、活动等方面有诸多合作,包括:国泰君安证券参加中国信通院牵头的证券期货业标准研究课题《证券期货业开源技术应用与风险管理指南》;国泰君安证券与中国信通院共同完成《证券期货业开源风险管理能力成熟度模型》、《证券期货业开源项目选型参考框架》、《证券期货业开源技术管理平台能力要求》、《证券期货业商业软件开源风险评价方法》等标准初稿的撰写与研讨;国泰君安证券参与了中国信通院组织的开源治理能力成熟度评估、首届 IPV6 技术应用创新大赛、2021 云安全守卫者计划、第四届“绽放杯”5G 应用征集大赛智慧金融专题赛等。此外,国泰君安证券已加入中国信通院成立的数据库应用创新实验室,共同研究数据库应用。
随着证券行业数字化转型的深入,开源技术的运用已成大势所趋,我们在拥抱开源的同时,也需要关注引入风险,持续优化开源技术治理体系,以高效运用开源技术助力数字化转型。在今年的 2023 OSCAR 开源产业大会证券行业开源治理分论坛,国泰君安证券将结合证券行业内公司开源治理的痛点,分享国泰君安证券在企业开源治理中组织制度和平台化建设的探索与落地。
(7)华为
华为开源及第三方软件管理流程
华为在产品研发乃至全生命周期阶段,从选型、入库到开发阶段的使用申请、安全扫描,再到发布过程中的二进制扫描以及运维阶段对最新漏洞的跟踪排查,针对开源及第三方软件都有相应的管理规范和要求。我们也会定期对老旧开源软件进行等级评定并基于退出机制进行管控。
注:感觉华为做开源治理还是比较彻底。
● 开源入库流程
入库流程共分为四个阶段,开源软件只有通过所有阶段的全部审核项才能够正式进行入库:
前置工作:确定软件类型、选型评估合适的开源软件;
提交申请:填写软件及版本信息、以软件版本维度启动审批流程;
TMG成员预审:触发其他业务发表意见例如法务代表、安全代表等,搜集意见并发表预审意见;
TMG组长终审:触发其他TMG成员发表意见,搜集意见并发表终审意见。
开源使用及认证流程:
产品线员工在开发软件时如果要求使用库里的开源软件必须填写使用申请,后台基于申请会进行一系列评估,判断员工所要求使用的开源软件是否与产品形态相符。
申请通过后,华为相关平台也会持续对引入的开源软件进行管控。在开发阶段,会针对开源软件进行源码成分分析,检测是否存在漏洞片段以及是否满足开源许可和头文件声明,确保开源软件引用的合法合规。在测试阶段,会针对构建的二进制包进行成分分析,检查安全配置、开源合规问题、安全编译选项以及敏感信息。值得一提的是,在开发阶段已进行源码扫描,为何还需要进行二进制成分分析?因为构建环境可能存在安全问题,例如此前提及的Xcode被污染,就会导致由健康的源码构建而成的二进制包携带恶意代码,所以必须确保二进制包的安全。
整个管控流程是基于平台实现自动化运作。产品一旦在某一环节不符合要求,就会被返回整改,直到满足所有环节要求才能进入到发布阶段。
注:华为开源治理在各个阶段都安排相关的活动,引入工具也比较全面。在测试阶段引入二进制SCA,目的是检测构建环境的开源组件中的漏洞, 但是因为运行环境与构建环境是不同的,可能并不能达到目的。二进制SCA的原理是通过对二进制文件中提取的特征值进行匹配,找到使用的开源组件及其对应的漏洞和许可证协议。从精度来看,二进制SCA并不会比源代码SCA更准确。
华为开源漏洞响应处理流程
针对开源漏洞应急响应,华为也有一套专门的管控流程以及相对应的规范要求。
华为开源漏洞响应流程
漏洞获取:通过漏洞感知接受和收集开源软件漏洞;
漏洞生成:漏洞生成并录入华为漏洞库;
漏洞分析:专业人员对漏洞机理、等级、影响面等进行分析,进而排查受影响的产品;
漏洞修复:后台会通知开发人员对产品的漏洞进行修复;
漏洞发布:开发人员完成修复工作后,在升级产品版本的同时会同时发布漏洞修复情况。
在华为内部,开源软件Owner和产品经理是开源软件维护的责任主体,主要看护开源软件优选级别及开源漏洞修复流程,但两者侧重点不同。开源软件Owner主要负责开源新版本选型、软件版本停止维护决策、开源新版本上仓、漏洞影响分析、漏洞补丁上仓以及修复版本上仓。产品经理主要负责版本升级风险评估、修复版本集成与验证、消减措施落地评估以及消减措施落地与验证。
华为开源及第三方工程实践
最后与大家分享华为云研发安全服务。华为云研发安全服务包含从安全设计、隐私合规、代码检查、成分分析到安全测试整个过程,在每个阶段都配有相应的平台和自动化流程来支撑产品研发。
以成分分析为例,华为提供自研的、针对于源码和二进制软件包的成分分析能力,用于研发阶段针对于开源组件的安全和合规检测。其中二进制成分分析能力已通过信通院可信开源治理工具评估,支持针对于软件包的检查包括Linux、Windows、IoT固件包、安卓和鸿蒙应用等,支持C、C++、Java、Python、JS、Rust等主流编程语言,支持安全编译选项、安全配置、典型编码问题、敏感信息泄露、开源组件License、开源漏洞等检查。
(结束)