Índice
Gerenciamento de Riscos de Usuários
O Microsoft Entra ID Identity Protection identifica contas potencialmente comprometidas baseado em indicadores de risco como:
- Padrões de login anômalos
- Movimentação geográfica impossível
- Endereços IP suspeitos
- Detecção de malware
- Vazamento de credenciais
Quando um utilizador é sinalizado como de alto risco, a equipe de segurança deve investigar e confirmar se a conta foi efetivamente comprometida.
Fluxo de Trabalho de Confirmação
Para confirmar um utilizador como comprometido:
- Investigar os alertas e incidentes relacionados
- Validar se os sinais indicam compromisso real
- Marcar o utilizador como comprometido
- Implementar ações corretivas
- Redefinir o risco após mitigação
Confirmação via Microsoft Graph
Para confirmar um utilizador como comprometido:
# Conectar ao Microsoft Graph
Connect-MgGraph -Scopes "IdentityRiskyUser.ReadWrite.All"
# ID do utilizador a confirmar como comprometido
$userId = "00000000-0000-0000-0000-000000000000"
# Corpo da requisição
$confirmCompromisedRequest = @{
userIds = @($userId)
}
# Confirmar utilizador comprometido
Invoke-MgGraphRequest -Method Post -Uri "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/confirmCompromised" -Body $confirmCompromisedRequest | Out-Null
Write-Output "Utilizador confirmado como comprometido."
Remediação Automatizada
Script para automatizar a remediação de um utilizador comprometido:
# Conectar ao Microsoft Graph com permissões necessárias
Connect-MgGraph -Scopes "IdentityRiskyUser.ReadWrite.All", "User.ReadWrite.All"
function Remediate-CompromisedUser {
param (
[Parameter(Mandatory = $true)]
[string]$UserId,
[Parameter(Mandatory = $false)]
[bool]$BlockSignIn = $true,
[Parameter(Mandatory = $false)]
[bool]$ResetPassword = $true
)
# 1. Confirmar utilizador como comprometido
$confirmCompromisedRequest = @{
userIds = @($UserId)
}
Invoke-MgGraphRequest -Method Post -Uri "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/confirmCompromised" -Body $confirmCompromisedRequest | Out-Null
# 2. Bloquear o sign-in, se solicitado
if ($BlockSignIn) {
Update-MgUser -UserId $UserId -AccountEnabled:$false
Write-Output "Sign-in bloqueado para o utilizador."
}
# 3. Redefinir a senha, se solicitado
if ($ResetPassword) {
$temporaryPassword = [System.Web.Security.Membership]::GeneratePassword(16, 3)
# Redefinir a senha e forçar alteração no próximo login
Update-MgUserPassword -UserId $UserId -PasswordProfile @{
ForceChangePasswordNextSignIn = $true
Password = $temporaryPassword
}
Write-Output "Senha redefinida para o utilizador. Senha temporária: $temporaryPassword"
}
Write-Output "Remediação completa para o utilizador ID: $UserId"
}
# Exemplo de uso
Remediate-CompromisedUser -UserId "00000000-0000-0000-0000-000000000000" -BlockSignIn $true -ResetPassword $true
Restabelecimento de Utilizador
Após a investigação e remediação, o utilizador pode ser restabelecido:
# Habilitar o utilizador novamente
Update-MgUser -UserId $userId -AccountEnabled:$true
# Redefinir o nível de risco
$dismissRequest = @{
userIds = @($userId)
}
Invoke-MgGraphRequest -Method Post -Uri "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss" -Body $dismissRequest | Out-Null
Write-Output "Utilizador restabelecido e risco redefinido."
Melhores Práticas
- Implemente um processo documentado para investigação de utilizadores de alto risco
- Configure políticas de acesso condicional baseadas em risco do utilizador
- Exija autenticação multifator para redefinir o risco de utilizadores
- Mantenha um registo detalhado de todos os incidentes de compromisso
- Analise periodicamente os padrões de utilizadores comprometidos para melhorar defesas
- Forneça treinamento de conscientização sobre phishing e segurança para utilizadores identificados como alvos frequentes