Skip to content
Go back

Falhas no Acesso Condicional

Published:  at  10:00 AM

Monitoramento do Acesso Condicional

As políticas de acesso condicional são fundamentais para implementar Zero Trust, mas falhas na aplicação dessas políticas podem indicar:

Monitorar falhas no acesso condicional é crucial para manter o equilíbrio entre segurança e produtividade.

Consulta de Logs de Sign-in

Para identificar falhas recentes de políticas de acesso condicional:

# Conectar ao Microsoft Graph
Connect-MgGraph -Scopes "AuditLog.Read.All"

# Data de início da consulta (últimos 7 dias)
$startDate = (Get-Date).AddDays(-7).ToString("yyyy-MM-dd")

# Consultar logs de sign-in com falhas de acesso condicional
$filter = "createdDateTime ge $startDate and status/errorCode eq 53000"
$signInLogs = Get-MgAuditLogSignIn -Filter $filter -Top 100

# Analisar resultados
$conditionalAccessFailures = @()
foreach ($log in $signInLogs) {
    foreach ($caResult in $log.ConditionalAccessStatus) {
        if ($caResult -eq "failure") {
            $failureInfo = [PSCustomObject]@{
                UserPrincipalName = $log.UserPrincipalName
                AppDisplayName = $log.AppDisplayName
                ClientAppUsed = $log.ClientAppUsed
                DeviceDetail = $log.DeviceDetail.DisplayName
                IPAddress = $log.IPAddress
                Location = $log.Location.City
                PolicyIds = ($log.AppliedConditionalAccessPolicies | Where-Object { $_.Result -eq "failure" }).Id -join ", "
                PolicyNames = ($log.AppliedConditionalAccessPolicies | Where-Object { $_.Result -eq "failure" }).DisplayName -join ", "
                Timestamp = $log.CreatedDateTime
            }
            $conditionalAccessFailures += $failureInfo
        }
    }
}

# Exibir resultados
$conditionalAccessFailures | Format-Table UserPrincipalName, AppDisplayName, PolicyNames, Timestamp -AutoSize

Análise em Log Analytics

Para análise mais detalhada usando KQL em Log Analytics:

// Falhas de acesso condicional nos últimos 7 dias
SigninLogs
| where TimeGenerated > ago(7d)
| where ResultType == 53000
| extend CAStatus = tostring(ConditionalAccessStatus)
| where CAStatus == "failure"
| extend CAResults = todynamic(ConditionalAccessPolicies)
| mvexpand CAResults
| extend 
    CAResultDetail = tostring(CAResults.result),
    CAPolicyName = tostring(CAResults.displayName),
    CAPolicyId = tostring(CAResults.id)
| where CAResultDetail == "failure"
| project
    TimeGenerated,
    UserPrincipalName,
    AppDisplayName,
    ClientAppUsed,
    DeviceDetail,
    IPAddress,
    Location,
    CAPolicyName,
    CAResultDetail
| order by TimeGenerated desc

Diagnóstico de Problemas Comuns

Para analisar os motivos mais comuns de falhas:

// Agregação por política e motivo da falha
SigninLogs
| where TimeGenerated > ago(7d)
| where ResultType == 53000
| extend CAResults = todynamic(ConditionalAccessPolicies)
| mvexpand CAResults
| extend 
    CAResultDetail = tostring(CAResults.result),
    CAPolicyName = tostring(CAResults.displayName)
| where CAResultDetail == "failure"
| summarize Count = count() by CAPolicyName, AppDisplayName
| sort by Count desc

Remediação e Ajustes

Para ajustar políticas com problemas frequentes:

# Conectar ao Microsoft Graph com permissões adequadas
Connect-MgGraph -Scopes "Policy.Read.All", "Policy.ReadWrite.ConditionalAccess"

# ID da política a ser ajustada
$policyId = "00000000-0000-0000-0000-000000000000"

# Obter a política atual
$policy = Get-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $policyId

# Exemplo: Adicionar exceção para uma aplicação específica
$policy.Conditions.Applications.ExcludeApplications += "app-id-to-exclude"

# Atualizar a política
Update-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $policyId -BodyParameter $policy

Considerações para Revisão de Políticas

Ao revisar e ajustar políticas de acesso condicional, considere:

  1. Análise de Impacto: Quais utilizadores ou grupos são mais afetados pelas falhas?
  2. Padrões Temporais: As falhas ocorrem em horários específicos ou localizações?
  3. Aplicações Problemáticas: Quais aplicações apresentam mais falhas de conformidade?
  4. Dispositivos: Existem tipos específicos de dispositivos que falham consistentemente?
  5. MFA: Se a política exige MFA, os utilizadores têm métodos de autenticação registrados?

Melhores Práticas


Suggest Changes

Previous Post
Métodos de Autenticação nos Logs
Next Post
Administradores Globais