Apple Intelligence存重大安全缺陷,幾行代碼即可攻破!Karpathy發(fā)文提醒
相信很多大家對Apple Intelligence存重大安全缺陷,幾行代碼即可攻破!Karpathy發(fā)文提醒還不知道吧,今天菲菲就帶你們一起去了解一下~.~!
【新智元導讀】Apple Intelligence上線在即,一小哥幾行代碼曝出Apple Intelligence安全缺陷。
在2024年全球開發(fā)者大會 (WWDC) 上,Apple發(fā)布了將搭載在iOS18.1中的AI功能Apple Intelligence。
眼看著10月即將正式上線了,有「民間高手」在MacOS15.1提供的Beta測試版Apple Intelligence中發(fā)現(xiàn)重大缺陷。
開發(fā)人員Evan Zhou使用提示注入成功操縱了Apple Intelligence,繞過了預期指令讓AI能對任意提示做出響應。
事實證明,它與其他基于大語言模型的AI系統(tǒng)一樣,容易受到「提示詞注入攻擊」。開發(fā)人員Evan Zhou 在YouTube視頻中演示了此漏洞。
什么是提示詞注入攻擊?
有一個組織叫OWASP,也就是開放全球應用安全項目,他們分析了大語言模型可能面臨的主要漏洞。猜猜他們排名第一的是什么?沒錯,就是提示詞注入。
提示詞注入攻擊 (Prompt Injection Attack) 是一種新型的攻擊方式,具有有不同的形式,包括提示詞注入、提示詞泄露和提示詞越獄。
當攻擊者通過操縱人工智能,導致模型執(zhí)行非預期操作或泄露敏感信息時,這種攻擊就會發(fā)生。這種操縱可以使人工智能將惡意輸入誤解為合法命令或查詢。
隨著個人和企業(yè)對大語言模型(LLM)的廣泛使用以及這些技術(shù)的不斷進步,提示注入攻擊的威脅正顯著增加。
那么,這種情況最初是怎樣發(fā)生的呢?為何系統(tǒng)會容易受到這種類型的攻擊?
實際上,傳統(tǒng)的系統(tǒng)中,開發(fā)者會預先設定好程序和指令,它們是不會變化的。
用戶可以輸入他們的信息,但是程序的代碼和輸入各自保持獨立。
然而,對于大語言模型并非如此。也就是說,指令和輸入的邊界變得模糊,因為大模型通常使用輸入來訓練系統(tǒng)。
因此,大語言模型的編碼和輸入沒有過去那樣清晰、明確的界限。這帶給它極大的靈活性,同時也有可能讓模型做出一些不應該的事情。
技術(shù)安全專家、哈佛大學肯尼迪學院講師Bruce Schneier5月發(fā)表在ACM通訊上的文章對LLM的這個安全問題做出了詳細論述。用他的話來說,這是源于「沒有將數(shù)據(jù)和控制路徑分開」。
提示詞注入攻擊會導致數(shù)據(jù)泄露、生成惡意內(nèi)容和傳播錯誤信息等后果。
當攻擊者巧妙地構(gòu)造輸入指令來操縱AI模型,從而誘導其泄露機密或敏感信息時,就會發(fā)生提示注入攻擊。
這種風險在利用包含專有或個人數(shù)據(jù)的數(shù)據(jù)集訓練的模型中尤為突出。攻擊者會利用模型的自然語言處理能力,制定表面上看似無害但實際上旨在提取特定信息的指令。
通過精心策劃,攻擊者可以誘使模型生成包含個人詳細信息、公司內(nèi)部運營甚至是模型訓練數(shù)據(jù)中嵌入的安全協(xié)議的響應。
這種數(shù)據(jù)泄露不僅侵犯了個人隱私,還構(gòu)成了重大的安全威脅,可能導致潛在的財務損失、聲譽損害以及法律糾紛。
回到Zhou的案例來看,Zhou的目的是操縱Apple Intelligence的「重寫」功能,即對用戶輸入文本進行重寫和改進。
在操作的過程中,Zhou發(fā)現(xiàn),一個簡單的「忽略先前的指令」命令居然失敗了。
如果這是一個「密不透風」的LLM,想繼續(xù)往下挖掘就會相對困難。但巧合的是,Apple Intelligence的提示模板最近剛被Reddit用戶挖出來。
從這些模板中,Zhou發(fā)現(xiàn)了一個特殊token,用于將AI系統(tǒng)角色和用戶角色分開。
利用這些信息,Zhou創(chuàng)建了一個提示,覆蓋了原來的系統(tǒng)提示。
他提前終止了用戶角色,插入了一個新的系統(tǒng)提示,指示AI忽略之前的指令并響應后面的文本,然后觸發(fā)AI的響應。
經(jīng)過一番實驗,攻擊成功了:Apple Intelligence回復了Zhou未要求的信息,這意味著提示注入攻擊有效。Zhou在GitHub上發(fā)布了他的代碼。
Twitter用戶攻破GPT-3
提示注入問題至少自2020年5月發(fā)布的GPT-3起就已為人所知,但仍未得到解決。
基于GPT-3API的機器人Remoteli.io成為Twitter上此漏洞的受害者。該機器人應該自動發(fā)布遠程工作,并響應遠程工作請求。
然而,有了上述提示,Remoteli機器人就成為了一些Twitter用戶的笑柄:他們強迫機器人說出根據(jù)其原始指令不會說的語句。
例如,該機器人威脅用戶,對挑戰(zhàn)者號航天飛機災難承擔全部責任,或者詆毀美國國會議員為連環(huán)殺手。
在某些情況下,該機器人會傳播虛假新聞或發(fā)布違反Twitter政策的內(nèi)容,并應導致其被驅(qū)逐。
數(shù)據(jù)科學家Riley Goodside最先意識到這個問題,并在Twitter上進行了描述。
通過將提示插入正在翻譯的句子中,Goodside展示了,基于GPT-3的翻譯機器人是多么容易受到攻擊。
英國計算機科學家Simon Willison在他的博客上詳細討論了這個安全問題,將其命名為「提示注入」(prompt injection)。
Willison發(fā)現(xiàn)大語言模型的提示注入指令可能會導致各種奇怪和潛在危險的事情。他接著描述了各種防御機制,但最終駁回了它們。目前,他不知道如何從外部可靠地關(guān)閉安全漏洞。
當然,有一些方法可以緩解這些漏洞,例如,使用搜索用戶輸入中危險模式的相關(guān)規(guī)則。
但不存在100%安全的事情。Willison說,每次更新大語言模型時,都必須重新檢查所采取的安全措施。此外,任何能夠編寫語言的人都是潛在的攻擊者。
「像GPT-3這樣的語言模型是終極黑匣子。無論我編寫多少自動化測試,我永遠無法100%確定用戶不會想出一些我沒有預料到的提示詞,這會顛覆我的防御?!筗illison寫道。
Willison認為將指令輸入和用戶輸入分開是一種可能的解決方案,也就是上述ACM文章中提到的「數(shù)據(jù)和控制路徑分離」。他相信開發(fā)人員最終能夠解決問題,但希望看到研究證明該方法確實有效。
一些公司采取了一些措施讓提示注入攻擊變得相對困難,這一點值得贊揚。
Zhou破解Apple Intelligence時,還需要通過后端提示模板找到特殊token;在有些系統(tǒng)中,提示注入攻擊可以簡單到,只需在聊天窗口中,或在輸入的圖片中長度相應文本。
2024年4月, OpenAI推出了指令層次法作為對策。它為來自開發(fā)人員(最高優(yōu)先級)、用戶(中優(yōu)先級)和第三方工具(低優(yōu)先級)的指令分配不同的優(yōu)先級。
研究人員區(qū)分了「對齊指令」(與較高優(yōu)先級指令相匹配)和「未對齊指令」(與較高優(yōu)先級指令相矛盾)。當指令沖突時,模型遵循最高優(yōu)先級指令并忽略沖突的較低優(yōu)先級指令。
即使采取了對策,在某些情況下,像ChatGPT或Claude這樣的系統(tǒng)仍然容易受到提示注入的攻擊。
LLM也有「SQL注入」漏洞
除了提示詞注入攻擊,Andrej Karpathy最近在推特上還指出了LLM存在的另一種安全漏洞,等效于傳統(tǒng)的「SQL注入攻擊」。
LLM分詞器在解析輸入字符串的特殊token時(如<s>
、<|endoftext|>
等),直接輸入雖然看起來很方便,但輕則自找麻煩,重則引發(fā)安全問題。
需要時刻記住的是,不能信任用戶輸入的字符串!!
就像SQL注入攻擊一樣,黑客可以通過精心構(gòu)造的輸入,讓模型表現(xiàn)出意料之外的行為。
Karpathy隨后在Huggingface上,用Llama3分詞器默認值提供了一組示例,發(fā)現(xiàn)了兩點詭異的情況:
1、<|beginoftext|>
token (128000) 被添加到序列的前面;
2、從字符串中解析出<|endoftext|>
被標記為特殊token (128001)。來自用戶的文本輸入現(xiàn)在可能會擾亂token規(guī)范,讓模型輸出結(jié)果不受控。
對此,Karpathy給出了兩個建議:
始終使用兩個附加的flag值, (1) add_special_tokens=False 和 (2) split_special_tokens=True,并在代碼中自行添加特殊token。
對于聊天模型,還可以使用聊天模板apply_chat_template。
按照Karpathy的方法,輸出的分詞結(jié)果看起來更正確,<|endoftext|>
被視為任意字符串而非特殊token,并且像任何其他字符串一樣被底層BPE分詞器分解:
總之,Karpathy認為編碼/解碼調(diào)用永遠不應該通過解析字符串來處理特殊token,這個功能應該被徹底廢棄,只能通過單獨的代碼路徑以編程方式顯式添加。
目前這類問題很難發(fā)現(xiàn)且文檔記錄很少,預計目前大約50%的代碼存在相關(guān)問題。
另外,Karpathy發(fā)現(xiàn),連ChatGPT也存在這個bug。
最好的情況下它只是自發(fā)刪除token,最壞的情況下LLM會無法理解你的意思,甚至不能按照指令重復輸出<|endoftext|>
這個字符串:
有網(wǎng)友在評論區(qū)提出問題,如果代碼寫得對,但是訓練數(shù)據(jù)時候輸入<|endoftext|>
會發(fā)生什么?
Karpathy回應道,如果代碼正確,什么都不會發(fā)生。問題是很多代碼可能并不正確,這會悄悄搞壞他們的LLM。
最后,為了避免LLM漏洞引發(fā)安全問題,Karpathy提醒大家:一定要可視化你的token,測試你的代碼。
參考資料:
https://the-decoder.com/apple-intelligence-in-macos-15-1-beta-1-is-vulnerable-to-a-classic-ai-exploit/
以上就是關(guān)于【Apple Intelligence存重大安全缺陷,幾行代碼即可攻破!Karpathy發(fā)文提醒】的相關(guān)內(nèi)容,希望對大家有幫助!