安全性

安全指引

Bob 具備程式碼編寫和系統互動能力。為了安全使用,請遵循以下指引。

安全檢查清單

  • 使用受信任的資料夾來控制專案存取
  • 設定 .bobignore 以限制檔案存取
  • 審查並限制自動核准設定
  • 安全地處理機密資訊
  • 搭配適當的身分驗證與加密來使用 MCP
  • 在實作前審查 Bob 的輸出

檔案存取限制

你可以透過設定 Bob 能與哪些目錄和檔案類型互動,來控制其檔案存取權限。.bobignore 檔案使用與 .gitignore 相同的語法,應該是你設定 Bob 時首先採取的安全措施之一。

設定 .bobignore

在工作區中建立一個 .bobignore 檔案

為敏感檔案和目錄新增匹配模式。包含所有未核准的資料類型模式。

.bobignore
# Example .bobignore patterns
.env
secrets/
*.key
config/credentials.json

Bob 會主動監控 .bobignore 檔案,所有變更都會自動套用。如需詳細資訊,請參閱使用 .bobignore 控制檔案存取

了解限制

雖然 .bobignore 能有效透過其工具控制 Bob 的存取,但仍有一些重要限制:

  • 僅適用於目前工作區內的檔案
  • 某些寫入操作可能繞過這些限制
  • 不會建立系統層級的沙箱

請查看完整的主要限制與範圍說明,以了解 .bobignore 如何保護你的檔案。

受信任的資料夾

Bob Shell 使用受信任的資料夾來控制其可以存取的專案。在 Bob Shell 載入專案特定設定之前,你必須明確核准一個資料夾,以保護你免受潛在惡意程式碼的侵害。

當你第一次從某個資料夾執行 Bob Shell 時,可以選擇:

  • 信任資料夾:授予目前資料夾完全信任
  • 信任父資料夾:授予父目錄及所有子目錄信任
  • 不信任:在受限安全模式下執行 Bob Shell

不受信任的資料夾在安全模式下執行,存在重大限制:

  • 專案設定和環境變數會被忽略
  • 工具自動核准被停用
  • MCP 伺服器不會連線
  • 自訂指令不會載入

如需受信任資料夾的運作方式、管理信任設定及最佳實踐的完整詳細資訊,請參閱受信任的資料夾

自動核准設定

使用 Bob,你可以在沒有確認提示的情況下自動核准各種操作。雖然這會加快工作流程,但會顯著增加安全風險。

警告:

自動核准設定會略過確認提示,讓 Bob 直接存取你的系統。這可能導致資料遺失、檔案損毀或更嚴重的後果。指令列存取尤其危險,因為它可能執行有害的操作。

高風險自動核准設定

設定風險建議
編輯檔案僅在受控環境中啟用
執行指令使用白名單並避免使用萬用字元
使用 MCP 伺服器中高僅與受信任的伺服器搭配使用
讀取檔案考慮敏感資料外洩的風險

務必審查 Bob 的輸出,以確保其準確無誤,且產生的程式碼將如預期般運作。永遠不要盲目信任任何 AI 系統的輸出。

如需每項設定及其安全影響的詳細資訊,請參閱設定 Bob Shell

安全處理機密資訊

切勿直接向任何 AI 系統(包括 Bob)提供機密資訊。即使在程式碼中暫時包含機密資訊,也可能導致意外外洩。

機密資訊管理最佳實踐

  • 將機密資訊儲存在環境變數檔案中
  • 確保 .gitignore.bobignore 都限制對儲存機密資訊的檔案的存取
  • 盡可能使用機密資訊管理工具
  • 在指派憑證時遵循最小權限原則——僅授予每項任務所需的最低權限

權限委派

AI 系統不應利用允許其在你未介入和審查的情況下代表你行動的憑證。當 AI 系統需要代表你行動時:

  • 使用 OAuth 等委派機制
  • 實施有時效限制的權杖
  • 監控並稽核所有操作

安全使用 MCP

Model Context Protocol (MCP) 透過連線外部工具和服務來擴展 Bob 的功能。雖然功能強大,但 MCP 連線需要仔細考量安全問題。

MCP 架構概述

MCP 使用用戶端-伺服器架構:

  • Bob 充當包含 MCP 用戶端的主機
  • 用戶端連線至 MCP 伺服器(本機或遠端)
  • 伺服器提供額外的工具和功能

MCP 伺服器的安全要求

使用 MCP 伺服器時,請遵循以下指引:

  • 身分驗證:驗證存取伺服器的使用者身分
  • 加密:保護 Bob 與伺服器之間傳輸中資料的安全
  • 存取控制:限制伺服器可以執行的操作
  • 稽核:追蹤所有操作以確保可問責性

遠端 MCP 伺服器必須遵守與任何傳統伺服器基礎架構相同的安全要求,包括端點保護、網路限制和適當的存取控制。

對於共用的 MCP 伺服器,要確保適當的可稽核性和可問責性,以便可以追蹤操作。

其他安全注意事項

  • 審查產生的內容:在實作之前,始終驗證 Bob 的輸出
  • 定期更新:保持 Bob 及其相依項目的更新
  • 安全培訓:確保團隊成員了解 AI 安全風險
  • 事件回應:制定應對潛在安全事件的計畫
  • 工作區隔離:考慮為敏感專案使用專用工作區
  • 權限範圍:將 Bob 的存取權限限制在特定任務所需的範圍內

透過遵循這些安全最佳實踐,你可以在維持安全開發環境的同時,充分發揮 Bob 的強大功能。

這個主題如何?