當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

支付寶技術團隊發表於2019-10-14
螞蟻金服在過去十五年重塑支付改變生活,為全球超過十二億人提供服務,這些背後離不開技術的支撐。在 2019 杭州雲棲大會上,螞蟻金服將十五年來的技術沉澱,以及面向未來的金融技術創新和參會者分享。我們將其中的優秀演講整理成文並將陸續釋出在“  螞蟻金服科技”公眾號上,本文為其中一篇。

在雲原生髮展趨勢之下,金融行業想要應用雲原生技術,安全問題是一個非常大的攔路虎,而云原生社群對安全問題的重視程度遠遠不夠。螞蟻金服在落地雲原生的時候,解決安全問題是重中之重,經過探索與實踐,我們沉澱出了一套從底層硬體到軟體、從系統到應用層的全鏈路金融級雲原生安全架構。

金融行業最重要的就是信任,我們認為, 安全所帶來的信任,是一種無形的產品,支撐著所有金融業務

順應網際網路時代發展,金融行業與機構也發生了很多的變化,包括 App、小程式等更多的訪問渠道,更快的業務變化,更多的第三方供應商。但是,不管怎麼變化,金融行業有一點始終不變,那就是 Zero Fault,對錯誤的零容忍,也就是對穩定性和安全性的極高要求。

這裡,我還想澄清大家對金融行業的一個錯誤看法,就是,大家都說金融機構有很多遺留系統,很多技術是十幾年前的,就認為金融機構的技術是落後的。但其實,金融行業一直是科技含量非常高的。前段時間有一部電影上映,叫《蜂鳥計劃》,根據真實事件改編,講一幫做高頻交易的人,為了降低從堪薩斯到紐約交易所的時間,建造了一條上千英里直通兩地的光纖,想盡辦法去爭取那最後一毫秒。所以,金融行業並不只有平庸保守的科技,它同樣也在追逐最前沿最先進的技術,我們的使命就是要用科技來進一步武裝金融行業,為金融科技注入更多的活力。

雲原生架構其實代表一種新的生產力,金融行業肯定是需要雲原生的,它為我們帶來了節約成本和敏捷開發的能力,但是在它前面還需要加一個定語,就是安全的雲原生架構,它裡面不僅僅包含之前的相對簡單的安全方案,而是一個從端到端的全鏈路可信的安全解決方案。包括明晰程式碼所有權,做到可信啟動,對映象的製作和釋出收口,配合賬號體系,明晰應用的所有權和訪問許可權;以及安全可獨立部署的精細化隔離方案,將安全策略和實施整合在基礎架構中,對軟體開發和測試透明。

這裡我們著重分享螞蟻金服正在實踐的幾項雲原生安全技術,包括雲原生網路安全 Service Mesh,安全容器,以及機密計算。

雲原生網路安全:SOFAMesh

當前,雲原生裡除了容器之外第二大技術其實就是 Service Mesh,從螞蟻的實踐來看,其實它對金融安全有非常高的幫助。它至少可以做到三點:

  • 策略化高效流量控制,可以幫助運維迅速適應業務快速變化;
  • 全鏈路加密,保護端到端資料安全;
  • 流量劫持與分析,當發現異常流量與容器時,進行流量阻斷。

並且,這些工作對業務是透明的,不需要給業務開發增加負擔,同時我們還可以對流量進行實時的語義分析等等,做比傳統的防火牆做更多的事情。

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

螞蟻金服在對 Service Mesh 的探索中,推出了自己用 Golang 打造的 SOFAMesh,並且已經對外開源,希望和社群一起努力,讓 Service Mesh 的理念和技術更加普及。

SOFAMesh 是基於 Istio 改進和擴充套件而來的 Service Mesh 大規模落地實踐方案。在繼承 Istio 強大功能和豐富特性的基礎上,為滿足大規模部署下的效能要求以及應對落地實踐中的實際情況,所做的改進包括採用 Golang 編寫的 SOFAMosn 取代 Envoy,極大降低了 Mesh 本身的開發難度,並做了一些創新性工作,例如合併Mixer到資料平面以解決效能瓶頸,增強 Pilot 以實現更靈活的服務發現機制,增加對 SOFARPC、Dubbo 的支援,等等。

更多詳情可檢視SOFAMesh的GitHub主頁:

https://github.com/sofastack/sofa-mesh

螞蟻金服率先在生產環境中大規模落地 SOFAMesh,超過 10W+ 容器做到了 Mesh 化,平穩支撐了 618 大促,給我們帶來了多協議支援、UDPA、平滑升級、安全等多方面的好處,並且對效能僅有輕微的影響,單跳 CPU 增加 5% 損耗,RT增加不到 0.2ms,甚至部分業務經過 Mesh 化改造將業務鏈路下沉,RT 反而下降 7%。

安全容器 Kata Containers

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

傳統容器架構

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

安全容器架構

這裡給大家分享一下 Kata Containers 的近期進展,針對大家最關注的效能問題有了非常大的提升:

  • 引入 shimv2 每 Pod 輔助程式數量從 2N+2 減少到 1 個;
  • 引入 virtiofs,提升檔案系統效能約 70% 到 90%;
  • 引入 Firecracker, VMM 記憶體開銷從 60MB 降到約 15MB;
  • 改用 rust 實現 agent,佔用記憶體從 11MB 下降到約 1MB。

我們也會和社群一起繼續共建 Kata Containers,讓安全容器成為雲原生的標配。

安全容器可以有效的保護主機,但是,金融業務本身仍然需要更強的隔離保護,螞蟻金服引入了機密計算,並根據實際場景研發了大規模落地解決方案 SOFAEnclave。

機密計算中介軟體:SOFAEnclave

所謂機密計算,也就是基於例如 Inte SGX,ARM Trustzone 等可信執行環境(Trusted Execution Environment, TEE),也稱為 Enclave ,訪問計算機記憶體時隔離使用者資料,以避免將資料暴露給其他應用程式、作業系統或其他雲伺服器租戶的解決方案。

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

Enclave架構

但是 Enclave 目前存在一些問題,阻礙了它在實際生產環境中的應用。總結這些問題包括:

第一,需要改寫應用,因為可信執行環境裡面沒有核心和基礎庫,所以沒法把應用直接在 Enclave 中執行;

第二,需要分割應用,需要把業務程式劃分為 Enclave 內和 Enclave 外的部分;

第三,未叢集化,與客戶端場景不同,Enclave 中的應用如何 failover,容災也是阻止其在資料中心中大規模使用的一個原因。

螞蟻金服針對這些問題的答案就是 SOFAEnclave 機密計算中介軟體。

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

SOFAEnclave架構

SOFAEnclave 由三個元件組成,第一個是 Occlum LibOS,另外一個是 SOFAst,以及 KubeTEE。Occlum 是螞蟻和英特爾、清華主導開發的一個記憶體安全的多工 Enclave 核心,把系統核心的功能通過 lib 的方式連結過去,通過這種方式給 Enclave 增加功能。同時我們也創新性的解決了在 Enclave 跑多程式的方式,讓 Enclave 真正適配大型的應用。

想詳細瞭解 SOFAEnclave 的技術細節,可以參考這篇文章:

《SOFAEnclave:螞蟻金服新一代可信程式設計環境》

當我們把這些安全元件與雲原生框架編織在一起,構成一個全景,就是我們正在構建的金融服務的安全雲原生安全架構——基於阿里雲和 Kubernetes,以端到端的安全性保障金融服務。

當金融科技遇上雲原生,螞蟻金服是怎麼做安全架構的?

上述這些元件有些是螞蟻金服在實踐檢驗之後開源並與合作伙伴和社群共同發展的,有些從開始就是在社群中開發的。與傳統金融行業的技術發展不同,我們提倡建立一個開放的架構,並相信開放的開源治理對於這個架構是不可或缺的,我們會持續參與和支援社群化的開放開發,與社群一起打造下一代金融級雲原生技術。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69904796/viewspace-2659877/,如需轉載,請註明出處,否則將追究法律責任。

相關文章