淺談雲端計算與安全沙箱機制!

比亞的答案發表於2022-10-18

雲端計算的本質是什麼?

簡單來說:就是你把自己的業務給實現成了軟體,然後“租賃”了第三方的硬體與網路資源去執行這些軟體,並服務你的客戶、合作伙伴。也就是說,把自己的程式碼化數字內容資產,託管、執行在第三方空間裡。

這裡的第三方,就是IaaS、PaaS、SaaS各個層面的服務商。伺服器硬體是他們的、網路裝置是他們的、伺服器裡的作業系統是他們維護管理的、甚至作業系統之上的資料庫和系列中介軟體也是他們提供的。你在這樣的第三方環境裡執行程式碼、處理資料。

那麼問題來了,你的程式碼和資料,就是你的數字資產,如何在一個並不完全受你控制的環境中安全執行,在安全、隱私方面得到保護呢?

另一方面,作為軟硬體平臺的提供商本身,上雲的客戶什麼人都有。又如何防範他們無意間引入了有安全漏洞的軟體、或者本身就是駭客或者黑產,惡意攻擊平臺、盜取其他租戶的資料、危害整個生態環境?

這好比你開了一個大型寫字樓,裡面引進了各種商家,其中混入了幾家專做詐騙的“呼叫中心”,還有在寫字樓裡無下限營銷的,把你的寫字樓名聲搞壞。如何去防範害群之馬?

雲端計算的本質,就是如何讓自己的程式碼安全的在他人的數字環境中執行並保障資料隱私保護,以及如何讓他人的程式碼在自己的數字空間執行並保障自身的安全。

虛擬世界的信任關係?“動態清零”

“租戶”和提供虛擬空間租賃的“業主”、“物業”,彼此之間的信任關係是如何建立的?

在看不見摸不著的虛擬世界裡,雙方建立信任的基礎是什麼?一張商業登記證、營業執照或者一個辦公室地址能成為可信證明嗎?恐怕不行。

**“租戶”**在所租賃的虛擬空間裡裝修自己的門店,不排除採用了漏電的裝置、放射性的原材料、有毒的塗料 。 正如  關於軟體供應鏈安全攻擊一文  https:///blog/supplychain-attack/所介紹,很多企業的業務軟體裡可能只有低至10%的程式碼是自己的工程師寫的,其他的都來源於不知名的開源世界,開發者自己都不知道,供應鏈被汙染了,影響到自己,也殃及其他“租戶”。

而“物業”,也不排除內部人員有道德風險,做倒賣“租戶”資產(例如資料)的事情。

即使你不用雲,實際上你也不能免於上述風險。雲端計算實質上就是把電力轉化成算力,像電能一樣無處不在,處處被利用。雲服務是業態連線的基礎,而連線是數字化的核心。只要搞數字化,就會面臨:

1、企業邊界發生重大變化。企業的數字邊界和它的物理邊界並不重合。寫字樓門口的保安以及門禁卡,攔不住虛擬世界的病毒、木馬、網路攻擊。現在的企業員工,都使用自己的手機、平板和手提電腦裝置,這些裝置上的App也可能使用各種各樣的雲服務。一旦員工“肉身”處於公司辦公現場內,如果他的這些裝置被許可接入內網,則相當於公司內網暴露在網際網路公網之下。

2、傳統的企業之間合作,往往就是資源互換。例如企業A的產品與服務透過企業B的平臺觸達B的客戶,同時B也借力A的產品與服務去啟用自己的存量客戶。以證券公司與銀行營業網點的合作為例:證券公司透過銀行網點幫助來辦理業務的銀行客戶開證券戶,證券公司獲客、銀行則樂得成為賬戶的資金存管銀行,“雙贏”。

到了當下的數字化時代,這種過去發生線上下的資源整合、資源交換,都發生線上上。它的本質就是,企業A把自己的數字化產品與服務“投放”到企業B的軟體平臺,從而讓企業B的使用者能發現和使用。

這時,企業A關注的就是自己的程式碼與資料能否在企業B的軟硬體環境下得到安全與隱私的保護。另一方面,企業B也關注企業A的程式碼“注入”到自己的軟體環境下,會不會拿到不應該獲得的客戶資料。此外,雙方都不能假設對方的程式碼是安全可信的,因為就算雙方都是有誠信、可靠,也無法假設對方的程式碼就沒有漏洞和缺陷,導致“無心之失”

從某個角度看,數字化就是讓自己的程式碼安全機密的執行在別人的軟硬體和網路環境中,以及讓別人的程式碼執行在自己的環境中卻無法故意或無意的對我造成破壞。

信任,在數字化世界裡並不存在!

企業內網?它就在星巴克

都說數字化轉型,管理諮詢公司、科技廠商們有各種雲山霧罩的高深理論。可是實際上到最後就是看,誰能夠把辦公室設在星巴克(或者任何帶WiFi的咖啡館),卻依然保持有效運轉。

因為這意味著這家企業的員工可以線上上協同、客戶可以線上上交易、領導可以線上上管理、合作伙伴可以線上上合作,完全“離地”,卻可以保障企業資料安全、經營隱私,徹底解決了資訊保安風險的隱憂。

從本質上看,數字化不就是透過網路突破物理世界時間與空間的制約嗎?數字化轉型,不就是讓企業經營適應這樣的生產方式、經營方式嗎?

可以說,一個聲稱完成了數字化轉型的企業,它的終極形態就是——遠端辦公,無論員工和客戶人在辦公室還是咖啡館,他們都是在虛擬世界、在遠端,安全無障礙的協作。

**企業內網比外網安全?不存在的事。**提供“零信任技術”的廠家會告訴你,任何在所謂“內網”的人、他們所使用的裝置、所執行的軟體,都是不可信任的。你必須保持paranoid - 在這個安全議題上,你必須是偏執狂、妄想症患者,你永遠假設你的內網已經被攻破、你的企業軟體供應鏈已經被汙染、你的整個企業就是在街頭路邊的WiFi上運轉。

防火牆背後沒有絕對安全,內網就是外網 - “永不信任,總是查證”。零信任,很可能將成為企業數字化轉型的“必要條件”。

數字化意味著連線,連線的前提是開放,開放的資格取決於安全風控能力。可以說,安全風控是數字化轉型的第一屬性,而數字化企業的安全風控,建立在零信任基礎上。

懷疑一切,並隔離之

零信任,首先是一種數字化時代的安全“哲學”、架構理念,然後才是一系列的科技產品與工具。其中種類繁多,不一而足;也沒有哪家廠商敢聲稱現在已經提供了所有的、最完整的解決方案。這是一個正在發展的領域,大家都在路上。在這裡,我們只探討其中一種型別的技術方案:軟體隔離(零信任的技術方案裡,還有一種Micro-segmentation網路微隔離技術,不在本文討論範圍)。

不錯,就是像隔離新冠病毒一樣的絕對隔離,只不過它是虛擬的 - 任何程式碼都是受懷疑物件,都可能感染病毒,都得被關在箱子裡跑,執行是可以執行的,但是不能被放出來。

事實上,隔離技術早已無處不在。在雲端,亞馬遜之所以能允許成千上萬的“租戶”把程式碼跑在自己的機房裡而不用擔心安全問題,其中至少有相當一部分原因是跟虛擬機器相關的 -  虛擬機器就是隔離環境,你的程式碼只能在這個隔離環境裡跑,記憶體、CPU、網路、儲存等等資源,都是安全隔離與受限的。

你看不到其他“租戶”的程式碼與資源,他們也看不到你。在客戶端,微信之所以能承載幾百萬個小程式,讓網上各種企業用各種前端框架開發出來的程式碼跑在微信App裡面卻不用擔心微信自身被攻破、使用者資料被盜取,同樣也離不開以小程式為單位的隔離。

從雲端到瀏覽器端,都有隔離機制,這種機制就是: 安全沙箱

有理由相信,安全沙箱將無處不在,未來的軟體,幾乎就沒有不跑在某種形態的沙箱之內的。安全沙箱這種機制,應該是雙向隔離的,一方面它把任何程式碼關在箱子裡跑,免得它們潛在入侵、損害所在執行的“宿主”環境;另一方面它也保護執行在其中的程式碼,免得它被受汙染的“宿主”環境侵害。

隔離,是這個時代的主旋律,在數字世界更加逃不過...

數字化?先從“隔離”開始

首先,什麼是沙箱?它本身就是一種線下生活現象的虛擬化。現實世界裡,小孩子們在沙地、沙灘上用木板隔離出一個方盒子,在盒子裡堆砌、創造各種東西 - 城堡、房屋、山丘... 這就是一個沙箱。它有兩個根本特點:一、它有邊界,透過木板設定了遊戲創造的範圍只在圍牆內;二、它的遊戲材料是沙,任何的創造,一抹就平,瞬間無影無蹤不留痕跡。

這兩個特點,在計算機世界被模擬了。在一臺裝置(不管是一臺伺服器還是一個手機,我們稱之為“宿主”)中,透過軟硬體手段的結合,可以模擬出一個“管控”區域,它的裡面是預先指定、劃分出來的運算與儲存資源,與宿主的其他資源完全隔離。應用程式碼可以被丟到這個區域裡執行,即使它是病毒、木馬、DDoS攻擊軟體,它也只能在這麼一個資源受限的模擬世界折騰,它就像在Matrix裡的人,看不到宿主裡其他的平行世界,甚至不知道宿主的存在,無法濫用宿主資源從而毀滅宿主(和其他平行世界)。此外,任何這樣的區域,既然是模擬的,不管裡面跑著什麼,都可以被“一鍵刪除”,一切歸零。

這就是計算機世界的沙箱。

沙箱技術有很多種類,是否能稱之為“安全沙箱”,則視乎其隔離的程度和自身的技術目的。例如能模擬出一整臺伺服器或者桌面電腦的虛擬機器,應該能稱之為安全沙箱 - 你可以在裡面跑企業服務、也可以在裡面打遊戲,並不能影響宿主的安全穩定執行,你也可以把這個虛擬機器一鍵刪除,不管裡面安裝了什麼東西。

例如瀏覽器裡面的實現,是最為普通使用者所能感知的安全沙箱 - 它把遠端載入的、來自不同網站的頁面進行隔離,並且在執行這些包含大量不知名開源技術的程式碼時,還需要防範XSS攻擊,保護宿主環境(讓使用者免受隱私洩漏、資料被盜、遭遇釣魚詐騙、感染病毒等風險)。


容器類技術,諸如docker、LXC等,有沙箱隔離的特點,但因為共享宿主作業系統的核心,並不提供徹底全模擬的環境,所以往往並不被視為安全沙箱。

數字化的發展,“隔離”是硬道理,只是隔離粒度不同,有云端“租戶”之間的隔離、虛擬伺服器的隔離、網路間微隔離、程式間隔離、乃至小小一個手機上一段程式碼(例如一個小程式)的隔離。

下一代企業應用軟體需要安全沙箱

空講“數字化轉型”無用,它怎麼“落地變現”呢?“轉型”後的企業的形態是怎樣的呢?

矽谷著名投資機構Andreessen Horowitz (“a16z”)的合夥人Marc Andreessen在2011年8月20日發表過一篇影響力頗大的文章“Why software is eating the world”(《為什麼軟體正在吞噬世界》),十年後回顧,確實就是軟體在全球社會里舉足輕重、無孔不入:完全無法學習掌握PC的大媽大爺,紛紛用上了微信;街頭賣煎餅果子的小販用二維碼接受電子支付;銀行營業網點被手機App取代...

企業的數字化轉型,就是企業員工、客戶、合作伙伴全部透過軟體進行生產協作、經營管理和交易買賣 - 人在哪裡無所謂、見不見面不重要,只要保障了資料安全、商業隱私,就可以在網上有效經營。數字化企業,就是建立在軟體上、並且管理制度與高效使用這些工具相匹配的企業。

支撐數字化的下一代企業軟體是什麼樣子的?在凡泰極客,我們認為“小程式化”、“ ”是其中一個基石。邏輯如下:

  • 企業的一切業務內容,表現方式就是軟體化程式碼化。企業的數字內容資產,就是軟體

  • 軟體形態和過去不一樣了,它已經徹底脫離PC時代的“單機”,它天然是網路化的、連線型的、傳播式的,企業需要掌握軟體的出版權、分發權、流動權、使用權

  • 隨需隨用、用完即走的“輕應用”軟體形態,最符合上述要求。其中“小程式”又是輕應用型別技術中最有廣泛基礎、最貼近Web因此最有生命力的技術

  • 使用者甚至不再需要去主動意識到“軟體”這個概念的強存在,程式碼都是自動下載、看到就用到的,不再有傳統觀念下的安裝、升級,一切都是透明的

  • 透過網路分發傳播而下載執行的程式碼,永遠不可信賴,它只能被關在安全沙箱這樣的隔離環境裡面跑,沒有其他選擇

  • 傳統企業之間的資源交換與整合,它的數字化形態就是交換自己的“數字內容資產”,也就是我的平臺讓你的軟體放進來跑一跑服務我的客戶,我的軟體投放到你的環境裡觸達一下你的客戶。“你中有我,我中有你”,可是我們倆彼此在技術層面沒有任何信任基礎,只認技術安全,“零信任”。所以你的程式碼我只能放在沙箱裡跑,我投放到你那邊的程式碼,也用沙箱隔離著你的環境

  • 在所謂企業“內網”裡,執行的一切軟體,也不能保證安全,誰知道程式碼裡面用了什麼開源元件、供應鏈是不是已經被汙染、是否隨著員工隨身裝置“肉身”進入了防火牆內部?都得被安全沙箱關著才能執行

FinClip技術來說,它是一種雲端可控的裝置端安全沙箱技術,它以可分發、可流通的小程式程式碼格式為軟體形態,充當下一代企業應用軟體的技術底座。

作為Web前端技術的“超集”,基於令牌(non-forgeable token)的安全模型,和當前“零信任架構”下的其他基礎技術在最貼近使用者、應用的地方能建立良好的配合。

無論接受與否,我們的“現實”世界和“虛擬”世界,都已經變得highly contagious - 病毒在這兩個世界肆虐,“信任”關係卻越來越難建立。技術讓病毒軟體化數字化了,卻沒有讓信任數字化,而是直接把它降為零... “隔離在安全沙箱裡”,將是數字化時代的“新常態”。



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

相關文章