安全性

概述

Neotask 採用以安全性為優先的架構設計。Gateway 預設綁定至 localhost,所有敏感資料在靜態時加密,代理程式執行可以在隔離容器中沙盒化。

網路安全

預設回送

Gateway 只監聽 127.0.0.1(localhost),除非您明確更改綁定模式。預設情況下無外部網路暴露。

驗證

所有 WebSocket 連接都需要驗證:

遠端存取安全

對於遠端存取,推薦的方法是 Tailscale VPN 或 SSH 隧道, , 永遠不要將 Gateway 直接暴露於網際網路。

裝置配對

配對如何運作

每個連接至 Gateway 的用戶端都必須配對:

  1. 裝置呈現其身份(指紋 + 公鑰)
  2. Gateway 發出配對挑戰(nonce)
  3. 裝置用其私鑰簽署 nonce
  4. 您透過 UI 核准裝置
  5. Gateway 為未來的連接發出裝置令牌

信任模型

加密

靜態資料

傳輸中的資料

沙盒

基於 Docker 的隔離

代理程式命令執行可以在 Docker 容器中沙盒化:

沙盒範圍

範圍 說明
每工作階段 每個工作階段使用全新容器
每代理程式 每個代理程式的持久容器
共享 跨代理程式的共享容器

工作空間存取

沙盒化代理程式可以存取其工作空間目錄(掛載至容器中),但無法存取工作空間外的主機檔案系統。

執行核准

控制代理程式可以在節點和 Gateway 主機上執行哪些命令:

模式

模式 說明
Allowlist 只有預先核准的命令才能執行
Ask 未知命令提示使用者核准
Full 無限制(謹慎使用)

每節點設定

每個節點(macOS、無頭主機)都有自己的執行核准設定,儲存在本機。您可以允許特定二進位檔(例如 /usr/bin/docker、/usr/local/bin/terraform),同時封鎖其他所有內容。

提升模式

某些操作需要直接在 Gateway 主機上執行(而非在沙盒中)。提升模式:

安全審計

內建安全審計檢查:

獲得許可後,審計可以自動修復許多問題。

最佳做法

  1. 將 Gateway 保持在回送上, 使用 Tailscale 或 SSH 進行遠端存取
  2. 啟用沙盒, 在 Docker 容器中執行代理程式命令
  3. 使用執行允許清單, 限制代理程式可以在節點上執行哪些命令
  4. 設定驗證令牌, 即使對於回送,也始終設定令牌驗證
  5. 審查代理程式權限, 盡可能使用最小工具設定檔
  6. 保持 Neotask 更新, 更新包含安全修補
  7. 定期審計, 執行安全審計以發現設定錯誤
  8. 限制外掛載入, 只安裝受信任的外掛