蚂蚁王旭:开源协做如何提高业界的安全?

简介: 开发者、组织、业界机构的共同努力,让开源项目和社区,乃至整个世界变得更加安全。node

在前不久的上海外滩大会上,蚂蚁资深技术专家、Kata Containers创始人王旭向参会者分享了开源、开放协做与软件安全可信的话题,本文根据演讲内容编辑整理而成。安全

 

001.png

今天,我想在这里和你们探讨开源与安全的话题。在过去,人们一直有一些疑问:开源是否比闭源更安全?开源项目如何保证本身的安全?如何经过开源社区促进业界改善安全性?框架

这里,我将以Kata Containers项目以及蚂蚁基础设施团队的实践为例,对这些问题作一些探讨,来看看社区和业界是怎么作的。ide

开源项目如何保证安全性?

首先是开源比闭源更安全吗?工具

你可能从哪里据说过:开源软件相比闭源软件的一个优越性在于,开源软件更安全。性能

开源运动的一位颇具话题性的早期领军人物Eric S·Raymond,在他的著做《大教堂与集市》中写道:测试

“在一群足够多的beta测试者与共同开发者的状况下,几乎全部问题均可以被快速定位,而且由某我的迅速解决。”阿里云

“有些所谓安全系统,只有在其不为人所知时才是安全的,小心这些虚假的隐秘性。”url

这些论点几乎是无可辩驳的。然而,争论就在于——开源是否意味着更多专业的review,更多的人看到代码甚至是发现漏洞了,他们是否会第一时间来帮助开源项目改善质量而非第一时间利用漏洞进行入侵?开源项目是如何第一时间处理漏洞的?spa

下面让咱们来看一个例子。

这是Kata Contaienrs 项目的 VMT 流程图,描述了项目漏洞事件响应团队接收到安全报告后是如何处理的。

 

002.png

所谓VMT,是 Vulnerability Management Team,这是一个应对安全事件的“特权”工做组,成熟的、社区化的开源项目都有这样一个核心团队。当安全研究人员发如今他们的研究中发现项目存在安全漏洞的时候,会向VMT工做组发出报告,而VMT收到以后,会在寻求修复方案的同时,对问题进行评估、去权威机构分配CVE编号,在patch merge以后,还须要确保主要用户的安全,而后再对外公开修复信息。

这里的一个关键点是,开源项目VMT团队和安全人员的配合。只有规范运做的开源项目和白帽子们良好互动,才能真的作到第一时间修复漏洞、保护用户,而不是放出0-day漏洞。这中间的响应流程,即便对于“开源”软件,也是不开放的。

因此,这里咱们的结论是——不是你把代码放在 GitHub 上开源了,安全就随之而来了,你要有吸引安全人员的活跃社区和能够响应问题的机制。这里咱们知道,有些我的化的开源项目是没有这样的响应机制的,这样的开源项目并无让用户获得安全,相反,一旦有大量用户使用,获得的是不少惊险。

VMT机制保证了开源项目自己的安全,那么,在一个庞大的开源社区,好比云原生社区,它由数量繁多的开源项目组成生态,关于社区的总体安全性,还会有哪些有趣的互动呢。

如何提高开源社区的安全水位

开源的一个便利之处就是,若是你以为哪里不够好,能够本身去弥补。在云原生 landscape 里,搜一下安全相关的品类,马上能够获得一大片的开源安全组件或工具:

 

003.png

须要说明的是,这些项目不是预先设计的目标,而是社区互动产生的结果。它们反映了一个自组织生态里的演化规律,而不是操做守则。在开源协做里,这样的项目会天然的涌现出来。

这里,我想以Kata Containers为例,来介绍下如何开发一个开源项目并融入社区。

首先我先来简单介绍一下 Kata Containers——

Kata Containers 首先是一个容器运行时引擎,在生态中的位置和 runc 是一致的。可是,和 runc 不一样的是,Kata 用轻量级虚拟化技术来作隔离,这个强隔离带来的不只是安全隔离,也包括性能隔离和故障隔离。

不过我要强调的一点是,Kata 仍然是一个容器引擎,在系统中是彻底对等替换 runc 的,对云原生应用来讲,它是彻底透明的,即便从性能和开销角度说,咱们也已经对它进行了不少轻量化的改造。

因此,咱们说,它同时兼有虚拟机和容器二者的优势,secure as VM, fast as containers。

三年来,Kata Containers最让我感到骄傲的,是经过开源社区,咱们撬动了社区里的其余大玩家,提高了整个云原生世界的安全水位,利用开放协做提高了云原生领域的安全性、改善了社区的信任。

Kata创立以前的虚拟化容器技术的发展并不快。2015年上半年,咱们就开源了 hyperContainer 和 runV,Intel 也同时开源了 clear containers。不过,当时咱们的影响仍是很是有限的,想加入CNCF都被拒之门外,但咱们仍是在 Kubernetes 社区里制造了一些影响。好比在 2016 年的时候,咱们和 kubernetes node 团队一块儿推进了 CRI 接口,来抽象化容器引擎。

2017年9月份,我在一个会议上遇到当时 Intel OTC 的时任 GM,也是 Intel 的 SSP VP, Imad Sousou,咱们决定一块儿合做一个开源项目,在基金会的帮助下,咱们一块儿工做了三个月,最终在2017年12月的 KubeCon 大会前一天,发布了Kata Containers这个项目。

随后的故事能够用峰回路转来形容,在2018年上半年,也就是紧接着Kata发布以后的下一次KubeCon,Google发布了gVisor安全容器项目,再以后半年,在2018年AWS发布了轻量虚拟化VMM FireCracker,并引用了 Kata Containers项目来作对比。而在这之间的2018年中,Google 推进 containerd 改进了 Shim API,来进一步让安全容器能够和runC一块儿被支持,随后这个被称为 shim-v2 的 API 也获得了 CRI-O 的支持,加上 RuntimeClass 和其余一些改进,能够说,2018年是安全容器的爆发年。

今天,Kata 拥有了不小的用户社区,获得了 RedHat,SuSE 和 Ubuntu 三大主流 distro 的支持,也在不少不一样行业进入了生产之中,不只咱们蚂蚁、阿里用上了,百度的 Kata 案例也在去年的 OpenInfra Summit 上获得了超级用户大奖,在今年10月19日的OpenInfra Summit大会上,我在Keynote里会正式宣布Kata Containers 1.x在12个稳定发布以后,正式发布2.0版本。不只 Kata,Google GKE 的用户还能够用上 gVisor,它帮助用户躲过了前不久的 CVE-2020-14386 漏洞。

能够说,开源的力量就在于此——代码只是它对世界的影响力的冰山一角,在水面之下的哪些开放协做和互动,让社区的用户受益,获得了更多的好项目,让社区向更好的方向发展。

基金会如何让开源世界更安全?

要想促进整个开源世界的安全,开源社区的治理组织不能不提。其中,基金会不只能够接纳安全项目,还能够安全为目的创建基金会,将天南海北的开发者汇集到一块儿,攻克共同的安全课题,也是开源安全的重要一环。

让咱们以Linux旗下的机密计算联盟CCC为例来讲明,蚂蚁经过将项目捐献给CCC、参与这样的组织从而对开源社区的安全做出贡献。

在数据安全和隐私保护愈来愈受到重视的今天,机密计算(Confidential Computing)是一个具有普遍应用前景的前沿技术领域,可信执行环境(Trusted Execution Environment)做为其重要分支,受到业界科技巨头的重视。

机密计算联盟就是在这样的背景下诞生的,CNCF中国区总监Keith Chan告诉咱们:CCC的任务和目标之一是在公有云上实现机密计算,这样咱们能够作到之前没法作到的事情,其中比较典型的就是在云上运行敏感数据的计算,机密计算将做为安全体系的核心手段来保护这些敏感数据。

要实现这一目标并不容易,由于机密计算仍然处于早期,业界鲜有应用,几家企业各自推动本身的研发应用,但难以对业界造成示范效应。所以须要基金会这样的组织来推动这一过程。

CCC但愿经过开源开发的原则汇集全世界的人一块儿来共建机密计算的技术和平台,具体的作法包括:

  • 定义机密计算,并经过开源的方法让全世界的人能够参与,构建生态圈,加快提升市场的接受度和采用率;
  • 经过开源的方法简化企业对机密计算应用的开发和管理;
  • 定义一些基础的服务和框架,并让开发者可以放心地采用这些技术。

做为CCC关键成员的蚂蚁集团也将捐赠Occlum LibOS,这是来自中国的第一个机密计算开源项目,也是目前易用性最好的机密计算LibOS。

 

004.jpg

经过将其捐赠给基金会,Occlum将成为社区主导的开源项目,将吸引更多业界专家共建,并将和社区其它开源项目合做,如与HyperLedger的avalon项目的合做,在更普遍的应用场景中落地。

另外,不只仅是Occlum,蚂蚁集团还正式开源了KubeTEE,解决机密计算在集群中的问题,还有正在研发中的HyperEnclave,解决TEE部署环境问题。这些机密计算的组件,也是蚂蚁对提高整个社区和业界的安全性所作的努力。

正是有开发者、组织、业界机构的共同努力,才让开源项目和社区更加安全,而更安全的开源社区,也将让整个世界变得更加安全。

 

 

原文连接 本文为阿里云原创内容,未经容许不得转载。

相关文章
相关标签/搜索