最近和一位在某大型国企的技术负责人朋友S兄交流时,S兄说他们正在计划建设云平台。由于项目规模大并且耗时长,服务他们企业对云厂商来说具有很大的标杆意义,所以在这个项目上云厂商之间竞争尤为激烈。甚至有云厂商承诺,可以开放源代码给S兄的企业,但是一些云厂商对开发源代码这件事情持坚决反对。关于开放源代码S兄问我如何看。我认为如果公有云厂商开放源代码给特定客户是极不负责任的行为,存在代码泄漏的可能,一旦代码泄漏将严重消弱用户信心,引发用户大量逃离。
一、什么才是云厂商的生命线?云服务已经成为水电一样的基础,一旦出现问题影响巨大。
对于用户来说,一旦出现安全事件,将造成严重损失:
- 2018年3月,Facebook数据泄露丑闻爆发,股价大跌7%,市值蒸发360多亿美元;
- 2020年2月,万豪酒店520万客人信息被泄露;
- 2020年2月,微盟的“删库”事件,影响业务136小时,拖累微盟业绩,赔付总额达到1.16亿元,微盟股价累计跌幅超20%;
- 2020年5月,泰国最大的移动运营商泄露83亿条用户数据记录。
对于云厂商来说,一旦出现问题,将影响到千万用户:
- 2019年2月,阿里云代码托管平台的项目权限设置仅仅因为有歧义,用户在上传代码时,可设置private、internal和public。很多开发者以为选择“internal”,就是安全的,于是选了此选项。因此,包含万科、咪咕音乐、51信用卡等40家企业在内的200多个项目代码被泄露;
- 2020年5月,有黑客声称获取微软公司存储在Github私人仓库中的大量源代码片段,源码大小高达63.2GB,涉及Azure、Office和Windows。
- 2021年3月,欧洲云计算巨头OVH位于法国斯特拉斯堡的机房发生严重火灾,导致350万家网站下线,部分客户数据丢失无法恢复。
在全球数字化转型大潮不断推进的背景下,企业上云步伐加快,如果云厂商的关键代码泄露,哪怕黑客抓住一个漏洞,就可能造成全球范围的宕机,大量客户的数据泄漏,用户将对云厂商失去信心,云厂商也将失去商业生命。
二、开放源代码等同于软件项目开源么?开放代码和通常提到的开源项目是两回事。开源软件项目模式通常为软件开源,通过服务或高级功能收费。开放代码和开源不一样,开放代码一般只针对特定用户,目的是让用户或者合作伙伴能够了解产品特性,其本质是一种商业手段,是一种不正常的业务模式。
而且,开源软件经常因为使用者更新不及时,缺乏安全管理,攻击者注入恶意代码,分发不合规等原因出现安全风险。据2020年5月Synopsys公司发布的《2020 年开源安全和风险分析(OSSRA)报告》显示,2019年审计的代码库中,有70%进行了开源,同比增长10%。但其中75%的代码库中包含已知的安全漏洞,49%的代码库包含高风险漏洞。
开源软件是开放给所有人,开放代码是给特定客户,开发代码给特定客户既不是按照开源软件项目也不是按照闭源商业软件的模式进行安全管控,安全风险根本不可控。
三、公有云厂商开放源代码给特定客户,可行么?负责任的云厂商都极度重视安全,国外的 AWS,和国内华为云都曾在信息安全领域,面向公众和客户,做出过相应的举措和承诺。
从2011年开始,AWS每年都会发布《AWS风险与合规性》白皮书,最新一份于2020年9月发布,AWS提出公有云厂商和客户的共担模型,并认为安全性和合规性是AWS和客户的共同责任。实施细则上,AWS负责保护运行所有AWS云服务的基础设施,包括运行AWS云服务的硬件、软件、网络和设备。客户责任由客户所选的AWS云服务确定,这决定了客户在履行安全责任时必须完成的配置工作量。
并且AWS还推出了一系列安全服务,包括Identity & Access Management、检测、基础设施保护、数据保护、事故响应和合规性等几十项安全合规服务。
与AWS类似,自2017年华为云正式上线服务开始,每年也都会发布《华为云安全白皮书》,最新一份2020年8月发布。
在白皮书中华为云承诺:“华为云以数据保护为核心,以云安全能力为基石,以法律法规业界标准遵从为城墙,以安全生态圈为护城河,依托华为独有的软、硬件优势,打造业界领先的竞争力,构建起面向不同区域、不同行业的完善云服务安全保障体系,并将其作为华为云的重要发展战略之一。”
此外,华为云框架从组织、业务流程、人员管理、技术能力、合规、生态方面落实云安全,保护客户利益,其中包括:
- 在组织方面,全球网络安全与隐私保护委员会( GSPC – Global Security &Privacy Committee)作为华为公司的最高网络安全管理机构,负责决策和批准公司总体网络安全战略;
- 在业务流程方面,安全保障活动融入研发、供应链、市场与销售、工程交付及技术服务等各主业务流程中;
- 在人员管理方面,华为云严格执行华为长期以来行之有效的人事和人员管理机制;
- 在云安全技术能力方面,依托华为自身强大的安全研发能力,以数据保护为核心,开发并采用世界领先的云安全技术,致力于实现高可靠、智能化的云安全防护和自动化的云安全运维运营体系;
- 在云安全合规方面,面向提供云服务的地区,华为云积极与监管机构对话,理解他们的担忧和要求,贡献华为云的知识和经验,不断巩固华为在云技术、云服务和云安全方面与相关法律法规的契合度;
- 在云安全生态方面,华为云认识到单靠一个公司、一个组织的力量不足以应对日益复杂的云安全威胁与风险。并且,华为云还诚邀全球所有安全伙伴,携手共建云安全商业和技术生态体系,共同向租户提供安全保障与服务。
可见,极度重视安全,负责的云厂商都不会开放源代码给特定客户,因为既不公平也会引入安全隐患,更不符合自己对客户的安全承诺。
四、公有云开放源代码,对用户有害无益公有云厂商一旦开放源代码,对用户是有害无益,这一观点毋庸置疑。
首先,一线云厂商,通常研发团队数千人,代码上亿行。即使开放源代码,用户也没有能力没有时间了解代码,更不用说基于代码做配置修改和二次开发。用户如果有二次开发需求,不如使用云厂商的API,API对功能做了高度抽象,更简洁易用,有实力的云厂商都提供了丰富的API。
其次,还会增加用户法律责任。开放源代码时,企业与云厂商必然会签署严格的法律协议,对代码的安全管理提出严格的要求,且会投入法律和管理成本。万一因为管理不善,造成源代码泄露,用户将面对严重法律责任。
第三,如果出行源代码泄漏事件,或者有源代码的客户可能找到软件漏洞而对其他客户产生安全隐患,这对其他客户也是极大的不公平,会让其他客户出现巨大损失。
云市场风云变幻,为了赢得客户,也会衍生出多种商业模式上的竞争,但产业发展运行的基本原则不能丢,红线不能破,这是一个云厂商商业准则的基本操守,也是对客户利益价值的尊重与保护。所以,开放源代码给特定客户,是一种极不负责的行为,我觉得还是三思而后行。
,