即使最好的保障措施也無(wú)法阻止大語(yǔ)言模型被愚弄
在采訪中,諾丁漢大學(xué)副教授Michael Pound分享了他對(duì)與大型語(yǔ)言模型(LLM)相關(guān)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)的見(jiàn)解。他討論了CISO和安全團(tuán)隊(duì)在LLM使用方面存在的理解或準(zhǔn)備上的最大差距,以及在將LLMs集成到業(yè)務(wù)運(yùn)營(yíng)中時(shí)保護(hù)敏感數(shù)據(jù)所需的預(yù)防措施。
1.你認(rèn)為在LLM使用方面,CISO和安全團(tuán)隊(duì)在理解或準(zhǔn)備上存在的最大差距是什么?
許多安全專業(yè)人員——相當(dāng)合理地——對(duì)LLM背后的機(jī)器學(xué)習(xí)原理并不精通。對(duì)于過(guò)去的技術(shù)來(lái)說(shuō),這并不是什么大問(wèn)題,但LLM表面上看起來(lái)如此強(qiáng)大,以至于可能會(huì)誤導(dǎo)我們認(rèn)為它們不會(huì)被欺騙。我們可能會(huì)急于構(gòu)建考慮不周的系統(tǒng),最終在實(shí)際應(yīng)用中崩潰。或許最重要的是要記住,大多數(shù)GenAI,包括LLM,都是概率性的——它們的行為具有隨機(jī)性,這意味著它們很有可能按你的意愿行事,但這個(gè)概率很少是100%。
推銷AI解決方案的公司會(huì)談?wù)揂I保障措施和一致性,以暗示他們已經(jīng)以某種方式開(kāi)發(fā)了這些模型,使它們不會(huì)出錯(cuò),實(shí)際上,這僅僅意味著一家公司已經(jīng)嘗試訓(xùn)練LLM拒絕一系列他們自己設(shè)計(jì)的惡意提示,這降低了異常行為的可能性,但并未降至零。我們無(wú)法確定LLM是否會(huì)拒絕一個(gè)全新且未見(jiàn)過(guò)的提示,直到它真的發(fā)生,存在許多新奇且令人驚訝的方法來(lái)說(shuō)服LLM做壞事。
2.企業(yè)在向LLM輸入數(shù)據(jù)時(shí)最常見(jiàn)的錯(cuò)誤是什么,尤其是在涉及敏感或?qū)S行畔r(shí)?
短期內(nèi),公司應(yīng)確定誰(shuí)在內(nèi)部使用這些工具、使用哪些工具以及如何使用它們。許多最終用戶并未意識(shí)到,他們輸入到這些模型中的查詢會(huì)被上傳到云端,在某些服務(wù)上,這些查詢可能會(huì)最終成為訓(xùn)練數(shù)據(jù)的一部分。很容易在不經(jīng)意間上傳機(jī)密客戶或公司信息,而沒(méi)有真正考慮后果。最近的模型擁有足夠的參數(shù)來(lái)學(xué)習(xí)你的私人數(shù)據(jù),并樂(lè)于將其發(fā)送給新用戶。像處理電子郵件或日程安排的生產(chǎn)力應(yīng)用,根據(jù)定義,可以訪問(wèn)這些信息。這些信息會(huì)流向哪里?這些工具的付費(fèi)許可證通常具有更強(qiáng)的使用控制和協(xié)議——這些值得探索。
與歷史上的SQL攻擊類似,你必須非常小心不受控制的用戶輸入。在測(cè)試中,你可能會(huì)問(wèn)LLM同一個(gè)問(wèn)題100次,答案雖然不同但保持一致,然而,一旦發(fā)布,有人可能會(huì)以稍微不同的方式提問(wèn),或者更糟的是,可能會(huì)故意引導(dǎo)LLM進(jìn)行惡意行為。對(duì)于傳統(tǒng)代碼,你可以控制這一點(diǎn),可以指定“如果輸入不符合這個(gè)精確格式,就拒絕它”,但對(duì)于LLM來(lái)說(shuō),很容易編寫(xiě)出繞過(guò)保障措施的有效提示。這個(gè)問(wèn)題實(shí)際上比SQL嚴(yán)重得多。對(duì)于SQL注入,你可以構(gòu)建輸入凈化、參數(shù)化查詢等機(jī)制來(lái)防止濫用,但對(duì)于LLM來(lái)說(shuō),這幾乎是不可能的。語(yǔ)言模型沒(méi)有提示與它們正在使用的數(shù)據(jù)之間的概念區(qū)分,它們都是一樣的。這也意味著用戶上傳的文檔或其他文件可能是惡意提示的來(lái)源,而不僅僅是直接的文本輸入。
如果LLM能夠訪問(wèn)工具——與其他代碼和API的連接,風(fēng)險(xiǎn)就會(huì)增加。如果LLM可以發(fā)起網(wǎng)絡(luò)請(qǐng)求,就有可能通過(guò)markdown或其他URL泄露數(shù)據(jù)。如果LLM可以訪問(wèn)你的任何私人數(shù)據(jù),那么風(fēng)險(xiǎn)就會(huì)增加。
3.目前,在降低LLM被對(duì)抗性輸入操縱的風(fēng)險(xiǎn)方面,哪些防御或緩解措施最有效?
大多數(shù)嘗試訓(xùn)練模型以避免惡意提示的努力,在一段時(shí)間后就會(huì)被人想出不同的策略來(lái)繞過(guò)保障措施。你的防御將取決于你希望LLM做什么。如果你希望用它來(lái)總結(jié)文檔或檢索數(shù)據(jù),那么你需要仔細(xì)控制它可以讀取的文檔,以確保它們不包含惡意提示。
如果你的AI直接響應(yīng)用戶輸入——例如你的客戶,那么不可避免地,有人會(huì)在某個(gè)時(shí)候測(cè)試保障措施。你應(yīng)該定期測(cè)試你的LLM,看看它們?nèi)绾畏磻?yīng),你還可以使用其他功能來(lái)檢測(cè)和剔除有問(wèn)題的提示。在某些方面,SQL注入的原則仍然適用——最小權(quán)限原則和基于角色的訪問(wèn)控制。設(shè)置你的AI系統(tǒng),以便即使LLM試圖造成損害,也無(wú)法做到。
4.你推薦哪些框架或指南來(lái)安全地將LLM集成到業(yè)務(wù)工作流程中?
盡管我們似乎已經(jīng)談?wù)揕LM很長(zhǎng)時(shí)間了,但它們實(shí)際上只有幾年歷史。系統(tǒng)是新的,流行的庫(kù)經(jīng)常變化。目前不錯(cuò)的選擇包括Haystack、LangChain和Llama-Index。其中大多數(shù)都是基于運(yùn)行你自己的本地模型的想法,如果你擔(dān)心數(shù)據(jù)隱私,這特別有用。
最大的模型需要巨大的資源,但大多數(shù)適中的模型在標(biāo)準(zhǔn)硬件上表現(xiàn)出色。如果你想在本地測(cè)試模型,可以嘗試Ollama。如果你想重新訓(xùn)練模型,這可以是一種非常有效地更精確控制輸出的方式,可以看看Unsloth。像Copilot、ChatGPT和Anthropic Claude這樣的商業(yè)產(chǎn)品也很可靠,但成本更高。
5.隨著LLM越來(lái)越深入地集成到基礎(chǔ)設(shè)施中,我們可以預(yù)期哪些長(zhǎng)期或系統(tǒng)性的網(wǎng)絡(luò)安全問(wèn)題?
我們正處于一個(gè)將LLM嵌入越來(lái)越多系統(tǒng)的時(shí)代,而人們還不習(xí)慣這些模型與正常軟件開(kāi)發(fā)的不同之處。想象一下編寫(xiě)一段有時(shí)根本不起作用或輸出意外結(jié)果的代碼。即使是一個(gè)幾乎完美的LLM,在99.999%的情況下都是正確的,從數(shù)學(xué)上講,每1000次調(diào)用中也會(huì)失敗一次。我們需要徹底重新思考如何構(gòu)建軟件,以確保不穩(wěn)定的LLM可以在穩(wěn)定的系統(tǒng)中使用。就像我們花了數(shù)年時(shí)間來(lái)填補(bǔ)SQL注入的漏洞一樣,最近在2015年還發(fā)生了重大泄露事件,我們將長(zhǎng)期聽(tīng)到意外提示導(dǎo)致LLM以災(zāi)難性方式出錯(cuò)的故事。