AI 在應用系統開發上具有許多優勢,但這也同時給潛在攻擊者帶來許多優勢。值得一題的是其實 AI 模型有時也能產生大量令人信服的垃圾-攻擊者也是如此。
「黑暗」AI 模型可用於撰寫惡意程式碼,但在這篇文章我們會討論三種使用 AI 模型而導致攻擊的方式。不論你是建置 AI 模型還是用 AI 模型建置軟體,都需要保持警戒並警惕世事都不總是表面上的樣子。
大型語言模型 (LLMs) 不像人類那樣思考-事實上,他們完全不思考,也不「知道」任何事。他們是透過尋找統計合理的反應來工作,但不一定是真實的反應。眾所周知,他們偶爾會出現幻覺,也有「吐出來的話聽起來都是對的,但其實都是廢話」的說法。他們甚至會用產生幻覺來源的資訊來幫助他們。
其中一件他們會產生幻覺的是 open source package 的名字。LLM 幻覺往往具有持久性,因此有企圖心的潛在攻擊者可能會促使 LLM 產生一個 Package 名字並創建一個含有幻覺名字的惡意套裝。接著,他們只需要等待使用 LLM 的開發者。他們甚至可以提供 LLM 建議的 Package 的功能性,讓他們的惡意程式碼更容易進到開發者的環境。
Hugging Face 提供使用者廣泛的安全措施,包含掃描惡意軟體,但許多惡意 ML 模型仍能進到平台。惡意人士將惡意套裝偷偷放進公共軟體共享平台是件很普遍的事,但在建置 AI 的便利性中,開法者可能會忘記需保持懷疑的態度。
載入惡意 pickle files 很容易導致執行遠端程式碼時遭到攻擊。這些檔案會序列化和反序列化 Python 的物件結構,這也在 Hugging Face 上的 AI 模型中是很常見的。開發者應對下載的 AI 模型保持警惕並指使用那些來自可靠資源的模型。
眾所周知,產生程式碼的 LLM 在輸出中包含安全漏洞,其中包括 OWASP 前十名的漏洞。當工程師每天努力確保他們的模型在工作上變得越來越好,開發者也需要警惕那些他們不完全理解的程式碼。很遺憾的是,那些會用 AI 輔助的大部分都是不太可能仔細檢查程式碼的初級開發者。
在那三個範例中,缺乏經驗的開發者更有可能被潛在攻擊者和 LLM 受騙。當然,我們必需要掃描程式碼與確認網路是否有被攻擊的跡象,但沒有什麼比訓練開發者的投資報酬率還要高。時常提醒你的團隊對不管是不是由 LLM 產生的第三方程式碼都應保持高度的懷疑。
話雖如此,我們並不是要大家不對 AI 抱持希望;AI 世界一直在進步,而且 AI 開發者們也有意識到這些問題。對於 LLM 幻覺是一個更大的問題,因他們並沒有頻繁的更新,因此就算 Chat-GPT 3.5 已經更新,Hugging Face 也正在努力清除惡意 AI 模型,Co-Pilot 也在穩定的提升程式碼輸出的安全性。
不過,預防一直都不是一件壞事。