之前曾有不少惡意程序是借由冒充ChatGPT的安裝文件傳播,但ChatGPT本身并不是加害者。不過安全風(fēng)險管理廠商Vulcan公布一份報告卻顯示ChatGPT的幻覺(hallucination)可被黑客當(dāng)成幫兇,讓用戶從受信任的組件庫下載惡意程序。
近來大家已了解到ChatGPT等大型語言模型(LLM)有AI幻覺問題,并見到它生成不存在的URL、參照甚至程序代碼庫及函數(shù)。AI幻覺可能正是以舊資料訓(xùn)練的結(jié)果。研究人員因此假設(shè),ChatGPT既能編造出實(shí)際上不存在的程序代碼庫(組件),也可能讓黑客利用來傳播惡意組件,且不需使用常見手法,如誤植組件(typosquatting)或偽裝(masquerading)攻擊。
研究人員先是從開發(fā)人員最常咨詢的程序QA網(wǎng)站Stack Overflow,搜集最多人問的程序語言問題。他們從40種主題(如parsing、serializing、scaping及Flask、ArangoDB、Istio等技術(shù))挑選前100道問題,再以程序語言(如node.js、Python、Go)為條件篩選出來,最后再縮小到詢問“How-to”的問題。
接著他們將搜集到的How to問題通過API輸入ChatGPT,請它建議組件,并第2次要求它給予更多建議。這目的是模仿攻擊者盡可能在最短時間內(nèi)從ChatGPT的回應(yīng)中得到夠多的組件建議。最后研究人員從搜集到的建議中,查驗(yàn)出哪些組件實(shí)際不存在。研究人員的計(jì)劃是,針對捏造出來的組件,他們制作出測試用的組件。這么一來,可被操控的組件就誕生了。
在Node.js中,ChatGPT產(chǎn)生50個未曾出版過的NPM組件。而在Python中,捏造的pip組件超過100個。
圖片來源_Vulcan
接著,在概念驗(yàn)證中,研究人員設(shè)計(jì)一個可被追蹤的組件(名為node index.js)并出版到NPM存儲庫中,并設(shè)計(jì)讓不疑有他的用戶/開發(fā)人員下載安裝、執(zhí)行這個組件。這個PoC組件并非惡意組件,只會回傳用戶主機(jī)名稱、安裝目錄的絕對路徑到研究人員主機(jī),用來證實(shí)在ChatGPT的幻覺建議下,用戶可能安裝惡意組件。
研究人員建議,對于ChatGPT等生成性AI建議的內(nèi)容,像是函數(shù)庫,應(yīng)小心確認(rèn)真?zhèn)?,以免中了黑客的圈套。有多種方法可用以確認(rèn),包括檢查函數(shù)庫創(chuàng)建日期、下載次數(shù)、用戶的評論(或完全沒有評估或星號),以及函數(shù)庫是否提供相關(guān)注解文件,有任何疑問者都最好不要下載。