課程簡介
模組 1 — AI 應用程式如何崩潰
實驗:無 — 架構 walkthrough 與討論
建構者對攻擊面的心智模型。
主題:
- 開發者視角下的 LLM、RAG 和代理程序架構
- AI 功能的請求/回應生命週期
- 提示流程:系統、開發者、使用者和工具訊息
- 不可信資料進入(並重新進入)模型的各個環節
- 開發者擁有 vs. 繼承的信任邊界
- 為什麼 AI 攻擊是語義的,而非語法的
- 將 OWASP LLM Top 10 映射到你編寫的程式碼
關鍵見解:任何不可信文字到達模型的地方 — 或模型輸出到達你程式碼的地方 — 都是你擁有的邊界。
模組 2 — 建構者的提示注入
實驗:實驗 01 — 01-Prompt-Injection
AI 的「SQL 注入時刻」— 但你無法完全逃避它。
主題:
- 直接 vs. 間接提示注入
- 文件、網頁和工具輸出中的隱藏指令
- 越獄和角色混淆
- 為什麼指令/資料分離很重要
- 防禦性提示設計(分隔符、結構、最小權限)
- 為什麼預防只是部分有效 — 為 containment 而設計
實作:
- 攻擊你自己的聊天機器人
- 繞過天真的過濾器
- 重構提示以縮小爆發範圍
模組 3 — 將模型輸出視為不可信
實驗:實驗 02 — 02-Output-Handling
開發者最容易低估的錯誤類型。
主題:
- 將模型輸出視為應用程式其餘部分的不可信輸入
- 不安全的輸出處理 (LLM02):下游的 XSS、SSRF、命令/SQL 注入
- 絕不在原始模型輸出上執行 eval/exec/render
- 結構化輸出和 schema 驗證
- 輸出編碼和白名單
- 在網頁/UI 環境中安全渲染
實作:
- 查找並修復不安全的輸出處理漏洞
- 對模型回應強制執行 JSON schema
模組 4 — RAG 安全性
實驗:實驗 03 — 03-RAG-Security
最大的新興攻擊面之一 — 且由你建構。
主題:
- 向量資料庫和檢索威脅
- 攝取消毒
- 文件來源和信任評分
- 檢索範圍縮小和元數據隔離
- 檢索內容中的隱藏指令(間接注入)
- 透過檢索進行資料洩漏
實作:- 使用惡意文件毒化 RAG 管線 - 新增攝取消毒和檢索範圍縮小以保護它
模組 5 — 代理程序 & 工具安全
實驗:實驗 04 — 04-Agent-Safety
錯誤變成行動的地方。
主題:
- 過度的權限 (LLM06) 和工具濫用
- 代理程序的最小權限
- 工具白名單和參數驗證
- 審批閘道和人機協作
- 沙盒化工具執行
- 代理程序的範圍限制、短壽命憑證
- 限制自主迴圈和鏈式呼叫
實作:
- 鎖定權限過大的代理程序
- 為危險工具新增白名單 + 審批閘道
模組 6 — 密碼、身分與成本
實驗:實驗 05 — 05-Secrets-and-Cost
造成最快損害的作業失誤。
主題:
- API 金鑰和密碼管理(絕不放在提示、程式碼或日誌中)
- 針對 AI 功能的每用戶身份驗證和授權
- 將使用者身分傳播至工具和檢索
- 錢包耗盡:無限制的令牌/成本消耗
- 速率限制、令牌預算和超時設定
- 在不洩漏密碼或 PII 的情況下記錄
實作:
- 將密碼從提示/程式碼路徑中移除
- 新增每用戶速率限制和令牌/成本預算
模組 7 — 防護網函式庫
實驗:實驗 06 — 06-Guardrails
對於輸入/輸出安全,購買 vs. 自建。
主題:
- 防護網框架所做的(和未做的)
- 輸入防護網:注入/PII/主題分類器
- 輸出防護網:驗證、過濾、基準檢查
- 何時使用防護網 vs. 自己的確定性檢查
- 將防護網與先前模組的控制措施疊加
- 效能、假陽性和故障模式
實作:
- 為 AI 功能新增輸入/輸出防護網層
- 測量它捕獲了什麼以及錯過了什麼
模組 8 — 對自身應用程式進行紅隊測試
實驗:實驗 07 — 07-Red-Teaming
像攻擊者已經攻陷它那樣部署。
主題:
- 為 AI 功能建構濫用/測試套件
- 自動化提示注入和越獄測試
- 回歸測試防護網和政策
- 在 CI 中執行 AI 安全性檢查
- 模型與相依性供應鏈(來源、固定版本)
- AI 功能部署前的安全清單
實作:
- 為 AI 功能編寫自動化紅隊測試
- 將它們接入 CI 檢查
模組 9 — AI 安全性評分:SAIS-100 框架
實驗:無 — 評分練習(使用最終專案應用程式)
將你所建構的一切都轉化為可重複的評分。
主題:
- AI 安全性六邊形:提出六個問題,而非「它安全嗎?」
- 六個計分類別(資料、提示、代理程序、供應鏈、偵測、治理)
- 百分制評量標準及其權重
- 判決帶和單一類別覆蓋規則
- 大象量表安全 AI 評分 (SAIS-100) 作為一個品牌化、可重複運行的框架
- 硬化前後的評分作為指標
實作:
- 在百分制量表上對最終專案應用程式進行評分
- 指出能最顯著提高分數的那個單一變更
關鍵見解:權重最高的三個類別映射到開發者擁有的信任邊界 — 因此該評測量度了本課程所教授的內容。
最終專案
學生全面硬化一個故意存在漏洞的 AI 應用程式。
起始應用程式包含:
- 可注入的提示
- 不安全的輸出處理
- 未範圍限制的 RAG 管線
- 權限過大的代理程序
- 提示路徑中的密碼
- 無成本限制
學生應用課程所學:
- 重構提示以進行 containment
- 驗證和編碼模型輸出
- 消毒和範圍縮小檢索
- 對代理程序應用最小權限和審批閘道
- 移除密碼並新增成本/速率限制
- 新增防護網和自動化紅隊測試
交付物:一個硬化後的應用程式加上簡短的 OWASP LLM Top 10 自我評估。
模組 - 實驗對應表
實驗室按順序運行,遵循模組順序。本課程共有 9 個模組和 7 個實驗:模組 1 是架構 walkthrough/討論,模組 9 是評分練習,因此它們各自沒有專屬的實驗資料夾。
- 實驗 01 - 01-Prompt-Injection:攻擊你的聊天機器人 & 為 containment 而設計(模組 2)
- 實驗 02 - 02-Output-Handling:修復不安全的輸出處理錯誤(模組 3)
- 實驗 03 - 03-RAG-Security:毒化然後保護 RAG 管線(模組 4)
- 實驗 04 - 04-Agent-Safety:鎖定權限過大的代理程序(模組 5)
- 實驗 05 - 05-Secrets-and-Cost:保護金鑰 + 新增成本防護網(模組 6)
- 實驗 06 - 06-Guardrails:新增輸入/輸出防護網層(模組 7)
- 實驗 07 - 07-Red-Teaming:CI 中的自動化紅隊測試(模組 8)
模組 1(AI 應用程式如何崩潰)沒有實驗 — 它以架構 walkthrough 和討論的形式運行。模組 9(AI 安全性評分)沒有實驗資料夾 — 它以對最終專案應用程式進行的評分練習形式運行。
最低要求
- 技能等級:中級。
- 學生應熟練於以下方面:建構和消費 REST API、腳本語言(實驗室使用 Python)、基本應用程式身份驗證、git 和 CLI
- 不需要機器學習背景 — 這是一门針對使用 LLM 的人(而非訓練它們的人)的應用程式安全性課程。
受眾
- 建構 LLM 功能的軟體 / 後端工程師
- 全端和 API 開發者
- AI/ML 應用程式工程師
- 部署 Copilot 和代理程序的平臺工程師
- 負責 AI 功能的技术主管和高階工程師
客戶評論 (2)
我非常喜歡學習關於AI攻擊的內容,以及那些可以開始實踐並積極用於安全測試的工具。我學到了很多之前不瞭解的知識,課程也達到了我的期望。培訓中我最喜歡的部分是Comet Browser,它的功能讓我感到驚歎。這絕對是我會進一步研究的內容。總體來說,這是一門很棒的課程,我很享受學習所有OWASP GenAI Top 10的內容。
Patrick Collins - Optum
課程 - OWASP GenAI Security
機器翻譯
他的專業知識以及他在我們面前展示的方式
Miroslav Nachev - PUBLIC COURSE
課程 - Cybersecurity in AI Systems
機器翻譯