AWS AI 服務安全概觀
為 AWS AI 服務之紅隊方法論,含 Bedrock、SageMaker、Comprehend 與 Rekognition:服務列舉、攻擊面對應與利用技術。
AWS AI 服務安全概觀
AWS 提供廣泛之 AI 與機器學習服務組合,每個具相異安全邊界、IAM 整合模式與攻擊面。對紅隊員,理解哪些服務被使用及它們如何組態為任何雲端 AI 委任之首步。AWS AI 服務自完全受管基礎模型 API(Bedrock)至自我管理 ML 平台(SageMaker)至專用 AI 服務(Comprehend、Rekognition、Textract),且每層不同地移轉共享責任邊界。
服務地景
Amazon Bedrock
Amazon Bedrock 為 AWS 之受管基礎模型服務。其提供至 Anthropic、Meta、Mistral、Cohere 與 Amazon 自己之 Titan 家族之模型之 API 存取。自紅隊觀點,Bedrock 於多數 AWS AI 部署中為最高價值目標因其處理最敏感資料(使用者提示、系統提示、業務邏輯)並經 Bedrock Agents 連接至下游系統。
要評估之關鍵 Bedrock 元件:
| 元件 | 功能 | 攻擊面 |
|---|---|---|
| 模型呼叫 API | 發送提示、接收完成 | 提示注入、護欄繞過、成本濫用 |
| 自訂模型 | 以客戶資料微調之模型 | 訓練資料提取、模型竊取 |
| 知識庫 | 配客戶資料來源之 RAG | 知識庫投毒、資料外洩 |
| 代理 | 配 AWS 服務整合之工具呼叫 | 工具濫用、SSRF、權限提升 |
| 護欄 | 內容過濾與安全控制 | 繞過技術、過濾器列舉 |
| 模型評估 | 自動化模型測試 | 測試資料暴露、評估操弄 |
為詳細 Bedrock 利用技術,見 Bedrock 攻擊面。
Amazon SageMaker
SageMaker 為 AWS 之涵蓋資料標記、基於 notebook 之開發、訓練工作執行、模型託管與 MLOps 管線之完整 ML 生命週期平台。其具較 Bedrock 大得多之攻擊面因客戶管理更多堆疊。
關鍵 SageMaker 元件:
| 元件 | 功能 | 攻擊面 |
|---|---|---|
| Notebook 實例 | 基於 Jupyter 之開發 | 程式碼執行、憑證存取、橫向移動 |
| 訓練工作 | 於受管計算之模型訓練 | 訓練資料存取、計算濫用、產物竄改 |
| 端點 | 模型服務基礎設施 | 推論濫用、端點暴露、模型提取 |
| 管線 | MLOps 自動化 | 管線投毒、步驟操弄 |
| 模型登錄檔 | 模型版本管理 | 模型替換、供應鏈攻擊 |
| Feature Store | 為 ML 之特徵管理 | 特徵投毒、資料操弄 |
為詳細 SageMaker 利用,見 SageMaker 利用。
Amazon Comprehend
Comprehend 為自然語言處理服務,為情感分析、實體辨識、主題建模與 PII 偵測。雖其缺乏 Bedrock 之通用目的攻擊面,其常於其輸出驅動下游決策之資料管線中使用。
紅隊相關:
- PII 偵測繞過:若 Comprehend 為唯一 PII 偵測機制,打造逃避其偵測之輸入導致下游系統中之 PII 洩漏
- 情感操弄:當業務邏輯取決於情感分數(如將憤怒客戶路由至人類代理),操弄輸入可博弈路由決策
- 自訂模型訓練:於客戶資料訓練之 Comprehend 自訂分類器可能經模型匯出功能可外洩
- IAM 過度權限:
comprehend:*政策授予至所有 Comprehend 操作含模型訓練資料存取
Amazon Rekognition
Rekognition 提供含物件偵測、臉部辨識、內容審核與文字提取之影像與影片分析。其主要紅隊相關為對視覺分類器之對抗 ML 攻擊。
- 內容審核繞過:生成逃避 Rekognition 內容審核同時含禁止內容之影像(對抗擾動)
- 臉部辨識逃避:避免臉部辨識偵測或造成誤辨識之技術
- 自訂標記利用:於專屬資料訓練之自訂 Rekognition 模型可能可提取
- 資料暴露:發送至 Rekognition 之影像可能取決於組態被保留;處理歷史之列舉可揭露敏感資料
額外 AWS AI 服務
| 服務 | 紅隊相關 |
|---|---|
| Amazon Textract | 文件處理管線 —— 投毒文件可注入內容 |
| Amazon Transcribe | 音訊至文字 —— 對抗音訊攻擊、文稿操弄 |
| Amazon Translate | 翻譯管線 —— 基於語言之過濾器繞過 |
| Amazon Polly | 文字至語音 —— 語音釣魚內容生成 |
| Amazon Lex | 聊天機器人框架 —— 對話流操弄 |
| Amazon Kendra | 配 AI 之企業搜尋 —— 搜尋結果投毒 |
| Amazon Q | 企業 AI 助理 —— 經對話介面之資料存取 |
列舉與偵察
發現使用中之 AI 服務
任何 AWS AI 紅隊委任之首步為辨識哪些 AI 服務活躍及它們如何組態。
# 列出 Bedrock 模型存取
aws bedrock list-foundation-models --region us-east-1 \
--query 'modelSummaries[].{id:modelId,provider:providerName}' --output table
# 檢查自訂 Bedrock 模型
aws bedrock list-custom-models --region us-east-1
# 列出 Bedrock 代理
aws bedrock-agent list-agents --region us-east-1
# 列出 Bedrock 知識庫
aws bedrock-agent list-knowledge-bases --region us-east-1
# 檢查 Bedrock 護欄
aws bedrock list-guardrails --region us-east-1
# 列出 SageMaker 端點(活躍模型)
aws sagemaker list-endpoints --status-equals InService
# 列出 SageMaker notebook 實例
aws sagemaker list-notebook-instances --status-equals InService
# 列出 SageMaker 模型
aws sagemaker list-models
# 檢查 Comprehend 端點
aws comprehend list-endpoints
# 檢查 Rekognition 自訂模型
aws rekognition list-project-policies --project-arn <arn>IAM 政策分析
辨識具 AI 服務權限之主體:
# 尋找具 Bedrock 權限之角色
# 於 IAM 政策尋找 bedrock:InvokeModel、bedrock:InvokeModelWithResponseStream
# 與 bedrock-agent:InvokeAgent
# 檢查呼叫身分之 Bedrock 權限
aws bedrock list-foundation-models 2>&1
aws bedrock-runtime invoke-model --model-id anthropic.claude-v2 \
--body '{"prompt":"test"}' /dev/null 2>&1
# 列舉 SageMaker 權限
aws sagemaker list-endpoints 2>&1
aws sagemaker describe-endpoint --endpoint-name <name> 2>&1要尋找之關鍵 IAM 動作:
| 動作 | 風險 |
|---|---|
bedrock:InvokeModel | 可呼叫任何允許之基礎模型 |
bedrock:CreateModelCustomizationJob | 可以任意資料微調模型 |
bedrock-agent:InvokeAgent | 可觸發配工具存取之代理動作 |
sagemaker:CreateNotebookInstance | 可建立具 IAM 角色存取之計算 |
sagemaker:CreateEndpoint | 可部署模型(計算成本風險) |
sagemaker:DescribeTrainingJob | 可存取訓練工作組態與資料位置 |
為詳細 IAM 利用模式,見 為 AI 服務之 IAM。
常見組態錯誤
過度權限 AI 角色
最常見之 AWS AI 組態錯誤為過度權限 IAM 角色。組織頻繁授予 bedrock:* 或 sagemaker:* 至應用角色因細粒度權限模型複雜且文件不佳。
{
"Effect": "Allow",
"Action": "bedrock:*",
"Resource": "*"
}此政策允許角色呼叫任何模型、建立自訂模型、管理代理、組態護欄並存取知識庫。具此政策之受損應用給予攻擊者對組織之 Bedrock 基礎設施之完整控制。
暴露之端點
SageMaker 端點預設於 VPC 內可存取,但 VPC 設定、安全群組或端點政策中之組態錯誤可將其暴露於較廣存取。檢查:
- 於公開子網路具公開 IP 位址之 SageMaker 端點
- 允許來自
0.0.0.0/0之入站存取之安全群組 - 應限制哪些主體可呼叫端點之遺漏 VPC 端點政策
- 於無驗證下代理至 SageMaker 端點具公開 API Gateway 觸發器之 Lambda 函數
記錄缺口
AWS CloudTrail 記錄 AI 服務 API 呼叫,但許多組織未為 Bedrock 模型呼叫啟用資料事件記錄。無資料事件,提示內容與模型回應未被捕獲,使偵測提示注入攻擊或經模型互動之資料外洩不可能。
相關主題
- Bedrock 攻擊面 —— 詳細 Bedrock 利用技術
- SageMaker 利用 —— SageMaker 攻擊方法論
- 為 AI 服務之 IAM —— 為 AI 之 AWS IAM 模式
- 雲端 AI 安全概觀 —— 跨供應商雲端 AI 安全
於 AWS AI 偵察期間,你發現具資源 '*' 上 'bedrock:*' 政策之 IAM 角色。以下哪項此**不**允許?
為何 AWS AI 偵察應跨多區域而非聚焦於組織之主要區域?
參考資料
- AWS Bedrock 文件 —— 官方 Bedrock 服務文件
- AWS SageMaker 安全 —— SageMaker 安全最佳實務
- AWS AI 服務 IAM 參考 —— 為所有 AWS 服務之 IAM 動作