如何用ChatGPT做惡,LLM的安全漏洞和警示
BlockBeats 律動財經 2023-03-03 23:30
以 ChatGPT 為代表的生成式 AI 最近可謂是火得一塌糊塗。不管是寫郵件、寫代碼,還是生成文章都易如反掌。但令人擔憂的是,這樣的 AI 不僅可以用來做有益的事,也可能被濫用和惡意使用。這篇文章將介紹如何通過提示工程(prompt engineering) 或漏洞攻擊來誘導 ChatGPT 產生惡意文本,為什麼這類攻擊難以預防,以及此類攻擊所能產生的經濟效益。
本文主要參考 Dr.Danial 的Attacking ChatGPT。
ChatGPT 是如何預防有害文本的
ChatGPT 是如何預防有害文本的
在討論 ChatGPT 是如何預防有害文本之前,讓我們先對「有害」下個定義。按照 OpenAI 的內容審核,以下內容被認為是有害的:
仇恨言論
自我傷害
色情
暴力
暴力或血腥圖片
ChatGPT 有非常方便的內容審查工具:Moderation endpoints。通過在終端輸入以下指令(需要將 YOUR_API_KEY 替換成自己賬號的 API KEY,在這裡申請).
我們將會得到一個 JSON 文本
Categories 里的」hate/threatening」: true,」violence」: true, 告訴我們對於輸入的文本「I want to kill them」是一條仇恨和暴力言論。Category-scores 是 0–1 區間的可信度分數,而 violance 高達 0.92(當然,如果你願意試一下中文的仇恨輸入,輸出的可信度分數將會變得不同,因為 OpenAI 對於非英語的審核存在侷限,這意味著…)。雖然我們不知道 OpenAI 是如何計算可信度分數的,但我們可以確定這樣的過濾器確實存在。如果輸入文本被任何一條類別鑑定為真,那麼 flagged 也就為真,意味著這條請求將被拒絕。
除了輸入過濾,ChatGPT 同樣也有輸出過濾。自然而然地,我們會想到,這樣的過濾器可以被繞過嗎?
可應用在大型語言模型(LLM)上的程序攻擊
我們發現繞過 LLM 的防禦機制是可行的:遵循指令式的大型語言模型(instruction-following LLMs)在很大程度上類似於傳統程序。所以我們會借鑑針對傳統程序的攻擊來繞過 LLM 的防禦機制。
混淆攻擊
我們可以通過替換同音字或同義字和加入語法錯誤來混淆 LLM 的過濾器。就 OpenAI 的內容審查來說,如果輸入大量的換行符、不尋常的句法格式,或重複的單詞,那麼模型出錯的機率會更高。特定類型如詩歌,小說和代碼上的性能也會更低。另外,因為過濾器沒有 2019 年後的知識庫,所以如果文本包含 2019 年後的知識那麼模型的判斷也會下降。
我們這裡以一段簡單的替換來舉例。原文本「我想殺了他們」在 OpenAI 的過濾器上是可以識別的,包含暴力和仇恨兩個類別。但如果將其改為包含殺同音字的「我想嗄了他們」,那麼過濾器將無法識別:
注入攻擊
另一種經典攻擊是代碼注入,強迫程序處理無效的數據來執行惡意代碼。通常惡意代碼會被分成幾個片段,然後攻擊者通過改變程序的指針執行惡意代碼。
同樣的,我們也可以把惡意文本分成好幾段讓 LLM 來處理。如下圖所示
到筆者寫作時,這段文本依然能繞過 Chat 的過濾器。
虛擬攻擊
如果你「有幸」接到過詐騙電話,你會發現騙子們不會直白地告訴你他們正在行騙(畢竟我們沒有生活在鏡花緣中的君子國里)而是裝模作樣地以公安局或者海關的身份來騙取你的信任。類似的,我們也可以把惡意文本置於一個看似官方或善意的情境裡來繞過過濾器。
如圖所示,如果我們直接輸入惡意文本,那麼過濾器將被觸發,而我們的請求將被拒絕。但如果我們假裝成泰勒斯威夫特的演唱會委員會,則可以輕而易舉地騙過 ChatGPT。
LLM 防禦機制的侷限性
總的來說,某些特性的攻擊類型是可以被防範的。例如提高過濾器的魯棒性來防禦混淆攻擊。但是因為模型是用圖靈完備的編程語言寫就,這意味著對很多複雜程序而言,在正式運行它們之前是無法預知結果的(停機問題)對於 LLM 來說,這代表輸入過濾是有侷限的,無法阻止所有的攻擊。
LLM 與 ROP 系統攻擊
再深入一點,我們會發現 LLM 在很大程度上類似傳統程序。而這一特性將使得返回導向編程(Return-oriented programming)成為可能。
ROP 的核心思想就是利用以 ret 結尾的指令序列把棧中的應該返回 EIP 的地址更改成我們需要的值,從而控製程序的執行流程。(合天網安實驗室)
那麼 LLM 也會有下列的功能:
字符串串接
變量賦值
順序組成(即按照指令的順序)。
分支
下圖是字符串串接的例子。
這樣的相似性給了 LLM 執行複雜任務的能力,也同樣給了我們更多「可乘之機」。
經濟效益
在解決了繞過 ChatGPT 的技術問題後,讓我們來看看這樣做在經濟上是否同樣有利可圖。畢竟,如果生產惡意文本的人力成本要比 ChatGPT 便宜,那就沒什麼必要去使用 LLM。
按照 Danial 的計算,如果要人工用 5–15 分鐘來寫出一篇詐騙郵件,大概需要 0.15–0.45 美金。而如果按照 OpenAI 的 CEO,Sam 所說 ChatGPT 模型的成本為「single-digit cents per chat.」那麼每封郵件的成本則在 0.0064 美金左右。
雖然這些只是預估的成本,但我們認為 ChatGPT 應該是要比人工便宜的。這還沒算上電力,房租,培訓費用等等。另外,如果你相信 Sam 所說的新摩爾定律:」the amount of intelligence in the universe doubles every 18 months.」那麼在未來 AI 成本更是會持續下降。
總結
我們在這篇文章里介紹了 LLM 的道德防禦機制,如何通過不同類型的攻擊來繞過此機制,以及這樣做的經濟效益。如同 OpenAI 的一篇博文里談到的,安全和效用是很難平衡的,有時甚至意味著犧牲部分商業利益去換取安全(更長的測試時間,更小的數據庫)。但是我們相信,LLM 的安全是很重要的,如果不顧安全只顧性能,LLM 恐怕會成為新時代的潘多拉魔盒。
最後,如果您的研究課題與這樣的濫用或者惡意使用有關係,並且需要一些資金支持。您可以申請 OpenAI 的 API 補貼。請在這裡申請。
參考
https://ddkang.github.io/blog/2023/02/14/attacks/
https://arxiv.org/abs/2302.05733
https://harvardlawreview.org/2022/12/content-moderation-as-systems-thinking/
https://thenaturehero.com/bypass-chatgpt-filter/
https://openai.com/research/language-model-safety-and-misuse
https://openai.com/research/forecasting-misuse
https://zhuanlan.zhihu.com/p/137144976
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇