云計算

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

螞蟻金服在過去十五年重塑支付改變生活,為全球超過十二億人提供服務,這些背后離不開技術的支撐。在 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,以端到端的安全性保障金融服務。

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

我還沒有學會寫個人說明!

?MySQL 一個讓你懷疑人生的hang死現象

上一篇

花2w培訓前端,出來狂面20家,被拒,我該怎么辦?

下一篇

你也可能喜歡

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

長按儲存圖像,分享給朋友

ITPUB 每周精要將以郵件的形式發放至您的郵箱


微信掃一掃

微信掃一掃
大丰收注册
电竞比分网1zplay 湖南闲来麻将怎么升级 内蒙古快三 福彩3b振幅走势图 股票基本知识k线图 四川金七乐今天开奖号 贵州奕乐捉鸡麻将 华东15选五浙江开奖结果 今日竞彩比分推荐预测 泰豪科技股票股吧 血流成河单机麻将下载 安徽快三开奖结果昨天 河北排列5 全民福州麻将玩不了 微信捕鱼小游戏 贵阳麻将规则