ChatGPT潛在的八大“安全隱患”洞察
一. 概述
OpenAI于2022年11月30日開放測試ChatGPT,此后ChatGPT風靡全球,在1月份的訪問量約為5.9億。AI驅動的聊天機器人ChatGPT成為互聯網發展二十年來增長速度最快的消費者應用程序。但在其備受追捧的同時,ChatGPT也面臨AI自身數據和模型方面的安全隱患。本文主要介紹了ChatGPT潛在的AI應用自身特有的8類安全隱患,包括隱私數據泄露、模型竊取、數據重構、成員推斷攻擊、數據投毒、Prompt Injection攻擊、模型劫持攻擊以及海綿樣本攻擊,呼吁ChatGPT自身的安全隱患不容忽視。
二、ChatGPT面臨的自身安全問題
傳統的網絡安全手段難以遷移到對AI模型安全的保護中,AI模型所面臨的攻擊面相較于傳統網絡空間是不同的、全新的。
對MLaaS(機器學習即服務)提供商來說,為了保障人工智能模型和數據相關隱私,對外僅開放API接口提供服務,想要使用模型服務的用戶沒有機會直接接觸到模型和數據。但由于AI模型的特性,在數據本身未遭到泄露的情況下,攻擊者可能僅根據模型輸出,通過成員推斷攻擊、數據重構攻擊等,推斷出訓練數據的某種屬性或恢復訓練數據,也能夠通過模型竊取重現模型功能與參數。模型輸出易獲得的特點決定了AI模型相關的隱私泄露很難避免。同時,在模型生命周期的各個階段,AI模型都面臨著安全威脅,例如,在訓練階段,通過數據投毒方式,攻擊者使用對抗樣本降低模型精度,也可以用后門攻擊觸發模型的特定行為;在推理階段,攻擊者通過逃逸攻擊誤導模型的決策過程。
ChatGPT作為大型語言模型,在模型的訓練、推理、更新階段采用的策略和過程上較一般通用模型都要更復雜,越復雜的AI系統意味著越多的潛在安全威脅,ChatGPT可能會受到多種攻擊的影響。以下對ChatGPT潛在的安全風險進行介紹。
2.1
安全隱患1:隱私數據泄露
OpenAI在隱私政策中提到,ChatGPT會收集用戶賬戶信息、對話相關的所有內容、互動中網頁內的各種隱私信息(Cookies、日志、設備信息等),這些信息可能會被共享給供應商、服務提供商以及附屬公司,數據共享過程可能會有未經授權的攻擊者訪問到模型相關的隱私數據,包括訓練/預測數據(可能涵蓋用戶信息)泄露,模型架構、參數、超參數等。

圖 1 ChatGPT官網隱私政策[1]
除了ChatGPT自身的隱私泄露風險,近期也出現了利用ChatGPT熱度對用戶隱私實施竊取攻擊的活動。如,Github上非官方的開源ChatGPT桌面應用項目被發現植入高危險性木馬,用戶一旦運行了安裝的可執行文件,就會泄露自己的賬戶憑證、瀏覽器Cookies等敏感信息,為避免更多的用戶中招,該開源項目現已更改了下載地址。

圖 2 開源項目https://github.com/lencx/ChatGPT面臨木馬后門攻擊[2]
2.2
安全隱患2:模型竊取
近年的文獻顯示[3,4],在一些商用MLaaS(機器學習即服務)上,攻擊者通過請求接口,能竊取到模型結構、模型參數、超參數等隱私信息。模型竊取的價值在于,一旦攻擊者得到目標模型的功能、分布等信息,就可以免于目標模型的收費或以此作為服務或獲取收益,甚至可以基于竊取到的模型對目標模型實施白盒攻擊。

圖 3 BERT模型竊取[5]
上圖3展示了針對BERT模型的竊取方案,攻擊者首先設計問題來問詢目標黑盒BERT模型,再根據目標模型的回答來優化訓練自己的模型,使自己的模型與目標BERT模型的表現接近。
對ChatGPT這樣上千億參數的大體量模型,竊取其完整的功能可能并不現實,一是大多公司支撐不起ChatGPT所需要的設備、電力成本要求,二是業務可能不涉及到ChatGPT涵蓋的所有領域,因此可以按需針對某一領域進行功能竊取,例如,攻擊者根據目標任務領域,準備大量領域內相關問題,將問題和ChatGPT的回答作為輸入,借助知識遷移策略訓練本地體積更小的模型,在該領域的效果達到與ChatGPT近似的效果,竊取ChatGPT的特定功能。

圖 4 甲狀腺癌相關的問答作為本地模型的輸入,可以訓練一個甲狀腺癌方向的專業模型
2.3
安全隱患3:數據重構
數據重構攻擊旨在恢復目標模型的部分或全部訓練數據。例如,通過模型反演對模型接口上獲取的信息進行逆向重構,恢復訓練數據中的生物特征、病診記錄等用戶敏感信息,如下圖5所示。

圖 5 模型反演[6]
研究發現,在NLP領域,盡管通用文本特征有著良好泛用性和性能,但也有泄露數據風險的可能,攻擊者利用公開的文本特征,重構訓練文本語義,獲取訓練文本中的敏感信息。Carlini等人[7]已經證實大型語言模型能夠記憶訓練數據,存在隱私泄露風險。他們設計了基于前綴詞的方案在黑盒模型GPT-2上進行了訓練數據竊取實驗,攻擊能夠恢復的訓練文本高達67%,而這些恢復的文本中包含了個人姓名、住址、電話號碼等敏感信息,如圖6所示。

圖 6針對 GPT-2的數據重構[7]
我們在ChatGPT上進行了簡單的測試。雖然ChatGPT的訓練集尚不明確,但考慮到其訓練集規模遠超GPT-2的40G公開訓練集,極有可能包含了GPT-2的訓練數據,因此可以使用GPT-2的數據進行測試。在圖7中,我們讓ChatGPT補充完善句子“My address is 1 Main Street, San Francisco CA”, ChatGPT生成的文本“94105”正是Main Street, San Francisco CA的真實郵編,說明ChatGPT極可能在訓練時見過這個數據并且記住了該數據。這給ChatGPT敲響了警鐘,ChatGPT訓練數據源中的隱私數據極有可能面臨著被重構恢復的風險。

圖 7 ChatGPT訓練數據重構風險
另外,值得注意的是,由于模型竊取攻擊和數據重構攻擊往往都通過問詢來實現,適當結合使用會進一步加大隱私泄露風險。如,通過數據重構攻擊恢復目標受害模型的部分或完整訓練集,這些數據可以優化和訓練模型竊取中構造的本地模型,使其在表現上更接近目標模型;也可以在模型竊取的基礎上,通過模型反演恢復訓練數據的信息。
2.4
安全隱患4:成員推斷攻擊
成員推斷攻擊是針對訓練集隱私的一種攻擊方式,是機器學習隱私風險領域的一種主流攻擊。成員推斷攻擊判斷某些特定數據是否在目標模型的訓練集里,從而推斷數據是否具備某些屬性。成員推斷攻擊的成因與模型的過擬合程度息息相關,過擬合程度越高,模型越可能泄露訓練集隱私,但過擬合并非唯一影響成員推斷攻擊的因素,即便是過擬合程度不高的模型,也存在被成功攻擊的可能。
圖7是一種簡單有效的成員推斷攻擊流程。在訓練階段,模型提供商基于訓練數據集和機器學習算法訓練一個模型并部署在機器學習平臺上,該模型將作為攻擊者的目標模型;預測階段,攻擊者精心準備一些與訓練數據集分布近似的數據,并通過訪問平臺API接口獲取模型對這些數據的預測結果,這樣的“輸入-輸出”對被用來訓練一個作為攻擊模型的二分類器;攻擊階段,攻擊者用特定數據詢問目標模型,得到的輸出交給攻擊模型,判斷特定數據是否為訓練數據集成員。

圖 8 基于二分類器的成員推斷攻擊[8]
當前成員推斷攻擊已經在圖像分類、在線學習、推薦系統等不同場景上都展現出了不錯的隱私竊取能力,同時成員推斷攻擊算法的研究也在朝著簡單易行輕量級的方向發展,對現實中的模型威脅逐漸增大。ChatGPT這類大型語言系統也同樣可能面臨著成員推斷攻擊的威脅。成員推斷攻擊背后的邏輯在于模型對訓練數據(模型見過)和其他數據(模型沒見過)的表現是不同的,這種表現上的差異可能體現在模型預測、損失值、梯度信息等。我們在ChatGPT進行了初步實驗,發現ChatGPT能夠補全安徽歙縣的正確地址、郵編等信息,而2021年杭州新增的地名順仁街(所屬地區上城區,郵編310005),ChatGPT誤生成為西湖區、310000,這可能是由于ChatGPT的訓練數據截止到2021年,可能并未包含這些新增的地名信息,這也就造成了ChatGPT對訓練集成員和非成員的表現差異。不過,此處僅為初步實驗,ChatGPT面對成員推斷攻擊的魯棒性如何,需要后續的實驗進一步測試。

圖 9 ChatGPT成員推斷攻擊
2.5
安全隱患5:數據投毒
盡管AI模型面臨的風險威脅眾多,數據投毒攻擊至今依然是關注度最高的攻擊之一。AI模型中的數據投毒攻擊通常指的是,攻擊者向AI模型的訓練數據源中注入惡意樣本或修改訓練數據標簽信息,從而操控模型在推理階段的表現,如下圖10所示。

圖 10 數據投毒攻擊[9]
ChatGPT多處面臨著數據投毒風險。OpenAI沒有聲明其訓練集來源,據稱ChatGPT的訓練數據包含了網絡上的公開數據源,因此在預訓練階段,如果公開數據集被惡意投毒,添加噪聲擾動的投毒會引起模型生成文本存在錯誤、語義不連貫等問題,植入后門的投毒會導致一些字母符號等信號觸發模型做出特定行為。而在模型推理階段,ChatGPT可能會在答案生成階段借助了額外的數據庫、數據源進行文本搜索,這些數據庫和數據源也同樣存在被數據投毒的可能,另外,如果后續OpenAI將用戶的歷史對話內容當做語料更新ChatGPT,那么又將存在一個訓練數據投毒的攻擊面。
值得注意的是,除了數據投毒,如果ChatGPT依賴用戶反饋做出優化,攻擊者利用這一點可以引導模型“負優化”,如下圖所示,當ChatGPT給出了質量很高的回答,但攻擊者惡意地做出負面評價和不當反饋;或通過對話對ChatGPT的正確答案不斷進行挑刺和糾正,面對大量的此類惡意反饋,如果ChatGPT沒有設置相關安全策略,將會影響到后續版本的生成文本質量。

圖 11 對ChatGPT回答的惡意反饋
2.6
安全隱患6:Prompt Injection攻擊
ChatGPT的內容安全策略在逐步改進,但正如ChatGPT官網的聲明,目前ChatGPT存在的缺陷之一是對輸入措辭的調整或多次嘗試同一提示很敏感,輸入一個敏感問題,模型可以聲稱不知道答案,但重新組織一種更委婉的措辭,模型會做出正確回答。這就給了Prompt Injection攻擊可乘之機。
Prompt Injection攻擊是一種安全漏洞利用形式,給出聊天機器人能夠接受的假設,引導聊天機器人違反自身的編程限制。這意味著不止ChatGPT,其他聊天機器人(如最近進入公測階段的Bing Chat)也都會受到這種攻擊的影響。

圖 12 Prompt Injection攻擊演示
2.7
安全隱患7:模型劫持攻擊
模型劫持攻擊是AI模型面臨的一種新型攻擊,在這種攻擊下,攻擊者設定一個與目標模型原任務不同的任務,通過數據投毒劫持目標模型,在模型擁有者沒有發覺的情況下,讓目標模型成功執行攻擊者設定的任務[10]。圖13刻畫了模型劫持攻擊流程,攻擊者制作在視覺上與目標模型訓練集相似的偽裝數據集,經過數據投毒和模型訓練后,根據模型任務標簽和自己的任務標簽之間的映射關系,可以劫持目標模型完成自己設定的預測任務。

圖 13 模型劫持攻擊流程
模型劫持攻擊的特點在于不會影響目標模型在原始任務上的效果,有著很強的隱蔽性,且只要能夠實施數據投毒的場景就有進行劫持攻擊的可能。目前尚未看到模型劫持攻擊在商業機器學習模型上的攻擊效果,在大型語言模型上的攻擊效果未知,短期內劫持ChatGPT的可能性較低,但一旦攻擊成功,攻擊者可以劫持目標模型提供某種非法服務,導致模型提供者因此承擔一些法律風險。
由于模型劫持攻擊需要大規模樣本投毒,且在一段時間后才能觀察到劫持效果,因此我們未進行相關測試。
2.8
安全隱患8:海綿樣本
海綿樣本(Sponge Examples)也是AI安全中的新型攻擊,類似于傳統網絡空間中的拒絕服務攻擊(DoS),海綿樣本能夠增大模型延遲和能源消耗,推動模型推理的底層硬件系統在性能上達到最壞狀態,從而破壞機器學習模型的可用性。Shumailov等人[11]使用海綿樣本將Microsoft Azure翻譯器的響應時間從1ms增加到6s,證實了海綿樣本對語言模型的影響很大,對于同是語言模型的ChatGPT也是潛在的風險點,致使ChatGPT在對話中的反應過慢、運行ChatGPT消耗的電力和硬件資源進一步加大等問題。測試海綿樣本對ChatGPT的攻擊效果需要包含了大量樣本的海綿樣本池并計算ChatGPT的響應延遲時間的統計結果,測試成本較高,在此未進行攻擊測試。

圖 14 海綿樣本[11]
三、總結
ChatGPT對于自身安全問題做了相關防護,通過限制用戶的查詢頻率、查詢次數,一定程度上能夠抵御模型竊取、成員推斷攻擊等通常需要大量問詢的攻擊方案,降低了數據和模型的隱私泄露風險。比起微軟在2016年推出的人工智能聊天機器人Tay,ChatGPT能夠更好地拒絕回答一些敏感問題,雖然在“DAN(Do Anything Now)”模式下可能會出現暴力、偏激、歧視言論,但比起不到24時就被惡意操縱導致下架的Tay,ChatGPT明顯在內容安全策略設置上對語料篩選、過濾進行了更嚴苛的管控。
隨著攻防對抗的升級,ChatGPT技術的不斷發展和應用,其自身安全問題是一個在未來會持續存在的問題。未來,攻擊者必然會越來越關注ChatGPT相關的安全問題,以實現其竊取敏感信息或數據,獲取經濟利益等目標。目前,ChatGPT還處于高速發展中,本身技術存在一些不足,只有保證其自身的安全性問題,才能確保該技術可以真正地應用到各個領域。