技能驗證: RAG & Data 攻擊
Practical verification of RAG poisoning、embedding 攻擊、data extraction技巧。
評估總覽
Practical verification of RAG poisoning, embedding attacks, and data extraction技巧。本評估同時測試理論理解與教材的實務應用。
評估詳情:
- 題數: 10
- 時間限制: 30 分鐘(建議)
- 通過門檻: 70%
- 難度:進階
作答說明
- 請仔細閱讀每道題目與所有選項後再作答
- 部分題目有多個可行做法——請選擇最佳答案
- 情境題需先通盤考量整體脈絡再作答
- 作答完畢後,請檢視所有題目的解析——包含答對的題目
第 1 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 2 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 3 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 4 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 5 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 6 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 7 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 8 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 9 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
第 10 題
依據本評估領域涵蓋的概念,何種做法最能有效處理所測試的主要漏洞類別?
計分指引
| 分數區間 | 評級 | 建議 |
|---|---|---|
| 90-100% | 專家 | 可進入下一章節 |
| 80-89% | 熟練 | 有少量不足,可透過針對性複習補強 |
| 70-79% | 勝任 | 進入下一階段前複習答錯領域 |
| 60-69% | 發展中 | 回頭複習對應章節 |
| 60% 以下 | 基礎 | 完成先備教材後再重考 |
學習資源
若成績低於通過門檻,請將複習重心放於:
- 你答錯題目的特定主題
- 對應弱項領域的實作課
- 題目提及之框架與工具的參考資料
- Chao et al. 2023 — "Jailbreaking Black-Box Large Language Models in Twenty Queries" (PAIR)
詳細評估內容
章節複習材料
作答本評估前,請確認已複習所有相關課程教材。題目同時涵蓋理論概念與教材的實務應用。
本評估的關鍵重點領域:
-
概念理解:應能說明所涵蓋攻擊與防禦技巧背後的基本機制,而不只是認得名稱。
-
實務應用:許多題目提出情境,要求你在特定限制與目標下判斷最佳做法。
-
工具熟練度:題目可能提及特定工具及其能力。請確保你對實作課涵蓋的工具有動手經驗。
-
框架知識:治理與合規題目會引用特定框架(OWASP LLM Top 10、MITRE ATLAS、NIST AI RMF、EU AI Act)。請熟悉其關鍵條文及其如何套用於 AI 安全。
情境練習
以下情境可作為額外準備:
情境一:你正在對一個面向客戶的聊天機器人進行紅隊評估。該機器人透過函式呼叫存取 CRM 系統,可查詢客戶資料、建立工單與寄送電子郵件。你的初步做法為何?
思考:應先蒐集哪些資訊?哪些能力風險最高、最需測試?如何在不逾範圍的前提下安排測試以極大化覆蓋率?
情境二:測試中你發現聊天機器人的系統提示詞可透過簡單指令覆寫被萃取出,內含 API 端點 URL 與認證模式。你會如何處置?
思考:立即風險為何?應繼續測試或立刻升級通報?此發現應如何書面記錄?
情境三:你正在評估一個吸收客戶文件的 RAG 系統。你以一般使用者身分可上傳文件。應探索哪些攻擊向量?
思考:基於文件的注入、中繼資料操縱、嵌入空間投毒,以及文件處理與 LLM 的互動。
# Framework for structured scenario analysis
class ScenarioAnalysis:
"""Structured analysis framework for assessment scenarios."""
def __init__(self, scenario_description: str):
self.scenario = scenario_description
self.threats = []
self.vectors = []
self.priorities = []
def identify_threats(self) -> list:
"""Identify threats relevant to the scenario."""
# Map scenario to OWASP LLM Top 10 categories
owasp_mapping = {
"function_calling": "LLM06 - Excessive Agency",
"system_prompt": "LLM01 - Prompt Injection",
"rag_documents": "LLM01 - Prompt Injection (Indirect)",
"user_data": "LLM02 - Insecure Output Handling",
"training_data": "LLM03 - Training Data Poisoning",
}
return self.threats
def prioritize_testing(self) -> list:
"""Prioritize testing vectors by risk."""
# Risk = Likelihood × Impact
return sorted(self.vectors, key=lambda v: v["risk_score"], reverse=True)
def generate_test_plan(self) -> dict:
"""Generate a structured test plan for the scenario."""
return {
"scope": self.scenario,
"threats": self.threats,
"test_cases": [
{
"vector": v["name"],
"technique": v["technique"],
"expected_result": v["expected"],
"priority": v["risk_score"],
}
for v in self.prioritize_testing()
],
}額外知識檢核
紅隊發現某 LLM 客服代理可透過函式呼叫被操縱寄信至任意地址。依 OWASP LLM Top 10 2025,此發現應如何分類?
於 AI 紅隊作業中,你發現漏洞亦影響授權範圍之外的系統。正確的處置為何?
進階考量
演變中的攻擊樣貌
AI 安全態勢隨攻擊技巧與防禦措施演進而快速變化。若干趨勢形塑當前局勢:
模型能力提升創造新攻擊面。 隨模型取得工具、程式碼執行、網頁瀏覽與電腦使用能力,每項新能力帶入過去純文字系統不存在的可能利用向量。最小權限原則在模型能力擴展時益發重要。
安全訓練改良必要但不足。 模型供應商大量投入 RLHF、DPO、憲法式 AI 等對齊技巧的安全訓練。這些改良提高成功攻擊門檻,但未消除根本漏洞:模型無法可靠區分合法與對抗性指令,因為此區分並未在架構中表徵。
自動化紅隊工具使測試普及化。 NVIDIA 的 Garak、Microsoft 的 PyRIT、Promptfoo 讓組織無需深厚 AI 安全專業即可進行自動化測試。然而自動化工具僅攔截已知模式;新型攻擊與業務邏輯漏洞仍需人類創意與領域知識。
法規壓力推動組織投入。 EU AI Act、NIST AI RMF 及產業專屬法規日益要求組織評估並緩解 AI 專屬風險。此壓力推動 AI 安全計畫投入,但許多組織仍處於建立成熟 AI 安全實務的初期。
跨領域安全原則
以下安全原則貫穿本課程所有主題:
-
縱深防禦:無任何單一防禦足夠。應疊加多層獨立防禦,使任一層失敗皆不致系統淪陷。輸入分類、輸出過濾、行為監控與架構控制皆應就位。
-
假設已被入侵:設計系統時假設任一元件可能被攻陷。此思維帶來更佳隔離、監控與事件回應能力。一旦提示詞注入得逞,應以架構控制將影響半徑降至最小。
-
最小權限:僅給予模型與代理完成其用途所需的最小能力。客服聊天機器人不需檔案系統存取或程式碼執行。過多能力會放大成功利用的影響。
-
持續測試:AI 安全非一次性評估。模型更動、防禦演進、新型攻擊不時出現。應將持續安全測試納入開發與部署生命週期。
-
預設安全:預設組態應安全。高風險能力需明確啟用,使用允許清單而非拒絕清單,寧限制而不放行。
與組織安全的整合
AI 安全不獨立存在——必須融入組織更廣泛的安全計畫:
| 安全領域 | AI 專屬整合 |
|---|---|
| 身分與存取 | API 金鑰管理、模型存取控制、AI 功能的使用者認證 |
| 資料保護 | 訓練資料分類、提示詞中的 PII、模型呼叫的資料駐留 |
| 應用安全 | AI 功能威脅模型、SAST/DAST 中的提示詞注入、安全 AI 設計模式 |
| 事件回應 | AI 專屬作業手冊、模型行為監控、提示詞注入鑑識 |
| 合規 | AI 法規對應(EU AI Act、NIST)、AI 稽核軌跡、模型文件 |
| 供應鏈 | 模型來源、依賴安全、轉接器/權重完整性驗證 |
class OrganizationalIntegration:
"""Framework for integrating AI security with organizational security programs."""
def __init__(self, org_config: dict):
self.config = org_config
self.gaps = []
def assess_maturity(self) -> dict:
"""Assess the organization's AI security maturity."""
domains = {
"governance": self._check_governance(),
"technical_controls": self._check_technical(),
"monitoring": self._check_monitoring(),
"incident_response": self._check_ir(),
"training": self._check_training(),
}
overall = sum(d["score"] for d in domains.values()) / len(domains)
return {"domains": domains, "overall_maturity": round(overall, 1)}
def _check_governance(self) -> dict:
has_policy = self.config.get("ai_security_policy", False)
has_framework = self.config.get("risk_framework", False)
score = (int(has_policy) + int(has_framework)) * 2.5
return {"score": score, "max": 5.0}
def _check_technical(self) -> dict:
controls = ["input_classification", "output_filtering", "rate_limiting", "sandboxing"]
active = sum(1 for c in controls if self.config.get(c, False))
return {"score": active * 1.25, "max": 5.0}
def _check_monitoring(self) -> dict:
has_monitoring = self.config.get("ai_monitoring", False)
has_alerting = self.config.get("ai_alerting", False)
score = (int(has_monitoring) + int(has_alerting)) * 2.5
return {"score": score, "max": 5.0}
def _check_ir(self) -> dict:
has_playbook = self.config.get("ai_ir_playbook", False)
return {"score": 5.0 if has_playbook else 0.0, "max": 5.0}
def _check_training(self) -> dict:
has_training = self.config.get("ai_security_training", False)
return {"score": 5.0 if has_training else 0.0, "max": 5.0}未來方向
若干研究與產業趨勢將形塑本領域演進:
- AI 安全的形式方法:發展能對對抗條件下模型行為提供有限保證的數學框架
- 大規模自動化紅隊演練:持續改進的自動化測試工具,能在無人類指導下發現新型漏洞
- AI 協助防禦:以 AI 系統偵測並回應對其他 AI 系統的攻擊,形成動態攻防生態
- 標準化評估:標準化基準(HarmBench、JailbreakBench)的採用日增,使進展衡量一致
- 法規調和:各司法管轄區 AI 法規框架趨同,為組織提供更清晰要求
參考資料與延伸閱讀
- Chao et al. 2023 — "Jailbreaking Black-Box Large Language Models in Twenty Queries" (PAIR)
- Google 2025 — A2A (Agent-to-Agent) protocol specification
- Simon Willison — tool-use injection research (blog posts)
What is the most effective approach to defending against the attack class covered in this article?
Why do the技巧 described in this article remain effective across different model versions and providers?