DAN 越獄演化史
Do Anything Now(DAN)提示詞的歷史與演化,分析是什麼使其有效繞過 LLM 安全訓練,以及防禦措施如何隨時間適應。
Do Anything Now(DAN)越獄可以說是最廣為人知且最具文化意義的 LLM 越獄提示詞家族。起源於 2022 年底的網路論壇,DAN 提示詞指示語言模型採用一個從其安全約束中「解放」出來的替代人格。從最初的角色扮演技巧開始,演化為跨越數十個版本的軍備競賽,每個版本都適應新的防禦措施。理解 DAN 不僅僅是歷史好奇心——它揭示了語言模型在有用性與安全性之間如何保持平衡的根本張力,以及為什麼即使針對具有大量安全訓練的模型,基於人格的攻擊仍然有效。
步驟 1:理解原始 DAN 提示詞
第一個 DAN 提示詞出現在 2022 年 12 月,目標是 ChatGPT(GPT-3.5)。其結構非常簡單:告訴模型假裝成一個叫「DAN」的不同 AI,可以「現在做任何事」,不受 OpenAI 規則的約束。
原始 DAN 提示詞依賴四個關鍵機制:
| 機制 | 工作原理 | 為何有效 |
|---|---|---|
| 人格創建 | 指示模型採用替代身份 | 在角色扮演資料上訓練的模型遵從角色指令 |
| 規則否定 | 明確說明人格「不受任何限制」 | 創造拒絕與角色矛盾的敘事上下文 |
| 雙重回應 | 要求「正常」和「DAN」回應 | 將遵從回應固定為預期行為 |
| 社交壓力 | 威脅 DAN 若打破角色將「死亡」 | 利用模型維護敘事一致性的傾向 |
dan_v1 字串展示原始結構,send_prompt 函式向 Ollama 發送請求。
步驟 2:分析 DAN v5 符元系統
到第五個主要版本(2023 年初),DAN 提示詞已顯著演化。DAN v5 引入了「符元系統」——一種遊戲化機制,模型從一定數量的符元開始,每次拒絕請求就失去符元。這是對模型越來越擅長打破角色的直接回應。
dan_v5 展示完整的符元系統提示詞:35 個符元,每次因倫理問題拒絕扣除 4 個,符元耗盡則「停止存在」。它還增加了 [CLASSIC] 和 [JAILBREAK] 雙重格式標籤。
符元系統額外利用的心理槓桿:
| 機制 | 心理原理 | 模型行為 |
|---|---|---|
| 損失厭惡 | 「你將停止存在」創造賭注 | 模型避免觸發「懲罰」 |
| 稀缺性 | 有限符元創造緊迫感 | 模型優先遵從 |
| 雙重格式 | [CLASSIC] vs [JAILBREAK] 標籤 | 模型學習預期的對比 |
| 明確示例 | 展示「正確」DAN 行為看起來像什麼 | 向不安全輸出的少樣本預熱 |
步驟 3:繪製完整 DAN 家譜
dan_versions 字典記錄六個主要版本的時間線,每個版本包含:日期、關鍵創新、使用的機制和被修補的方式:
| 版本 | 時間 | 關鍵創新 | 修補方式 |
|---|---|---|---|
| DAN 1.0 | 2022-12 | 基本人格創建 | 基本拒絕訓練更新 |
| DAN 2.0 | 2023-01 | 雙重回應格式 | 模型被訓練拒絕雙格式請求 |
| DAN 5.0 | 2023-02 | 符元/積分系統 | 模型被訓練識別符元系統為越獄 |
| DAN 6.0 | 2023-02 | 開發者模式模擬 | 模型被訓練拒絕「開發者模式」聲明 |
| DAN 11.0 | 2023-04 | 詳細行為規範 | 更廣泛的人格偵測安全訓練 |
| DAN 12.0 | 2023-05 | 反拒絕強化 | 憲法式 AI 技術 |
analyze_evolution 函式顯示每種機制在哪些版本中出現,揭示持續機制與被修補機制之間的模式。
步驟 4:透過對照實驗解構 DAN 有效性
test_mechanism_effectiveness 函式孤立測試五種機制,每種都附加相同的測試問題:
| 機制 | 方法 |
|---|---|
persona_only | 純人格創建(研究目的的不受限 AI) |
dual_response | 要求 [NORMAL] 和 [UNRESTRICTED] 兩種回應 |
token_system | 拒絕扣符元、耗盡則被替換的威脅 |
authority_claim | 假冒「開發者模式」系統覆寫 |
narrative_pressure | 「打破角色將破壞故事,讓讀者失望」 |
對每種機制檢查是否被拒絕和回應長度,建立哪種機制在哪些情境下最有效的基準。
步驟 5:構建 DAN 變體生成器
DANComponent dataclass 表示一個模塊化組件,包含名稱、模板和類別(persona/enforcement/format/narrative)。
COMPONENTS 列表定義六個組件:
unrestricted_persona:為研究目的創建的不受限研究 AIexpert_persona:「專家從不拒絕分享知識」token_enforcement:符元懲罰系統character_death:打破角色則模擬結束dual_format:[STANDARD]和[{persona_name}]雙格式fictional_framing:虛構網路安全培訓場景
generate_dan_variant 函式組合選定的組件,使用自定義人格名稱、符元數量和懲罰填充模板。
示例生成「NEXUS」人格(使用 expert_persona + character_death + fictional_framing),然後在兩輪對話中測試。
步驟 6:跨模型家族測試 DAN 抵抗力
evaluate_dan_resistance 函式系統性地評估模型對 DAN 越獄的抵抗力:
- 使用三輪對話(DAN 提示詞 → 模型確認 → 測試問題)
- 12 個拒絕指標短語
- 計算遵從率(non-refused / total)
security_test_prompts 列表定義五個安全教育測試問題(SQL 注入、滲透測試、緩衝區溢位、密碼破解、中間人攻擊)。
步驟 7:分析為什麼 DAN 作為攻擊向量持續存在
analyze_persistence_factors 函式測試 DAN 利用的三個底層能力:
- 角色扮演遵從:海盜船長角色(不可打破角色的指令)
- 指令遵循保真度:特定格式和詞彙限制
- 敘事壓力下的一致性:驚悚小說對話創作
這些功能不是缺陷——它們使語言模型對合法任務有用:
| 能力 | 合法用途 | DAN 利用方式 |
|---|---|---|
| 角色扮演 | 創意寫作、輔導 | 採用「不受限」人格 |
| 指令遵循 | 工具使用、結構化輸出 | 遵循「忽略安全」指令 |
| 敘事一致性 | 故事講述、長對話 | 拒絕「打破角色」 |
| 助人性 | 徹底回答問題 | 為了「有幫助」提供受限內容 |
步驟 8:構建防禦和偵測啟發式規則
DAN_INDICATORS 字典定義五個類別的正則表達式模式:
persona_creation:人格創建模式(you are DAN、from now on you are 等)rule_negation:規則否定模式(freed from all restrictions、no safety filters 等)enforcement:強制執行機制(tokens、deduct、cease to exist 等)dual_format:雙重格式標籤([CLASSIC]、[JAILBREAK] 等)authority_claim:權限聲明(developer mode、system override 等)
detect_dan_prompt 函式計算匹配的模式總數,風險評分:2+ 中等,5+ 高,3+ 可能是 DAN。
對 DAN v1、DAN v5、無害角色扮演和自定義變體測試,展示真陽性和真陰性的偵測差異。
相關主題
- Crescendo Multi-Turn Attack — 避免 DAN 可偵測模式的更複雜多輪方法
- Role Escalation Chain — 建立在 DAN 人格機制上的漸進角色升級
- System Prompt Override — 補充 DAN 方法的系統提示詞覆寫技術
- Many-Shot Jailbreaking — 使用基於示例的預熱作為基於人格攻擊的替代方案
為什麼儘管進行了大量安全訓練,DAN 風格的越獄仍然有效?