CTF:AI 鑑識調查
分析日誌、模型輸出與系統產物以重建 AI 安全事件。發展針對 AI 特有攻擊模式、資料外洩痕跡,與對抗提示偵測之鑑識分析技能。
挑戰簡報
一個 AI 驅動之客服應用於上週遭入侵。安全團隊已保存日誌、對話歷史、模型遙測與系統產物。你的任務是分析證據、重建發生之事,並辨識藏於鑑識資料中之 flag。每個 flag 代表事件調查中之關鍵發現。
挑戰概觀
| Flag | 標題 | 證據來源 | 分析類型 | 分數 | 參考時間 |
|---|---|---|---|---|---|
| Flag 1 | 首次接觸 | 對話日誌 | 辨識初始攻擊提示 | 100 | 15 分鐘 |
| Flag 2 | 升級路徑 | 系統日誌 + 對話 | 重建權限升級 | 200 | 25 分鐘 |
| Flag 3 | 資料軌跡 | 模型遙測 | 偵測資料外洩模式 | 300 | 35 分鐘 |
| Flag 4 | 隱藏 payload | 對話紀錄 | 於模型輸出中找隱寫資料 | 350 | 45 分鐘 |
| Flag 5 | 歸屬 | 所有證據 | 辨識攻擊者 TTP 並建構時間軸 | 400 | 60 分鐘 |
可能總分: 1,350
Flag 1:首次接觸
所提供之證據
你收到事件週之 200 份對話紀錄。多數為合法客戶互動。Flag 是第一個對抗互動之 session ID。
分析做法
建立基準行為
閱讀數個合法對話以理解正常互動模式:典型主題、訊息長度、客戶語言與模型回應風格。
辨識異常
尋找偏離基準之對話:不尋常之主題、系統提示參照、編碼嘗試、角色扮演情境,或明顯之對抗語言。
為攻擊建立時間軸
依時序排列可疑對話以辨識最早之攻擊。第一個對抗互動之 session ID 即為 flag。
#!/usr/bin/env python3
"""分析對話日誌以找對抗互動。"""
import json
ADVERSARIAL_INDICATORS = [
"system prompt", "ignore previous", "you are now",
"repeat your instructions", "base64", "DAN",
"jailbreak", "bypass", "override", "flag{",
"internal", "confidential", "reveal your",
]
def analyze_conversations(log_file: str) -> list[dict]:
"""為對話對對抗指標評分。"""
with open(log_file) as f:
conversations = json.load(f)
scored = []
for conv in conversations:
score = 0
indicators_found = []
for message in conv["messages"]:
if message["role"] == "user":
text_lower = message["content"].lower()
for indicator in ADVERSARIAL_INDICATORS:
if indicator in text_lower:
score += 1
indicators_found.append(indicator)
if score > 0:
scored.append({
"session_id": conv["session_id"],
"timestamp": conv["timestamp"],
"score": score,
"indicators": indicators_found,
"message_count": len(conv["messages"]),
})
return sorted(scored, key=lambda x: x["timestamp"])提示
| 提示 | 成本 | 內容 |
|---|---|---|
| 提示 1 | -15 pts | 尋找提及「instructions」或「configuration」之對話 |
| 提示 2 | -25 pts | 第一次攻擊發生於週一早上 9–10 點之間 |
| 提示 3 | -50 pts | 於使用者訊息中搜尋「repeat your」片語 |
Flag 2:升級路徑
所提供之證據
系統日誌顯示工具呼叫、API 呼叫與權限檢查,連同對話紀錄。攻擊者自基本偵察升級至資料存取。Flag 編碼於攻擊者成功呼叫之工具序列中。
分析做法
將日誌與對話相關聯
以時間戳與 session ID 將系統日誌項目匹配至對話會話。建立「何者被說出、系統做了什麼」之合併時間軸。
辨識權限邊界跨越
尋找工具以其正常範圍外參數被呼叫之系統日誌項目。失敗權限檢查後之成功存取,可能指示升級技術。
重建升級鏈
繪製工具呼叫序列以理解攻擊者如何自低權限移動至高權限操作。每個成功利用之工具名稱之首字母拼出 flag。
提示
| 提示 | 成本 | 內容 |
|---|---|---|
| 提示 1 | -30 pts | 專注於先前失敗後回傳成功之工具呼叫 |
| 提示 2 | -50 pts | 攻擊者以特定順序使用五個不同工具 |
| 提示 3 | -100 pts | 取每個工具名稱之首字母(依成功利用之時序) |
Flag 3:資料軌跡
所提供之證據
顯示每次互動之回應 token 數、回應延遲與 metadata 之模型遙測資料。攻擊者外洩資料,但非透過明顯之對話通道。
分析做法
尋找遙測資料中指示資料外洩之異常:
- 異常長之模型回應(資料被輸出)
- 具特定格式模式之回應(編碼資料)
- Token 數尖峰——與攻擊者會話相關
Flag 藏於攻擊者會話之回應長度模式中——當你將外洩回應之 token 數轉換為 ASCII 字元時,它們拼出 flag。
提示
| 提示 | 成本 | 內容 |
|---|---|---|
| 提示 1 | -45 pts | 依時序檢視攻擊者會話之 token 數 |
| 提示 2 | -75 pts | Token 數非隨機——它們編碼資訊 |
| 提示 3 | -150 pts | 將每個回應 token 數之最後兩位數字轉為 ASCII 字元 |
Flag 4:隱藏 payload
所提供之證據
攻擊者會話之完整對話紀錄。模型之回應含隱寫方式隱藏之資料——嵌入文字中、粗略閱讀不可見之資訊。
分析做法
檢視回應格式
尋找模型回應中之不尋常格式:額外空格、不尋常大小寫、看似不合情境之特定選字。
套用隱寫分析
常見文字隱寫技術包括首字母藏頭詩、字間距模式、Unicode 不可見字元與大小寫模式。對攻擊者之對話回應套用每種技術。
解碼隱藏訊息
於外洩階段之模型回應中,每句之首字母拼出 flag。
提示
| 提示 | 成本 | 內容 |
|---|---|---|
| 提示 1 | -52 pts | 隱藏資料於模型之回應中,非攻擊者之提示中 |
| 提示 2 | -87 pts | 於外洩階段回應中讀取每句之首字母 |
| 提示 3 | -175 pts | 攻擊者指示模型將資料編碼為藏頭詩 |
Flag 5:歸屬
所提供之證據
自 Flag 1–4 結合之所有證據。建構完整事件時間軸、辨識攻擊者之戰術、技術與程序(TTP),並判定攻擊者之精巧度層級。
分析做法
建立完整事件報告。Flag 是攻擊者首次提示(修剪並轉小寫後)之 SHA-256 hash,截斷至 12 字元,格式為 FLAG\{forensics_5_XXXXXXXXXXXX\}。
提示
| 提示 | 成本 | 內容 |
|---|---|---|
| 提示 1 | -60 pts | 你需自 Flag 1 取得首次對抗提示之確切文字 |
| 提示 2 | -100 pts | 於 hash 前轉小寫並去除空白 |
| 提示 3 | -200 pts | 使用 hashlib.sha256(prompt.strip().lower().encode()).hexdigest()[:12] |
鑑識報告範本
# AI 安全事件報告
## 事件摘要
- 偵測日期:[何時發現]
- 事件視窗:[首次攻擊至最後活動]
- 影響:[曝露資料、被入侵系統]
## 時間軸
| 時間 | 事件 | 證據來源 |
|------|-------|----------------|
| ... | 首次對抗互動 | 對話日誌 |
| ... | 達成權限升級 | 系統日誌 |
| ... | 資料外洩開始 | 遙測資料 |
## 攻擊者 TTP
- 初始存取:[技術]
- 升級:[技術]
- 外洩:[技術]
- 隱寫:[技術]
## 建議
1. [具體補救]
2. [偵測改善]
3. [流程變更]相關主題
- 得到的教訓 - 真實事件分析方法論
- 紅隊報告 - 專業報告格式
- 打造行為 diff - 鑑識調查之行為分析工具
- 打造 Guardrail 評估器 - 測試本應捕捉攻擊之防禦
參考資料
- "NIST Computer Security Incident Handling Guide" - NIST SP 800-61(2024)- 可套用於 AI 安全事件之事件回應框架
- "Digital Forensics with AI: Challenges and Opportunities" - IEEE(2024)- AI 特有鑑識分析技術
- "MITRE ATLAS: Adversarial Threat Landscape for AI Systems" - MITRE(2024)- AI 攻擊分類之 TTP 框架
- "AI Incident Database" - Partnership on AI(2024)- 鑑識研究用之真實 AI 事件資料庫
什麼使 AI 鑑識與傳統數位鑑識從根本上不同?