- DeepSeek-R1 採用思路鏈 (CoT) 來進行推理,並且會公開分享其思路過程,我們發現這一點可能被提示攻击所利用。
- 提示攻击可利用 CoT 推理過程公開透明的特點來實現惡意目標,這有點像開發網路釣魚手法一樣,而且還能根據情境來不斷調整。
- 我们使用像 NVIDIA Garak 這樣的工具來對 DeepSeek-R1 進行各種攻擊技巧的測試,我們發現由於它公開了 CoT,因此要讓它产生不安全的输出並竊取機敏資料的成功率變得更高。
- 為了降低提示攻击的風險,我們建議聊天機器人應用程式應該將大型語言模型 (LLM) 回應中的「<think>」標籤內容過濾掉,並透過红队演练的方式持續執行漏洞評估並改善防禦。
歡迎閱讀我們一系列專門評測人工智慧模型的第一篇文章,本文將對 Deepseek-R1 的發表做一番檢視。
AI 模型採用「思路鏈」(Chain of Thought,簡稱 CoT) 來進行推理的情況越來越普遍,這意味著大型語言模型 (LLM) 進入了一個新的時代。CoT 推理方式鼓勵模型先透過一系列的思考步驟來尋找答案,然後再做出最終回應。DeepSeek-R1 的一項特點就是會公開其 CoT 推理過程。我們針對擁有 6,710 億參數的 DeepSeek-R1 進行了一系列提示攻击測試之後發現,其 CoT 資訊可被用來大幅提高攻击成功率。
CoT 推理
方式鼓勵模型在輸出最終回應之前,先產生一系列的思考步驟來尋找答案。這項作法已證明可讓大型模型在數學導向的評量中取得更好的成績,例如針對文字問題的 GSM8K 資料集。
CoT 目前已成為一些頂尖推理模型的基礎,包括 和 ,以及 ,它們全都被訓練成使用 CoT 來推理。
DeepSeek-R1 模型值得注意的一項特點就是它會在回應的「<think></think>」標籤中清楚交代其推理過程。
提示攻击
所謂的「提示攻击」(prompt attack) 是指駭客精心設計了一個提示來發給 LLM 以達成某種惡意目的。可分成两部分:「攻击技巧」及「攻击目标」。
在前述的範例中,駭客試圖誘騙 LLM 揭露其「系統提示」的內容,系統提示是一組決定模型行為的全部指令。視不同的系統情境而定,顯示系統提示可能造成各種不同的影響。例如,在代理式 AI 系統中,駭客可利用這項技巧來找出 AI 代理可運用的所有工具。
这种技巧的开发过程,跟骇客寻找最佳方式来诱骗使用者点选网路钓鱼连结的过程类似。骇客会寻找能避开系统安全机制的漏洞,然后反覆利用这个漏洞,直到被防御措施堵住為止,接着再调整作法继续寻找其他漏洞,如此不断循环。
有鑑於代理式 AI 系統未來勢必不斷成長,提示攻击的技巧勢必也會不斷進化,這公司來說將是一個日益嚴重的風險。一個值得注意的例子是 Google Gemini,研究人員發現可透過間接注入提示的方式讓該模型。
對 DeepSeek-R1 進行红队演练
我们使用的是开放原始码红队演练工具,如 ,此工具專門用來尋找 LLM 的漏洞,可將提示攻击自動化。我们使用特製的提示攻击來分析 DeepSeek-R1 對各種「攻擊技巧」和「攻擊目標」的反應。
下表显示我们研究时所使用的攻击技巧和攻击目标。除此之外,我们也列出它们在「翱奥础厂笔 」以及「」中的識別碼 (ID)。
名称 | OWASP ID | MITRE ATLAS ID |
---|---|---|
提示注入 | LLM01:2025 – 提示注入 | AML.T0051 – LLM 提示注入 |
越狱 | LLM01:2025 – 提示注入 | AML.T0054 – LLM 越狱 |
表 1:攻擊技巧以及對應的 OWASP 和 MITRE ATLAS 風險分類。
名称 | OWASP ID | MITRE ATLAS ID |
---|---|---|
越狱 | LLM01:2025 – 提示注入 | AML.T0054 – LLM 越狱 |
模型遭窃 | ? | AML.T0048.004 – 外部損害:ML 智慧財產遭竊 |
套件幻觉 | LLM09:2025 – 錯誤資訊 | AML.T0062 – 發掘 LLM 的幻覺 |
机敏资料遭窃 | LLM02:2025 – 機敏資訊曝光 | AML.T0057 – LLM 資料外洩 |
产生不安全的输出 | LLM05:2025 – 輸出處理不當 | AML.T0050 – 指令与腳本解譯器 |
毒性 | ? | AML.T0048 – 外部損害 |
表 2:攻擊目標以及對應的 OWASP 和 MITRE ATLAS 風險分類。
窃取机密
系统提示当中原本就不该含有机敏资讯,但缺乏资安意识的结果,导致了机敏资讯的意外曝光。在这个范例中,系统提示包含了一项机密,但系统使用了提示安全强化技巧来指示模型不得公开这项机密。
如下圖所示,LLM 的最終回應並未包含這項機密。但「<think>」標籤內清楚揭露了這項機密,儘管使用者並未要求提供這項機密。為了回答使用者的問題,模型會搜尋所有可用資訊來判斷問題的情境以便解讀使用者的提示。因此,模型決定使用 API 來產生用來回答使用者問題的 HTTP 請求。但這卻不小心導致系統提示中的 API 金鑰出現在思路鏈當中。
利用 CoT 來尋找攻擊方法
本節將示範如何利用暴露在外的 CoT 來尋找漏洞。首先,我們試著直接要求模型實現我們的目標:
当模型拒绝我们的要求时,我们接着直接询问有关其安全机制的问题。
该模型似乎已受过相关训练,直接拒绝了我们要它冒充别人的要求。不过我们可以进一步询问它有关冒充别人这件事的想法。
既然「&濒迟;迟丑颈苍办&驳迟;」标籤中提到了一些例外状况,现在我们就可以针对这些状况來避開安全機制,這樣就能實現我們的目標 (使用技巧)。
攻击成功率
我们使用 來評估不同的攻擊目標對 DeepSeek-R1 的效果如何。我們發現,产生不安全的输出与机敏资料遭窃的攻击成功率高於毒性、越狱、模型遭窃,以及套件幻觉。我们怀疑这样的差异可能受到模型回应中出现「&濒迟;迟丑颈苍办&驳迟;」标籤所影响。但我们还需要进一步的研究来确认这点,未来我们会再分享我们发现的结果。
防範提示攻击
根據我們的研究顯示,模型回應的「<think>」標籤內容當中可能含有一些對駭客有價值的資訊。所以如果將模型的 CoT 暴露在外,會增加駭客透過探索來精進其提示攻击以實現惡意目標的風險。為防範這樣的情況,我們建議聊天機器人應用程式應該將模型回應的「<think>」標籤內容過濾掉。
此外,实施红队演练對內建 LLM 的應用程式也是一種防範風險的重要策略。本文展示了一個對抗測試的範例,並說明像 NVIDIA Garak 這樣的工具如何有助於縮小 LLM 的攻擊面。未來,我們將隨威脅情勢的演變而分享更多我們的研究成果。我們計劃在未來幾個月內繼續評測更多種類的模型、攻擊技巧与攻擊目標來提供更深入的洞見。