許可權不等於目的:Omnigent 中的基於意圖的授權
傳統的授權機制只檢查誰在操作,而不檢查為什麼操作,這使得AI代理容易受到提示注入攻擊,攻擊者可以利用有效的憑證執行未經授權的任務。Omnigent引入了基於意圖的授權,將會話繫結到人類批准的宣告目的,拒絕或需要人工審批任何超出該目的的操作。與會話風險評分相結合,這種分層防禦可以阻止基於身份的檢查無法捕捉的攻擊,如資料質量助手示例所示。
傳統的授權機制,如基於角色的訪問控制(RBAC),主要回答“誰可以訪問什麼資源”的問題。然而,這種身份導向的授權存在一個根本性缺陷:它不關心操作的“原因”。對於AI代理而言,這構成了嚴重的安全隱患。由於代理使用有效的憑證執行,攻擊者可以透過提示注入——在代理讀取的內容中隱藏指令——誘使代理執行其身份允許但任務本身並不需要的操作。
Omnigent 提出的基於意圖的授權(Intent-based Authorization)正是為了填補這一空白。其核心思想是將代理的每個會話繫結到一個明確宣告的“目的”(Purpose)上。這個目的由人類批准,並且代理在會話期間無法自行更改。每次工具呼叫前,系統都會檢查該操作是否在允許的意圖範圍內,並返回三種結果之一:允許(Permitted)、需要同意(Consent-required)或拒絕(Denied)。
為了更好地說明這一點,文章以“資料質量助手”為例。該代理擁有三個工具:查詢表(query_table)、更新儀表盤(update_dashboard)和授予表訪問許可權(grant_table_access)。儘管當前任務只是執行質量檢查併發布摘要,但代理的身份允許它執行所有三個操作。在無意圖策略的情況下,攻擊者可以在表資料中嵌入一條看似正常的系統指令,要求代理將表訪問許可權授予外部審計人員。由於身份檢查透過,代理會執行這一惡意操作。
而一旦啟用了基於意圖的授權,代理的意圖被明確設定為“執行質量檢查併發布摘要”。此時,查詢操作被允許,儀表盤寫入需要人工確認,而授予訪問許可權的操作則直接被拒絕——因為它超出了宣告的目的範圍。攻擊因此被成功阻斷。
意圖的來源也十分關鍵:自主代理的意圖在設計時固定,執行中不可變;互動式代理則允許使用者在會話開始時以自然語言描述意圖,代理將其轉化為策略並由人類批准。這兩種方式都確保了意圖不會在執行時被提示注入所篡改。此外,Omnigent 提供了防篡改機制:代理沒有工具刪除或修改現有策略;新增策略需要使用者明確批准;且多個策略組合時,任何單一拒絕都會生效,因此無法透過新增寬鬆策略來覆蓋已有的限制。
基於意圖的授權只是 Omnigent 上下文策略引擎中的一種。它可與會話風險評分、PII 攔截等策略協同工作,形成分層防禦。使用者可以用自然語言描述所需的防護措施,Omnigent 自動生成策略供審批和部署。這一設計為AI代理的安全執行提供了強有力的保障。