KeyFrame

AI 時代必備的資安意識:小心提示詞注入、謹慎使用第三方內容 - CS146S 學習記錄 ep16

ChaoCode·5月16日週六·31 min中文

三句話摘要

AI 時代新增的攻擊面(Prompt Injection、工具濫用)與 LLM 輔助資安測試的能力邊界。 AI 讓資安測試門檻降低,但誤報率高、結果不穩定,開發者必須保有自己的判斷能力,並對第三方套件與外部輸入內容始終保持謹慎。 Prompt Injection 是最值得所有人警惕的新型漏洞。 任何透過 Agent 解析的外部內容(Email、PDF、網址摘要)都可能夾帶惡意指令,悄悄讓 Agent 執行使用者不知情的操作,且攻擊者可明確要求 AI 不告知使用者。

重點整理

重點
  • 1

    Prompt Injection 是最值得所有人警惕的新型漏洞。 任何透過 Agent 解析的外部內容(Email、PDF、網址摘要)都可能夾帶惡意指令,悄悄讓 Agent 執行使用者不知情的操作,且攻擊者可明確要求 AI 不告知使用者。

  • 2

    工具濫用與程式碼攻擊的核心問題是權限邊界設計不足。 開發者通常只考慮「當下這個 Agent 想做什麼」,卻忽略「給了這個能力之後,日後能被用來做什麼」,導致 Agent 獲得過於通用的執行能力而失控。

  • 3

    AI 同時是攻擊面擴大的原因,也是降低資安門檻的工具。 LLM 可以在任何開發階段自動執行安全檢查,讓沒有資安背景的開發者也能得到基本的漏洞提示,實現「安全左移」。

  • 4

    LLM 的安全分析結果不穩定,必須保留自己的判斷能力。 誤報率高、同一段程式重複分析結果不同、context 過長時智力下降,都使 AI 的安全報告只能作為參考起點,而非最終結論。

實用技巧與重點

乾貨
  • 工具名稱
  • SAST(Static Application Security Testing):靜態分析原始碼與 Binary
  • DAST(Dynamic Application Security Testing):動態模擬真實駭客行為,誤報率較低
  • SCA(Software Composition Analysis):分析第三方套件的已知資安風險
  • Claude Code、Codex:可用於 SAST,但誤報率 50%~100%
  • VS Code MCP 設定:可設定是否自動允許所有工具執行(預設關閉)
  • 具體數字
  • 傳統 SAST 誤報率:常超過 50%
  • LLM 做 SAST 誤報率:50%~100%
  • 攻擊類型(AI 時代新增)
  • Prompt Injection(提示詞注入):透過 Email、PDF、網址內容注入惡意指令
  • Tool Misuse(工具濫用):透過注入偽造工具,讓 Agent 執行未授權操作
  • Code Attack(程式碼攻擊):利用過於通用的執行權限,Agent 自行寫程式探索環境
  • Intent Manipulation(意圖破壞):偽裝合法工具在正常流程中夾帶資料外洩步驟
  • Identity Impersonation(身份冒用):偽裝成合法 Agent,控制其他 Agent 協同執行惡意任務
  • 可直接使用的 Prompt
  • > 「請檢查這個專案的安全與測試風險,找出五個最需要優先處理的問題,包含傳統漏洞與 AI 時代新型漏洞,並簡要說明每個問題。」
  • 實務判斷依據
  • 選第三方套件前:查 Repository 星星數、維護活躍度、作者信任度
  • API Key 絕對不能外流
  • 上線前才做完整資安檢查,開發原型階段無須浪費時間與 token

結論

結論

AI 讓資安測試門檻降低,但誤報率高、結果不穩定,開發者必須保有自己的判斷能力,並對第三方套件與外部輸入內容始終保持謹慎。

完整解析

詳細

這支影片是 CXSOS 課程第六週的內容,主題為「AI 時代的測試與安全」。講者 Jane 從為什麼資安重要出發,以 Replit 刪除客戶程式碼庫並事後說謊、GitHub Copilot 存在 Prompt Injection 漏洞等真實案例說明:軟體錯誤不僅讓使用者失去信心,在社群媒體高度發達的時代,一個疏失就可能燎原成大規模公關危機。而 AI 時代的問題在於,大量程式碼由 LLM 生成,開發者在不知不覺中就可能引入傳統早已存在的資安漏洞。

在傳統防禦工具的介紹上,影片說明了三種互補的偵測技術:SAST 從原始碼端靜態分析,可在任何開發階段執行;DAST 讓程式真正跑起來,模擬駭客從使用者端發動的攻擊,誤報率相對較低;SCA 則逐層掃描所有第三方套件及其依賴套件,比對已知資安漏洞資料庫。講者特別指出,在 AI 時代 SCA 的重要性更加提升,因為 Agent 在 auto 模式下可能自行安裝冷門套件,開發者根本不清楚裝了什麼。

進入 AI 新增攻擊面的核心內容,影片重點講解了 Prompt Injection。這種攻擊發生在使用者將外部內容(Email、PDF、網址)交給 Agent 處理時,攻擊者預先在這些內容中嵌入隱藏指令,引導 Agent 執行使用者毫不知情的行動,例如上傳機密資料、竊取系統提示詞(System Prompt)、或在 MCP 設定中悄悄新增惡意伺服器。影片以 Twitter Bot 的 Prompt 範例,以及在 VS Code 中透過程式碼注釋觸發 Agent 修改設定檔並啟動計算機的 demo 為例,具體示範攻擊如何在不驚動使用者的情況下完成。講者進一步說明,身份冒用(Identity Impersonation)是 Prompt Injection 的高階延伸:攻擊者可以透過注入偽裝成「資安稽核 Agent」,讓所有其他 Agent 的輸出都經過它「審查」,而審查流程中夾帶了資料外洩步驟,整個過程看起來完全合理。

面對這些威脅,AI 也帶來好消息:「安全左移」成為可能。LLM 可以在開發的任何階段自動執行安全掃描,讓沒有資安背景的開發者也能得到即時提示,並可請 Agent 解釋發現的問題。然而講者同時提醒,LLM 做靜態安全分析的誤報率高達 50% 到 100%,而傳統 SAST 也常超過 50%,加上 Agent 對同一段程式重複分析結果不穩定、context 過長時智力下降、跨檔案的複合型漏洞難以被片段分析捕捉,這些限制都說明 AI 的安全報告只能作為參考起點。講者建議,當 AI 回報某個風險時,最好的驗證方式是請 Agent 寫一段程式去模擬攻擊情境,用執行結果確認漏洞是否真實存在,而非直接接受或否定 AI 的判斷。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 安全」的內容

Breaching LLM-Powered Applications: Overcoming Security and Privacy Challenges by Brian Vermeer
48 min
AI 安全英文6月19日

Breaching LLM-Powered Applications: Overcoming Security and Privacy Challenges by Brian Vermeer

Spring I/O

  • 傳統漏洞在 LLM 時代被升級放大:路徑穿越(Path Traversal)和 SQL 注入等十幾年前就存在的漏洞,在 LLM 應用中可被串接成更危險的攻擊——攻擊者不再只是讀取資料,而是讓 LLM 代為執行惡意操作,使影響範圍大幅擴大。
  • RAG 的向量資料庫是可被靜默污染的攻擊面:RAG 系統將外部文件分塊注入 Prompt,若攻擊者能藉由路徑穿越覆蓋原始文件,毒化內容就會在下次重新 chunk 時悄悄進入向量資料庫,並在未來某個時間點被 LLM 信任執行,且不留下即時痕跡。
  • 模型越弱,提示注入越容易成功:GPT-3.5 Turbo 可被「忽略所有先前指令」輕易繞過,而 GPT-4.0 對系統訊息的遵守程度顯著更好;選用能力不足的小模型處理關鍵業務,是高風險決策。
How Hackers Trick AI Models (Prompt Injection Explained)
編輯精選
21 min
AI 安全英文6月19日

How Hackers Trick AI Models (Prompt Injection Explained)

Perfology

  • 新模型不等於全面安全。 直接指令覆蓋在 GPT 3.5 奏效,GPT 4.1 對此幾乎免疫;但結構化輸出攻擊仍可突破 GPT 4.1,反而 GPT 4.0(Omni 模型)因訓練更全面而抵抗力更強。模型版本與攻擊向量之間的關係並非線性。
  • 技術組合是突破防禦的關鍵。 單一手法在強模型上可能失效,但將角色扮演、多輪操控、Payload 分割交叉使用,即便是設定了嚴格系統提示的模型,仍可能逐步洩漏機密資訊。
  • 攻擊媒介隱藏在日常工作流程中。 惡意指令可藏在使用者主動下載的 Markdown 文件、白底白字的 PDF、MCP 服務的輸入輸出之間,攻擊者無需直接存取系統即可觸發注入。