大語言模型(LLM)最常見的十大安全風險
開放式Web應用程序安全項目(OWASP,Open Web Application Security Project)是一個組織,它提供有關計算機和互聯網應用程序的公正、實際、有成本效益的信息。
其目的是協助個人、企業和機構來發現和使用可信賴軟件,其最近提出了LLM(大語言模型,代表是GPT)十大安全風險。
圖 :LLM 的 10 大安全風險在語言模型開發周期中的位置
LLM01:Prompt注入
Prompt注入是一種經常討論也是最為常見的的LLM攻擊方式,當攻擊者通過精心設計的輸入直接或間接操縱受信任的LLM時,LLM會忽略預設定的審核準則,執行黑客指令。例如,攻擊者利用LLM對包含惡意提示注入的網頁進行匯總,導致敏感數據泄露、生成惡意軟件代碼或者網絡釣魚電子有文件文本等內容。
Prompt注入攻擊有兩種類型:直接和間接。在直接攻擊中,威脅行為者直接與LLM交互以提取敏感信息或采取其他惡意操作。間接攻擊采用更迂回的方法,例如要求聊天機器人總結包含惡意代碼的網頁。當 LLM 開始摘要過程時,頁面中的惡意代碼就會執行。
解決方案: 防止提示注入漏洞:
- 對 LLM訪問實施權限控制。
- 將外部內容與用戶提示分開。
- 讓人類參與可擴展功能的循環。
示例: 考慮一個使用LLM進行客戶支持查詢的電子商務平臺。攻擊者注入的惡意提示會操縱 LLM 泄露敏感的客戶信息。實施權限控制和隔離內容可以減輕此類風險。
LLM02:不安全的輸出處理
當 LLM 輸出未經審查而被接受時,就會出現不安全的輸出處理,從而可能暴露后端系統。這種行為類似于向用戶提供對附加功能的間接訪問,可能會導致 XSS、CSRF 和權限升級等嚴重后果。
還有一種不安全的輸出就是內容安全問題,即輸出一些普適價值觀不符合的內容。
解決方案: 為了防止不安全的輸出處理:
- 將模型輸出視為不受信任的用戶內容并驗證輸入;
- 對輸出進行編碼以減少不需要的代碼解釋;
- 進行滲透測試以識別不安全的輸出;
- 根據網信辦的大模型輸出規范制約輸出內容,不存在明顯的涉政、涉黃等違規內容;
示例: 想象一下,基于LLM的客戶服務聊天機器人未經過正確驗證,攻擊者注入惡意腳本,聊天機器人最終會傳遞敏感信息,例如信用卡號。當用戶輸入信用卡信息進行購買時,聊天機器人可能會無意中在對話歷史記錄中或通過其他方式暴露這些數據,從而使用戶的財務信息面臨風險。
LLM03:訓練數據中毒
培訓數據中毒涉及操縱數據或微調流程以引入漏洞、后門或偏見,從而損害LLM的安全性、有效性或道德行為。這種完整性攻擊會影響模型做出正確預測的能力。
解決方案: 防止訓練數據中毒:
- 驗證訓練數據的供應鏈及其合法性。
- 確保足夠的沙箱以防止意外的數據源。
- 對特定訓練數據使用嚴格的審查或輸入過濾器。
示例: 用于社交媒體平臺情緒分析的LLM通過有毒的訓練數據進行操縱。惡意行為者將有偏見或誤導性的數據注入訓練集中,導致模型產生傾斜或不準確的情緒分析結果。這可能會導致錯誤信息或操縱公眾輿論。
LLM04:模型拒絕服務
當攻擊者在 LLM 上進行資源密集型操作時,就會發生模型拒絕服務,從而導致服務降級或高成本。該漏洞是由異常消耗資源的查詢、重復輸入或大量可變長度輸入淹沒 LLM 引起的。這和以往常見的DDOS攻擊導致的服務拒絕服務類似。
解決方案: 要防止模型拒絕服務:
- 實施輸入驗證、清理和強制限制。
- 限制每個請求的資源使用并限制排隊的操作。
- 持續監控 LLM 資源利用率。
示例: 攻擊者向 LLM 發送大量請求可能會使系統過載,從而導致合法用戶的服務質量下降。這會擾亂依賴語言模型進行處理的各種應用程序和服務。
LLM05:供應鏈漏洞
LLM的供應鏈漏洞會影響訓練數據、機器學習模型和部署平臺的完整性。這些漏洞可能會導致有偏差的結果、安全漏洞和系統故障。由于易受影響的預訓練模型、有毒的訓練數據和不安全的插件設計,LLM面臨著擴大的供應鏈攻擊面。
解決方案: 防止供應鏈漏洞:
- 仔細審查數據源和供應商。
- 使用適當范圍內的信譽良好的插件。
- 進行監控、對抗性測試和適當的補丁管理。
示例: 假設 LLM 依賴于未經驗證來源的預訓練模型,例如依賴鏈中存在漏洞的語言模型庫。在這種情況下,攻擊者可以利用語言模型的功能來獲得對敏感數據的未經授權的訪問,或在部署該模型的系統上執行惡意代碼,從而對多個應用程序造成重大安全風險。
LLM06:敏感信息披露
當LLM無意中泄露機密數據時,就會發生敏感信息泄露,從而導致隱私侵犯和安全漏洞。此漏洞可能會暴露專有算法、知識產權或個人信息。
解決方案:防止敏感信息泄露:
- 集成足夠的數據輸入/輸出清理技術。
- 實施強大的輸入驗證和清理方法。
- 在模型訓練期間實踐最小特權原則。
示例: LLM在交互過程中無意泄露個人用戶數據會帶來風險。例如,如果模型的響應在沒有適當匿名或加密的情況下被記錄,敏感的醫療記錄可能會暴露給未經授權的各方,從而導致隱私泄露和法律后果。
LLM07:不安全的插件設計
不安全的插件設計擴展了LLM的能力,但由于設計不當而引入了漏洞。插件很容易受到惡意請求,從而導致敏感數據泄露或遠程代碼執行等有害行為。
解決方案: 為了防止不安全的插件設計:
- 對插件強制執行嚴格的參數化輸入。
- 使用適當的身份驗證和授權機制。
- 徹底測試插件是否存在安全漏洞。
示例: 語言模型平臺允許第三方開發人員創建和集成插件以擴展其功能。然而,一個設計不良、存在安全漏洞的插件被上傳到該平臺的市場。安裝后,該插件會使整個系統面臨潛在的攻擊,例如注入攻擊或未經授權的數據訪問,從而損害整個生態系統的安全。
LLM08:代理過多
LLM的過多功能、權限或自主權導致過度代理,從而允許針對意外輸出采取破壞性行動。此漏洞會影響機密性、完整性和可用性。如果LLM擁有過多的自主權,它可能會針對意外的輸入采取破壞性的行動。
解決方案: 避免過度代理:
- 將工具、功能和權限限制在必要的最低限度。
- 嚴格限制函數、插件和 API 的范圍,以避免功能過多。
- 重大和敏感的行動需要人的批準。
示例: 在金融交易系統中部署了具有過度自主性的語言模型。該模型旨在根據市場數據做出交易決策,但會表現出意想不到的行為,并開始在沒有人工監督的情況下執行高風險交易。如果模型的決策有缺陷或被操縱,這種過度的代理可能會導致重大的財務損失或市場不穩定。
LLM09:過度依賴
當系統或個人在沒有充分監督的情況下依賴LLM時,就會發生過度依賴,從而導致錯誤信息傳播或不安全代碼的合并。該漏洞源于對 LLM 輸出的盲目信任。
解決方案: 為了防止過度依賴:
- 與可信的外部來源監控和交叉檢查 LLM 輸出。
- 微調 LLM 模型以提高輸出質量。
- 分解復雜的任務以減少模型故障的可能性。
示例: 執法機構嚴重依賴語言模型進行自動監視和威脅檢測。然而,由于模型訓練數據的限制或算法的偏差,系統始終無法準確識別潛在威脅,導致誤報或漏報。在沒有人工監督的情況下過度依賴模型可能會導致嚴重后果,例如錯誤逮捕或安全漏洞。
LLM10:模型盜竊
模型盜竊涉及對專有 LLM 模型的未經授權的訪問、復制或泄露,從而導致經濟損失、聲譽損害以及對敏感數據的未經授權的訪問。
解決方案: 為防止模型被盜:
- 實施強大的訪問控制并謹慎對待模型存儲庫。
- 限制 LLM 對網絡資源和內部服務的訪問。
- 監視和審核訪問日志以捕獲可疑活動。
示例: 競爭對手滲透到公司的服務器并竊取他們為自然語言處理任務訓練的專有語言模型。然后,被盜模型被重新利用或進行逆向工程以供未經授權的使用,從而使競爭對手在開發競爭產品或服務時獲得不公平的優勢,而無需投資從頭開始訓練此類模型所需的研發工作。