今天小李哥將開啟全新的技術分享系列,為大家介紹生成式AI的安全解決方案設計方法和最佳實踐。近年來生成式 AI 安全市場正迅速發展。據IDC預測,到2025年全球 AI 安全解決方案市場規模將突破200億美元,年復合增長率超過30%,而Gartner則預估到2025年約30%的網絡攻擊將利用生成式AI技術。與此同時,Capgemini的調查顯示,近74%的企業認為AI驅動的安全防護至關重要,加上Cybersecurity Ventures報告指出,與生成式AI相關的安全事件年增長率超過20%,這充分表明企業和安全供應商正面臨日益嚴峻的安全挑戰,并加大投入以構建更全面的防護體系。今天要介紹的就是如何設計生成式AI應用安全解決方案,抵御OWASP Top 10攻擊。未來也會分享更多的AI安全解決方案,歡迎大家關注。
目前我們生活中有各色各樣的生成式AI應用,常見的場景之一就是生成式AI對話助手。然而在部署之前,通常還要對應用進行評估,其中包括了解安全態勢、監控和日志記錄、成本跟蹤、彈性等問題。在這些評估中,安全性通常是最高優先級。如果存在無法明確識別的安全風險,我們就無法有效解決這些風向,這可能會阻礙生成式AI應用向生產環境部署的進度。
在本文章中,小李哥將向大家展示一個自己設計的生成式應用的真實場景,并演示如何利用 OWASP安全框架,基于大語言模型應用常見的Top 10安全攻擊來評估應用的安全態勢,以及實施緩解措施。下圖就是一個生成式AI應用的安全解決方案最佳實踐,我們將繼續從左到右詳細介紹本方案中使用到的安全方案細節。
應用控制層
應用層通常容易遭受到諸如LLM01:2025提示注入、LLM05:2025輸出處理不當以及LLM02:2025敏感信息泄露等風險。惡意攻擊者可能會頻繁嘗試惡意的提示詞輸入來操控AI模型,從而可能通過AI模型泄露敏感信息或危及下游的應用系統。
在我們開頭的架構圖中,應用層的服務器就是亞馬遜云科技無服務器計算服務Lambda。它通過從 API Gateway中提取事件的數據部分并進行語法和語義校驗,實施嚴格的輸入驗證。通過對輸入請求進行清洗、應用白名單和需要組織的關鍵字黑名單,并預定義合法請求的格式和規則進行驗證,使用Lambda服務有助于防止LLM01:2025提示注入攻擊。此外通過將user_id字段傳遞到下游應用中,可以使下游應用組件降低敏感信息泄露的風險,從而解決了LLM02:2025敏感信息泄露的問題。
同時亞馬遜云科技Bedrock Guardrails提供了額外的大模型輸入輸出保護層,可過濾和攔截敏感內容,如個人身份信息(PII)以及通過正則表達式定義的自定義敏感數據。Guardrails還有檢測和屏蔽攻擊性語言、競爭對手名稱或其他不希望出現的詞語,確保輸入和輸出均安全。大家還可以利用 Guardrails在有害或操控性的提示詞到達AI模型之前就進行檢測和過濾,從而防止LLM01:2025提示注入攻擊,維護提示詞的完整性。
另一個關鍵的安全方面是管理AI模型的輸出。由于AI模型可能生成包含可執行代碼的內容,比如 JavaScript或Markdown,如果這些內容處理不當,就存在XSS攻擊的風險。為降低此類風險,我們需要使用輸出編碼技術,例如HTML實體編碼或JavaScript轉義,在將內容呈現給用戶前將任何潛在有害內容進行無害化轉換。此方法解決了LLM05:2025輸出處理不當的風險。
我們也可以利用亞馬遜云科技Bedrock的提示管理和版本控制,使得在不斷提升用戶體驗的同時,也能維持整個應用的安全性。通過完善管理提示詞及其處理方式的變更,在增強IA模型功能的同時不會引入新的漏洞,并降低LLM01:2025提示注入攻擊的風險。
降低未經授權或非預期的AI模型操作風險的策略的核心就是:“將AI模型視為不受信任的信息來源,并在某些操作上采用人工介入流程”。
亞馬遜云科技Bedrock大語言模型與代理層
AI模型與AI模型代理層經常處理與AI模型的交互,面臨諸如LLM10:2025不受限制的使用、LLM05:2025輸出處理不當以及LLM02:2025敏感信息泄露等風險。
拒絕服務(DoS)攻擊可能會通過大量資源密集型請求使AI模型處理不堪重負,從而降低整體服務質量并增加成本。在與亞馬遜云科技Bedrock托管的AI模型交互時,設置諸如輸入請求的最大長度等請求參數,將有助于降低AI模型資源耗盡的風險。此外亞馬遜云科技Bedrock代理對隊列中的最大動作數量以及完成客戶意圖的總動作數都有硬性限制,這限制了系統對AI模型代理基于用戶需求所采取的總動作數量,避免了可能耗盡AI模型資源的異常死循環或密集任務。
輸出處理不當會導致遠程代碼執行、跨站腳本(XSS)、服務器端請求偽造(SSRF)以及權限提升等安全漏洞。對AI模型生成的輸出在發送到下游服務前,如果驗證和管理不佳,就可能間接開放漏洞攻擊面,讓這些漏洞有機可乘。為降低這一風險,應將模型視為普通的應用用戶一樣,對 LLM生成的響應進行安全驗證。亞馬遜云科技Bedrock Guardrails利用可配置閾值的內容過濾器來過濾各種有害內容,并在這些響應被其他后端系統進一步處理之前就進行阻攔,從而簡化了這一過程。Guardrails會自動評估用戶輸入和模型響應,檢測并幫助防止有害的內容。
亞馬遜云科技Bedrock代理在執行多步驟任務時,與亞馬遜云科技原生服務以及外部的第三方服務安全集成,從而有效解決輸出處理不安全、過量代理行為和敏感信息泄露的風險。在文章開頭的架構圖中,代理下的action group中的Lambda服務用于對所有輸出文本進行編碼,使其自動無法被 JavaScript或Markdown異常執行。此外action group中的Lambda函數會解析和記錄代理每一步執行時從AI模型得到的回復,并根據恢復內容相應地控制輸出,確保在下一步處理前輸出內容完全安全。
敏感信息泄露是AI模型面臨的另一大風險,因為惡意的提示工程可能會導致AI模型無意中在響應中泄露不該公開的細節,從而引發AI模型隱私和機密性問題。為緩解這一問題,可以通過亞馬遜云科技 Bedrock Guardrails中的內容過濾器實施數據清洗措施。
另外還應根據user_id實施自定義、精細化的數據過濾策略,并根據id執行嚴格的用戶訪問策略。亞馬遜云科技Bedrock Guardrails可以過濾敏感內容,亞馬遜云科技Bedrock代理則通過允許大家在預處理輸入的提示詞模板和處理響應的提示詞模板中實施自定義邏輯來去除任何非預期的有害信息,進一步降低了敏感信息泄露的風險。如果大家已為AI模型啟用了模型調用日志記錄,或者在應用中實施了自定義日志邏輯,將 AI模型的輸入和輸出記錄到亞馬遜云科技CloudWatch中,那我們也需要開啟CloudWatch日志數據保護等措施,在CloudWatch日志中識別和屏蔽敏感信息,從而進一步降低敏感信息泄露的風險。
代理插件控制層(action group Lambda函數)
代理插件控制層經常需要與內部和外部服務集成,并對內部和外部數據源以及外部第三方API應用授權。LLM08:2025向量與嵌入薄弱性以及LLM06:2025代理行為過度的風險開始顯現。不受信或未經驗證的第三方插件可能會以惡意代碼的形式引入后門或漏洞。
對與外部系統進行集成交互的action group Lambda函數所使用的IAM角色,應使用最小權限原則原則,有助于解決LLM06:2025代理行為過度和LLM08:2025向量與嵌入薄弱性的風險。從文章開頭的架構圖可以看出,代理插件層的Lambda函數便是關聯了一個最小權限的 IAM 角色,用以安全訪問和與其他內部亞馬遜云科技服務進行交互。
此外在確定用戶身份后,通過將user_id傳遞給下游集成應用(如代理插件層),通過基于用戶id身份授權訪問,從而進一步限制數據的訪問。雖然這個user_id參數可在代理插件控制層的Lambda函數中用于自定義授權邏輯,但其主要作用就是用于為外部第三方插件提供基于用戶身份的細粒度的訪問控制。應用所有者有責任在action group Lambda函數中實施自定義授權邏輯,該自定義邏輯需要將user_id參數與開發者預定義授權規則相結合,為第三方API和插件應用配置安全的訪問授權級別。此方法將確定性的訪問控制應用于非確定性的AI模型前,使得對哪些用戶可以訪問和執行特定外部第三方插件實現了細粒度控制。
將基于user_id的數據授權與IAM角色的最小權限相結合,一般可最大限度地降低LLM08:2025向量與嵌入薄弱性以及LLM06:2025代理非預期行為的風險。
RAG知識庫數據存儲層
RAG的數據存儲層負責安全地從各類亞馬遜云科技上的數據源和外部第三方數據源中檢索最新、精準且受到訪問控制的數據。在默認情況下,亞馬遜云科技Bedrock使用了KMS秘鑰服務,加密所有與知識庫相關的數據。大家也可以選擇使用Customer managed的KMS密鑰。在為知識庫配置數據提取任務時,還可以使用Custom KMS密鑰對任務進行加密。
如果大家想選取OpenSearch Service作為知識庫的向量存儲,Amazon Bedrock可將大家選擇好的 KMS密鑰傳遞給它進行向量數據加密。此外在生成查詢知識庫響應的會話中,也可以使用KMS密鑰對會話進行加密。為了便于安全通信,Amazon Bedrock知識庫在與第三方向量存儲進行數據交互時,默認使用TLS加密,前提是該服務支持并允許TLS加密傳輸。
關于用戶訪問權限控制,亞馬遜云科技Bedrock知識庫使用篩選來管理對數據的訪問權限。大家可以利用文件元數據和過濾功能,在知識庫上構建數據隔離訪問解決方案。在運行應用時,必須對用戶進行身份驗證和授權,并在請求中包含該用戶的驗證信息,以保持準確和一致的訪問控制。為了使訪問控制持續生效,大家應定期在篩選配置中重新同步配置,以反映用戶權限變化。另外用戶組也可以作為一個篩選屬性,對知識庫中的文件進行精細化訪問控制。
這種方法有助于解決LLM02:2025敏感信息泄露和LLM08:2025向量與嵌入薄弱性的風險,確保只有授權用戶才能訪問相關數據。
總結
在本文中,小李哥如何利用亞馬遜云科技生成式AI安全合規框架,從亞馬遜云科技安全共擔責任模型的角度對生成式AI應用分為5大類,對于不同類別我們應用了不同的安全控制。同時我們回顧了一個常見的生成式AI應用的安全架構和最佳實踐,再利用OWASP Top 10 for LLM風險評估模型評估了genAI應用安全態勢,同時展示了如何利用亞馬遜云科技服務有效解決OWASP Top 10 for LLM的常見威脅和風險,從而保護生成式AI應用的系統。想了解更多關于在亞馬遜云科技構建安全生成式AI應用和AI安全的信息,歡迎大家關注小李哥不要錯過更多精彩文章。