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