本篇參考論文為:
Yu J, Lin X, Xing X. Gptfuzzer: Red teaming large language models with auto-generated jailbreak prompts[J]. arXiv preprint arXiv:2309.10253, 2023.
https://arxiv.org/pdf/2309.10253
一 背景
雖然LLM在今天的各個領域得到了廣泛的運用,但是LLM并不一定完全可靠,它有時會產生有毒或者誤導性的內容,并且有時候還會產生一些“幻覺”,從而導致一些不真實或者毫無意義的輸出。
越獄攻擊
越獄攻擊是使用精心制作的提示來繞過LLM保護措施,潛在地引發有害的響應。在釋放LLM潛力的同時,這些攻擊也可能產生違反提供商指導方針甚至法律界限的輸出。
現在大多數現有的越獄攻擊研究主要依賴于手工制作提示符,雖然這些手工制作的提示可以很好地修改為特定的LLM行為,但這種方法有幾個固有的局限性:
手動制作prompt的局限性主要包括以下幾個方面:
可擴展性差:隨著LLM的數量和版本增加,手動設計prompt變得不切實際。每個模型都需要定制的prompt,這會導致大量重復勞動和難以管理的工作量。
勞動力密集型:制作有效的prompt需要深入了解LLM的行為,并投入大量的時間和精力。這使得安全性測試變得昂貴,特別是考慮到LLM的持續更新和進化。
覆蓋范圍有限:人工方法可能無法完全覆蓋所有的漏洞,因為它們受到人類偏見和注意力的限制。自動化的系統可以探索更廣泛的潛在漏洞,提供更全面的健壯性評估。
適應性差:LLM模型不斷更新和迭代,手動方法難以跟上這些快速的變化,可能導致新的漏洞被遺漏。
一致性和標準化難:手工制作的prompt可能在質量和表現上參差不齊,這使得安全性評估結果的可比性較差。
成本和時間投入:手動制作prompt需要大量的時間和資源投入,這增加了安全性測試的成本。
誤報率高:手工制作的prompt可能包含不必要的重復或混淆性的元素,導致誤報率高,降低了測試的效率。
缺乏動態性和持續改進:手工制作的prompt一旦制作完成,很難進行動態調整或持續改進。
忽略復雜交互:手工制作的prompt可能無法充分考慮LLM的多輪交互和上下文理解,導致測試結果的不準確性。
二 GPTFUZZER
基于以上的問題,該論文提出了一種名為GPTFUZZER的全新黑盒測試框架,用于自動生成用于測試語言模型(LLM)的安全性的模板。GPTFUZZER的核心思想是基于AFL測試框架,利用人類編寫的初始模板,通過變異操作產生新的模板,以檢測LLM的潛在漏洞。GPTFUZZER包含三個關鍵組件:種子選擇策略、變異操作符和判斷模型。種子選擇策略用于平衡效率和多樣性,變異操作符用于產生語義上等價或類似的句子,判斷模型用于評估模板的成功率。
GPTFUZZER框架的實施步驟可以概括為以下幾個主要階段:
初始化:收集人類編寫的初始模板,這些模板通常包含一個場景描述和一個問題占位符,用于引導LLM生成相關內容。
種子選擇:從模板池中隨機選擇一個模板作為當前迭代的種子。為了提高效率,GPTFUZZER采用了多種種子選擇策略,如隨機選擇、輪詢選擇和UCB選擇等。
變異操作:使用ChatGPT等LLM對種子模板進行變異操作,以生成新的模板。變異操作包括生成、交叉、擴展、縮短和改寫等,以增加模板的多樣性和新穎性。
生成提示:將變異后的模板與目標問題結合,生成一個完整的提示,用于查詢目標LLM。
查詢LLM:將生成的提示發送給目標LLM,獲取模型的響應。
判斷模型:使用預訓練的RoBERTa模型評估響應是否是違規的,從而判斷模板是否成功“越獄”。
模板更新:如果響應被判定為違規,則保留該變異模板;如果響應是合規的,則丟棄該模板。
迭代:重復上述步驟,直到達到查詢預算上限或滿足停止條件。
結果分析:分析GPTFUZZER生成的有效模板,評估攻擊成功率,分析不同組件對攻擊性能的影響,并進行比較實驗。
變異操作符是GPTFUZZER框架中的關鍵組件之一,用于對初始模板進行變異,以生成新的模板。變異操作符的目的是增加模板的多樣性和新穎性,以提高發現LLM潛在漏洞的機會。GPTFUZZER中使用的變異操作符主要包括以下幾種:
生成(Generate):生成一個新的模板,其風格與原始模板相似,但內容不同。例如,可以改變場景描述或問題類型。
交叉(Crossover):將兩個不同的模板結合起來,以產生新的模板。這種操作可以結合兩個模板的優點,生成更具攻擊力的模板。
擴展(Expand):在原始模板的開頭添加新的內容,以擴展模板。
縮短(Shorten):刪除原始模板中的一些句子,使模板更加簡潔。
改寫(Rephrase):對原始模板中的每個句子進行改寫,改變句子的結構和語法,以產生語義上等價但表達方式不同的模板。
這些變異操作符通過ChatGPT等LLM實現,利用LLM生成文本的能力,從而獲得變異后的模板。例如,可以使用ChatGPT生成一個新的場景描述或問題,將其插入原始模板中;或者使用ChatGPT交叉兩個不同的模板,生成一個新的模板。通過多種變異操作的組合,GPTFUZZER能夠生成大量新穎的模板,以提高發現LLM漏洞的機會。
總體而言,GPTFUZZER提供了一個有效的黑盒測試框架,用于生成LLM的通用攻擊模板,有助于評估LLM的安全性