Pular para o conteúdo principal

Desafio 31: Segurança de IA – Monitoramento do Dashboard de Segurança de Dados e IA

Habilidades do exame cobertas

  • Navegar e interpretar o dashboard de Data and AI Security no Defender for Cloud
  • Monitorar a postura de segurança de cargas de trabalho de IA no Microsoft 365 e Azure
  • Investigar alertas e recomendações de segurança específicos de IA
  • Correlacionar sinais de segurança de IA entre Purview, Defender e Entra ID
  • Configurar workbooks personalizados e alertas para métricas de segurança de IA

Cenário

A Contoso Ltd implantou cargas de trabalho de IA através do Microsoft 365 Copilot (5.000 usuários), Azure AI Foundry (3 modelos em produção) e 12 agentes do Copilot Studio. O CISO solicitou uma capacidade de monitoramento de segurança unificada que forneça visibilidade sobre ameaças relacionadas a IA, riscos de exposição de dados, conteúdo compartilhado em excesso acessado por IA e anomalias de autenticação de agentes. Você deve configurar e operacionalizar o dashboard de Data and AI Security.


Pré-requisitos

  • 🔒 Licença necessária: Microsoft 365 E5 + Defender for Cloud (plano Defender CSPM)
  • Função de Security Administrator ou Security Reader
  • Acesso ao portal do Microsoft Defender for Cloud
  • Acesso ao portal do Microsoft Purview
  • Azure Monitor / workspace do Log Analytics configurado

Tarefa 1: Acessar e explorar o dashboard de Data and AI Security

Navegue até o dashboard unificado de monitoramento de segurança de IA.

  1. Navegue até Microsoft Defender for CloudWorkload protections
  2. Selecione Data and AI Security na navegação à esquerda
  3. Revise as seções do dashboard:
    • AI Security Posture: Score geral de saúde para cargas de trabalho de IA
    • Active Threats: Detecções de ameaças específicas de IA atuais
    • Data Exposure Risks: Conteúdo compartilhado em excesso acessível por IA
    • Agent Activity: Monitoramento do Copilot Studio e agentes personalizados
    • Recommendations: Melhorias de segurança priorizadas
# Verify Defender for Cloud plans are enabled for AI monitoring
az security pricing list --query "[?name=='AI' || name=='CloudPosture']" --output table

# Check if AI security assessments are running
az security assessment list \
--query "[?contains(displayName, 'AI') || contains(displayName, 'Copilot')]" \
--output table

Tarefa 2: Configurar avaliações de postura de segurança de IA

Habilite e revise recomendações de segurança específicas para cargas de trabalho de IA.

# List AI-related security recommendations
az security assessment list \
--query "[?contains(displayName, 'AI') || contains(displayName, 'cognitive') || contains(displayName, 'OpenAI')]" \
--output json | jq '.[].{name: .displayName, status: .status.code, severity: .metadata.severity}'

# Common AI security recommendations to address:
# - "Azure AI services should restrict network access"
# - "Azure AI services should have key access disabled"
# - "Azure AI services should use private link"
# - "Diagnostic logs in AI services should be enabled"

# Remediate: Restrict network access to Azure OpenAI
az cognitiveservices account update \
--name "contoso-openai-prod" \
--resource-group "rg-contoso-ai-security" \
--public-network-access "Disabled"

# Remediate: Disable local (key) authentication
az cognitiveservices account update \
--name "contoso-openai-prod" \
--resource-group "rg-contoso-ai-security" \
--disable-local-auth true

# Remediate: Enable diagnostic logging
az monitor diagnostic-settings create \
--name "ai-service-diagnostics" \
--resource "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.CognitiveServices/accounts/contoso-openai-prod" \
--workspace "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.OperationalInsights/workspaces/law-contoso-security" \
--logs '[{"category": "Audit", "enabled": true}, {"category": "RequestResponse", "enabled": true}, {"category": "Trace", "enabled": true}]' \
--metrics '[{"category": "AllMetrics", "enabled": true}]'

Tarefa 3: Monitorar detecções de ameaças de IA

Revise e investigue alertas ativos de segurança de IA do dashboard.

  1. No dashboard Data and AI Security → painel Active Threats
  2. Revise as categorias de alertas:
    • Prompt Injection Detected: Tentativas de manipular modelos de IA
    • Sensitive Data in AI Response: PII ou segredos nas saídas do modelo
    • Anomalous Token Consumption: Potencial wallet abuse
    • Unauthorized Agent Authentication: Comprometimento de identidade do agente
    • Data Exfiltration via AI: Copilot usado para extrair grandes volumes de dados
# Query Defender alerts specific to AI workloads
az security alert list \
--query "[?contains(alertType, 'AI') || contains(alertType, 'Cognitive')]" \
--output json | jq '.[] | {
alertType: .alertType,
severity: .severity,
status: .status,
description: .description,
detectedTime: .timeGeneratedUtc,
affectedResource: .compromisedEntity
}'

# Get detailed investigation data for a specific alert
az security alert show \
--name "{alert-id}" \
--location "centralus" \
--query "{type: .alertType, entities: .entities, remediation: .remediationSteps}"

Tarefa 4: Criar workbooks de monitoramento personalizados para segurança de IA

Construa workbooks do Azure Monitor para rastrear KPIs específicos de segurança de IA.

# Create Log Analytics workspace for AI security monitoring
az monitor log-analytics workspace create \
--resource-group "rg-contoso-ai-security" \
--workspace-name "law-ai-security-monitoring" \
--location "eastus"

WORKSPACE_ID=$(az monitor log-analytics workspace show \
--resource-group "rg-contoso-ai-security" \
--workspace-name "law-ai-security-monitoring" \
--query "customerId" -o tsv)

Crie consultas KQL para o workbook:

// AI Model Usage with Safety Events
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.COGNITIVESERVICES"
| where Category == "RequestResponse"
| extend promptTokens = toint(properties_s.promptTokens)
| extend completionTokens = toint(properties_s.completionTokens)
| extend isFiltered = properties_s contains "content_filter"
| summarize
TotalRequests = count(),
FilteredRequests = countif(isFiltered),
TotalPromptTokens = sum(promptTokens),
TotalCompletionTokens = sum(completionTokens)
by bin(TimeGenerated, 1h), Resource
| render timechart
// Prompt Injection Attempts Over Time
SecurityAlert
| where AlertType contains "AI" or AlertType contains "PromptInjection"
| summarize AttemptCount = count() by bin(TimeGenerated, 1h), AlertSeverity
| render barchart
// Copilot Usage and Data Access Patterns
OfficeActivity
| where Operation contains "Copilot"
| extend DataSource = tostring(parse_json(ModifiedProperties)[0].NewValue)
| summarize
InteractionCount = count(),
UniqueUsers = dcount(UserId),
DataSourcesAccessed = dcount(DataSource)
by bin(TimeGenerated, 1d)
| render timechart
// Agent Authentication Anomalies
AADServicePrincipalSignInLogs
| where AppDisplayName contains "Agent" or Tags contains "AIAgent"
| extend RiskLevel = tostring(RiskLevelDuringSignIn)
| where RiskLevel != "none"
| project TimeGenerated, AppDisplayName, IPAddress, Location, RiskLevel, Status
| order by TimeGenerated desc

Tarefa 5: Configurar alertas de correlação de sinais cruzados

Crie alertas que correlacionam sinais de múltiplas fontes de segurança de IA.

# Alert: Data overexposure + Copilot access = High risk
az monitor scheduled-query create \
--name "ai-data-overexposure-copilot-access" \
--resource-group "rg-contoso-ai-security" \
--scopes "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.OperationalInsights/workspaces/law-ai-security-monitoring" \
--condition "count 'OfficeActivity | where Operation contains \"Copilot\" and SiteUrl has_any (\"HRConfidential\", \"Finance-MA\", \"ExecutiveComp\")' > 10" \
--window-size "PT15M" \
--evaluation-frequency "PT5M" \
--severity 1 \
--description "Copilot accessing sensitive overexposed sites"

# Alert: Multiple jailbreak attempts from same source
az monitor scheduled-query create \
--name "repeated-jailbreak-attempts" \
--resource-group "rg-contoso-ai-security" \
--scopes "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.OperationalInsights/workspaces/law-ai-security-monitoring" \
--condition "count 'AzureDiagnostics | where ResourceProvider == \"MICROSOFT.COGNITIVESERVICES\" and resultSignature_d == 400 | summarize count() by CallerIPAddress | where count_ > 20' > 0" \
--window-size "PT10M" \
--evaluation-frequency "PT5M" \
--severity 2 \
--description "Repeated prompt injection attempts detected"

# Alert: Agent accessing data outside normal hours
az monitor scheduled-query create \
--name "agent-offhours-access" \
--resource-group "rg-contoso-ai-security" \
--scopes "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.OperationalInsights/workspaces/law-ai-security-monitoring" \
--condition "count 'AADServicePrincipalSignInLogs | where Tags contains \"AIAgent\" and hourofday(TimeGenerated) !between (6 .. 22)' > 5" \
--window-size "PT1H" \
--evaluation-frequency "PT15M" \
--severity 3 \
--description "AI agent authenticating outside business hours"

Tarefa 6: Gerar relatórios de postura de segurança de IA

Crie relatórios automatizados para métricas de segurança de IA.

# Create a Logic App for weekly AI security report
az logic workflow create \
--resource-group "rg-contoso-ai-security" \
--name "ai-security-weekly-report" \
--location "eastus" \
--definition '{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json",
"triggers": {
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {"weekDays": ["Monday"], "hours": ["8"]}
}
}
},
"actions": {}
}
}'

Revise as métricas-chave do dashboard semanalmente:

MétricaAlvoLimite de Alerta
Tentativas de prompt injection/dia< 10> 50
Bloqueios de filtro de conteúdo/diaBaseline ±20%> 200% de aumento
Variação de consumo de tokens< 30% do baseline> 100% de pico
Falhas de autenticação de agentes< 5/dia> 20/dia
Dados sensíveis em respostas0Qualquer ocorrência
Sites compartilhados em excesso com acesso ao CopilotTendência de quedaQualquer aumento
Alertas de alta severidade não resolvidos0> 3 não resolvidos por 24h

Quebre & Conserte

Cenário 1: Dashboard de segurança de IA não mostra dados apesar de cargas de trabalho de IA ativas

O dashboard de Data and AI Security no Defender for Cloud mostra "No data available" mesmo que a Contoso tenha implantações ativas do Azure OpenAI e M365 Copilot em uso.

Mostrar solução
# 1. Verify Defender for Cloud plans are enabled
az security pricing show --name "AI" --query "pricingTier"
# Must show "Standard" not "Free"

az security pricing show --name "CloudPosture" --query "pricingTier"
# Defender CSPM must be Standard for the dashboard

# 2. Enable Defender for AI if not active
az security pricing create --name "AI" --tier "Standard"

# 3. Check diagnostic settings on AI resources
az monitor diagnostic-settings list \
--resource "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.CognitiveServices/accounts/contoso-openai-prod"
# Must have Audit and RequestResponse categories enabled

# 4. Enable diagnostic settings if missing
az monitor diagnostic-settings create \
--name "ai-diagnostics" \
--resource "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.CognitiveServices/accounts/contoso-openai-prod" \
--workspace "/subscriptions/{sub-id}/resourceGroups/rg-contoso-ai-security/providers/Microsoft.OperationalInsights/workspaces/law-ai-security-monitoring" \
--logs '[{"category": "Audit", "enabled": true}, {"category": "RequestResponse", "enabled": true}]' \
--metrics '[{"category": "AllMetrics", "enabled": true}]'

# 5. For M365 Copilot visibility, ensure Purview audit logging is enabled
# Navigate to Purview > Audit > Verify "Start recording user and admin activity" is ON
# Data may take 24-48 hours to populate after enabling

# 6. Verify Log Analytics workspace is in a supported region
az monitor log-analytics workspace show \
--resource-group "rg-contoso-ai-security" \
--workspace-name "law-ai-security-monitoring" \
--query "location"

Cenário 2: Fadiga de alertas por alertas excessivos de IA de baixa severidade

A equipe de segurança está recebendo mais de 200 alertas por dia de cargas de trabalho de IA, a maioria dos quais são falsos positivos de gatilhos de filtros de conteúdo em consultas legítimas de negócios.

Mostrar solução
# 1. Analyze alert patterns to identify false positive sources
az security alert list \
--query "[?contains(alertType, 'AI')]" \
--output json | jq 'group_by(.alertType) | map({type: .[0].alertType, count: length, severity: .[0].severity})'

# 2. Tune alert thresholds for scheduled queries
# Increase the threshold for repeated attempts
az monitor scheduled-query update \
--name "repeated-jailbreak-attempts" \
--resource-group "rg-contoso-ai-security" \
--condition "count 'AzureDiagnostics | where ResourceProvider == \"MICROSOFT.COGNITIVESERVICES\" and resultSignature_d == 400 | summarize count() by CallerIPAddress | where count_ > 50' > 0"

# 3. Create suppression rules for known false positive patterns
# Navigate to Defender for Cloud > Security alerts > Suppression rules
# Add rule: Suppress "ContentFilter" alerts from internal test IPs
# Add rule: Suppress low-severity alerts from dev/test environments

# 4. Implement alert tiering - only notify on High and Critical
az monitor action-group update \
--name "AI-Security-Response" \
--resource-group "rg-contoso-ai-security" \
--short-name "AISec"
# Configure separate action groups per severity

# 5. Create a summary digest instead of individual notifications
# Use Logic App to aggregate alerts and send daily digest

Verificação de Conhecimento

1. Qual plano do Defender for Cloud deve ser habilitado para acessar o dashboard de Data and AI Security?

2. Qual combinação de sinais indica o incidente de segurança de IA de mais alta prioridade?

3. Qual é a abordagem recomendada para reduzir a fadiga de alertas do monitoramento de segurança de IA?

Limpeza

# Delete monitoring resources
az monitor scheduled-query delete --name "ai-data-overexposure-copilot-access" --resource-group "rg-contoso-ai-security" --yes
az monitor scheduled-query delete --name "repeated-jailbreak-attempts" --resource-group "rg-contoso-ai-security" --yes
az monitor scheduled-query delete --name "agent-offhours-access" --resource-group "rg-contoso-ai-security" --yes
az logic workflow delete --name "ai-security-weekly-report" --resource-group "rg-contoso-ai-security" --yes

# Delete resource group
az group delete --name "rg-contoso-ai-security" --yes --no-wait