前言

随着科技的发展,金融行业的一些基本业务模式正在逐渐发生变化,使得金融创新业务不断迭代和增长。在建设信息系统的过程中,金融机构将大数据、云计算、区块链、人工智能等信息技术应用于越来越丰富的业务场景中,为节省成本、缩短开发周期、提高生产力,使用开源软件成为了一种新常态。然而,近年来开源软件频繁暴露出高危漏洞,使金融机构面临一些已知和未知的风险。如何安全地使用开源技术,成为金融机构的一个重点话题。

一、 开源软件安全现状

据Gartner调查显示,99%的组织在其IT系统中使用了开源软件,同时开源软件在服务器操作系统、云计算领域、Web领域都有比较广泛的应用。

整体来讲,开源软件安全现状不容乐观。近年来,开源软件频繁爆出高危漏洞,例如Struts2、Open SSL等,这些组件很多都应用于信息系统的底层。根据安全公司Snyk发布的开源安全现状调查报告,2012年以来,每年公布的开源软件漏洞都在快速增长,2019年全年同比增幅创下历史新高。数据显示:

1. 78% 的漏洞存在于间接依赖关系中。

2. 37% 的开源开发者在持续集成(CI)期间没有实施任何类型的安全测试,54% 的开发者没有对 Docker 镜像进行任何安全测试。

3. 两年内应用程序的漏洞数量增长了 88%。

4. 81% 的用户认为开发者负责开源软件的安全性,68% 的用户认为开发者应该对他们提供的 Docker 容器镜像负安全责任,只有 30% 的开源软件维护者认为自己具有高安全性意识。

5. Docker 镜像中的每一个都包含至少30个易受攻击的系统库,经过扫描的 44% Docker 镜像可以通过更新其基本镜像标记(image tag)来修复已知漏洞。

图1 每种语言其生态系统的新漏洞增长情况

二、 开源软件安全风险

不管是直接使用开源技术,还是购买开源技术的商业软件都需要考虑开源技术带来的风险,只不过是规避开源技术风险的责任主体不同。开源技术带来的风险,不仅会影响到企业自身,有时也会对上下游公司、整个行业造成不良影响,甚至影响到国家安全。金融机构在使用或引入开源软件或代码时,除了需要考虑许可证违规风险、法律风险、以及开源软件本身所带来的风险外,还要考虑监管合规风险。

1.许可证违规风险

大多数开源软件都有其发布许可(License),金融机构要使用这些开源软件,应当遵守其许可证(License)的要求,如果在使用开源软件时没有遵守其许可证(License)所规范的各项义务或要求,属于违规使用开源软件,将会造成许可证合规性风险。

开源许可证违规造成的影响严重时会导致法律诉讼,造成金融机构产品的召回、被迫对外公开自有知识产权代码等等,还可能对金融机构的声誉、市场准入等造成长期的负面影响。

2.安全漏洞

Snyk调查报告中称,78% 的漏洞存在于间接依赖关系中,37% 的开源开发者在持续集成(CI)期间没有实施任何类型的安全测试,54% 的开发者没有对 Docker 镜像进行任何安全测试。

即便漏洞被发现并推出了补丁,使用该脆弱代码的金融机构也可能没注意到自己需要打补丁,或者找不出需要打补丁的所有实例。如果金融机构不能及时知晓这些安全漏洞以及安全漏洞涉及到的软件产品,将可能造成黑客攻击、数据泄露等安全风险。

3.法律风险

目前各国法律或法院,对于开源软件使用者,在违反开源许可证的义务或要求的情况下,是否构成合同违约,仍未有一致规定或见解。当金融使用开源软件后,违背许可证(License)规定,不开放其私有软件或代码时,也会构成违约风险,由此也可能会导致自有知识产权泄露风险,著作权风险等一系列法律风险。当一些公司作为供应商为金融机构提供软件产品的时候,如果管理不善,也存在自有知识产权代码泄露的风险。

4.监管合规风险

2016年7月,原银监会发布《中国银行业信息科技“十三五”发展规划监管指导意见(征求意见稿)》,提出“鼓励合规使用开源技术和正版软件”“积极研究开源软件在银行重要信息系统的应用”等意见。人民银行明确规定,对于创新技术在支付领域的首次应用,跨境合作,社会关注度较高等重要支付创新项目,必须在系统或项目上线前30日内向人民银行备案。因此,金融机构在引入和使用开源软件时必须注重监管合规问题。如果监管合规风险关把控不严格,出现监管违规,有可能给金融机构带来严重的后果,如评分降级,经营受限等等。监管机构也多次发出风险预警,要求各银行机构排查开源技术使用情况。

三、 开源软件安全测评

金融机构逐步应用开源软件已经成为一种趋势,除了保障信息系统和关键技术自主可控,金融机构也需要专业化的开源软件评测体系,以加强开源软件应用的风险管控能力,并在此基础上,结合自身需求实现个性化定制,提高核心技术的自主能力。

图2 开源软件安全测评框架

为了有效应对针对金融行业开源软件的安全风险,中国互金协会开展了金融行业开源软件评测标准起草工作,CFCA依据目前开源要求,围绕实际业务需要,结合开源软件特性,建立了相应评估框架,主要涵盖四个方面:第一对已有代码进行审计,以确定其中是否有开源代码违规和安全漏洞的风险。第二对开源软件的引入进行风险评估,以考察开源软件带来的技术风险、产品稳定性等风险。第三根据开源软件特性,从开源许可证、行业认可度、产品活力、服务支持、安全性、兼容性、可维护性、可扩展性、功能性、可靠性、易用性、性能效率等属性进行测评。最后安全管理方面,从开发人员安全意识、供应商管理、业务连续性、应急演练、风险监测等方面进行评估。其他方面,从开源软件运行所支撑的系统、网络以及其所运行的业务进行整体评估。

参考文献:

【1】云计算开源产业联盟《开源产业白皮书(2019)》

【2】云计算开源产业联盟《开源许可证使用指南(2018)》

【3】 www.freebuf.com《敏捷开发模式下金融机构开源软件引入风险及管控举措》

【4】银监会《中国银行业信息科技“十三五”发展规划监管指导意见(征求意见稿)》(2016年7月)

【5】文章中部分数据来自Synk:《2019年开源安全现状调查报告》

闫莅,信息安全从业7年,专注于金融行业信息安全、合规管理、风险管理等领域。作者邮箱:yanli@cfca.com.cn,欢迎大家提出宝贵的建议!

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