Guia de auditorias de segurança do SharePoint Online com PowerShell

Este guia abrange auditorias de segurança no SharePoint Online usando PowerShell, abordando práticas recomendadas e cenários comuns.

blog sharepoint-online-security-audits-powershell Thu May 01 2025 02:00:00 GMT+0200 (heure d’été d’Europe centrale) pt techsecuritysharepoint SharePointPowerShellSegurançaAuditoria

Guia de auditorias de segurança do SharePoint Online com PowerShell

Este guia abrange auditorias de segurança no SharePoint Online usando PowerShell, abordando práticas recomendadas e cenários comuns.

Thu May 01 2025
999 palavras · 8 minutos
Article non disponible en Français, affichage en Português.

Índice

Pré-requisitos

Ambiente técnico

  • PowerShell 5.1 ou mais recente
  • Módulo PnP PowerShell instalado
  • Direitos de administrador do SharePoint Online
  • Certificado para autenticação (recomendado)

Permissões requeridas

  • Função de Admin do SharePoint ou Admin Global para alguns relatórios
  • Admin de Coleção de Sites para auditorias em nível de site
  • Compreender as limitações de throttling do SharePoint Online

Considerações de Segurança e Documentação de Estatísticas de Ataques

Visão Geral

Esta documentação descreve preocupações de segurança e estatísticas de vulnerabilidades relacionadas à proteção de dados e incidentes de cibersegurança tanto na França quanto globalmente.

Contexto de Segurança Francês

  • Em 2022, a França relatou 832 incidentes de segurança significativos à ANSSI
  • 73% das empresas francesas sofreram pelo menos um ciberataque
  • Ataques de ransomware aumentaram em 255% em comparação a 2021

Estatísticas Globais

  • Custo médio de uma violação de dados: $4,35M em 2022
  • 83% das organizações experimentaram mais de uma violação de dados
  • Phishing continua sendo o principal vetor de ataque (36% das violações)

Requisitos de Segurança Chave

  1. Criptografia de Dados

    • Criptografia de ponta a ponta
    • Proteção de dados em repouso
    • Gerenciamento seguro de chaves
  2. Controle de Acesso

    • Autenticação multifatorial
    • Controle de acesso baseado em funções
    • Revisões regulares de acesso
  3. Conformidade

    • Conformidade com a GDPR
    • Diretiva NIS2
    • Lei de Proteção de Dados da França

Tendências de Vulnerabilidades

  • Explorações de dia zero aumentaram em 40% em 2022
  • Ataques à cadeia de suprimentos aumentaram em 300%
  • Configurações incorretas de nuvem representam 15% das violações

Medidas de Segurança Recomendadas

  • Auditorias de segurança regulares
  • Treinamento de conscientização de segurança para funcionários
  • Planejamento de resposta a incidentes
  • Monitoramento contínuo
  • Programa de gerenciamento de vulnerabilidades

Referências

  • Relatório Anual ANSSI 2022
  • Relatório IBM sobre Custo de Violação de Dados 2022
  • Verizon DBIR 2022

Análise de Riscos e Soluções

Para compreender a estrutura dos riscos e suas soluções associadas, examinemos o diagrama a seguir que ilustra as interações entre os diferentes componentes de segurança:

Diagram 1 : PnP PowerShell Overview

Diagram 1 : PnP PowerShell Overview

Apresentação dos Componentes

O diagrama acima ilustra três categorias principais de riscos:

  1. Riscos de Acesso - Relacionados a permissões e autenticações
  2. Riscos de Dados - Relacionados à proteção de informações
  3. Riscos de Conformidade - Relativos às obrigações regulatórias

Soluções Implementadas

Para cada categoria de risco, soluções específicas estão em vigor:

  • Controles de acesso automatizados
  • Medidas de proteção de dados
  • Processos de governança documentada

Interações e Dependências

O diagrama mostra como:

  • Os controles alimentam os relatórios de conformidade
  • As soluções se fortalecem mutuamente
  • A rastreabilidade é mantida de ponta a ponta

Cenários de Auditoria Comuns

Auditoria de Permissões

A auditoria regular de permissões é uma obrigação regulatória crítica para:

  • Garantir a conformidade com a GDPR e outras normas (SOX, NIS2)
  • Prevenir vazamentos de dados e acessos não autorizados
  • Manter o princípio do menor privilégio
  • Detectar contas inativas ou obsoletas

Relatórios de Recertificação

As revisões periódicas (trimestrais recomendadas) necessitam:---

  • Uma análise de riscos de segurança:

    • Identificação de acessos privilegiados
    • Detecção de contas em risco
    • Avaliação de permissões excessivas
    • Revisão de acessos externos
  • Uma avaliação de dados sensíveis:

    • Classificação de documentos confidenciais
    • Mapeamento de dados pessoais (GDPR)
    • Verificação de criptografia
    • Controle de retenções
  • Uma análise de riscos empresariais:

    • Impacto na continuidade dos negócios
    • Exposição de dados estratégicos
    • Conformidade regulatória
    • Riscos de reputação
  • Ações corretivas documentadas:

    • Revogação de acessos não justificados
    • Atualização das políticas de segurança
    • Arquivamento ou exclusão de conteúdos
    • Treinamento de usuários

    Ferramentas de auditoria de segurança SharePoint

    Ferramentas Microsoft

    1. Microsoft Purview Security Portal

      • Auditoria nativa
      • Relatórios de conformidade
      • Alertas de segurança
    2. SharePoint Administration Center

      • Relatórios de acesso
      • Análise de uso
      • Gerenciamento de sites

    Ferramentas de terceiros compatíveis

    • AvePoint DocAve
    • Sharegate
    • Quest Security Explorer
    • ManageEngine SharePoint Manager
    • Netwrix Auditor

    Scripts alternativos recomendados

    POWERSHELL
    # Auditoria de permissões simplificadas
    Get-BasicPermissionReport.ps1
    Get-ExternalUserAccess.ps1
    Get-GroupMembershipAudit.ps1
    Get-UniquePermissionItems.ps1
    Get-SiteCollectionAdmins.ps1
    
    # Relatórios de segurança
    Get-SecurityAuditReport.ps1
    Get-ComplianceStatus.ps1
    Get-SharingLinks.ps1
    
    # Monitoramento contínuo
    Start-PermissionMonitoring.ps1
    Start-SecurityAlerts.ps1
    Start-AuditLogging.ps1

    Relatórios automatizados recomendados

    • Relatório semanal de alterações de permissões
    • Relatório mensal de acessos externos
    • Painel trimestral de conformidade
    • Alertas em tempo real sobre mudanças críticas
POWERSHELL
# Relatório completo de permissões para recertificação
function Get-PermissionAuditReport {
    $report = @()
    
    # Análise dos sites
    Get-PnPTenantSite | ForEach-Object {
        Connect-PnPOnline -Url $_.Url -Interactive
        
        # Permissões diretas
        $webPerms = Get-PnPWeb -Includes RoleAssignments | 
            Select-Object -ExpandProperty RoleAssignments |
            Select-Object @{N='Escopo';E={'Site'}}, 
                         @{N='Principal';E={$_.Member.Title}},
                         @{N='Permissão';E={$_.RoleDefinitionBindings.Name}}
        
        # Permissões de lista
        $listPerms = Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments} | ForEach-Object {
            Get-PnPListPermissions -Identity $_.Title | 
            Select-Object @{N='Escopo';E={$_.Title}},
                         @{N='Principal';E={$_.PrincipalName}},
                         @{N='Permissão';E={$_.PermissionLevels}}
        }
        
        $report += $webPerms + $listPerms
    }
    
    return $report | Export-Csv "PermissionAudit_$(Get-Date -Format 'yyyyMMdd').csv"
}

Métricas-chave a serem monitoradas

POWERSHELL
# Análise de riscos relacionados às permissões
function Get-PermissionRiskMetrics {
    # Permissões diretas vs grupos
    $directPerms = Get-PnPUser | Where-Object {$_.IsSiteAdmin -eq $true}
    
    # Contas externas
    $externalUsers = Get-PnPUser | Where-Object {$_.LoginName -like "*ext*"}
    
    # Permissões únicas
    $uniquePerms = Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments}
    
    return @{
        DirectPermCount = $directPerms.Count
        ExternalUserCount = $externalUsers.Count
        UniquePermElements = $uniquePerms.Count
    }
}

Esses relatórios permitem que as equipes:

  • Validem a legitimidade dos acessos
  • Identifiquem anomalias de permissões
  • Documentem as decisões de governança
  • Mantenham uma trilha de auditoria conforme

Auditoria de usuários externos

POWERSHELL
# Pré-requisitos:
# - Módulo ExchangeOnlineManagement instalado: Install-Module -Name ExchangeOnlineManagement
# - Módulo Microsoft.Graph instalado: Install-Module Microsoft.Graph
# - Papéis necessários: Leitor Global ou Administrador de Usuários
Connect-ExchangeOnline
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"

# Lista de usuários externos com acesso
Get-PnPUser | Where-Object {$_.LoginName -like "*ext*"} | 
    Select-Object Title,Email,LoginName | 
    Export-Csv "UsersExternes.csv"

# Lista de convidados AAD
Get-MgUser -Filter "userType eq 'Guest'" | 
    Select-Object DisplayName,Mail,UserPrincipalName |
    Export-Csv "InvitesAAD.csv"

# Lista de compartilhamentos externos Exchange
Get-ExternalInOutlook | 
    Select-Object Identity,DisplayName,EmailAddress |
    Export-Csv "PartageMail.csv"

Disconnect-ExchangeOnline
Disconnect-MgGraph

Relatório destinado às equipes de Segurança e Conformidade

Permissões diretas

POWERSHELL
# Detecção de permissões únicas
$web = Get-PnPWeb
Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments} | ForEach-Object {
    Get-PnPListPermissions -Identity $_.Title
}

Relatório destinado aos Proprietários de sites e Administradores SharePoint

Auditoria de grupos SharePoint

POWERSHELL
# Análise dos membros de grupos
$groups = Get-PnPGroup
foreach($group in $groups) {
    $members = Get-PnPGroupMember -Identity $group.Title
    $members | Select-Object @{N='Grupo';E={$group.Title}}, Title, Email
}

Relatório destinado aos Gestores de sites

Permissões herdadas vs únicas

POWERSHELL
# Identificação dos elementos com permissões únicas
Get-PnPList | ForEach-Object {
    $list = $_
    Get-PnPListItem -List $list.Title -PageSize 500 | 
        Where-Object {$_.HasUniqueRoleAssignments}
}

Relatório destinado aos Administradores SharePoint para a governança

Matriz de acessos

POWERSHELL
# Geração de uma matriz usuários/permissões
Get-PnPWeb -Includes RoleAssignments | ForEach-Object {
    $_.RoleAssignments | Select-Object Member,RoleDefinitionBindings
}

Relatório destinado aos Auditores e equipes de Conformidade

Relatório sobre os sites

---```powershell

Lista dos sites e sua configuração

Get-PnPTenantSite | Select-Object Url,Template,StorageUsage,LastContentModifiedDate

Auditoria das funcionalidades habilitadas

Get-PnPFeature -Scope Site

PLAINTEXT

# Boas práticas

- Utilizar scripts modulares e reutilizáveis
- Documentar os scripts e seus resultados
- Implementar a gestão de erros
- Respeitar os limites de throttling
- Salvar os relatórios de forma segura

# Resolução de problemas

## Problemas comuns
- Erros de autenticação
- Limitações de throttling
- Permissões insuficientes
- Timeout das requisições

## Soluções
- Verificar as permissões e papéis
- Implementar delays entre as requisições
- Usar a paginação para grandes coleções
- Monitorar os logs de erro

Thanks for reading!

Guia de auditorias de segurança do SharePoint Online com PowerShell

Thu May 01 2025
999 mots · 8 minutes