sandboxing

3 posts

你的 C 相依程式庫可能讓整個行程當掉。WebAssembly 可以阻止它。

用 container 來隔離單一 C 程式庫未免小題大做。將其編譯為 WebAssembly,在 WASI sandbox中執行,即可實現記憶體安全、基於權能的檔案系統存取和當機隔離,無需 Docker。

C 程式庫內部的一次空指標解參照就可能導致整個應用程式當掉。如果該程式庫負責剖析使用者輸入、解壓縮影像或處理網路 protocol,那麼一個格式錯誤的封包就足以引發當機。container 確實能解決這個問題,但僅為了一個相依項目就啟動 Docker,無異於為盆栽雇用保鏢。你需要的是沒有額外負擔的隔離。…

你的依賴能讀取環境變數。JavaScript允許它們這麼做

Ambient Authority意味著Node.js程序中的任何程式碼都能觸碰檔案系統、網路和執行環境。本文將講解如何透過lockdown、compartment和顯式capability傳遞來剝除它。

一個被攻破的傳遞依賴就能外洩你的 、寫入你的檔案系統、開啟出站連線。它不需要你的程式碼存在漏洞。它只需要存在於同一個程序裡。在JavaScript中,每個模組預設繼承執行時的全部權限。這就是Ambient Authority,而移除它是你能對Node.js應用程式做的最有效的安全性升級之一。 Ambient…

你的依賴項目可以讀取磁碟上的任何檔案。cap-std 讓它們必須先取得權限。

Rust 的標準函式庫將環境檔案系統權限授予每一個依賴項目。cap-std 以權能式 API 取而代之,強制程式碼在開啟路徑之前先證明自己擁有存取權。

依賴樹中的任何 crate 都可以開啟 、寫入你的 目錄,或是列舉專案中的每一個檔案。Rust 的標準函式庫不會要求任何權限。它預設任何有能力呼叫 的程式碼,都有權碰觸作業系統允許的任何路徑。 cap-std 改變了這個預設。它是 Rust I/O module…