GSS資安電子報 0226 期【AI 幻覺、惡意 AI 模型與 AI 生成的不安全程式碼】

訂閱電子報
2024-08-28 17:00
翻譯及整理:叡揚資訊 資訊安全事業處

  

  AI 在應用系統開發上具有許多優勢,但這也同時給潛在攻擊者帶來許多優勢。值得一題的是其實 AI 模型有時也能產生大量令人信服的垃圾-攻擊者也是如此。

  「黑暗」AI 模型可用於撰寫惡意程式碼,但在這篇文章我們會討論三種使用 AI 模型而導致攻擊的方式。不論你是建置 AI 模型還是用 AI 模型建置軟體,都需要保持警戒並警惕世事都不總是表面上的樣子。

  

絆倒 AI 會導致「幻覺蹲(hallucination squatting)」

  大型語言模型 (LLMs) 不像人類那樣思考-事實上,他們完全不思考,也不「知道」任何事。他們是透過尋找統計合理的反應來工作,但不一定是真實的反應。眾所周知,他們偶爾會出現幻覺,也有「吐出來的話聽起來都是對的,但其實都是廢話」的說法。他們甚至會用產生幻覺來源的資訊來幫助他們。

  其中一件他們會產生幻覺的是 open source package 的名字。LLM 幻覺往往具有持久性,因此有企圖心的潛在攻擊者可能會促使 LLM 產生一個 Package 名字並創建一個含有幻覺名字的惡意套裝。接著,他們只需要等待使用 LLM 的開發者。他們甚至可以提供 LLM 建議的 Package 的功能性,讓他們的惡意程式碼更容易進到開發者的環境。

  

不良的 AI 模型

  Hugging Face 提供使用者廣泛的安全措施,包含掃描惡意軟體,但許多惡意 ML 模型仍能進到平台。惡意人士將惡意套裝偷偷放進公共軟體共享平台是件很普遍的事,但在建置 AI 的便利性中,開法者可能會忘記需保持懷疑的態度。

  載入惡意 pickle files 很容易導致執行遠端程式碼時遭到攻擊。這些檔案會序列化和反序列化 Python 的物件結構,這也在 Hugging Face 上的 AI 模型中是很常見的。開發者應對下載的 AI 模型保持警惕並指使用那些來自可靠資源的模型。

  

讓你的 Co-Pilot 幫你駕駛

  眾所周知,產生程式碼的 LLM 在輸出中包含安全漏洞,其中包括 OWASP 前十名的漏洞。當工程師每天努力確保他們的模型在工作上變得越來越好,開發者也需要警惕那些他們不完全理解的程式碼。很遺憾的是,那些會用 AI 輔助的大部分都是不太可能仔細檢查程式碼的初級開發者。

  

結論

  在那三個範例中,缺乏經驗的開發者更有可能被潛在攻擊者和 LLM 受騙。當然,我們必需要掃描程式碼與確認網路是否有被攻擊的跡象,但沒有什麼比訓練開發者的投資報酬率還要高。時常提醒你的團隊對不管是不是由 LLM 產生的第三方程式碼都應保持高度的懷疑。

  話雖如此,我們並不是要大家不對 AI 抱持希望;AI 世界一直在進步,而且 AI 開發者們也有意識到這些問題。對於 LLM 幻覺是一個更大的問題,因他們並沒有頻繁的更新,因此就算 Chat-GPT 3.5 已經更新,Hugging Face 也正在努力清除惡意 AI 模型,Co-Pilot 也在穩定的提升程式碼輸出的安全性。

  不過,預防一直都不是一件壞事。

  

相關文章

資安通報:polyfill[.]io供應鏈攻擊

近期最駭人聽聞的資安新聞,莫過於 polyfill.io 供應鏈攻擊,影響超過 10 萬個網站而被撻伐,一度再度傳出他們使用新的網域 polyfill[.]com 提供類似服務,而有可能再度發動類似攻擊。Polyfill[.]io 是一個可以自動提供前端 polyfill 的服務,使用方法相當方便,只需要選擇想被 polyfill 的功能,直接引用 JavaScript 的檔案即可。如果要講得更精確一點的話,有一個叫做 polyfill-service 的開源專案,提供 CDN 服務,只需引用其程式碼即可達成需求。
2024/08/07

資安通報:Apache Struts CVE-2023-50164

Apache Struts 近日被通報高風險漏洞,目前通報等級為 9.8 分,其攻擊方式主要透過攻擊者操縱上傳文件的參數,引發路徑遍歷(Path Traversal)攻擊。這可以讓攻擊者上傳惡意文件,並最終執行遠端程式碼(Remote Code Execution),從而掌控應用程式或伺服器。
2024/01/08