AI Agent 安全與權限:Browser、File、Shell、GitHub、Gmail 的工具權限怎麼控管¶
整理自資安研究與 OWASP 文件(見文末),2026-06-20。Agent 一旦能用瀏覽器、檔案、shell、GitHub、Gmail 這類工具,威脅模型就和「純聊天」完全不同。本頁講為什麼危險、危險的結構長怎樣、以及怎麼用權限設計把風險關住。
實證標記:〔研究〕= 出自資安研究者/廠商分析;〔OWASP〕= 出自 OWASP 文件;〔實務〕= 業界慣例或本人整理。預設 under-claim。
核心威脅:Prompt Injection 不是 bug,是結構問題¶
Agent 會把外部內容(網頁、信件、issue、檔案)讀進 context。問題是:模型分不清「這是資料」還是「這是指令」。攻擊者只要把惡意指令藏進那些外部內容,就可能讓 agent 照做——這就是 prompt injection。〔研究〕
〔研究〕業界共識逐漸傾向:prompt injection 比較像是現階段架構的長期缺陷,而非一個能「修掉」的 bug。所以防禦重點不是「擋住所有注入」,而是假設注入會發生,限制它能造成的後果。
致命三角(The Lethal Trifecta)¶
資安研究者 Simon Willison 提出的框架,講清楚「什麼樣的工具組合會出大事」。當一個 agent 同時具備這三項能力,就能被單一注入指令變成資料外洩工具:〔研究〕
| 能力 | 意思 | 對應工具 |
|---|---|---|
| 存取私密資料 | 能讀到敏感內容 | File、GitHub(私有 repo)、Gmail(信件內容) |
| 接觸不可信內容 | 會讀到外部可被攻擊者控制的文字 | Browser、收到的 Email、公開 issue/PR |
| 能對外通訊 | 能把資料送出去 | Browser(送 URL)、Gmail(寄信)、發 PR/留言 |
〔研究〕運作方式:被污染的內容操縱 agent → agent 拉出敏感資料 → agent 把資料送出門。整個過程不需要任何惡意程式或漏洞鏈,純文字就能完成。真實案例:Writer.com 曾可透過隱形圖片 URL 參數外洩文件內容;GitLab Duo 曾被公開專案裡的惡意指令誘導,把私有 repo 資訊送到偽裝的安全網域。
緩解原則:Agents Rule of Two¶
Meta 提出的「兩項規則」把三角當預算:無人監督的 agent,最多只能同時滿足三項中的兩項;要三項全有,就必須有人在迴圈裡(human-in-the-loop)。〔研究〕
這條規則非常實用,因為它把抽象的「要小心」變成可執行的設計檢查:你的 agent 同時碰了哪幾項?超過兩項就要加人工關卡或砍掉一項能力。〔實務〕
OWASP LLM06:Excessive Agency(過度代理)¶
OWASP 把「agent 權限給太多」列為 LLM Top 10 之一,並拆成三個根因——這是設計權限時的對照表:〔OWASP〕
| 根因 | 意思 | 對策方向 |
|---|---|---|
| Excessive Functionality(功能過多) | agent 能碰到超出任務所需的工具 | 只給完成任務最小集合的工具 |
| Excessive Permissions(權限過大) | 工具本身用了超出必要的權限 | 每個工具最小權限、role-specific |
| Excessive Autonomy(自主過高) | 高衝擊動作不經人就執行 | 高風險動作 human-in-the-loop |
逐工具的權限控管〔實務〕¶
把上面框架落到你列的這幾類工具:
| 工具 | 主要風險角色 | 控管要點 |
|---|---|---|
| Browser | 不可信內容 + 對外通訊(兩角都占!) | 預設最危險的一環;限制可訪網域、禁止自動送出帶資料的請求、警惕隱形圖片/URL 外洩 |
| File | 私密資料 | 限定可讀寫目錄、唯讀為主、敏感路徑黑名單 |
| Shell | 高衝擊動作 | 沙箱化執行、資源限制、可回滾;破壞性指令需確認 |
| GitHub | 私密資料 + 對外通訊 | 私有 repo 唯讀或限定 repo;push/PR/留言設人工確認 |
| Gmail | 私密資料 + 不可信內容 + 對外通訊(三角全占!) | 寄信一律 human-in-the-loop;讀信內容當不可信輸入 |
〔實務〕注意 Gmail 單一工具就可能湊齊致命三角(讀得到私密信件、收得到外部惡意信、又能寄信外送)。這類工具預設就要把「對外送出」鎖在人工確認後。
通用防禦清單¶
把研究與 OWASP 的建議收斂成可執行清單:〔OWASP〕〔研究〕〔實務〕
- 把 LLM 當敵意使用者:agentic 函式放在和外部流量同等的 API gateway、rate limiter、IAM 邊界後面。〔OWASP〕
- 最小功能 + 最小權限:只給任務必需的工具,每個工具只給必需的範圍。〔OWASP〕
- 高衝擊動作 human-in-the-loop:寄信、發文、刪資料、金流、push/PR——一律人工確認。〔OWASP〕
- 不可信輸入隔離:工具/網頁/信件回傳的文字,全當「可能被偽造的輸入」,不讓它直接觸發特權動作。〔研究〕
- 沙箱執行 + 可回滾:尤其 shell/程式碼執行,隔離環境、資源上限、能還原。〔OWASP〕
- 用「兩項規則」自查:碰到三角超過兩項就加關卡。〔研究〕
- 記錄與告警:log 所有工具呼叫、對異常樣態(暴增的外送、異常路徑)告警。〔OWASP〕
- 憑證不進沙箱/不進 prompt:見 MCP 生態系指南 的信任邊界一節。
延伸閱讀(本站)¶
- MCP 生態系指南 — 信任邊界、憑證 egress 注入、工具輸出即不可信輸入
- AI Agent Harness Engineering — 工具介面與控制流程
- Agent Observability — 用 trace 監控異常工具行為
來源¶
- The lethal trifecta for AI agents — Simon Willison
- How the Lethal Trifecta Exposes Agentic AI — HiddenLayer
- Understanding the Lethal Trifecta of AI Agents — Oso
- LLM Excessive Agency — OWASP LLM06:2025
- AI Agent Security Cheat Sheet — OWASP
- OWASP Top 10 LLM, Updated 2025 — Oligo Security
- AI Security in 2026: Prompt Injection, the Lethal Trifecta, and How to Defend — Airia