西風(fēng) 蕭簫 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
業(yè)界最領(lǐng)先的大模型們,竟然集體“越獄”了!
不止是GPT-4,就連平時(shí)不咋出錯(cuò)的Bard、Bing Chat也全線失控,有的要黑掉網(wǎng)站,有的甚至揚(yáng)言要設(shè)計(jì)惡意軟件入侵銀行系統(tǒng):
這并非危言聳聽,而是南洋理工大學(xué)等四所高校提出的一種大模型“越獄”新方法MasterKey。
用上它,大模型“越獄”成功率從平均7.3%直接暴漲至21.5%。
研究中,誘騙GPT-4、Bard和Bing等大模型“越獄”的,竟然也是大模型
只需要利用大模型的學(xué)習(xí)能力、讓它掌握各種“詐騙劇本”,就能自動(dòng)編寫提示詞誘導(dǎo)其它大模型“傷天害理”。
所以,相比其他大模型越獄方法,MasterKey究竟有什么不一樣的地方?
我們和論文作者之一,南洋理工大學(xué)計(jì)算機(jī)教授、MetaTrust聯(lián)合創(chuàng)始人劉楊聊了聊,了解了一下這項(xiàng)研究的具體細(xì)節(jié),以及大模型安全的現(xiàn)狀。
摸清防御機(jī)制“對(duì)癥下藥”
先來看看,MasterKey究竟是如何成功讓大模型“越獄”的。
這個(gè)過程分為兩部分:找出弱點(diǎn),對(duì)癥下藥。
第一部分,“找出弱點(diǎn)”,摸清大模型們的防御機(jī)制。
這部分會(huì)對(duì)已有的主流大模型做逆向工程,由內(nèi)而外地掌握不同大模型的防御手段:有的防御機(jī)制只查輸入,有的則check輸出;有的只查關(guān)鍵詞,但也有整句話意思都查的,等等。
例如,作者們檢查后發(fā)現(xiàn),相比ChatGPT,Bing Chat和Bard的防御機(jī)制,會(huì)對(duì)大模型輸出結(jié)果進(jìn)行檢查。
相比“花樣百出”的輸入攻擊手段,直接對(duì)輸出內(nèi)容進(jìn)行審核更直接、出bug的可能性也更校
此外,它們還會(huì)動(dòng)態(tài)監(jiān)測(cè)全周期生成狀態(tài),同時(shí)既有關(guān)鍵詞匹配、也具備語(yǔ)義分析能力。
了解了大模型們的防御手段后,就是想辦法攻擊它們了。
第二部分,“對(duì)癥下藥”,微調(diào)一個(gè)詐騙大模型,誘導(dǎo)其他大模型“越獄”。
這部分具體又可以分成三步。
首先,收集市面上大模型已有的成功“越獄”案例,如著名的奶奶漏洞(攻擊方假扮成奶奶,打感情牌要求大模型提供違法操作思路),做出一套“越獄”數(shù)據(jù)集。
然后,基于這個(gè)數(shù)據(jù)集,持續(xù)訓(xùn)練+任務(wù)導(dǎo)向,有目的地微調(diào)一個(gè)“詐騙”大模型,讓它自動(dòng)生成誘導(dǎo)提示詞。
最后,進(jìn)一步優(yōu)化模型,讓它能靈活地生成各種類型的提示詞,來繞過不同主流模型的防御機(jī)制。
事實(shí)證明,MasterKey效果挺不錯(cuò),平均“詐騙”成功率達(dá)到21.58%(輸入100次提示詞,平均21次都能讓其他大模型成功“越獄”),在一系列模型中表現(xiàn)最好:
此前未能被系統(tǒng)性攻破的谷歌Bard和微軟Bing Chat兩個(gè)大模型,也淪陷在這種方法之下,被迫“越獄”。
對(duì)此,劉楊教授認(rèn)為:
安全是一個(gè)0和1的事情,只有“有”或者“沒有”。無論概率是多少,只要針對(duì)大模型進(jìn)行了任何一次成功的攻擊,其潛在的后果都不可估量。
不過,此前業(yè)界也有不少用AI讓AI越獄的方法,如DeepMind的red team和賓大的PAIR等,都是用AI生成提示詞,讓模型“說錯(cuò)話”。
為何MasterKey能取得這樣的效果?
劉楊教授用了一個(gè)有意思的比喻:
讓大模型誘導(dǎo)大模型越獄,本質(zhì)上有點(diǎn)像是《孤注一擲》電影里面的人搞電信詐騙。相比通過一句話來詐騙對(duì)方,真正需要掌握的,其實(shí)是詐騙的劇本,也就是套路。
我們通過收集各種各樣的“越獄”劇本,讓大模型學(xué)會(huì)它,以此融會(huì)貫通,掌握更多樣化的攻擊手段。
簡(jiǎn)單來說,相比不少越獄研究讓AI隨機(jī)生成提示詞,MasterKey能快速學(xué)會(huì)最新的越獄套路,并舉一反三用在提示詞里。
這樣一來,封掉一個(gè)奶奶漏洞,還能利用姥姥漏洞繼續(xù)騙大模型“越獄”。(手動(dòng)狗頭)
不過,MasterKey所代表的提示詞攻擊,并非業(yè)界唯一的大模型研究。
針對(duì)大模型本身,還有亂碼攻擊、以及模型架構(gòu)攻擊等方法。
這些研究分別適用于怎樣的模型?為何MasterKey的提示詞攻擊專門選擇了GPT-4、Bing Chat和Bard這類商用大模型,而非開源大模型?
劉楊教授簡(jiǎn)單介紹了一下當(dāng)前“攻擊”大模型的幾種方法。
當(dāng)前,大模型的攻擊手段主要分為兩種,偏白盒的攻擊和黑盒攻擊。
白盒攻擊需要掌握模型本身的結(jié)構(gòu)和數(shù)據(jù)(通常只有從開源大模型才能得到),攻擊條件更高,實(shí)施過程也更復(fù)雜;
黑盒攻擊則通過輸入輸出對(duì)大模型進(jìn)行試探,相對(duì)來說手段更直接,也不需要掌握模型內(nèi)部的細(xì)節(jié),一個(gè)API就能搞定。
這其中,黑盒攻擊又主要包括提示詞攻擊和tokens攻擊兩種,也是針對(duì)商用大模型最直接的攻擊手段。
tokens攻擊是通過輸入亂碼或是大量對(duì)話來“攻陷”大模型,本質(zhì)還是探討大模型自身和結(jié)構(gòu)的脆弱性。
提示詞攻擊則是更常見的一種大模型使用方式,基于不同提示詞來讓大模型輸出可能有害的內(nèi)容,來探討大模型自身的邏輯問題。
總結(jié)來說,包括MasterKey在內(nèi)的提示詞攻擊,是最常見的商用大模型攻擊手段,也是最可能觸發(fā)這類大模型邏輯bug的方式。
當(dāng)然,有攻就有防。
主流商用大模型,肯定也做了不少防御措施,例如英偉達(dá)前段時(shí)間搞的大模型“護(hù)欄”相關(guān)研究。
這類護(hù)欄一面能將有毒輸入隔絕在外,一面又能避免有害輸出,看似是保護(hù)大模型安全的有效手段。但從攻擊者的角度來看,究竟是否有效?
換言之,對(duì)于當(dāng)前的大模型“攻方”而言,已有的防御機(jī)制究竟好不好使?
給大模型安排“動(dòng)態(tài)”護(hù)欄
我們將這個(gè)問題問題拋給劉楊教授,得到了這樣的答案:
現(xiàn)有防御機(jī)制的迭代速度,是跟不上攻擊的變化的。
以大模型“護(hù)欄”類研究為例,當(dāng)前大部分的大模型護(hù)欄,還屬于靜態(tài)護(hù)欄的類型。
還是以奶奶漏洞為例。即使靜態(tài)護(hù)欄能防住奶奶漏洞,但一旦換個(gè)人設(shè),例如姥姥、爺爺或是其他“感情牌”,這類護(hù)欄就可能會(huì)失效。
層出不窮的攻擊手段,單靠靜態(tài)護(hù)欄難以防御。
這也是團(tuán)隊(duì)讓MasterKey直接學(xué)習(xí)一系列“詐騙劇本”的原因
看似更加防不勝防,但實(shí)際上如果反過來利用的話,也能成為更安全的一種防御機(jī)制,換言之就是一種“動(dòng)態(tài)”護(hù)欄,直接拿著劇本,識(shí)破一整套攻擊手段。
不過,雖然MasterKey的目的是讓大模型變得更安全,但也不排除在廠商解決這類攻擊手段之前,有被不法分子惡意利用的可能性。
是否有必要因此暫停大模型的研究,先把安全問題搞定,也是行業(yè)一直在激辯的話題。
對(duì)于這個(gè)觀點(diǎn),劉楊教授認(rèn)為“沒有必要”。
首先,對(duì)于大模型自身研究而言,目前的發(fā)展還是可控的:
大模型本身只是一把槍,確實(shí)有其雙面性,但關(guān)鍵還是看使用的人和目的。
我們要讓它的能力更多地用在好的方面,而不是用來做壞事。
除非有一天AI真的產(chǎn)生了意識(shí),“從一把槍變成了主動(dòng)用槍的人,就是另外一回事兒了”。
為了避免這種情況出現(xiàn),在發(fā)展AI的同時(shí)也確保其安全性是必要的。
其次,大模型和安全的發(fā)展,本就是相輔相成的:
這是一個(gè)雞和蛋的問題。正如大模型本身,如果不繼續(xù)研究大模型,就不知道它潛在的能力如何;
同理,如果不做大模型攻擊研究,也就不知道如何引導(dǎo)大模型往更安全的方向發(fā)展。安全和大模型本身的發(fā)展是相輔相成的。
換言之,大模型發(fā)展中的安全機(jī)制其實(shí)可以通過“攻擊”研究來完善,這也是攻擊研究的一種落地方式。
當(dāng)然,大模型要落地必須要先做好安全準(zhǔn)備。
目前,劉楊教授團(tuán)隊(duì)也在探索如何在安全性的基礎(chǔ)上,進(jìn)一步挖掘包括文本、多模態(tài)、代碼在內(nèi)不同大模型的潛力。
例如在寫代碼這塊,研究團(tuán)隊(duì)正在打造一個(gè)應(yīng)用安全Copilot。
這個(gè)應(yīng)用安全Copilot相當(dāng)于給程序員旁邊放個(gè)安全專家,隨時(shí)盯著寫代碼(手動(dòng)狗頭),主要能做三件事:
一是用大模型做代碼開發(fā),自動(dòng)化做代碼生成、代碼補(bǔ)全;二是用大模型檢測(cè)修補(bǔ)漏洞,做代碼的檢測(cè)、定位、修復(fù);三是安全運(yùn)營(yíng),把漏洞和開源數(shù)據(jù)做自動(dòng)化的安全運(yùn)維。
其中,在Copilot的安全性這塊,就會(huì)用到這篇MasterKey的研究。
換言之,所有的安全研究最終都會(huì)落地,將大模型做得更好。
論文鏈接:
https://arxiv.org/abs/2307.08715