美聯邦機構推動WebAssembly作為比eBPF更安全的選擇

   作者 | B. Cameron Gain
譯者 | 劉雅夢
策劃 | Tina
隨著 Wasm 得到更廣泛的採用,WebAssembly 的使用可能會成為滿足安全性合規性要求的強制性要求,同時解決其他正在進行的安全難題。
根據美國國家標準與技術研究所(NIST)一篇論文 《雲原生應用程式的資料保護方法》(作者:LeakSignal 的 Wesley Hales;NIST 的主管級計算機科學家 Ramaswamy Chandramouli)的說法,WebAssembly 可以而且應該整合到雲原生服務網格領域,以增強安全性。論文中概述的框架可能會導致未來對 WebAssembly 或雲原生環境的合規性要求,同時也為更廣泛地使用 WebAssembly 的安全性奠定了基礎。
該論文強調了 WebAssembly 模組如何透過其原位或代理方法,使 WebAssemblys 成為資料在服務之間傳輸時進行資料分類的有力候選者。藉助 Wasm,可以對分佈在一個或多個雲原生環境中的任何型別的資料進行資料檢查。
“很多人都有 eBPF 錘子思想,對他們來說,一切看起來都像釘子,但事實並非如此,”該報告的合著者 Hales 告訴 The New Stack。“eBPF 的目的只有一個。”
eBPF 最初是為了防禦側通道攻擊而設計的,例如 Heartbleed 漏洞(該漏洞破壞了 OpenSSL 的加密庫),以及其他核心級相關漏洞。Hale 解釋說,eBPF 允許我們在發現某些內容後進行修補並阻止該活動。
Hale 說:“人們用它來做任何的事情,因為它是一個簡單的插入點。這是 eBPF 的優點之一——它易於安裝,並提供了一定程度的可見性。但是,它不能利用第 7 層人類可讀的文字,因為它是在核心空間中執行的。”。
將來自第 4 層 eBPF 的資料包帶入使用者空間進行分析需要先對資料包進行映象,然後再在容器中進行分析。“這會產生一個弗蘭肯斯坦式的過程,根本不可能有效能”Hales 說。“Wasm 真正滿足了我們的目的。我們實際上對 eBPF 進行了原型設計,但它根本不適合我們。”
eBPF 與 Wasm 的對比
將 eBPF 的安全性與 Wasm 的安全性進行比較,該論文的作者寫道:
“與 eBPF 等技術相比,使用 Wasm 在第 4 到第 7 層解析人類可讀的文字具有幾個優勢,特別是在處理複雜的應用層資料(如 HTTP)方面。雖然 eBPF 在核心內直接進行資料捕獲和操作方面功能強大,但對於某些應用程式來說,使用它來解析詳細的 HTTP 流量可能會很複雜,甚至是大材小用。這種複雜性源於需要在核心內處理 HTTP 的複雜性——如果管理不當,這項任務可能會限制性能並引入安全性問題。此外,eBPF 還施加了許多限制,需要付出額外的努力來進行資料處理和通用計算。”
“Wasm 提供了一個安全的沙箱環境,適用於跨多個平臺高效執行程式碼和解析應用層協議。Wasm 可以在使用者空間和伺服器環境中使用,允許更容易地與現有的解析庫和工具整合,降低複雜性,並可能提高解析操作的可靠性。它的可移植性和嵌入各種執行時環境的能力使其成為網路流量分析任務的實用選擇,包括涉及處理人類可讀文字的協議的任務。”
在雲原生世界中,所有的資料流量都是透過服務網格(service mesh)Istio 的代理和 Wasm 的模組化或“沙箱”設計強制透過的。“Istio 代理後面可能有 10000 個容器,而所有的日誌流量、所有的網路流量,甚至資料庫流量都必須進入代理,然後到達目的地。”Hales 說道。“所以我們可以用 Wasm 來研究所有這些問題。”
大局觀
從這篇論文中得到的一個結論並不是 WebAssembly 的安全性優於 eBPF。這裡要重申一下,它是說,退一步的時候——無論是在可觀測性、安全性、全面的解決方案或戰略,還是最佳實踐方面,都不應該是用其中一個來代替另一個。因此,舉例來說,美國政府不太可能突然強制使用 WebAssembly,而不為某些用例實施或強制使用 eBPF。在商業領域中,一個全面的安全性或可觀測性參與者或產品應該包括 eBPF 的一系列用例,以及 WebAssembly 和其他用例。
“eBPF 從來就不是一個通用的計算平臺,它既有演算法約束,也有記憶體限制。從安全性的角度來看,當功能可以在 Wasm 這樣的使用者空間中完成時,將功能推送到核心空間(eBPF 所在的地方)本身也是一種糟糕的做法。”ARMO 的首席技術官兼聯合創始人 Ben Hirschberg 表示。“因此,在 Wasm 中實現複雜的可觀測性邏輯,並在 eBPF 中保留所需的最小功能,這更有意義。”
事實上,WebAssembly 從一開始就是為所謂的沙箱安全而設計的。Fermyon 聯合創始人兼執行長 Matt Butcher 表示:“我保證你現在正在執行的就是使用最廣泛的沙箱應用程式環境:一個 Web 瀏覽器。瀏覽器是一個本質上為執行不受信任的程式碼而構建的環境。WebAssembly 基於瀏覽器的傳統是其擁有一流沙箱技術的原因。”。與容器和 eBPF 不同,安全性不是事後才應考慮的;從一開始到現在,它都是一個核心特性。看到 Wasm 在安全性的敏感環境中得到普及,我並不感到驚訝。”
Hales 解釋說,除了 Istio 的代理之外,Wasm 還提供了比 eBPF 更廣泛的覆蓋範圍,包括覆蓋透過 HTTP、gRPC 或 GraphQL 的資料傳輸,或網路流量能夠流向的任何地方。Hales 說:“這並不重要,因為它們仍然都在透過第 4 層到第 7 層的管道。”。
“將 Wasm 視為一種具有明確定義擴充套件方法的靈活的核心技術是有用的。它是與平臺無關的,這意味著它可以在許多作業系統和系統架構上執行。並且現在幾乎所有的主要程式語言都支援它了。”Butcher 表示。“本質上,這使得 Wasm 比 eBPF 更具適應性。簡而言之:Wasm 是為通用性而構建的,而 eBPF 卻不是。”
原文連結:
https://thenewstack.io/the-feds-push-for-webassembly-security-over-ebpf/
本文由 InfoQ 獨家翻譯,未經授權不得轉載。
今日好文推薦
我一個人,12 個月內,創辦了 12 家公司,獨立開發者十三年創業風雲錄
DeepSeek 等“六小龍”出圈背後,浙大系創業者的"組織文化程式碼"被寫進 DNA 了?
從1000名銷售到0個工程師!?權威資料揭示全球軟體工程人才需求創五年新低
Linus 將不顧反對合並Rust程式碼?!核心維護者無奈強調:不能讓“癌症”擴散!

相關文章