首頁 / AI 代理

讓 AI 代理安全操作電腦:權限、隔離與人工確認的 5 個原則

作者 JC · 更新於 · 最後查證

重點速覽

要讓 AI 代理安全操作電腦,核心是限制它能造成的傷害:只給最少的權限、把可能出錯的動作放進隔離環境、對難以復原的動作要求人工確認,並保留可以還原的備份。不要因為嫌麻煩就關掉所有確認,也不要讓代理讀到不可信的內容之後,就直接照裡面的指示去執行。

AI 代理安全操作電腦,不是「相不相信 AI」的問題,而是出錯時,傷害有多大的問題。代理(Agent)會讀你的檔案、執行指令、連網路,它做錯一步的後果,取決於你一開始給了它多少權限。這篇整理五個不依賴特定工具的原則,並附上官方文件的依據。如果你還不熟悉代理,請先看 AI 代理是什麼。

原則一:最小權限

最小權限原則(Least privilege)是只給程式完成工作所需的最少權限。權限越小,出錯或被利用時造成的傷害越小。

Claude Code 的官方文件,就是依這個精神設計預設行為:在手動模式下,它一開始只有唯讀權限,需要編輯檔案、執行測試或執行指令時,會先問你。它也有「工作資料夾邊界」,讀寫啟動資料夾之外的檔案前會先詢問。

但文件同時提醒了一個容易被忽略的地方:這個邊界是一個權限提示,你核准的 Bash 指令,仍然可以寫入你的使用者帳號能寫入的任何位置。所以想在作業系統層級限制指令,需要另外使用沙箱。

幾個實用做法:

  • 只在需要的專案資料夾裡啟動代理,不要在整個家目錄或系統磁碟機啟動。
  • 用權限規則(Permission rule)把機密檔案擋掉。官方文件說明,規則的評估順序是「禁止、詢問、允許」,第一個符合的決定結果,所以允許規則無法在禁止規則上開例外;禁止規則在每一種權限模式下都有效。因此 .env 這類金鑰檔,適合用禁止規則。要注意的是,Bash 的規則比對的是代理寫出來的指令文字,並不是圍著那個程式的安全邊界,同一個程式換一種寫法呼叫,規則可能攔不到。
  • 只放行你確定安全、可預測的指令,其餘維持詢問。

原則二:分清「可復原」與「不可復原」

不是所有動作的風險都一樣。Anthropic 的提示詞指南建議代理這樣分:

  • 鼓勵:本機、可復原的動作,例如編輯檔案、執行測試。
  • 先問你:難以復原、影響共用系統、或具破壞性的動作。例子包括刪除檔案或分支、刪除資料表、強制推送、對外發送訊息。
  • 不要走捷徑:遇到阻礙時,不要用破壞性動作繞過去,例如跳過安全檢查,或丟掉不認得的檔案(它們可能是還沒做完的工作)。

Claude Code 另外提供檢查點:在修改檔案之前,會先保存當下內容,出問題可以還原。但官方文件也寫明,檢查點只涵蓋檔案變更,影響遠端系統的動作(資料庫、API、部署)無法被檢查點還原。

所以:檔案層級的錯誤,靠備份或版本控制兜底(見 給 AI 使用者的 Git 入門);遠端的、對外的動作,靠人工確認把關。這個「人在關鍵步驟確認」的做法,叫做 Human in the loop(人工把關)。

原則三:把可能出錯的動作放進隔離環境

沙箱(Sandbox)是把程式限制在隔離環境執行,只能碰到你指定的資料夾與網路位置。Claude Code 的沙箱功能,由作業系統強制執行檔案與網路的邊界,所以不管模型選了什麼指令,邊界都有效。

但沙箱有它的範圍。官方文件明確寫出:

  • 沙箱只涵蓋 shell 指令;檔案工具、MCP 伺服器與 hook 不在其中。
  • 它預設可讀取整台電腦(除了部分被禁止的目錄),這仍然允許讀到憑證檔,需要你另外保護。
  • 文件也警告:不要靠沙箱裡設定的保護路徑與憑證檔限制,去阻擋一個惡意的指令;在自動放行的模式下,那個指令可能不經提示就執行。

另外,官方文件說明:完全略過權限確認的模式,只該在容器或虛擬機器這類隔離環境使用,因為代理在那裡即使出錯,也傷不到你的主要系統。

結論:沙箱是多層防護的其中一層,要和權限規則、人工確認搭配使用,不能單靠它。

原則四:不要讓不可信的內容直接指揮代理

提示詞注入(Prompt injection)是攻擊者把惡意文字藏進網頁、文件或其他內容,企圖蓋過或操控 AI 的原本指示。代理會讀網頁、讀別人寄來的文件、讀第三方工具的回傳內容,這些都是潛在的入口。

Claude Code 官方文件對處理不可信內容的建議是:

  1. 核准前,先檢視它建議的指令。
  2. 避免把不可信的內容直接餵給它。
  3. 確認它對重要檔案提出的修改。
  4. 在虛擬機器裡執行指令碼與工具呼叫,尤其是會和外部網路服務互動時。

文件也坦白說:這些保護措施能大幅降低風險,但沒有任何系統能完全免疫所有攻擊。連接 MCP 伺服器(讓代理連到外部工具與資料的標準協定,詳見 MCP 是什麼)時,同樣要先確認你信任它;會抓取外部內容的伺服器,可能讓你暴露在提示詞注入的風險下。

原則五:無人看管時,條件要更嚴格

你在旁邊盯著時,代理缺了某些資訊,你很快就能發現並補上。無人看管時,沒有人會糾正它,你可能隔天早上才發現它整晚都建立在錯誤的假設上。

Claude Code 官方文件列出的五個確認問題(整理版),在讓它自己跑之前都該問:

  1. 它知道「完成」是什麼樣子嗎?
  2. 它能檢查自己的成果嗎?
  3. 它被允許碰什麼?(權限規則、隔離環境、只能推送的那條分支)
  4. 什麼會讓它停下來?(次數上限、花費上限)
  5. 結果送去哪裡、由誰核准?

寫這些條件的方法,請看 AI 代理任務說明怎麼寫。

風險與對策一覽

風險對策對應原則
誤刪、誤改檔案限制工作資料夾、版本控制或備份、檢查點一、二
讀取金鑰與密碼禁止讀取規則、金鑰不放在工作資料夾一
對外發送訊息、推送、部署等收不回來的動作人工確認、不給對應權限二
指令碰到不該碰的檔案或網路沙箱、虛擬機器、容器三
被網頁或文件裡的惡意文字操控檢視指令、不餵不可信內容、隔離環境四
無人看管時越做越偏完成標準、檢查、上限、人工核准五

第一次讓代理操作電腦前的檢查清單

  • 我只在單一專案資料夾啟動它。
  • 這個資料夾有備份,或已經用版本控制記錄。
  • 金鑰與密碼檔不在這個資料夾裡,或已設成禁止讀取。
  • 寫入、刪除、對外送出的動作,我保留了確認。
  • 我知道它要處理的內容從哪裡來;來路不明的內容,我會改在隔離環境處理。
  • 如果要無人看管,我回答了上面的五個問題。

延伸閱讀

常見問題

AI 代理會不會把我的檔案刪掉?

只要你允許它執行刪除,就有可能,不管是它誤判還是你的說明不夠清楚。降低風險的做法是:限制它能動的資料夾、對刪除這類動作保留人工確認,並在有備份或版本控制的資料夾裡工作。

每次都要核准很煩,可以全部關掉嗎?

可以調整,但不要整個關掉。比較好的做法是只放行你確定安全的指令,其餘維持詢問;要完全跳過確認的模式,官方文件的建議是只在容器或虛擬機器這類隔離環境使用。

什麼是提示詞注入?

攻擊者把惡意文字藏進網頁、文件或其他內容,企圖蓋過或操控 AI 的原本指示。代理會讀取外部內容時,特別要防範:不要讓不可信的內容直接餵給代理,並檢查它提議的指令。

沙箱可以保證安全嗎?

不行。沙箱能在作業系統層面限制指令可以碰的檔案與網路,但它有涵蓋範圍:Claude Code 的文件指出它只涵蓋 shell 指令,檔案工具、MCP 伺服器與 hook 不在其中。它是多層防護的一層,不是唯一一層。

代理有辦法讀到我的 API 金鑰嗎?

有可能。Claude Code 的文件提醒,沙箱的預設讀取範圍很廣,仍可能讀到憑證檔,需要另外設定保護。最穩的做法是不要把金鑰放在代理的工作資料夾裡,並對機密檔案設禁止讀取。

在平常用的電腦上跑代理安全嗎?

取決於你給它的權限與你要處理的內容。處理自己寫的、可信的內容、只開放單一專案資料夾,風險相對低;要處理來路不明的內容,或想讓它自動執行,就改到虛擬機器或容器裡。

留言

用 GitHub 帳號登入就能留言,留言會公開顯示在 GitHub Discussions。留言前請先看社群規則。

AI 代理