Оглавление
Предварительные требования
Техническая среда
- PowerShell 5.1 или более поздняя версия
- Установленный модуль PnP PowerShell
- Права администратора SharePoint Online
- Сертификат для аутентификации (рекомендуется)
Требования к разрешениям
- Роль администратора SharePoint или глобального администратора для некоторых отчетов
- Администратор коллекции сайтов для аудита на уровне сайта
- Понимание ограничений ограничения SharePoint Online
Документация по вопросам безопасности и статистике атак
Обзор
Данная документация описывает проблемы безопасности и статистику уязвимостей, относящихся к защите данных и инцидентам кибербезопасности как во Франции, так и в мире.
Контекст безопасности во Франции
- В 2022 году Франция сообщила о 832 крупных инцидентах безопасности ANSSI
- 73% французских компаний испытали как минимум одну кибератаку
- Атаки с использованием программ-вымогателей увеличились на 255% по сравнению с 2021 годом
Глобальная статистика
- Средняя стоимость утечки данных: $4.35M в 2022 году
- 83% организаций испытали более одной утечки данных
- Фишинг остается главным вектором атак (36% утечек)
Основные требования к безопасности
Шифрование данных
- Сквозное шифрование
- Защита данных на хранении
- Безопасное управление ключами
Контроль доступа
- Многофакторная аутентификация
- Контроль доступа на основе ролей
- Регулярные проверки доступа
Соответствие
- Соответствие GDPR
- Директива NIS2
- Закон о защите данных во Франции
Тенденции уязвимостей
- Увеличение эксплуатации уязвимостей нулевого дня на 40% в 2022 году
- Атаки на цепочку поставок увеличились на 300%
- Неправильная конфигурация в облаке составляет 15% утечек
Рекомендуемые меры безопасности
- Регулярные аудиты безопасности
- Обучение сотрудников по вопросам безопасности
- Планирование реагирования на инциденты
- Непрерывный мониторинг
- Программа управления уязвимостями
Ссылки
- Годовой отчет ANSSI 2022
- Отчет IBM о стоимости утечки данных 2022
- Verizon DBIR 2022
Анализ рисков и решения
Чтобы понять структуру рисков и связанные с ними решения, рассмотрим следующую диаграмму, которая иллюстрирует взаимодействия между различными компонентами безопасности :
Diagram 1 : PnP PowerShell Overview
Представление компонентов
Диаграмма выше иллюстрирует три основные категории рисков:
- Риски Доступа - Связанные с разрешениями и аутентификацией
- Риски Данных - Касаются защиты информации
- Риски Соответствия - Относятся к нормативным обязательствам
Реализованные решения
Для каждой категории риска реализованы конкретные решения:
- Автоматизированные контроли доступа
- Меры защиты данных
- Процессы документированного управления
Взаимодействия и зависимости
Схема демонстрирует, как:
- Контроли поддерживают отчеты о соответствии
- Решения взаимно усиливают друг друга
- Отслеживаемость поддерживается на каждом этапе
Распространенные сценарии аудита
Аудит разрешений
Регулярный аудит разрешений является критически важным нормативным требованием для:
- Обеспечения соответствия GDPR и другим стандартам (SOX, NIS2)
- Предотвращения утечек данных и несанкционированного доступа
- Поддержания принципа минимальных привилегий
- Выявления спящих или устаревших аккаунтов
Отчеты о переквалификации
Периодические проверки (рекомендуется каждые три месяца) требуют:---
Анализ рисков безопасности:
- Идентификация привилегированных доступов
- Обнаружение рисковых учетных записей
- Оценка избыточных разрешений
- Обзор внешних доступов
Оценка конфиденциальных данных:
- Классификация конфиденциальных документов
- Картирование персональных данных (GDPR)
- Проверка шифрования
- Контроль сроков хранения
Анализ рисков для бизнеса:
- Влияние на непрерывность бизнеса
- Экспозиция стратегических данных
- Соответствие требованиям законодательства
- Репутационные риски
Документированные корректирующие действия:
- Отзыв необоснованных доступов
- Обновление политик безопасности
- Архивирование или удаление содержимого
- Обучение пользователей
Инструменты аудита безопасности SharePoint
Инструменты Microsoft
Портал безопасности Microsoft Purview
- Нативный аудит
- Отчеты о соответствии
- Предупреждения о безопасности
Центр администрирования SharePoint
- Отчеты о доступе
- Анализ использования
- Управление сайтами
Совместимые сторонние инструменты
- AvePoint DocAve
- Sharegate
- Quest Security Explorer
- ManageEngine SharePoint Manager
- Netwrix Auditor
Рекомендуемые альтернативные скрипты
# Упрощенный аудит разрешений 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Рекомендуемые автоматизированные отчеты
- Еженедельный отчет об изменениях разрешений
- Ежемесячный отчет о внешних доступах
- Ежеквартальная панель соответствия
- Реальные предупреждения о критических изменениях
# Полный отчет о разрешениях для повторной сертификации
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"
}
Ключевые метрики для мониторинга
# Анализ рисков, связанных с разрешениями
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
}
}
Эти отчеты позволяют командам:
- Подтвердить легитимность доступов
- Идентифицировать аномалии в разрешениях
- Документировать рекомендации по управлению
- Поддерживать соответствующий журнал аудита
Аудит внешних пользователей
# Предварительные условия:
# - Модуль 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
Отчет предназначен для команд безопасности и соблюдения
Прямые разрешения
# Обнаружение уникальных разрешений
$web = Get-PnPWeb
Get-PnPList | Where-Object {$_.HasUniqueRoleAssignments} | ForEach-Object {
Get-PnPListPermissions -Identity $_.Title
}
Отчет предназначен для владельцев сайтов и администраторов SharePoint
Аудит групп SharePoint
# Анализ участников групп
$groups = Get-PnPGroup
foreach($group in $groups) {
$members = Get-PnPGroupMember -Identity $group.Title
$members | Select-Object @{N='Группа';E={$group.Title}}, Title, Email
}
Отчет предназначен для менеджеров сайтов
Унаследованные против уникальных разрешений
# Идентификация элементов с уникальными разрешениями
Get-PnPList | ForEach-Object {
$list = $_
Get-PnPListItem -List $list.Title -PageSize 500 |
Where-Object {$_.HasUniqueRoleAssignments}
}
Отчет предназначен для администраторов SharePoint для управления
Матрица доступа
# Генерация матрицы пользователей/разрешений
Get-PnPWeb -Includes RoleAssignments | ForEach-Object {
$_.RoleAssignments | Select-Object Member,RoleDefinitionBindings
}
Отчет предназначен для аудиторов и команд соблюдения
Отчеты по сайтам
# Список сайтов и их конфигурация
Get-PnPTenantSite | Select-Object Url,Template,StorageUsage,LastContentModifiedDate
# Аудит включенных функций
Get-PnPFeature -Scope SiteЛучшие практики
- Использовать модульные и многоразовые скрипты
- Документировать скрипты и их результаты
- Реализовать обработку ошибок
- Соблюдать ограничения по скорости
- Безопасно сохранять отчеты
Решение проблем
Общие проблемы
- Ошибки аутентификации
- Ограничения по скорости
- Недостаточные разрешения
- Таймаут запросов
Решения
- Проверить разрешения и роли
- Реализовать задержки между запросами
- Использовать постраничный вывод для больших коллекций
- Мониторить журналы ошибок
