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

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

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

001.png

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

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

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

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

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

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

“在一群足够多的beta测试者与共同开发者的情况下,几乎所有问题都可以被快速定位,并且由某个人迅速解决。”

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

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

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

这是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部署环境问题。这些机密计算的组件,也是蚂蚁对提升整个社区和业界的安全性所做的努力。

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

相关文章
|
9月前
|
数据采集 搜索推荐
《从数据到转化:游戏地域偏好驱动的精准推送指南》
本文聚焦游戏行业地域化精准推送的核心痛点,提出基于玩家地域偏好的差异化推送体系构建思路。文章从无干扰数据采集与伪偏好筛滤入手,通过三维立体数据模型获取真实需求,再从行为、审美、需求、付费四个维度拆解地域偏好,形成可量化标签。进而搭建“偏好-内容-场景-时段”动态联动机制,定制适配不同地区的推送内容与策略,并依托数据和玩家双轮反馈实现闭环迭代,同时规避过度标签化、静态思维等认知误区。这套方法打破“一刀切”运营模式,助力游戏实现全域用户的长效激活与留存。
423 1
|
供应链 数据可视化 BI
多平台数据整合工具新趋势:支持API实时联动的看板方案
在电商运营中,数据分散在多个平台导致效率低下、决策滞后。数据整合看板工具通过聚合多源数据,实现可视化、实时同步与低门槛操作,帮助团队高效利用数据,提升运营效率与决策质量。
|
编解码 缓存 搜索推荐
让你的网页在搜索引擎中脱颖而出
要让网页在搜索引擎中脱颖而出,需要从多个方面进行优化,
|
9月前
|
监控 数据可视化 Java
Spring Boot 整合 Elasticsearch 及实战应用
这次内容详细介绍如何使用 Spring Boot 整合 Elasticsearch,并提供几个实际应用案例。内容涵盖 Elasticsearch 的基本概念、Spring Boot 整合步骤、实战应用示例以及优化建议。
786 0
|
12月前
|
JSON 监控 Java
Elasticsearch 分布式搜索与分析引擎技术详解与实践指南
本文档全面介绍 Elasticsearch 分布式搜索与分析引擎的核心概念、架构设计和实践应用。作为基于 Lucene 的分布式搜索引擎,Elasticsearch 提供了近实时的搜索能力、强大的数据分析功能和可扩展的分布式架构。本文将深入探讨其索引机制、查询 DSL、集群管理、性能优化以及与各种应用场景的集成,帮助开发者构建高性能的搜索和分析系统。
686 0
|
存储 SQL 关系型数据库
数据库开发设计规范(通用)
数据库开发设计规范(通用)
3361 0
|
UED
产品服务社区互动与资源共享
产品服务社区互动与资源共享
380 6
|
测试技术 API 开发工具
什么是开发者门户?最佳实践及示例
开发者门户是公司提供服务和解决方案的接口,不仅针对开发者,也面向各种利益相关者。与普通网站的静态内容不同,开发者门户包含动态更新的内容。它不仅是 API 文档的集合,还涵盖 GUI、无代码/低代码接口等。好的开发者门户清晰呈现商业模式、解决方案、定价、内容层级、设计一致性、可查找性、非技术用户友好性、注册流程、API 参考、社区支持、反馈机制、案例研究和更新。重要的是,它应反映业务结构,并通过良好的开发者体验(DX)设计,提供一致的用户体验。
|
搜索推荐 关系型数据库 MySQL
MySQL中的模糊匹配技巧:无需ES的高效实现
在数据库应用中,模糊匹配是一个常见的需求,尤其在处理搜索功能时。虽然Elasticsearch(ES)等搜索引擎在处理文本搜索方面表现出色,但在一些场景下,直接使用MySQL数据库实现模糊匹配也是一个经济且高效的选择。本文将分享如何在不引入ES的情况下,利用MySQL实现模糊匹配的五大步骤和十个实战案例。
1409 1
|
机器学习/深度学习 搜索推荐 人机交互
智能语音识别技术的现状与未来发展趋势####
【10月更文挑战第29天】 本文深入探讨了智能语音识别技术的发展历程、当前主要技术特点、面临的挑战及未来发展趋势。通过综述国内外最新研究成果,分析了深度学习在语音识别领域的应用现状,并展望了多模态融合、端到端建模等前沿技术的潜在影响。文章还讨论了隐私保护、数据安全等问题对技术发展的影响,以及跨语言、跨文化适应性的研究方向。 ####