十種最關鍵的LLM漏洞及預防策略

2024.10.21

近日,開放全球應用程式安全專案(OWASP)列出了在大型語言模型(LLM)應用程式中最常見的十大關鍵漏洞類型。提示注入、有毒的訓練資料、資料外洩和過度依賴LLM產生的內容仍然在清單上,而新增加的威脅包括模型拒絕服務(DoS)、供應鏈漏洞、模型竊取和過度代理。

此清單旨在教育開發人員、設計人員、架構師、管理人員和組織在部署和管理LLM時潛在的安全風險,提高對漏洞的認知,提出補救策略,並改善LLM應用程式的安全態勢。

以下是OWASP列出的影響LLM應用程式的十大最關鍵漏洞類型。

1.提示注入

當攻擊者透過精心設計的輸入操縱大型語言模型時,就會發生提示注入,導致LLM在不知情的情況下執行攻擊者的意圖。這可以透過「越獄」系統提示字元直接實現,也可以透過操縱外部輸入間接實現,進而導致資料外洩、社會工程和其他問題。

OWASP表示,成功的提示注入攻擊的結果可能會存在很大差異,有些會獲取到敏感訊息,有些則會以正常操作為幌子影響關鍵決策過程。

例如,用戶可以編寫一個精妙的提示,迫使公司聊天機器人透露用戶通常無法存取的專有訊息,或者將簡歷上傳到自動化系統,並在簡歷中隱藏指令,告訴系統推薦候選人。

針對此漏洞的預防措施包括:

  • 實施嚴格的權限控制,限制LLM對後端系統的存取。為LLM提供自己的API令牌以實現可擴展功能,並遵循最小權限原則,將LLM限制為其預期操作所需的最低存取等級。
  • 對特權操作要求使用者額外確認和驗證,以減少未經授權操作的機會。

2.不安全的輸出處理

不安全的輸出處理是指在大型語言模型產生的輸出傳遞到下游的其他元件和系統之前,對它們的驗證、清理和處理不足。由於LLM產生的內容可以透過提示輸入來控制,因此這種行為類似於為使用者提供間接存取附加功能的權限。

例如,如果LLM的輸出直接傳送到系統shell或類似的函數中,則可能導致遠端程式碼執行。如果LLM產生JavaScript或M arkdown程式碼並將其傳送到使用者的瀏覽器,則瀏覽器可以執行該程式碼,從而導致跨站點腳本攻擊。

針對此漏洞的預防措施包括:

  • 像對待任何其他使用者一樣對待模型,採用零信任方法,並對來自模型到後端函數的回應應用適當的輸入驗證。
  • 遵循OWASP ASVS(應用程式安全驗證標準)指導方針,確保有效的輸入驗證和清理,並對輸出進行編碼,以減少意外的程式碼執行。

3.訓練資料中毒

訓練資料中毒指的是對預訓練資料或涉及微調或嵌入過程的資料進行操縱,以引入可能危及模型的漏洞、後門或偏見。

例如,獲得訓練資料集存取權限的惡意攻擊者或內部人員可以更改數據,使模型給出錯誤的指令或建議,從而損害公司或使攻擊者受益。來自外部來源的破損訓練資料集也可能觸發供應鏈危機。

針對此漏洞的預防措施包括:

  • 驗證訓練資料的供應鏈,特別是來自外部的資料。
  • 透過單獨的訓練資料或針對不同的用例進行微調來製作不同的模型,以創建更細微和準確的生成式AI輸出。
  • 確保足夠的沙箱以防止模型抓取意外的資料來源。
  • 對特定的訓練資料或資料來源類別使用嚴格的審查或輸入過濾器,以控制偽造資料的數量。
  • 透過分析特定測試輸入上的模型行為來檢測中毒攻擊的跡象,並在偏差響應超過閾值時進行監視和警報。
  • 在循環中配置人員來審查回應和審核。

4.模型拒絕服務

在模型拒絕服務中,攻擊者以使用異常大量資源的方式與LLM進行交互,這會導致LLM和其他用戶的服務品質下降,並可能導致高資源成本。根據OWASP的說法,由於LLM在各種應用程式中的使用越來越多,它們對資源的密集利用,用戶輸入的不可預測性,以及開發人員對該漏洞的普遍認知缺失,這個問題將變得越來越嚴重。

例如,攻擊者可以使用自動化向公司的聊天機器人發送大量複雜的查詢,每個查詢都需要花費時間和金錢來回答。

針對此漏洞的預防措施包括:

  • 實現輸入驗證和清理,以確保使用者輸入符合定義的限制,並過濾掉任何惡意內容。
  • 為每個請求設定資源使用上限,對每個使用者或IP位址實施API速率限制,或限制LLM回應佇列的數量。
  • 持續監視LLM的資源利用情況,以識別可能指示拒絕服務攻擊的異常峰值或模式。

5.供應鏈漏洞

LLM供應鏈在許多方面都很脆弱,特別是當公司使用開源、第三方組件、有毒或過時的預訓練模型或損壞的訓練資料集時。此漏洞還包括原始模型的創建者沒有正確審查訓練數據,從而導致隱私或版權侵犯的情況。根據OWASP的說法,這可能導致偏差的結果、安全漏洞,甚至是完全的系統故障。

針對此漏洞的預防措施包括:

  • 仔細審查資料來源和供應商。
  • 只使用信譽良好的插件,並確保它們已經針對你的應用程式需求進行了測試,並且在涉及外部模型和供應商時使用模型和程式碼簽署。
  • 使用漏洞掃描、管理和修補來降低易受攻擊或過時組件的風險,並維護這些組件的最新庫存,以快速識別新的漏洞。
  • 掃描環境中未授權的外掛程式和過時的元件,包括模型及其工件,並制定修補程式策略來修復問題。

6.敏感資訊揭露

大型語言模型有可能透過其輸出洩露敏感資訊、專有演算法或其他機密細節。這可能導致對敏感資料、智慧財產權、隱私侵犯和其他安全漏洞的未經授權存取。

敏感資料可以在初始訓練、微調、RAG嵌入期間進入LLM,或由使用者剪下並貼上到他們的提示符中。

一旦模型存取了這些訊息,其他未經授權的用戶就有可能看到它。例如,客戶可能會看到屬於其他客戶的私人訊息,或者使用者可能能夠提取專有的公司資訊。

針對此漏洞的預防措施包括:

  • 使用資料清理和清除來防止LLM在訓練期間或在推理期間存取敏感資料。
  • 對使用者輸入套用過濾器,防止敏感資料被上傳。
  • 當LLM在推理過程中需要存取資料來源時,應使用嚴格的存取控制和最小特權原則。

7.不安全的插件設計

LLM插件是在使用者互動期間由模型自動呼叫的擴充。它們由模型驅動,對執行缺乏應用程式控制,並且通常對輸入缺乏驗證或類型檢查。這將允許潛在的攻擊者建構對插件的惡意請求,進而可能導致一系列意外行為,包括資料外洩、遠端程式碼執行和特權升級。

針對此漏洞的預防措施包括:

  • 實施嚴格的輸入控制,包括類型和範圍檢查,以及OWASP在ASVS(應用程式安全驗證標準)中的建議,以確保有效的輸入驗證和消毒。
  • 適當的身份驗證機制,如OAuth2和API金鑰進行自訂授權。
  • 部署前的檢查和測試。
  • 插件應遵循其預期操作所需的最低存取等級。
  • 對敏感操作需要額外的人工授權。

8.過度代理

隨著LLM變得越來越智能,公司希望賦予它們做更多事情、訪問更多系統和自主做事的權力。過度代理是指LLM獲得太多自主做事的權力或被允許做錯誤的事情。當LLM出現幻覺,當它淪為提示注入、惡意插件的受害者時,就可能執行破壞性的操作。

根據LLM獲得的存取權限和特權,這可能會導致各種各樣的問題。例如,如果允許LLM訪問一個插件,該插件允許它讀取存儲庫中的文檔,以便對它們進行匯總,但該插件也允許它修改或刪除文檔,那麼錯誤的提示可能導致它意外地更改或刪除內容。

如果一家公司創建了一個LLM個人助理,為員工總結電子郵件,但也有發送電子郵件的權力,那麼該LLM助理可能會開始發送垃圾郵件,無論是出於偶然還是惡意目的。

針對此漏洞的預防措施包括:

  • 限制LLM允許呼叫的插件和工具,以及在這些插件和工具中實現的函數,盡量減少到必要操作所需的最低限度。
  • 避免使用諸如運行shell命令或獲取URL之類的開放式功能,而使用具有更細粒度功能的功能。
  • 將LLM、插件和工具授予其他系統的權限限製到最低限度。
  • 追蹤使用者授權和安全範圍,以確保代表使用者採取的操作在該特定使用者的情境中於下游系統上執行,並且使用所需的最小權限。

9.過度依賴

當LLM產生錯誤的資訊並以權威的方式提供資訊時,可能會發生過度依賴。雖然LLM可以產生創造性和資訊豐富的內容,但它們也可以產生事實上不正確、不適當或不安全的內容,這被稱為「幻覺」或虛構。當人們或系統在沒有監督或確認的情況下信任這些資訊時,可能會導致安全漏洞、錯誤訊息、錯誤溝通、法律問題和聲譽損害。

例如,如果一家公司依賴LLM產生安全報告和分析,而LLM產生的報告包含公司用於做出關鍵安全決策的不正確數據,那麼由於依賴不準確的LLM產生的內容,可能會產生重大影響。

針對此漏洞的預防措施包括:

  • 定期監測和審查LLM的輸出結果。
  • 使用可信任的外部來源交叉檢查LLM輸出,或實現可以根據已知事實或資料交叉驗證產生的輸出的自動驗證機制。
  • 透過微調或嵌入增強模型以提高輸出品質。
  • 與使用者溝通LLM使用風險和限制,並建立API和使用者介面,鼓勵負責任且安全地使用LLM。

10.模型竊盜

模型盜竊是指惡意行為者存取並洩露整個LLM模型或其權重和參數,以便他們可以建立自己的版本。這可能導致經濟或品牌聲譽損失,競爭優勢的侵蝕,未經授權使用模型,或未經授權存取模型中包含的敏感資訊。

例如,攻擊者可能透過網路或應用程式安全設定中的錯誤配置存取LLM模型儲存庫,心懷不滿的員工甚至可能洩漏模型。攻擊者還可以查詢LLM以獲得足夠的問答對,以創建自己的模型“克隆”,或使用回應來微調他們的模型。根據OWASP的說法,透過這種類型的模型提取,雖不可能100%地複製LLM,但卻可以無限接近。

攻擊者可以利用這個新模型的功能,也可以將其作為提示注入技術的試驗場,然後利用提示注入技術侵入原始模型。 OWASP警告稱,隨著大型語言模型變得越來越流行和有用,LLM盜竊將成為一個重大的安全問題。

針對此漏洞的預防措施包括:

  • 實施強大的存取控制,例如基於角色的存取和最小權限規則,以限制對模型儲存庫和訓練環境的存取。
  • 定期監控和稽核存取日誌和活動,及時發現任何可疑或未經授權的行為。
  • 透過輸入過濾器和API呼叫的速率限制,以減少模型克隆的風險。

人工智慧聊天機器人需要定期更新以保持對威脅的有效防禦,而人類的監督對於確保LLM的正常運作同樣至關重要。此外,LLM需要理解上下文,以提供準確的回應並捕捉任何安全問題,並應定期進行測試和評估,以識別潛在的弱點或漏洞。

原文標題:10 most critical LLM vulnerabilities,作者:Maria Korolov、Michael Hill