新創立的字節碼聯盟宣佈WebAssembly微進程提案,旨在安全使用非信任模塊

來自Mozilla的Lin Clark最近宣佈創立字節碼聯盟(Bytecode Alliance)。字節碼聯盟是一個行業合作伙伴關係,旨在爲WebAssembly生態系統提出和實現標準,以實現其在瀏覽器和其他環境中安全的發展。字節碼聯盟提出了微進程(nanoprocess),爲運行第三方Wasm包提供了隔離和安全性。

爲了進一步推動模塊化WebAssembly生態系統,Mozilla、Fastly、英特爾和紅帽公司攜手成立了字節碼聯盟,爲當前大量使用的第三方包可能存在的安全問題(例如惡意依賴、損壞的模塊)提供補救措施。Clark引述道,應用程序中大約有80%的代碼來自於包註冊中心,例如npmPypycrates.io。這些第三方包加速了應用程序的創建,但是也引入了安全問題。開發人員信任這些第三方包,爲它們授予和應用程序相同的能力(capabilities),但是這些能力可能會被惡意包用於意想不到的目的。Clark警告道:

作爲一個社區,我們必須要作出選擇。WebAssembly生態系統可以提供一個解決方案,至少,我們應該選擇一種默認情況下安全的方式進行設計。如果我們不這麼做,WebAssembly可能會讓問題變得更糟糕。
隨着WebAssembly生態系統的發展,我們需要解決這個問題。由於這個問題太大,難以單獨解決,這就是字節碼聯盟成立的原因。

通過微進程提案,可以讓包運行在獨立環境中,只擁有預先定義的限定能力。字節碼聯盟試圖通過這種方式,尋求讓來自惡意軟件包的安全漏洞失效。Clark解釋道:

總之,我們將建立牢固安全的基礎設施,無論這些不信任的代碼運行在何處,都能保其安全性。它們可能會運行在雲端、任何人的本地電腦,甚至在小型IoT設備上。
通過這個提案,開發者仍然可以通過相同的方式使用開源代碼,保持和現在一樣的高效,同時不會帶來風險。

微進程構建於WebAssembly和WASI已有或者已提出的面向安全的特性上(例如WebAssembly的沙箱和內存隔離,WASI的基於能力安全模型),通過允許給第三方包傳遞細粒度能力實現。

WASI應用程序安全性由能力(capabilities)提供,而非使用標識資源的可僞造引用(例如文件路徑),但是沒有指定資源的訪問權限。在WASI模型下,代碼可以只訪問傳遞給它的目錄。因此,運行時可以將文件描述付傳遞給應用程序上層代碼使用,同時這個文件描述付會按照最小使用原則傳播到系統的其他部分。

微進程在此基礎上更進一步,它允許將一個微進程將自己接收到的能力(來自於運行時或者其父微進程)的子集傳遞給它依賴的微進程。Clark在官宣博客中描繪了一張機制圖:

感興趣的讀者可以去官宣博客瞭解關於WebAssembly微進程和其他額外預期優勢的詳細介紹。

字節碼聯盟已經在一系列現有項目進行合作,包括WebAssembly運行時(WasmtimeLucet,、WebAssembly Micro Runtime),運行時組件(CraneliftWASI common)和語言工具(cargo-wasiwatwasmparser)。除此之外,字節碼聯盟還領導WASI標準和Rust WebAssembly工作組的工作。

字節碼聯盟有興趣發展新成員並壯大聯盟。感興趣的團體可以給聯盟發送電子郵件:[email protected]

原文鏈接:

https://www.infoq.com/news/2019/11/wasm-nanoprocesses-security/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章