Руководство по аудиту безопасности SharePoint Online с PowerShell

Это руководство охватывает ключевые аспекты аудита безопасности SharePoint Online с использованием PowerShell, включая требования и лучшие практики.

blog sharepoint-online-security-audits-powershell ru SharePointбезопасностьPowerShellаудит

Руководство по аудиту безопасности SharePoint Online с PowerShell

Это руководство охватывает ключевые аспекты аудита безопасности SharePoint Online с использованием PowerShell, включая требования и лучшие практики.

822 слов · 7 минут

Оглавление

Предварительные требования

Техническая среда

  • PowerShell 5.1 или более поздняя версия
  • Установленный модуль PnP PowerShell
  • Права администратора SharePoint Online
  • Сертификат для аутентификации (рекомендуется)

Требования к разрешениям

  • Роль администратора SharePoint или глобального администратора для некоторых отчетов
  • Администратор коллекции сайтов для аудита на уровне сайта
  • Понимание ограничений ограничения SharePoint Online

Документация по вопросам безопасности и статистике атак

Обзор

Данная документация описывает проблемы безопасности и статистику уязвимостей, относящихся к защите данных и инцидентам кибербезопасности как во Франции, так и в мире.

Контекст безопасности во Франции

  • В 2022 году Франция сообщила о 832 крупных инцидентах безопасности ANSSI
  • 73% французских компаний испытали как минимум одну кибератаку
  • Атаки с использованием программ-вымогателей увеличились на 255% по сравнению с 2021 годом

Глобальная статистика

  • Средняя стоимость утечки данных: $4.35M в 2022 году
  • 83% организаций испытали более одной утечки данных
  • Фишинг остается главным вектором атак (36% утечек)

Основные требования к безопасности

  1. Шифрование данных

    • Сквозное шифрование
    • Защита данных на хранении
    • Безопасное управление ключами
  2. Контроль доступа

    • Многофакторная аутентификация
    • Контроль доступа на основе ролей
    • Регулярные проверки доступа
  3. Соответствие

    • Соответствие GDPR
    • Директива NIS2
    • Закон о защите данных во Франции

Тенденции уязвимостей

  • Увеличение эксплуатации уязвимостей нулевого дня на 40% в 2022 году
  • Атаки на цепочку поставок увеличились на 300%
  • Неправильная конфигурация в облаке составляет 15% утечек

Рекомендуемые меры безопасности

  • Регулярные аудиты безопасности
  • Обучение сотрудников по вопросам безопасности
  • Планирование реагирования на инциденты
  • Непрерывный мониторинг
  • Программа управления уязвимостями

Ссылки

  • Годовой отчет ANSSI 2022
  • Отчет IBM о стоимости утечки данных 2022
  • Verizon DBIR 2022

Анализ рисков и решения

Чтобы понять структуру рисков и связанные с ними решения, рассмотрим следующую диаграмму, которая иллюстрирует взаимодействия между различными компонентами безопасности :

Diagram 1 : PnP PowerShell Overview

Diagram 1 : PnP PowerShell Overview

Представление компонентов

Диаграмма выше иллюстрирует три основные категории рисков:

  1. Риски Доступа - Связанные с разрешениями и аутентификацией
  2. Риски Данных - Касаются защиты информации
  3. Риски Соответствия - Относятся к нормативным обязательствам

Реализованные решения

Для каждой категории риска реализованы конкретные решения:

  • Автоматизированные контроли доступа
  • Меры защиты данных
  • Процессы документированного управления

Взаимодействия и зависимости

Схема демонстрирует, как:

  • Контроли поддерживают отчеты о соответствии
  • Решения взаимно усиливают друг друга
  • Отслеживаемость поддерживается на каждом этапе

Распространенные сценарии аудита

Аудит разрешений

Регулярный аудит разрешений является критически важным нормативным требованием для:

  • Обеспечения соответствия GDPR и другим стандартам (SOX, NIS2)
  • Предотвращения утечек данных и несанкционированного доступа
  • Поддержания принципа минимальных привилегий
  • Выявления спящих или устаревших аккаунтов

Отчеты о переквалификации

Периодические проверки (рекомендуется каждые три месяца) требуют:---

  • Анализ рисков безопасности:

    • Идентификация привилегированных доступов
    • Обнаружение рисковых учетных записей
    • Оценка избыточных разрешений
    • Обзор внешних доступов
  • Оценка конфиденциальных данных:

    • Классификация конфиденциальных документов
    • Картирование персональных данных (GDPR)
    • Проверка шифрования
    • Контроль сроков хранения
  • Анализ рисков для бизнеса:

    • Влияние на непрерывность бизнеса
    • Экспозиция стратегических данных
    • Соответствие требованиям законодательства
    • Репутационные риски
  • Документированные корректирующие действия:

    • Отзыв необоснованных доступов
    • Обновление политик безопасности
    • Архивирование или удаление содержимого
    • Обучение пользователей

    Инструменты аудита безопасности SharePoint

    Инструменты Microsoft

    1. Портал безопасности Microsoft Purview

      • Нативный аудит
      • Отчеты о соответствии
      • Предупреждения о безопасности
    2. Центр администрирования SharePoint

      • Отчеты о доступе
      • Анализ использования
      • Управление сайтами

    Совместимые сторонние инструменты

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

    Рекомендуемые альтернативные скрипты

    POWERSHELL
    # Упрощенный аудит разрешений
    Get-BasicPermissionReport.ps1
    Get-ExternalUserAccess.ps1
    Get-GroupMembershipAudit.ps1
    Get-UniquePermissionItems.ps1
    Get-SiteCollectionAdmins.ps1
    
    # Отчеты о безопасности
    Get-SecurityAuditReport.ps1
    Get-ComplianceStatus.ps1
    Get-SharingLinks.ps1
    
    # Непрерывный мониторинг
    Start-PermissionMonitoring.ps1
    Start-SecurityAlerts.ps1
    Start-AuditLogging.ps1

    Рекомендуемые автоматизированные отчеты

    • Еженедельный отчет об изменениях разрешений
    • Ежемесячный отчет о внешних доступах
    • Ежеквартальная панель соответствия
    • Реальные предупреждения о критических изменениях
POWERSHELL
# Полный отчет о разрешениях для повторной сертификации
function Get-PermissionAuditReport {
    $report = @()
    
    # Анализ сайтов
    Get-PnPTenantSite | ForEach-Object {
        Connect-PnPOnline -Url $_.Url -Interactive
        
        # Прямые разрешения
        $webPerms = Get-PnPWeb -Includes RoleAssignments | 
            Select-Object -ExpandProperty RoleAssignments |
            Select-Object @{N='Scope';E={'Site'}}, 
                         @{N='Principal';E={$_.Member.Title}},
                         @{N='Permission';E={$_.RoleDefinitionBindings.Name}}
        
        # Разрешения списка
        $listPerms = Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments} | ForEach-Object {
            Get-PnPListPermissions -Identity $_.Title | 
            Select-Object @{N='Scope';E={$_.Title}},
                         @{N='Principal';E={$_.PrincipalName}},
                         @{N='Permission';E={$_.PermissionLevels}}
        }
        
        $report += $webPerms + $listPerms
    }
    
    return $report | Export-Csv "PermissionAudit_$(Get-Date -Format 'yyyyMMdd').csv"
}

Ключевые метрики для мониторинга

POWERSHELL
# Анализ рисков, связанных с разрешениями
function Get-PermissionRiskMetrics {
    # Прямые разрешения против групп
    $directPerms = Get-PnPUser | Where-Object {$_.IsSiteAdmin -eq $true}
    
    # Внешние учетные записи
    $externalUsers = Get-PnPUser | Where-Object {$_.LoginName -like "*ext*"}
    
    # Уникальные разрешения
    $uniquePerms = Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments}
    
    return @{
        DirectPermCount = $directPerms.Count
        ExternalUserCount = $externalUsers.Count
        UniquePermElements = $uniquePerms.Count
    }
}

Эти отчеты позволяют командам:

  • Подтвердить легитимность доступов
  • Идентифицировать аномалии в разрешениях
  • Документировать рекомендации по управлению
  • Поддерживать соответствующий журнал аудита

Аудит внешних пользователей

POWERSHELL
# Предварительные условия:
# - Модуль ExchangeOnlineManagement установлен: Install-Module -Name ExchangeOnlineManagement
# - Модуль Microsoft.Graph установлен: Install-Module Microsoft.Graph
# - Необходимые роли: Global Reader или User Administrator
Connect-ExchangeOnline
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"

# Список внешних пользователей с доступом
Get-PnPUser | Where-Object {$_.LoginName -like "*ext*"} | 
    Select-Object Title,Email,LoginName | 
    Export-Csv "UsersExternes.csv"

# Список приглашенных AAD
Get-MgUser -Filter "userType eq 'Guest'" | 
    Select-Object DisplayName,Mail,UserPrincipalName |
    Export-Csv "InvitesAAD.csv"

# Список внешних обменов Exchange
Get-ExternalInOutlook | 
    Select-Object Identity,DisplayName,EmailAddress |
    Export-Csv "PartageMail.csv"

Disconnect-ExchangeOnline
Disconnect-MgGraph

Отчет предназначен для команд безопасности и соблюдения

Прямые разрешения

POWERSHELL
# Обнаружение уникальных разрешений
$web = Get-PnPWeb
Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments} | ForEach-Object {
    Get-PnPListPermissions -Identity $_.Title
}

Отчет предназначен для владельцев сайтов и администраторов SharePoint

Аудит групп SharePoint

POWERSHELL
# Анализ участников групп
$groups = Get-PnPGroup
foreach($group in $groups) {
    $members = Get-PnPGroupMember -Identity $group.Title
    $members | Select-Object @{N='Группа';E={$group.Title}}, Title, Email
}

Отчет предназначен для менеджеров сайтов

Унаследованные против уникальных разрешений

POWERSHELL
# Идентификация элементов с уникальными разрешениями
Get-PnPList | ForEach-Object {
    $list = $_
    Get-PnPListItem -List $list.Title -PageSize 500 | 
        Where-Object {$_.HasUniqueRoleAssignments}
}

Отчет предназначен для администраторов SharePoint для управления

Матрица доступа

POWERSHELL
# Генерация матрицы пользователей/разрешений
Get-PnPWeb -Includes RoleAssignments | ForEach-Object {
    $_.RoleAssignments | Select-Object Member,RoleDefinitionBindings
}

Отчет предназначен для аудиторов и команд соблюдения

Отчеты по сайтам

POWERSHELL
# Список сайтов и их конфигурация
Get-PnPTenantSite | Select-Object Url,Template,StorageUsage,LastContentModifiedDate

# Аудит включенных функций
Get-PnPFeature -Scope Site

Лучшие практики

  • Использовать модульные и многоразовые скрипты
  • Документировать скрипты и их результаты
  • Реализовать обработку ошибок
  • Соблюдать ограничения по скорости
  • Безопасно сохранять отчеты

Решение проблем

Общие проблемы

  • Ошибки аутентификации
  • Ограничения по скорости
  • Недостаточные разрешения
  • Таймаут запросов

Решения

  • Проверить разрешения и роли
  • Реализовать задержки между запросами
  • Использовать постраничный вывод для больших коллекций
  • Мониторить журналы ошибок

Thanks for reading!

Руководство по аудиту безопасности SharePoint Online с PowerShell

822 слов · 7 минут