Skip to content

安全模型

Walis 會執行任意 shell。下面每一個決定都源自這件事。

誰能做什麼

層級控制
登入預設關閉;對外之前一定要開
角色adminoperatorviewer
任務層級每個任務各有檢視角色與執行角色
外掛安裝需要 admin——外掛是程式碼

看不到的任務回 404 而不是 403,不透露它存在。

建置隔離

建置以服務帳號執行,這表示它原本讀得到 Walis 自己的資料庫——裡面有密碼雜湊、 API 金鑰雜湊與雲端憑證。所以每個步驟預設都用 sandbox-exec 包住,禁止讀寫資料目錄, 建置環境也會移除 ConnectionStrings__*

你可以再加禁止路徑,也可以限制任務只能在白名單的工作目錄底下執行。

這不是完整隔離——同一個使用者、同一台機器。它擋的是實際會發生的問題 (建置腳本順手把資料庫讀走),而不是已經能以你的身分執行程式碼的攻擊者。

外掛

外掛回傳字串,由 Walis 執行。沙箱(Jint、沒有 I/O、四道資源上限)有其意義, 但真正的控制點是:你在安裝前讀得到它產生的腳本,而且能力必須宣告並經過核准。

備份

壓縮檔裡有密碼雜湊與雲端金鑰,所以只要設了任何遠端目的地就強制要有通關密語。 加密格式與 OpenSSL 相容,還原時完全不依賴 Walis。

以 MIT 授權釋出。