Azure AI 服務安全概觀
為 Azure AI 服務之紅隊方法論,含 Azure OpenAI、Azure ML、AI Studio 與 Cognitive Services:服務列舉、受管身分濫用與攻擊面對應。
Azure AI 服務安全概觀
Microsoft 之 Azure AI 組合結合第一方基礎模型存取(Azure OpenAI Service)、完整 ML 平台(Azure Machine Learning)、整合式開發環境(Azure AI Studio)與專用認知服務。對紅隊員,Azure AI 呈現獨特挑戰因其與 Microsoft Entra ID(先前之 Azure AD)、受管身分與較廣 Microsoft 365 生態系之深度整合。受損之 Azure AI 服務可提供至企業身分、SharePoint 資料與 Microsoft Graph 之樞紐路徑。
服務地景
Azure OpenAI Service
Azure OpenAI 經 Azure 託管端點提供至 OpenAI 模型(GPT-4、GPT-4o、o1、DALL-E、Whisper)之存取,配企業特性:內容過濾、私有網路、受管身分驗證與資料駐留保證。
為紅隊評估之關鍵元件:
| 元件 | 功能 | 攻擊面 |
|---|---|---|
| 部署 | 具特定組態之模型實例 | 模型切換、組態列舉 |
| 內容過濾 | 輸入/輸出安全分類 | 過濾器繞過、門檻探測 |
| 系統訊息 | 應用定義之模型行為 | 系統提示提取 |
| 配置輸送量(PTU) | 專用模型容量 | 成本濫用、錢包拒絕 |
| 於你之資料 | 配 Azure 資料來源之 RAG | 資料來源投毒、存取控制繞過 |
| Prompt Flow | 編排與鏈接 | 流程操弄、工具濫用 |
為詳細 Azure OpenAI 利用,見 Azure OpenAI 攻擊面。
Azure Machine Learning
Azure ML 為 Microsoft 之端到端 ML 平台,可比於 SageMaker。其涵蓋自資料準備經模型訓練、部署與監控之完整生命週期。
| 元件 | 功能 | 攻擊面 |
|---|---|---|
| 工作區 | 含所有 ML 資產之組織單位 | 工作區存取、跨工作區樞紐 |
| 計算實例 | 配 Jupyter 之開發 VM | 憑證竊取、橫向移動 |
| 計算叢集 | 訓練基礎設施 | 計算濫用、訓練資料存取 |
| 線上端點 | 模型服務(受管與 Kubernetes) | 端點暴露、模型提取 |
| 管線 | MLOps 自動化 | 管線投毒、步驟操弄 |
| 資料儲存 | 至 Azure 儲存之連線 | 資料存取、憑證暴露 |
| 模型登錄檔 | 模型版本管理 | 模型竄改、供應鏈攻擊 |
為詳細 Azure ML 利用,見 Azure ML 利用。
Azure AI Studio
AI Studio 為 Microsoft 之為建立 AI 應用之統一開發環境。其於單一體驗整合 Azure OpenAI、Azure ML 與其他 AI 服務。紅隊相關:
- 專案層級權限:AI Studio 專案彙集至多 AI 服務之存取;受損專案可能同時授予至 OpenAI 部署、ML 工作區與連線資料來源之存取
- 中樞與專案模型:AI Studio 使用中樞-輻條架構,其中中樞提供共享資源(計算、連線、部署)至多專案
- 連線管理:AI Studio 儲存至具專案層級存取之任何人可存取之外部服務(API 金鑰、連線字串)之連線
Cognitive Services(遺留與當前)
Azure Cognitive Services(現多重品牌為 Azure AI Services)含:
| 服務 | 紅隊相關 |
|---|---|
| Azure AI Search | RAG 後端;索引投毒影響檢索 |
| Azure AI Content Safety | 內容審核;繞過啟用有害內容 |
| Azure AI Document Intelligence | 文件處理;對抗文件攻擊 |
| Azure AI Speech | 音訊處理;對抗音訊、聲音克隆 |
| Azure AI Vision | 影像分析;對抗影像攻擊 |
| Azure AI Language | NLP 任務;PII 偵測繞過 |
| Azure AI Translator | 翻譯;經語言切換之過濾器繞過 |
驗證與身分
受管身分架構
Azure AI 服務常使用 受管身分 驗證。理解此架構對紅隊員關鍵因受管身分受損授予至身分可達之所有資源之存取。
# 列舉 AI 資源上之受管身分
az ml compute show --name <compute-name> --workspace-name <ws> --resource-group <rg>
# 檢查受管身分指派
az role assignment list --assignee <managed-identity-object-id> --all
# 自受損計算實例,取得受管身分 token
curl -H "Metadata: true" \
"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"API 金鑰 vs. Entra ID 驗證
Azure OpenAI 支援 API 金鑰與 Entra ID(token 基)驗證兩者。金鑰基驗證較簡但較不安全:
| 驗證 | 安全姿態 | 紅隊方法 |
|---|---|---|
| API 金鑰 | 靜態憑證、跨使用者共享 | 自組態、環境變數、金鑰保管庫之金鑰提取 |
| Entra ID token | 動態、有範圍、可稽核 | 自受管身分之 token 竊取、服務主體受損 |
列舉與偵察
發現 Azure AI 資源
# 列出 Azure OpenAI 帳戶
az cognitiveservices account list --query "[?kind=='OpenAI']" -o table
# 列出 Azure OpenAI 帳戶內之部署
az cognitiveservices account deployment list \
--name <account-name> --resource-group <rg> -o table
# 列出 Azure ML 工作區
az ml workspace list -o table
# 列出工作區中之計算實例
az ml compute list --workspace-name <ws> --resource-group <rg> --type ComputeInstance
# 列出線上端點
az ml online-endpoint list --workspace-name <ws> --resource-group <rg>
# 列出 AI Studio 中樞與專案
az ml workspace list --query "[?kind=='Hub' || kind=='Project']" -o table
# 檢查 Cognitive Services 帳戶
az cognitiveservices account list -o tableRBAC 分析
為 AI 服務之 Azure RBAC 角色:
| 角色 | 範圍 | 風險 |
|---|---|---|
Cognitive Services OpenAI User | 可呼叫模型 | 提示注入、成本濫用 |
Cognitive Services OpenAI Contributor | 可管理部署 | 模型組態變更 |
Cognitive Services Contributor | 完整 Cognitive Services 管理 | 所有 AI 服務管理 |
AzureML Compute Operator | 管理 ML 計算 | 計算實例存取 |
AzureML Data Scientist | 執行實驗、管理模型 | 訓練與部署存取 |
於資源群組之 Owner / Contributor | 完整資源管理 | 所有含身分管理之一切 |
# 列出 AI 資源之角色指派
az role assignment list --scope /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.CognitiveServices/accounts/<name>
# 檢查誰具 OpenAI 存取
az role assignment list --role "Cognitive Services OpenAI User" --all -o table常見組態錯誤
網路暴露
Azure AI 服務支援私有端點與虛擬網路整合,但許多部署保持公開可存取:
- 啟用公開網路存取:無 IP 限制自網際網路可存取之 Azure OpenAI 帳戶
- 遺漏私有端點:於連 VNet 架構中無私有端點連線之 AI 服務
- 過度寬鬆之網路 ACL:含廣 CIDR 範圍或
0.0.0.0/0之 IP 允許清單
# 檢查網路組態
az cognitiveservices account show --name <name> --resource-group <rg> \
--query "{publicAccess:properties.publicNetworkAccess, networkRules:properties.networkAcls}"資料駐留違規
Azure OpenAI 部署於資源部署區域處理資料。然而:
- 內容過濾可能於不同區域處理資料(檢查濫用監控組態)
- 「於你之資料」特性可能存取其他區域之資料來源
- 支援 RAG 之 Azure AI Search 索引可能於與 OpenAI 資源不同之區域
診斷設定缺口
Azure 診斷設定控制 AI 服務之記錄。遺漏或不完整之診斷設定意味:
- 模型呼叫未被記錄(無提示/回應稽核軌跡)
- 內容過濾觸發未被記錄
- 驗證失敗未被捕獲
相關主題
- Azure OpenAI 攻擊面 —— 詳細 Azure OpenAI 利用
- Azure ML 利用 —— Azure ML 攻擊方法論
- Defender for AI 繞過 —— 逃避 Microsoft 之 AI 安全監控
- 雲端 AI 安全概觀 —— 跨供應商比較
Azure OpenAI 部署使用 API 金鑰驗證。紅隊員應首先於何處尋找 API 金鑰?
相較於其他雲端 AI 平台,什麼使 Azure AI 對橫向移動特別有趣?
參考資料
- Azure OpenAI 安全文件 —— 驗證與安全
- Azure ML 安全 —— 企業安全概觀
- 為 Cognitive Services 之 Azure RBAC —— 角色基存取控制