沙箱 (sandboxing) 是什麼? 為什麼 AI 代理需要沙箱?
2025年12月11日
隨著 AI 代理的發展逐漸成熟,沙箱 (sandboxing) 這個詞也再次出現在社群的討論中。沙箱這個概念在軟體業已經行之有年,並非在 AI 代理時代才出現,不過因為 AI 代理的特性,這項技術成為開發 AI 代理相關產品時,不可或缺的配套。
在這篇文章,我們將會討論什麼是沙箱、為什麼需要沙箱、以及如果要建立一個最基本的 AI 代理沙箱,可以如何做到?
什麼是沙箱 (sandboxing)?
沙箱這個詞是從生活中借用到軟體界,早在 19 世紀時,德國人就會在庭園中,為小孩建立沙箱,讓小孩可以在沙箱當中玩沙。沙箱對家長來說最大的好處,是可以確保沙只會留在沙箱中,所以不管小孩玩得再瘋,家長也不用擔心其他地方被搞得充滿沙。
除此之外,假如小孩玩過頭,把沙箱弄得很髒,家長們只需要簡單地把沙箱裡的沙換成新的乾淨的沙即可;因為沙箱的範圍不大,要換沙的時間與成本都不高。
從小孩玩的沙箱概念借用到軟體開發上,軟體世界中的沙箱也提供了一個隔離的環境。這能確保假如今天在沙箱中出事情 (例如執行了某段惡意的程式碼),影響的範圍會被限縮在沙箱當中,不會擔心擴及到其他環境。同時,如果沙箱中真的出事了,也只需要簡易地把該沙箱關掉,開一個新的即可。
事實上,沙箱這個詞除了被借用到軟體開發上,科技創新的政策中,也經常會聽到監管沙箱 (regulatory sandbox)。所謂的監管沙箱,是指新創公司要嘗試創新時,在一定的界線範圍中,可以不受現行的法律、制度所規範。
許多科技創新是需要打破框架的,換言之很可能必須與現行法規有所衝突,甚至沒有法規能規範。舉例來說,當初 Uber 推行到全世界時,技術本身反而是最早達成的,後續的推行都是與各國政府、計程車行業相關法規在做對抗。
假如法規強硬規範,這可能讓創新的腳步被拖慢,但如果貿然就全面放寬法律規定,如果出事了又會讓負面影響範圍擴散太大。透過監管沙箱,科技新創就可以盡情嘗試,假如嘗試時出問題,也只會在監管沙箱的範圍中,不需擔心整體被影響到。
為什麼 AI 代理需要沙箱?
沙箱不是新概念,只是在 AI 代理興起後,再次成為討論焦點。這是因為 AI 代理比起單純的 AI 聊天機器人,更有幫助的地方在於能幫忙執行任務,但這也是 AI 代理比 AI 聊天機器人危險的地方。
在 開發 AI 產品時要注意的資訊安全問題 一文我們有談到「AI 代理的致命三角 lethal trifecta」這個問題,只要符合「讓 AI 代理存取私人資料、讓 AI 代理接觸到不受信任的資料、讓 AI 代理有外部通訊能力」這三個條件,就可能出現資安問題。
要讓 AI 代理執行任務,多半會開放權限 (例如讀取與修改檔案的權限),這就達成「讓 AI 代理存取私人資料」的條件;畢竟在用 AI 代理時,相信多數開發者不會想要每次代理有操作,就得手動確認該操作是否安全,因為這樣很麻煩很花時間。用 AI 代理是為了省去手動操作,如果還要這樣每次確認,就失去用 AI 代理的意義。
不過如果完全自動,讓 AI 代理想執行什麼就執行什麼;這時如果執行某個惡意的程式碼,很可能會污染 AI 代理運行的環境,可能讓攻擊者偷到某些寶貴資訊,或者惡意刪除檔案,造成不可逆的危害。
在這個脈絡下,透過沙箱這種範圍限縮的環境,就能限縮 AI 代理被惡意攻擊時帶來的危害。
給 AI 代理的沙箱該畫什麼界線?
在了解可以透過沙箱來限縮 AI 代理可能造成的潛在危害後,相信讀者們會問「具體來說,該限縮什麼? 界線該怎麼畫?」。
針對這個問題,目前常見的界線有兩種
- 檔案系統隔離 (filesystem isolation): 確保 AI 代理只能存取或修改特定的檔案目錄,避免 AI 代理在被提示詞注入 (prompt injection) 攻擊時修改系統中的敏感檔案。
- 網路隔離 (network isolation): 確保 AI 代理只能連線經過批准的伺服器,避免如此被攻擊時洩漏敏感資訊,也避免代理下載惡意程式影響到整個系統。
上面兩種隔離,一個是針對本地 (檔案隔離),另一個是針對遠端 (網路隔離),這兩種界線需要同時存在,缺一不可。因為即使做好網路隔離,如果缺少檔案系統隔離,被攻擊的代理仍可能逃出沙箱取得網路存取權。與此同時,如果做好檔案系統隔離,但是缺少網路隔離,被攻擊的代理可能會外洩敏感檔案 (例如 SSH 金鑰)。
閱讀更多
如果對沙箱這個主題感興趣,或是對於講解 Anthropic 開源的 sandbox-runtime 實作感興趣,這些我們在 E+ 成長計畫中的主題文都有談到。
對更深入了解這個主題,以及其他前後端開發、軟體工程、AI 工程主題感興趣的讀者,歡迎加入 E+ 成長計畫一起成長 (連結)。