當沙箱程式碼可以解析攻擊者控制的網域,或將 DNS 用作對外資料通道時,DNS 外洩風險就至關重要。因此在將敏感工作流程託付給 AI Agent 沙箱之前,團隊應評估 DNS 政策、記錄、套件取得路徑與事件證據。
為什麼 DNS 在沙箱威脅模型中很重要
AI Agent 沙箱是為了實用的自主性而設計。編寫程式碼的 Agent 可以執行測試、安裝套件、呼叫 API、啟動瀏覽器、檢查檔案及產出成品,而無需人類逐一批准每個指令。正是這種彈性,讓網路行為需要獨立於 CPU、記憶體、檔案系統和程序隔離之外,進行自己的審查。
DNS 獲得的關注往往少於 HTTP 出口流量,因為它看起來像基礎設施管道。應用程式需要名稱解析才能連上 API、套件庫、網頁和更新端點。但 DNS 仍然是對外通訊。一個可以解析任意網域的沙箱,可能透過查詢名稱洩露資訊、聯繫攻擊者控制的基礎設施,或者如果 DNS 流量沒有像網頁請求一樣被仔細記錄,就可能形成盲點。
這不是為 AI Agent 發明的理論類別。MITRE ATT&CK 將 DNS 記錄為一種應用層協定,對手可用於命令與控制(C2)通訊;同時也另外記錄了當資料透過非主要應用程式協定的通道離開時,透過替代協定外洩的情況。對於沙箱評估者來說,教訓很直接:不要因為 DNS 不是 HTTP POST,就把它視為無害。
對 AI Agent 而言,風險通常來自一連串的小權限,而非單一明顯的錯誤:
| 沙箱能力 | 團隊允許的原因 | DNS 相關問題 |
|---|---|---|
| 套件安裝 | 讓 Agent 安裝缺少的相依套件 | 允許哪些套件庫和解析路徑? |
| 網頁存取 | 讓瀏覽器 Agent 收集公開內容 | 程式碼可以解析任何網域,還是僅限於已核准的網域? |
| API 呼叫 | 讓 Agent 與應用程式後端整合 | 內部網域和中繼資料端點是否被封鎖? |
| 建置工具 | 讓編寫程式碼的 Agent 執行真實測試 | 安裝後腳本是否會觸發非預期的查詢? |
| 長時間執行的工作階段 | 讓 Agent 繼續執行多步驟任務 | DNS 記錄是否在整個工作階段生命週期中都被保留? |
目標不是禁止所有網路呼叫。許多 Agent 工作負載需要受控的網路存取。目標是了解存在哪些路徑、哪些路徑被封鎖,以及如果任務出現非預期行為時,你會擁有什麼證據。
DNS 解析出現在 Agent 工作流程中的哪些地方
安全審查經常詢問沙箱是否能存取網際網路。這個問題太廣泛了。更好的做法是先盤點程式碼、工具、套件管理器或瀏覽器可能觸發名稱解析的所有位置。
常見的 DNS 路徑包括:
- 來自 Python、JavaScript、Shell 腳本、SDK 和測試套件的直接程式碼要求。
- 載入頁面、子資源、字型、圖片、分析腳本和重新導向的瀏覽器自動化。
- 套件管理器,例如 npm、pip、uv、pnpm、apt、cargo 或語言特定的外掛程式安裝器。
- 擷取二進位檔、模板、瀏覽器驅動程式、模型檔案或測試資源的建置工具。
- 呼叫第三方 API 或 Webhook 端點的 Agent 工具。
- 在可見的 Agent 步驟回傳後繼續執行的背景工作。
這份盤點應同時包含預期與伴隨產生的流量。開發人員可能只要求 Agent 執行一個單元測試,但測試指令可能安裝套件、套件管理器可能解析套件庫網域,而生命週期腳本可能聯繫另一個主機。瀏覽器任務可能只限定在一個公開網站,但嵌入的資源會解析許多額外的網域。
對沙箱供應商而言,最有力的答案不只是「可以存取網路」或「網路已隔離」。有用的答案會解釋解析路徑:
- 沙箱 DNS 使用供應商控制的解析器、客戶控制的解析器、VPC 解析器,還是公用解析器?
- 客戶是否可以限制網域、IP 範圍、連接埠或協定?
- DNS 請求是否依沙箱、工作階段、指令個別記錄,還是只在聚合網路層記錄?
- 被拒絕的查詢是否會被記錄,還是只記錄允許的查詢?
- 客戶是否可以區分套件取得 DNS 與執行時期 DNS?
如果無法取得這些細節,請將它們視為待評估事項,而非證明沙箱不安全。實際風險取決於工作負載的敏感性、沙箱內可用的機密、對外政策,以及鑑識證據的品質。
如何評估對外政策
對外政策是決定 DNS 會成為例行管道還是未經審查的逃逸路徑的控制面。成熟的政策應回答三個問題:允許什麼、為什麼允許,以及例外如何被核准。
從預設姿態開始。用於不受信任的 AI 生成程式碼的沙箱,不應繼承開發者筆電那樣的廣泛網路存取權。如果預設是開放出口流量,請詢問產品是否支援為較高風險的工作負載縮小該存取範圍。如果預設是限制出口流量,請詢問開發人員如何啟用任務所需的特定網域。
接著將 DNS 政策與 HTTP 政策分開。有些系統會強制執行 HTTP 允許清單,但讓名稱解析保持寬鬆。這可能造成不一致:對未核准主機的要求可能在 HTTP 層失敗,但 DNS 查詢仍然離開環境,而且查詢名稱中仍可能帶有中繼資料。更嚴格的設計會同時評估解析與連線嘗試。
進行安全審查時,可以使用如下政策矩陣:
| 評估領域 | 該詢問什麼 | 更強的證據 |
|---|---|---|
| 預設出口流量 | 對外網路存取是開放、拒絕,還是依模板限定範圍? | 書面預設政策加上沙箱層級測試結果 |
| DNS 解析器路徑 | 哪個解析器處理沙箱 DNS? | 架構圖或設定證明 |
| 網域允許清單 | 團隊能否只允許已核准的套件庫和 API? | 設定範例和拒絕記錄範例 |
| IP 與私人網路封鎖 | 內部範圍和中繼資料服務是否預設封鎖? | 文件化的拒絕規則和測試證據 |
| 協定控制 | DNS、HTTP、HTTPS 和原始 socket 是否分開控制? | 政策模型,而不只是行銷用語 |
| 例外流程 | 誰可以新增網域或放寬政策? | 基於角色的核准與稽核記錄 |
對大多數團隊來說,第一個實際目標不是完美的零出口流量環境,而是文件化的最小出口流量設定檔:已核准的套件庫、已核准的 API 網域、除非明確路由否則無法存取內部網路,以及同時記錄允許與拒絕的嘗試。
套件取得與相依性驅動的 DNS
套件安裝是最容易低估沙箱出口流量的方式之一。Agent 生成的程式碼常因缺少相依套件而失敗,而最快的開發者體驗就是讓 Agent 安裝它需要的東西。這種便利性帶來了第二個供應鏈問題:套件名稱、套件庫重新導向、安裝腳本和二進位檔下載,都可能觸發原始提示詞從未提及的 DNS 與網路活動。
OWASP 的 LLM 應用程式指南指出了過度自主性(excessive agency)與供應鏈曝險的風險。在 Agent 沙箱中,這些風險在套件安裝時匯合。模型可能被允許選擇指令。指令可能呼叫套件管理器。套件管理器可能從套件庫取得程式碼。取得的套件可能執行安裝鉤子。每個步驟都可能產生 DNS 查詢和對外連線。
防禦性評估應聚焦於治理,而非攻擊機制:
- 對於可重複執行的 Agent 任務,偏好使用鎖定版本的相依套件檔案。
- 對於常見生態系,使用已核准的套件庫或 pull-through 快取。
- 在可行情況下,記錄套件名稱、版本、套件庫 URL、解析的網域和成品雜湊值。
- 將套件安裝權限與一般執行時期網際網路存取分開。
- 對於敏感工作區,在允許清單以外的套件安裝需要核准。
- 考慮為常見技術棧使用預建的沙箱模板,讓 Agent 無需在每次執行時都擁有廣泛的網路存取權。
重要的區別在於「套件取得」不是單一控制項。它包含 DNS 解析、套件庫驗證、成品下載、安裝時期程式碼執行,以及快取行為。良好的沙箱審查會詢問整個路徑。
機密與資料曝險假設
DNS 外洩只有在有重要資料可外洩時才有意義。這使得機密放置與資料範圍界定成為 DNS 審查的一部分。
除非有相反的證明,否則應將 AI Agent 沙箱視為不受信任的建置工作者。不要因為沙箱與主機隔離,就將長期有效的生產憑證、寬鬆的雲端權杖、客戶資料或內部原始碼放入沙箱。隔離可以縮小爆炸半徑,但不會讓每個指令都安全。
在設計較高風險的工作流程時,請使用這些假設:
- 任何 Agent 執行的程式碼可讀取的檔案,都可能被包含在記錄、輸出、網路請求或錯誤訊息中。
- 任何程序可見的環境變數,都可能被該程序複製。
- 任何允許沙箱使用的對外通道,都應接受相同的資料外洩審查,包括 DNS。
- 瀏覽器或文件工作流程中任何經由提示注入的指令,都可能試圖影響工具使用。
- 任何長時間執行的工作階段,都會提高生命週期記錄與權杖過期的價值。
實際的控制措施包括短期有效的憑證、最小權限 API 金鑰、受限的服務帳戶、每項任務的機密、去識別化記錄,以及公開資料研究任務與敏感程式碼執行任務之間的明確區隔。
記錄、稽核軌跡與事件證據
DNS 控制只有在團隊能夠驗證時才有用。當沙箱任務可疑時,安全團隊需要快速取得證據:執行了什麼、解析了什麼、連線了什麼、哪些檔案被變更,以及回傳了哪些輸出。
至少,請詢問平台是否能針對特定沙箱工作階段重建這些事件:
- 沙箱建立時間、模板、資源設定與擁有者。
- Agent 或使用者執行的指令。
- 當產品暴露檔案操作時,讀取、寫入、上傳或下載的檔案。
- 套件安裝與套件庫取得。
- DNS 查詢,包括時間戳記、查詢名稱、結果,以及沙箱/工作階段識別碼。
- 對外連線嘗試,包括目的地主機、IP、連接埠、協定、允許/拒絕結果,以及可取得的流量。
- 工具呼叫、瀏覽器導覽事件與背景程序。
- 機密注入事件,但不應在記錄中暴露機密值。
- 工作階段終止、暫停、恢復、快照與清理事件。
不要只要求成功的流量記錄。被拒絕的事件通常更能評估政策是否生效。如果沙箱嘗試解析未核准的網域,而政策加以封鎖,那次被拒絕的查詢就是區分有效控制與無聲失敗的證據。
保留期間也很重要。七天的記錄視窗可能足以除錯,但對事件回應來說太短。受監管或處理客戶敏感資料的團隊,應將沙箱遙測保留期間與更廣泛的安全記錄政策保持一致。
Novita Agent 沙箱評估備註
Novita Agent Sandbox 專為需要隔離程式碼執行、瀏覽器自動化、電腦操作(computer-use)型任務、長時間執行的工作階段,以及評估或強化學習工作負載的 AI Agent 工作流程而設計。Novita Agent Sandbox 總覽 是了解目前產品行為的正確起點,而 Agent Sandbox 產品頁面 則說明更廣泛的平台適配性。
在評估 Novita 或其他任何沙箱供應商是否適合 DNS 敏感的工作負載時,請區分兩類陳述:
- 產品適配性:沙箱是否支援你需要的 Agent 工作流程,例如程式碼執行、瀏覽器自動化或長時間執行任務。
- 安全控制證據:確切的 DNS、出口流量、套件取得、機密與記錄控制是否符合你的內部政策。
這種區分可以避免過度宣稱。一個沙箱可能非常適合 Agent 執行,但仍需要客戶針對 DNS 政策、解析器路徑、允許清單、稽核保留與事件工作流程進行特定審查。安全團隊在核准敏感工作負載之前,應要求這些控制細節的目前文件或產品確認。
對於已經使用 Novita AI 模型的團隊,平台適配性在於模型 API 與 Agent 執行基礎設施可以一起評估。這可以減少營運分散性,但不會消除威脅模型的需求。請將沙箱視為受控的執行環境,定義每個 Agent 類別需要什麼網路存取權,並驗證控制證據是否符合放入其中資料的風險。
安全審查檢查清單
在核准可能接觸敏感程式碼、憑證、客戶資料或內部系統的 AI Agent 沙箱工作負載之前,請使用這份檢查清單。
| 審查問題 | 為什麼重要 |
|---|---|
| 沙箱預設可以解析什麼? | DNS 即使 HTTP 被封鎖,仍可能成為對外訊號。 |
| DNS 是否可以依網域、模板、工作區或 VPC 政策限制? | 敏感工作流程需要比公開研究任務更窄的預設值。 |
| DNS 查詢是否逐沙箱工作階段記錄? | 事件回應需要歸因,而不只是聚合的解析器指標。 |
| 被拒絕的 DNS 與連線嘗試是否會被記錄? | 被拒絕的事件證明政策封鎖了非預期行為。 |
| 套件庫是否設有允許清單或代理? | 套件管理器可能觸發相依性驅動的 DNS 與下載。 |
| 套件安裝是否可以與執行時期網路存取分開? | 建置時期與執行時期的風險不同。 |
| 內部 IP 範圍與中繼資料端點是否被封鎖? | Agent 不應意外發現或聯繫基礎設施控制平面。 |
| 機密如何被注入、設定範圍、輪換與去識別化? | 如果沙箱程式碼可以使用長期有效的機密,DNS 審查就不完整。 |
| 瀏覽器子資源是否可見於記錄中? | 瀏覽器 Agent 解析的網域可能多於頂層 URL。 |
| 暫停、恢復、快照或清理之後可以取得什麼證據? | 長時間執行的工作階段需要具備生命週期感知的遙測。 |
| 誰可以放寬出口政策? | 例外變更應可稽核。 |
| 可疑工作階段如何被保留? | 清理不應抹除唯一有用的事件證據。 |
如果多個答案未知,請在供應商或內部平台團隊能記錄控制路徑之前,將工作負載留在沙箱之外。如果工作負載只處理公開資料且不使用任何機密,在早期原型階段這些缺口或許可以接受,但在正式上線前仍應追蹤。
結論
對於正式環境的 Agent 沙箱,請將 DNS 視為出口流量的一部分來審查,而不是放在註腳。最低限度可辯護的設定,是受限的對外政策、明確的套件取得治理、短期有效的機密、逐工作階段的 DNS 與連線記錄,以及經過測試的事件保留流程。
只有在資料不敏感且 Agent 沒有重要機密時,才對低風險原型使用較廣泛的網路存取。對於敏感程式碼庫、客戶資料、內部 API 或受監管的工作流程,在授予 Agent 自主執行之前,應要求最小出口流量設定檔與目前供應商證據。
常見問題
如果沙箱封鎖 HTTP,DNS 外洩仍然相關嗎?
是的。HTTP 控制與 DNS 控制是不同層級。沙箱可能封鎖對外網頁請求,但仍然允許 DNS 查詢。安全團隊應同時驗證解析政策與連線政策。
AI Agent 沙箱應該完全沒有網際網路存取嗎?
不一定。許多有用的 Agent 任務需要套件庫、公開文件、API 或瀏覽器存取。更安全的目標是最小且可解釋的出口流量:允許任務所需的,拒絕任務不需要的,並同時記錄允許與拒絕的活動。
套件安裝與一般網路存取相同嗎?
不相同。套件安裝需要單獨的政策,因為它們涉及套件庫、相依性解析、成品下載,有時還有安裝時期腳本。團隊可以允許透過已核准的快取取得套件,同時拒絕任意的執行時期出口流量。
哪些記錄對 DNS 風險最重要?
最有用的記錄會將 DNS 查詢連接到特定的沙箱、指令、時間、使用者或 Agent 工作流程,以及政策決定。被拒絕的查詢記錄尤其重要,因為它們顯示控制是否真的生效。
沙箱供應商能保證不會有資料外洩嗎?
請謹慎看待絕對保證。供應商可以提供隔離、網路控制、記錄與設定選項,但最終風險取決於工作負載設計、機密、資料放置、對外政策與營運監控。
