2025 OWASP LLM 應用十大風險
目錄
2025 年 OWASP LLM 應用十大風險最初於 2024 年底以白皮書形式發布,是 OWASP 又一次重大的努力,集結了來自人工智慧、資安、雲端技術等領域的眾多專家,包括 Mend.io 的 AI 負責人 Bar-El Tayouri。
雖然大型語言模型(LLM)在市場上仍屬新興技術,但其成熟度逐漸提升,這份十大風險清單也隨之演進。雖然本版尚未依實際被攻擊的頻率進行排序(不像 OWASP 的其他十大風險清單),但這次納入了更多真實案例的回饋,只有三項風險從 2023 版本原封不動地保留下來。
以下是各項風險與潛在後果的快速總覽。各風險的攻擊情境、防護及緩解資訊可參考原始報告。
LLM01:提示詞注入(Prompt Injection)
提示詞注入是惡意構造的輸入,會導致大型語言模型(LLM)以未預期的方式執行,從而暴露資料,或執行未經授權的行為,例如遠端程式碼執行。提示詞注入成為 LLM 的首要威脅並不意外,因為它利用了 LLM 設計上的漏洞,而非可以透過修補來解決的缺陷。在某些情況下,無法完全阻止這個威脅;只能減輕它所造成的損害。
提示詞注入有兩種形式:直接提示詞注入和間接提示詞注入。
LLM02:敏感資訊洩露(Sensitive information disclosure)
只要問對問題,LLM 可能會洩露出它所知道的所有資料,例如個人識別資訊(PII)、財務資訊、健康紀錄、商業機密、安全憑證與法律文件等。若模型未妥善設定,也可能暴露專屬演算法或其他智慧財產,引發 IP 洩露風險。
LLM03:供應鏈風險(Supply chain)
目前很少有人完全從零開始建構大型語言模型(LLM),大多數人是依賴現有的技術來進行擴展。供應鏈漏洞可能來自於來自像 Hugging Face 等地方的惡意或脆弱模型,或是第三方訓練資料。第三方模型和訓練資料容易受到資料污染攻擊,任何第三方模型都可能包含我們熟知且討厭的經典漏洞。
LLM04:資料與模型投毒(Data and model poisoning)
LLM「吃什麼就長什麼」。當用於預訓練、微調或增強(例如使用檢索增強生成,RAG)LLM 的資料被操控,導致模型出現漏洞,進而影響模型的安全性、道德行為或性能時,就會發生資料中毒。資料中毒是一個難以應對的漏洞,因為 LLM 所攝取的資料數量極大,且要驗證這些資料的真實性非常困難。資料中毒的最佳情境是,訓練資料中毒使得你的模型無法有效地分析文本或做出準確預測,但即便如此,這仍然會對你的聲譽造成負面影響。
模型投毒則是指開源模型本身就被植入惡意程式或後門,例如來自 Hugging Face 的模型。
LLM05:輸出處理不當(Improper output handling)
「輸出處理不當」描述的是其中插件或其他元件接受 LLM 輸出,但未遵循安全的處理方式,如清理和驗證。這可能導致多種不良行為,包括跨站腳本攻擊(XSS)和在後端系統執行遠端程式碼。
以下是一個可能的輸出處理不當處理情境:在一個產品評論中,攻擊者留下一個間接提示注入,隨後一個負責為使用者摘要評論的 LLM 輸出了惡意的 JavaScript 程式碼,該程式碼被使用者的瀏覽器解讀並執行。
LLM06:過度授權(Excessive Agency)
當大型語言模型(LLM)與其他系統互動時,它應該只擁有完成任務所需的最低限度功能與權限。如果它具備過多的功能、權限或自主性,就會產生「過度授權」的安全風險。
以下是幾個常見的過度授權範例:
LLM07:系統提示詞洩漏(System prompt leakage)
系統提示用於指導模型行為,但有時它們包含機密和敏感訊息,這些訊息可能會洩漏。此外,若系統提示詞被設計為讓 LLM 承擔像是「身分驗證」這類關鍵安全控制的職責,而非交由更強健的系統處理,也會引發安全隱患。然而,若系統提示詞中未包含任何機密資訊或可供攻擊者利用的內容,那麼提示詞洩漏本身便不構成實質風險。
LLM08:向量與嵌入弱點(Vector and embedding weaknesses)
當使用檢索增強生成(RAG)與 LLM 時,向量和嵌入的弱點就會成為問題。這個範疇內有許多風險,包括未經授權的訪問和數據洩漏、跨上下文的訊息洩漏和知識衝突、嵌入反轉攻擊以及行為改變。
LLM09:錯誤資訊(Misinformation)
即使是最先進的大型語言模型(LLM)也並非萬無一失。訓練資料中的偏見可能導致錯誤資訊的產生,而在資料不足的情況下,LLM 可能會產生「幻覺」(hallucinate),也就是根據統計模式產生內容,而非真正理解上下文,進而導致錯誤回答。
LLM 在能力上始終存在限制,無論是功能範圍還是準確性。但在公眾眼中,它們常被視為對萬事萬物皆具備知識的「魔法引擎」,實際上並非如此。舉例來說,若詢問 ChatGPT 一道數學問題,或是要求它解釋法律判例,它可能會產生看似正確,實則錯誤甚至完全虛構的答案。
LLM10:資源消耗失控(Unbounded consumption)
大型語言模型(LLM)擁有強大的運算資源,這賦予它們極高的能力,但若讓使用者無限制地使用這些資源,可能會帶來不良後果。
推論(Inference)是指模型根據使用者的提示,產生回應的過程;若推論資源被無限制地消耗,可能導致服務阻斷(DoS)、大量運算成本帶來的經濟損失、模型被竊取,甚至影響其他正常使用者的服務品質。
同時,這些寶貴的運算資源也極易成為惡意攻擊者覬覦的目標,例如將其轉為執行加密貨幣挖礦等用途。
保護 LLM 安全的最佳實務
關於 AI 模型的最佳實踐,從事應用安全的人會感到非常熟悉。這些實踐包括:對輸入進行消毒和驗證、進行紅隊演練以評估風險並強化模型周圍的程式碼、使用 AI 物料清單(AI-BOM)來追蹤元件、遵循最小權限原則和零信任架構,以及對使用者和開發者進行教育。即使正在處理像 LLM 這樣的突破性技術,這些仍然是應用安全的基石。
Mend.io 如何提供協助?
Mend.io 可即時掃描應用程式中的 OSS 套件,識別其中的安全漏洞和合規性風險,並提供修復漏洞和解決合規性問題的建議。同時,Mend.io 也具備授權合規性管理功能,可自動識別軟體中的開源授權,確保符合企業內部政策與法規要求,避免潛在的法律風險。此外還能生成軟體物料清單(SBOM),並提供持續監控和更新。
透過 Mend.io 企業可將開源安全與合規檢測無縫整合至 CI/CD 開發流程,在開發早期就能發現與解決問題,減少修復成本與合規性風險並提升開發效率。
• 快速搜尋弱點、元件,輕鬆收集完整資訊
• 提供弱點修復建議與完整風險評估資訊
• 多面向報表,有效透析問題
• Shift Left,降低修補成本
• 持續追蹤資安弱點與惡意程式威脅