National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 72 24°C PM2.5 13
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 20

AI 系統的權限設計

工具權限、資料外洩與人工確認
Interaction 30 minute(s)

Learning Objectives

  • 說明模型輸出為什麼要當成不可信任的輸入處理,並修補一個輸出處理的漏洞
  • 依最小權限設計工具權限,分開讀取與寫入
  • 說明資料外洩的組合條件:私有資料、不可信內容與對外通道
  • 判斷人工確認的時機,說明確認疲乏與稽核紀錄的作用

模型輸出的可信度

上一課的結論是模型可能被說服。即使沒有攻擊,模型也可能誤解要求或回答錯誤。使用者說「把那封廣告信刪掉」,模型可能把整個收件匣當成對象。因此設計 AI 系統時要先採取一個假設:模型的輸出不可信任,它的權限要限定在出錯時也可以接受的範圍內。

OWASP LLM Top 10 稱這類問題為「過多的代理權」(Excessive Agency;2025 版編號 LLM06,2026 版升到第 3 項 LLM03),並指出不論原因是幻覺、注入或其他錯誤,系統都可能因此執行造成損害的動作。它的根源有三項:

根源 意思 範例
過多功能 工具的功能超過需要 只需要讀信的摘要助理,也能寄信與刪信
過多權限 工具對下游系統的權限超過需要 查自己成績的工具,使用可以讀取全校成績的帳號
過多自主 高影響的動作沒有經過獨立確認 自動刪除信件,沒有人工確認

本課的模擬環境。 輸出處理的練習是真的 Flask,在瀏覽器內執行,模型回應由固定函式模擬。權限練習是決定論模擬,沒有呼叫模型。信箱、網域與資料都是虛構的(第 1 課)。

模型輸出的處理

模型的輸出如果直接交給瀏覽器、資料庫或命令列,就等於讓不可信任的文字進入這些系統,第 7、8 課的漏洞會以新的形式出現。OWASP 對輸出處理不當(Improper Output Handling;2025 版編號 LLM05,2026 版列第 10 項)的建議是把模型當成其他使用者一樣對待:

輸出的去處 風險 處理方式
網頁 跨站腳本、外部連結與圖片 依情境轉義,需要 Markdown 時以允許清單清理(本平台用 DOMPurify)
資料庫 SQL 注入 參數化查詢,只讓模型提供值,不讓它組出 SQL
命令列 命令注入 不把輸出交給殼層,改用固定的工具與參數
另一個工具 參數被竄改 由程式驗證型別、範圍與權限

下方的網站把模型的回應標記為 |safe 後輸出。開發者通常是為了顯示粗體或連結才這樣寫,但回應的內容受到文件影響。

互動練習:模型輸出的轉義

按「啟動伺服器」後依任務操作。文件中的連結由同學分享的文件帶入,other.example 是保留的範例網域,這裡不會真的連線。

工具權限與最小授權

第 14 課的最小權限原則同樣適用於模型的工具。OWASP 列出的作法包括:

  • 只提供需要的工具:摘要信件的助理應該只能讀信,不能寄信或刪信
  • 工具的功能要具體:提供「寫入指定檔案」而不是通用的殼層存取
  • 限制下游權限:工具使用的資料庫帳號只有必要的操作權限
  • 以使用者身分執行:工具呼叫要帶上目前使用者的授權範圍,查詢成績只回傳本人資料
  • 完全仲裁:是否允許由下游系統判斷,不交給模型決定
  • 分開讀取與寫入:寫入、刪除與對外傳送的風險遠高於讀取,要分別設定

資料外洩的組合條件。 Simon Willison 在 2025 年提出,當代理同時具備三項能力時,攻擊者就可能竊取資料,他稱之為 lethal trifecta:

  1. 能存取私有資料
  2. 會接觸不可信的內容
  3. 有對外通訊的管道

這三項單獨來看都很常見,也都有用途,問題在於同時存在。設計時可以嘗試移除其中一項,或讓它們不出現在同一次工作階段。NCSC 也建議以來源決定權限:模型處理不可信的外部信件時,其權限應該降到與該來源相同。設計模式的研究也探討讀過不可信內容後如何限制後續動作。這些作法都會犧牲部分功能,所以要依任務的風險取捨。

互動練習:校園助理的工具權限

為校園助理設定工具權限,比較一般任務、模型誤解與被注入三類情境的後果。結果由程式依目前的設定計算。

人工確認與確認疲乏

OWASP 建議高影響的動作由人確認。確認能否發揮作用取決於設計:

確認的時機。 不可逆的動作(刪除、付款)、對外傳送的動作,以及影響他人的動作,應該要確認。只讀取本人資料的動作通常不需要。

確認的內容。 畫面要顯示實際要執行的內容,例如完整的收件人與信件本文,而不是模型自己撰寫的摘要,否則使用者看到的可能也是受影響的文字。OWASP 2026 版同樣要求呈現實際動作,不以摘要代替。

確認疲乏。 確認過於頻繁時,使用者會傾向不閱讀就同意,OWASP 2026 版也指出確認次數過多會削弱判斷。上方練習的開關模擬了這種情況。常見的改善方式是減少不必要的確認,把確認留給真正有風險的動作;能由程式判斷的事情,例如收件網域,就由程式處理。

人工確認無法取代權限設計。它是最後一層防線,不應該是唯一的一層。

記錄、稽核與縱深防禦

AI 系統的紀錄要能回答「誰要求的、模型提出了什麼、實際執行了什麼、由誰確認」。上方練習下方的稽核紀錄列出實際執行的呼叫。OWASP 指出,記錄與速率限制不能防止過多代理權,但能縮短發現問題的時間並限制損害。NCSC 也建議記錄輸入、輸出與工具呼叫,並留意失敗的呼叫。

紀錄本身可能含有對話內容與個人資料,所以要依第 16 課的原則處理:限制存取、設定保存期限、遮罩不必要的資料。

把本課與前幾課合起來,一個能呼叫工具的 AI 系統可以這樣檢視:

層次 問題
設計 如果模型完全照著攻擊者的文字做,最壞會發生什麼事?
權限 每個工具是否都有需要?權限是否限定在目前使用者與任務的範圍?
資料流 私有資料、不可信內容與對外通道是否同時存在?
輸出 模型的輸出進入瀏覽器、資料庫、命令列之前是否經過處理?
確認 高風險動作是否由人確認?顯示的是實際內容嗎?
監控 工具呼叫是否有紀錄?異常時有沒有告警與應變計畫(第 16、17 課)?

每一層都可能失效,縱深防禦的目的是讓單一層的失效不至於造成嚴重後果。

重點整理

  • 模型的輸出不可信任,進入瀏覽器、資料庫或命令列之前要依情境處理
  • 過多功能、過多權限與過多自主是過多代理權的三項根源,都由程式與設定處理,不交給模型判斷
  • 寫入、刪除與對外傳送要與讀取分開設定;工具以目前使用者的授權範圍執行
  • 私有資料、不可信內容與對外通道同時存在時,資料就可能被送出去;移除其中一項或把它們分開,都會犧牲部分功能
  • 人工確認適用於高風險動作,要顯示實際內容,並注意確認疲乏
  • 紀錄與監控不能防止問題,但能縮短發現的時間;紀錄本身也要保護
  • 提示注入目前沒有完全的解法,所以設計要以模型可能出錯為前提

本軌道到此結束。安全不是一次完成的工作,新的系統與新的攻擊方式會持續出現。請只在自己擁有或獲得明確授權的系統上練習(第 1 課)。

小測驗

1.

網站把模型的回答以 |safe 輸出到頁面。即使模型來自可靠的廠商,這樣做仍有什麼問題?

2.

一個只需要摘要信件的助理,使用的信箱權限也能寄信與刪信。這屬於哪一種問題?

3.

一個助理能讀取使用者的信件,也能呼叫外部網址。若要降低資料外洩的風險,下列作法何者最直接?

4.

助理每一個工具呼叫都跳出確認視窗。這樣的設計有什麼問題?

5.

確認視窗顯示模型撰寫的摘要「寄送本週提醒給教學助理」,而不是實際的收件人與內容。問題在哪裡?

6.

稽核紀錄能解決什麼、不能解決什麼?

第 1 次作答
這一課完成了!
看我的學習進度
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。