螞蟻王旭:開源協做如何提高業界的安全?

簡介: 開發者、組織、業界機構的共同努力,讓開源項目和社區,乃至整個世界變得更加安全。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部署環境問題。這些機密計算的組件,也是螞蟻對提高整個社區和業界的安全性所作的努力。

正是有開發者、組織、業界機構的共同努力,才讓開源項目和社區更加安全,而更安全的開源社區,也將讓整個世界變得更加安全。

 

 

原文連接 本文爲阿里雲原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索