安全第一:沙盒、隔離與 URL 保密
CatDesk 給 ChatGPT Web 的能力是「讀檔、寫檔、在你電腦上跑 shell 指令」。上游文件寫得非常直白:這個工具非常強大,可能清空你的整顆硬碟或產生非預期結果。 這一課講的是怎麼在享受能力的同時,把爆炸半徑 (Blast Radius) 壓到最小。
上游免責聲明
先原文照錄重點:
- CatDesk 是獨立開源專案,與 OpenAI 無關、也未獲 OpenAI 背書。
- 部分功能仍有 bug,可能造成非預期行為,風險自負。
- 上游強烈建議在 VM 或容器 (Container) 內執行。Quickstart 也再次提醒:把它當成 OpenClaw 對待,保持容器化與隔離。
這不是客套話。一個能跑任意 shell 指令的代理加上一個會幻覺的模型,最壞情況就是磁碟被清掉。隔離不是選配。
ngrok MCP Server URL:你的電腦大門
CAUTION:絕對不要把 MCP Server URL 分享給任何人。拿到這個 URL 的任何人都能存取你的電腦。
URL 由三段組成:
| 部分 | 範例 | 意義 |
|---|---|---|
| 公開網址 | https://xxxx.ngrok-free.dev |
你的 ngrok 靜態網域 (Static Domain) |
| 隨機路徑 | /Ab3kL9xQ2pTm7VhC |
首次啟動時生成的隨機路徑 |
| MCP 端點 | /mcp |
實際的 MCP 端點 |
完整 URL 長這樣:
https://xxxx.ngrok-free.dev/Ab3kL9xQ2pTm7VhC/mcp
兩個實務要點:
- URL 是持久的。靜態網域與隨機路徑都保存在
~/.catdesk/config.toml,每次啟動都一樣,所以連接器只需設定一次。副作用是:洩漏一次就等於長期洩漏。 - 保密等於存取控制。連接器的 Authentication 設為 None,這個隨機路徑就是唯一的門鎖。別把它貼進截圖、貼文、issue 或任何對話。
工作區 (Workspace):檔案工具的第一道邊界
工作區是 CatDesk 被允許工作的根目錄:
- 預設值:你啟動 CatDesk 時的當前工作目錄。
- 覆寫:設定
WORKSPACE_ROOT環境變數。 - 強制邊界:所有檔案工具以工作區為基準路徑,工作區外的路徑一律拒絕。
把 WORKSPACE_ROOT 指向一個乾淨的專案目錄,是最便宜也最有效的一道圍籬。
Linux Landlock 沙盒
在 Linux 上,CatDesk 進一步用核心級的 Landlock 沙盒限制 shell 執行:
- v0.4.0 起:
run_command與背景工作被限制在工作區,外加每條指令專屬的暫存目錄 (Scratch Dir)。也就是說,即使模型下了一條越界的指令,檔案系統層面就會被核心擋下。 - v0.4.1 修正:修復了 DNS 與 SSH
known_hosts的問題,讓沙盒內的網路與 SSH 操作正常運作。
Landlock 的價值在於它不是「請模型乖一點」的提示詞約束,而是核心強制的檔案存取規則。
read-only 模式與權限選擇
第三道防線在工具面與權限面:
- read-only 工具模式:只暴露 3 個讀取類工具,模型連寫入的能力都沒有。適合低風險場景,例如只讓 ChatGPT 分析程式碼。
- 連接器權限二選一:
| 權限選項 | 意義 |
|---|---|
| Allow read actions(預設) | 只允許讀取動作 |
| Allow all actions | 允許所有動作,等同 Codex 的 --yolo,需謹慎使用 |
上游雖然標注「推薦 Allow all actions」,但務實的順序應該是:先以 read-only 起步,建立信任後再升級。信任的依據是你在 read-only 模式下觀察到的行為,而不是模型的自我保證。
實用隔離清單
把前面的機制整理成開工前的檢查清單:
- DevContainer / VM 優先:上游明文建議。能用容器就不要裸機跑。
- 每個工作階段 (Session) 前先
git commit:讓任何破壞性修改都有還原點。 - 每台機器用獨立的 ngrok 網域:URL 持久且即門鎖,一台機器一把鎖,別混用。
- 設定
WORKSPACE_ROOT:把邊界收斂到單一專案目錄,不要用家目錄當工作區。 - MCP Server URL 視為密碼:不截圖、不貼文、不進版控。
- 先 read-only,後 multi-tools:低風險場景就用 3 工具模式。
- 權限從 Allow read actions 開始:信任建立後才考慮 Allow all actions。
這份清單做到前三項,就已經擋掉絕大多數最壞情況。剩下的項目成本極低,沒有理由跳過。