
EntraFalcon V20260824
Легковесный инструмент PowerShell для оценки состояния безопасности сред Microsoft Entra ID. Он помогает выявлять привилегированные объекты, рискованные назначения и потенциальные ошибки конфигурации.
EntraFalcon

EntraFalcon — это инструмент оценки на базе PowerShell для пентестеров, специалистов по безопасности и системных администраторов, предназначенный для оценки уровня безопасности среды Microsoft Entra ID.
Разработанный для простоты использования, EntraFalcon работает на PowerShell 5.1 и 7, поддерживает Windows и Linux и не требует дополнительных модулей PowerShell, дополнительных установок или согласия Microsoft Graph API.
Инструмент помогает выявлять привилегированные объекты, потенциально рискованные назначения и ошибки конфигурации Conditional Access, которые часто упускаются из виду, например:
- Пользователи с контролем над группами или приложениями с высокими привилегиями
- Внешние или внутренние корпоративные приложения с чрезмерными разрешениями (например, Microsoft Graph API, роли Azure)
- Пользователи с прямыми назначениями ролей Azure IAM на ресурсах
- Привилегированные учетные записи, синхронизированные из локальной среды
- Неактивные пользователи или пользователи без поддержки MFA
- Незащищенные группы, используемые в чувствительных назначениях (например, исключения Conditional Access, владелец подписки или участник привилегированной группы с правом на назначение)
Результаты представлены в интерактивных HTML-отчетах для эффективного изучения и анализа.
🚀 Возможности
- Простой скрипт PowerShell, совместимый с PowerShell 5.1 и 7. Работает на Windows и Linux
- Встроенная аутентификация с поддержкой нескольких методов
- Использует собственные приложения Microsoft с предварительно согласованными областями для обхода запросов согласия Graph API
- Генерирует навигационные HTML-отчеты с поддержкой фильтрации, сортировки, экспорта данных и т. д.
- Выполняет более 90 автоматических проверок и обобщает результаты в отчете о выводах по безопасности
- Включает проверки слабых конфигураций клиента и рискованных свойств или разрешений объектов
- Предоставляет оценки серьезности, а также описания проблемы, потенциальных угроз и рекомендации по устранению
- Перечисляет затронутые объекты и ссылки непосредственно на их подробные отчеты для дальнейшего расследования
- Выполняет базовую оценку воздействия, вероятности и риска для выделения слабо защищенных объектов с высокими привилегиями и сортировки данных
- Отображает предупреждения о рискованных конфигурациях и повышенных привилегиях
- Перечисляет объекты Entra ID, включая:
- Пользователей (включая агентских пользователей)
- Группы
- Корпоративные приложения
- Регистрации приложений
- Управляемые удостоверения
- Удостоверения агентов
- Участников схемы удостоверений агентов
- Схемы удостоверений агентов
- Назначения PIM:
- PIM для ролей Entra
- PIM для групп
- PIM для ролей Azure
- Назначения ролей Entra
- Назначения ролей Azure
- Назначения RBAC Intune
- Пакеты доступа
- Каталоги управления правами
- RBAC каталога
- Политики Conditional Access
- Административные единицы
- Настройки PIM:
- PIM для ролей Entra
- PIM для групп (только аутентификация BroCi)
✅ Требования
| Тип | Разрешение | Обязательно | Влияние при отсутствии |
|---|---|---|---|
| Роль Entra ID | Global Reader | Да | Невозможно запустить скрипты |
| Роль Azure | Reader: на каждой группе управления или подписке | Нет | Невозможно оценить назначения Azure IAM |
Кроме того, вы должны иметь возможность аутентифицироваться в Microsoft Graph API и, при необходимости, в Azure ARM API с устройства, на котором запускаете инструмент. Убедитесь, что политики Conditional Access не блокируют вашу аутентификацию.
▶️ Использование
Загрузка EntraFalcon
Чтобы начать, клонируйте репозиторий и перейдите в каталог проекта:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Примечание: Возможно, вам потребуется временно изменить политику выполнения PowerShell, чтобы запустить скрипт.
Делайте это только для доверенных скриптов!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Запуск EntraFalcon
EntraFalcon включает встроенную поддержку аутентификации Entra ID. Используйте -AuthFlow для выбора потока аутентификации.
Для стандартных оценок используйте один из потоков с полным покрытием:
| Рекомендуемый поток | Для чего лучше всего | Платформа | Покрытие |
|---|---|---|---|
BroCi (по умолчанию) | Интерактивные запуски в Windows | Windows | Полное |
BroCiManualCode | Аутентификация в другом браузере | Windows, Linux, macOS | Полное |
BroCiToken | Существующий токен обновления портала Azure | Windows, Linux, macOS | Полное |
ServicePrincipal | Автоматизация / CI | Windows, Linux, macOS | Полное |
BroCi использует один интерактивный вход. BroCiToken и ServicePrincipal не используют ни одного. Резервные пользовательские потоки могут требовать нескольких интерактивных входов, поскольку запрашиваются отдельные токены ресурсов.
Резервные потоки аутентификации
Из-за отсутствия предварительно согласованных сторонних приложений резервные потоки не могут выполнить полную перечисление (PIM for Groups, Access Packages, Catalogs). Поэтому в настоящее время они остаются только резервными вариантами.
| Поток | Использовать только когда | Платформа | Ограничения |
|---|---|---|---|
AuthCode | Требуется совместимость с устаревшими системами | Windows | Частичное покрытие. Нет отдельного отчёта PIM for Groups, Access Packages или Catalogs. |
DeviceCode | Аутентификация через браузер невозможна | Windows, Linux, macOS | Частичное покрытие. Нет отдельного отчёта PIM for Groups, Access Packages или Catalogs. Некоторые проверки Security Findings выполняются с уменьшенной глубиной. |
ManualCode | Аутентификация должна выполняться через отдельный сеанс браузера | Windows, Linux, macOS | Частичное покрытие. Нет отдельного отчёта PIM for Groups, Access Packages или Catalogs. |
Рекомендуется: поток BroCi (по умолчанию / только Windows)
BroCi использует альтернативные сторонние приложения и требует только один интерактивный вход.
Он полезен, когда клиент Azure Active Directory PowerShell требует назначения и его необходимо избегать.```powershell
.\run_EntraFalcon.ps1
Явный выбор BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Рекомендуется: BroCi + Ручной поток кода```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. Скрипт копирует URL аутентификации в буфер обмена.
2. Вставьте URL в браузер (при необходимости на другом устройстве для поддержки SSO).
3. Откройте инструменты разработчика в браузере и на вкладке Network включите `Preserve log`.
4. Завершите аутентификацию.
5. Найдите в журнале сети `code=1.` и скопируйте URL запроса, содержащий код, в буфер обмена.
6. Нажмите Enter для продолжения; скрипт считывает код из буфера обмена и завершает получение токена.
#### Рекомендуется: BroCi с токеном
Если действительный refresh-токен Azure Portal уже доступен (клиент c44b4083-3bb0-49c1-b47d-974e53cbdf3c), его можно использовать напрямую.
Пример: получение refresh-токена из браузера
1. Откройте инструменты разработчика в браузере и на вкладке Network включите Preserve log.
2. Выполните аутентификацию на https://entra.microsoft.com.
3. Найдите в журнале сети `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` и извлеките refresh-токен из ответа.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Рекомендуется: Субъект-служба (Service Principal)
Аутентифицируется как зарегистрированное приложение с использованием предоставления учетных данных клиента OAuth2 — не требуется взаимодействие с пользователем.
Полезно для повторяющихся автоматизированных выполнений.
Требуется регистрация пользовательского приложения Entra с разрешениями Graph API типа Application (см. ниже).
С клиентским секретом:```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
**С сертификатом PFX:**```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePath "C:\certs\app.pfx"
Для защищённого паролем PFX добавьте -SPCertificatePassword (Read-Host -Prompt "Certificate password" -AsSecureString).
С PEM-сертификатом + закрытым ключом (только PowerShell 7+):```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPCertificatePemPath "C:\certs\cert.pem" -SPPrivateKeyPemPath "C:\certs\key.pem"
Для зашифрованного закрытого ключа добавьте `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)`.
##### Требуемые разрешения регистрации приложения
Предоставьте следующие разрешения **Application** (не Delegated) для регистрации приложения и подтвердите их с согласия администратора:
| Permission | Type |
|---|---|
| `AdministrativeUnit.Read.All` | Application |
| `AgentIdentity.Read.All` | Application |
| `AgentIdentityBlueprint.Read.All` | Application |
| `AgentIdentityBlueprintPrincipal.Read.All` | Application |
| `Application.Read.All` | Application |
| `AuditLog.Read.All` | Application |
| `Device.Read.All` | Application |
| `EntitlementManagement.Read.All` | Application |
| `Group.Read.All` | Application |
| `Organization.Read.All` | Application |
| `Policy.Read.All` | Application |
| `PrivilegedAccess.Read.AzureADGroup` | Application |
| `RoleManagement.Read.Directory` | Application |
| `RoleManagementPolicy.Read.AzureADGroup` | Application |
| `User.Read.All` | Application |
| `DeviceManagementRBAC.Read.All` | Application |
Кроме того, назначьте роль **Azure Reader** на корневой группе управления (или на каждой соответствующей подписке) и, при необходимости, роль **Global Reader** субъекту-службе в Entra ID (требуется для статуса MFA для каждого пользователя).
#### Запасной вариант: поток кода авторизации (только Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Fallback: Device Code Flow
В закалённых средах это часто ограничивается условным доступом (Conditional Access).
При использовании DeviceCode выполняются две проверки Security Findings с уменьшенной глубиной (CAP-004 и CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
#### Fallback: Auth Code + Manual Code Flow```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
- Скрипт копирует URL аутентификации в буфер обмена.
- Вставьте URL в браузер (при необходимости на другом устройстве для поддержки SSO).
- Завершите аутентификацию.
- Скопируйте финальный URL перенаправления из адресной строки браузера (содержащий код авторизации) в буфер обмена.
- Нажмите Enter для продолжения; скрипт считывает код из буфера обмена и завершает получение токена.
Другие параметры
Включение корпоративных приложений Microsoft
По умолчанию официальные корпоративные приложения Microsoft исключаются из оценки для снижения уровня шума. Чтобы включить их в перечисление и анализ, используйте параметр -IncludeMsApps:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
#### Пропустить оценку PIM для групп
Используйте параметр `-SkipPimForGroups`, чтобы пропустить предварительный сбор и обогащение данных PIM для групп.
Это также пропускает отдельный отчет о настройках `PIM для групп`.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Другие необязательные параметры
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
| UserAgent | Пользовательский агент, используемый для запросов к конечной точке токена и вызовов API. | EntraFalcon |
| DisableCAE | Отключает запрос токенов с непрерывной оценкой доступа (CAE). | false |
| Tenant | Указывает клиента (ID или домен) для аутентификации. Полезно при оценке клиента, отличного от домашнего клиента учетной записи. | Домашний клиент учетной записи |
| OutputFolder | Выходная папка, в которой сохраняются отчеты. | Results_%TenantName%_YYYYMMDD_HHMM |
| LimitResults | Ограничивает количество групп и пользователей в отчете (после сортировки по риску). Полезно для крупных клиентов. | - |
| LogLevel | Управляет подробностью журналирования CLI во время выполнения. Поддерживаемые значения: Off (по умолчанию), Verbose, Debug, Trace. | Off |
| ApiTop | Задает максимальное количество объектов, возвращаемых из API. Меньшие значения снижают риск тайм-аута (HTTP 504), но увеличивают количество запросов. | 999 (Допустимый диапазон: 5–999) |
| AuthFlow | Селектор предпочтительного потока аутентификации. Значения: BroCi (по умолчанию), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal. | BroCi |
| BroCiToken | Refresh token портала Azure для AuthFlow BroCiToken. | - |
| SPClientId | Идентификатор приложения (клиента) субъекта-службы. Требуется для -AuthFlow ServicePrincipal. | - |
| SPClientSecret | Секрет клиента для субъекта-службы. Используется с -AuthFlow ServicePrincipal. | - |
| SPCertificatePath | Путь к файлу сертификата PFX/P12 для аутентификации субъекта-службы. | - |
| SPCertificatePassword | Пароль (SecureString) для сертификата PFX, указанного в -SPCertificatePath. | - |
| SPCertificatePemPath | Путь к файлу сертификата PEM. Используется вместе с -SPPrivateKeyPemPath. | - |
| SPPrivateKeyPemPath | Путь к файлу закрытого ключа PEM, соответствующему -SPCertificatePemPath. | - |
| SPPrivateKeyPemPassword | Пароль (SecureString) для закрытого ключа PEM, указанного в -SPPrivateKeyPemPath. | - |
| Csv | Включает запись файлов отчетов CSV в дополнение к файлам отчетов TXT/HTML. | false |
| ExportCapUncoveredUsers | Для каждой включенной политики условного доступа с нацеливанием на пользователей экспортирует CSV со списком пользователей, не охваченных этой политикой. Файлы записываются в подпапку ConditionalAccessPolicies_UncoveredUsers в выходном каталоге. | false |
| ExportFindingsJson | Экспортирует все выводы по безопасности (Security Findings) в формате JSON в конце выполнения. | false |
| ExportDataJson | Экспортирует обогащенный отчет и вспомогательные наборы данных в виде необработанных файлов данных JSON в папке Data_Json; метаданные выполнения доступны в Summary.json. | false |
| DebugObjectDump | Экспортирует финальные объекты отчета в памяти в формате CLIXML в Debug_ObjectDump для устранения неполадок и тестирования. | false |
📊 Примеры некоторых отчетов
Отчет о выводах по безопасности

Пользователи

Пользователи (раздел «Сведения»)

Роли Entra ID

Роли Azure

Корпоративное приложение (раздел «Сведения»)

Политики условного доступа

Политики условного доступа (раздел «Сведения»)

Параметры ролей PIM (Entra)

Удостоверения агентов

Сводка перечисления

📑 HTML-отчет
Общее
- Нажмите кнопку ⚙️ Columns, чтобы показать или скрыть определенные столбцы.
- Нажмите 💾 Export, чтобы загрузить CSV/JSON или скопировать CSV/TSV/JSON текущих видимых данных.
- Нажмите 👁 Share View, чтобы скопировать фильтры, сортировку и выбор столбцов в виде ссылки для совместного использования.
- Нажмите 🧰 Preset Views, чтобы применить предварительно настроенные фильтры и выбор столбцов.
- Нажмите 🔄 Reset View, чтобы сбросить представление к значению по умолчанию.
- Нажмите на имена объектов, чтобы перейти к подробной информации, даже в других отчетах.
- При использовании внутренней навигации нажмите кнопку «Назад» браузера, чтобы вернуться.
- Некоторые заголовки полей таблицы отображают вспомогательный текст при наведении курсора мыши.
- Сортируйте данные, нажимая на заголовок таблицы.
- Alt+щелчок по заголовку основного столбца таблицы позволяет быстро скрыть этот столбец.
- Alt+щелчок по строке содержимого основной таблицы позволяет временно скрыть ее. Используйте чип скрытых строк или Reset View, чтобы снова показать скрытые строки.
Фильтрация
- Если оператор не указан, фильтрация по умолчанию использует содержит.
- Используйте
=для точного совпадения. - Используйте
^для начинается с (например,^Mallory). - Используйте
$для заканчивается на (например,$domain.ch). - Поддерживаются операторы сравнения, такие как
>,<,>=,<=(только для числовых значений). - Фильтры можно инвертировать, начиная с
!(кроме числовых сравнений). Примеры:!Mallory,!=Mallory,!^Malloryили!$domain.ch. - Используйте
=emptyдля сопоставления пустых ячеек или!=emptyдля сопоставления непустых ячеек. - Используйте
||для сопоставления любого из нескольких значений в одном столбце (например,Admin || Guest). - Используйте
&&для требования нескольких совпадений в одном столбце (например,!adm && !svc && !sql). - Чтобы применить логику ИЛИ по столбцам, используйте
or_,group1_,group2_... непосредственно в поле фильтра. Примеры: в столбце 1:or_>1, в столбце 2:or_!Mallory - Примечание: Столбец DisplayName также включает идентификатор объекта (невидимый), поэтому фильтрация по идентификатору также возможна.
Управление с помощью GET-параметров
- Фильтрация: Применяйте фильтры, используя имена полей в качестве HTTP GET-параметров, например,
?EntraRoles=>1&Enabled=true.
Чтобы применить логику ИЛИ по столбцам, используйте префиксor_илиgroup1_(например,?or_EntraRoles=>0&or_GrpMem=>0). - Выбор столбцов: Выбирайте, какие столбцы отображать, с помощью параметра
columns. Пример:?columns=DisplayName,Owner. - Сортировка: Сортируйте данные с помощью параметров
sortиsortDir. Пример:?sort=Impact&sortDir=descили?sort=OwnerCount&sortDir=asc. - Сведения об объекте: Переходите непосредственно к конкретному объекту в отчете, используя якорь (
#) и идентификатор объекта, например,#%ObjectID%.
Оценка
- Impact: Представляет объем или серьезность разрешений, которыми обладает объект.
- Likelihood: Показывает, насколько легко на объект можно повлиять или насколько хорошо он защищен.
- Risk: Рассчитанный балл: Impact × Likelihood = Risk.
- Важно:
- Эта оценка предназначена как базовая оценка, помогающая сортировать и расставлять приоритеты записей в таблице.
- Баллы риска не сопоставимы напрямую между различными типами объектов или отчетами.
- Она не предназначена для замены полной оценки рисков.
🔧Под капотом
Категоризация ролей
Роли Entra ID и Azure приблизительно категоризируются по разным уровням. Эта категоризация влияет на баллы воздействия объектов, которым назначены эти роли. Цель состоит в том, чтобы назначать более высокий балл воздействия пользователям с более мощными ролями (например, Global Administrator) по сравнению с пользователями с менее критичными ролями (например, Global Reader), даже если обе считаются привилегированными ролями Microsoft.
Примечание: Для ролей Azure эта категоризация менее точна, поскольку фактическое воздействие сильно зависит от области назначения роли. Например, роль Owner на одной виртуальной машине имеет значительно меньшее воздействие, чем когда та же роль применяется ко всей подписке. Это также может быть тестовая подписка без каких-либо ресурсов.
Роли Entra ID
| Имя роли | Уровень | GUID |
|---|---|---|
| Global Administrator | 0 | 62e90394-69f5-4237-9190-012177145e10 |
| Partner Tier2 Support | 0 | e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8 |
| Privileged Authentication Administrator | 0 | 7be44c8a-adaf-4e2a-84d6-ab2649e08a13 |
| Privileged Role Administrator | 0 | e8611ab8-c189-46e8-94e1-60213ab1f814 |
| Domain Name Administrator | 0 | 8329153b-31d0-4727-b945-745eb3bc5f31 |
| External Identity Provider Administrator | 0 | be2f45a1-457d-42af-a067-6ec1fa63bc45 |
| Hybrid Identity Administrator | 0 | 8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2 |
| Application Administrator | 0 | 9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3 |
| Cloud Application Administrator | 0 | 158c047a-c907-4556-b7ef-446551a6b5f7 |
| Security Administrator | 0 | 194ae4cb-b126-40b2-bd5b-6091b380977d |
| Agent ID Administrator | 1 | db506228-d27e-4b7d-95e5-295956d6615f |
| AI Administrator | 1 | d2562ede-74db-457e-a7b6-544e236ebb61 |
| Conditional Access Administrator | 1 | b1be1c3e-b65d-4f19-8427-f6fa0d97feb9 |
| Authentication Administrator | 1 | c4e39bd9-1100-46d3-8c65-fb160da0071f |
| Azure DevOps Administrator | 1 | e3973bdf-4987-49ae-837a-ba8e231c7286 |
| Directory Writers | 1 | 9360feb5-f418-4baa-8175-e2a00bac4301 |
| Entra SOC Identity Responder | 1 | 58f930cc-fcf4-4152-852c-1d7dbf502139 |
| Exchange Administrator | 1 | 29232cdf-9323-42fd-ade2-1d097af3e4de |
| Groups Administrator | 1 | fdd7a751-b60b-444a-984c-02652fe8fa1c |
| Helpdesk Administrator | 1 | 729827e3-9c14-49f7-bb1b-9608f156bbb8 |
| Identity Governance Administrator | 1 | 45d8d3c5-c802-45c6-b32a-1d70b5e1e86e |
| Intune Administrator | 1 | 3a2c62db-5318-420d-8d74-23affee5d9d5 |
| Knowledge Administrator | 1 | b5a8dcf3-09d5-43a9-a639-8e29ef291470 |
| Knowledge Manager | 1 | 744ec460-397e-42ad-a462-8b3f9747a02c |
| Lifecycle Workflows Administrator | 1 | 59d46f88-662b-457b-bceb-5c3809e5908f |
| Directory Synchronization Accounts | 1 | d29b2b05-8046-44ba-8758-1e26182fcf32 |
| On Premises Directory Sync Account | 1 | a92aed5d-d78a-4d16-b381-09adb37eb3b0 |
| Partner Tier1 Support | 1 | 4ba39ca4-527c-499a-b93d-d9b492c50246 |
| Password Administrator | 1 | 966707d0-3269-4727-9be2-8c3a10f19b9d |
| SharePoint Administrator | 1 | f28a1f50-f6e7-4571-818b-6a12f2af6b6c |
| Teams Administrator | 1 | 69091246-20e8-4a56-aa4d-066075b2a7a8 |
| User Administrator | 1 | fe930be7-5e62-47db-91af-98c3a49a38b1 |
| Windows 365 Administrator | 1 | 11451d60-acb2-45eb-a7d6-43d0f0125c13 |
| Yammer Administrator | 1 | 810a2642-a034-447f-a5e8-41beaa378541 |
| Authentication Policy Administrator | 2 | 0526716b-113d-4c15-b2c8-68e3c22b9f80 |
| Azure AD Joined Device Local Administrator | 2 | 9f06204d-73c1-4d4c-880a-6edb90606fd8 |
| Cloud Device Administrator | 2 | 7698a772-787b-4ac8-901f-60d6b08affd2 |
| Global Reader | 2 | f2ef992c-3afb-46b9-b7cf-a126ee74c451 |
| Guest Inviter | 2 | 95e79109-95c0-4d8e-aee3-d01accf2d47b |
| Security Reader | 2 | 5d6b6bb7-de71-4623-b4af-96380a352509 |
| Directory Readers | 2 | 88d8e3e3-8f55-4a1e-953a-9b9898b8876b |
Роли Azure
| Имя роли | Уровень | GUID |
|---|---|---|
| Owner | 0 | 8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
| User Access Administrator | 0 | 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9 |
| Contributor | 0 | b24988ac-6180-42a0-ab88-20f7382dd24c |
| Role Based Access Control Administrator | 0 | f58310d9-a9f6-439a-9e8d-f62e7b41a168 |
| Reservations Administrator | 0 | a8889054-8d42-49c9-bc1c-52486c10e7cd |
| Security Admin | 1 | fb1c8493-542b-48eb-b624-b4c8fea62acd |
| Virtual Machine Contributor | 1 | 9980e02c-c2be-4d73-94e8-173b1dc7cf3c |
| Virtual Machine Data Access Administrator | 1 | 66f75aeb-eabe-4b70-9f1e-c350c4c9ad04 |
| Virtual Machine Administrator Login | 1 | 1c0163c0-47e6-4577-8991-ea5c82e286e4 |
| Windows Admin Center Administrator Login | 1 | a6333a3e-0164-44c3-b281-7a577aff287f |
| Container Registry Contributor and Data Access Configuration Administrator | 1 | 3bc748fc-213d-45c1-8d91-9da5725539b9 |
| Key Vault Administrator | 1 | 00482a5a-887f-4fb3-b363-3b7fe8e74483 |
| Key Vault Data Access Administrator | 1 | 8b54135c-b56d-4d72-a534-26097cfdc8d8 |
| Key Vault Secrets Officer | 1 | b86a8fe4-44ce-4948-aee5-eccb2c155cd7 |
| Key Vault Secrets User | 1 | 4633458b-17de-408a-b874-0445c86b69e6 |
| Azure Kubernetes Service RBAC Admin | 1 | 3498e952-d568-435e-9b2c-8d77e338d7f7 |
| Azure Kubernetes Service RBAC Cluster Admin | 1 | b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b |
| Azure Arc Kubernetes Admin | 1 | dffb1e0c-446f-4dde-a09f-99eb5cc68b96 |
| Azure Arc Kubernetes Cluster Admin | 1 | 8393591c-06b9-48a2-a542-1bd6b377f6a2 |
| Azure Arc VMware VM Contributor | 1 | b748a06d-6150-4f8a-aaa9-ce3940cd96cb |
| Storage Account Contributor | 1 | 17d1049b-9a84-46fb-8f53-869881c3d3ab |
| Reader | 2 | acdd72a7-3385-48ef-bd42-f606fba81ae7 |
| SecurityReader | 2 | 39bc4728-0917-49c7-9d2c-d95423bc2eb4 |
| Virtual Machine User Login | 3 | fb879df8-f326-4884-b1cf-06f3ad86be52 |
| Desktop Virtualization User | 3 | 1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63 |
Категоризация разрешений API
Некоторые разрешения API позволяют приложению напрямую повышать привилегии до Global Administrator. Поэтому несколько разрешений API категоризируются по разным уровням серьезности. Эта категоризация влияет на балл воздействия приложений, которым назначены эти разрешения — либо как разрешения приложения, либо как делегированные разрешения для пользователей.
Разрешение приложения
| Permission | Severity | GUID | |-------------------------------------------------------------|------------|----------------------------------------| | RoleManagement.ReadWrite.Directory | Dangerous | 9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8 | | AppRoleAssignment.ReadWrite.All | Dangerous | 06b708a9-e830-4db3-a914-8e69da51d44f | | Application.ReadWrite.All | Dangerous | 1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9 | | RoleAssignmentSchedule.ReadWrite.Directory | Dangerous | dd199f4a-f148-40a4-a2ec-f0069cc799ec | | PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Dangerous | 41202f2c-f7ab-45be-b001-85c9728b9d69 | | PrivilegedAccess.ReadWrite.AzureADGroup | Dangerous | 2f6817f8-7b12-4f0f-bc18-eeaf60705a9e | | RoleEligibilitySchedule.ReadWrite.Directory | Dangerous | fee28b28-e1f3-4841-818e-2704dc62245f | | PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Dangerous | 618b6020-bca8-4de6-99f6-ef445fa4d857 | | Domain.ReadWrite.All | Dangerous | 7e05723c-0bb0-42da-be95-ae9f08a6e53c | | Application.ReadUpdate.All | Dangerous | fc023787-fd04-4e44-9bc7-d454f00c0f0a | | AgentIdentityBlueprint.ReadWrite.All | High | 7fddd33b-d884-4ec0-8696-72cff90ff825 | | AgentIdentityBlueprint.AddRemoveCreds.All | High | 0510736e-bdfb-4b37-9a1f-89b4a074763a | | ADSynchronization.ReadWrite.All | High | ab43b826-2c7a-4aff-9ecd-d0629d0ca6a9 | | EntitlementManagement.ReadWrite.All | High | 9acd699f-1e81-4958-b001-93b1d2506e19 | | Organization.ReadWrite.All | High | 292d869f-3427-49a8-9dab-8c70152b74e9 | | Policy.ReadWrite.PermissionGrant | High | a402ca1c-2696-4531-972d-6e5ee4aa11ea | | RoleManagementPolicy.ReadWrite.AzureADGroup | High | b38dcc4d-a239-4ed6-aa84-6c65b284f97c | | RoleManagementPolicy.ReadWrite.Directory | High | 31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad | | Policy.ReadWrite.AuthenticationMethod | High | 29c18626-4985-4dcd-85c0-193eef327366 | | User.DeleteRestore.All | High | eccc023d-eccf-4e7b-9683-8813ab36cecc | | User.EnableDisableAccount.All | High | 3011c876-62b7-4ada-afa2-506cbbecc68c | | DelegatedPermissionGrant.ReadWrite.All | High | 8e8e4742-1d95-4f68-9d56-6ee75648c72a | | Policy.ReadWrite.ConditionalAccess | High | 01c0a623-fc9b-48e9-b794-0756f8e8f067 | | DeviceManagementConfiguration.ReadWrite.All | High | 9241abd9-d0e6-425a-bd4f-47ba86e767a4 | | DeviceManagementRBAC.ReadWrite.All | High | e330c4f0-4170-414e-a55a-2f022ec2b57b | | Directory.ReadWrite.All | High | 19dbc75e-c2e2-444c-a770-ec69d8559fc7 | | Group.ReadWrite.All | High | 62a82d76-70ea-41e2-9197-370581804d09 | | GroupMember.ReadWrite.All | High | dbaae8cf-10b5-4b86-a4a1-f871c94c6695 | | UserAuthenticationMethod.ReadWrite.All | High | 50483e42-d915-4231-9639-7fdb7fd190e5 | | User-PasswordProfile.ReadWrite.All | High | cc117bb9-00cf-4eb8-b580-ea2a878fe8f7 | | Sites.FullControl.All | High | a82116e5-55eb-4c41-a434-62fe8a61c773 | | Sites.FullControl.All SharePointAPI | High | 678536fe-1083-478a-9c59-b99265e6b0d3 | | Sites.Manage.All SharePointAPI | High | 9bff6588-13f2-4c48-bbf2-ddab62256b36 | | Sites.Read.All SharePointAPI | High | d13f72ca-a275-4b96-b789-48ebcc4da984 | | Sites.ReadWrite.All SharePointAPI | High | fbcd29d2-fcca-4405-aded-518d457caae4 | | Sites.Manage.All | High | 0c0bf378-bf22-4481-8f81-9e89a9b4960a | | Sites.Read.All | High | 332a536c-c7ef-4017-ab91-336970924f0d | | Sites.ReadWrite.All | High | 9492366f-7969-46a4-8d15-ed1a20078fff | | Files.Read.All | High | 01d4889c-1287-42c6-ac1f-5d1e02578ef6 | | Files.ReadWrite.All | High | 75359482-378d-4052-8f01-80520e7db3cd | | DeviceLocalCredential.Read.All | High | db51be59-e728-414b-b800-e0f010df1a79 | | AdministrativeUnit.ReadWrite.All | High | 5eb59dd3-1da2-4329-8733-9dabdc435916 | | UserAuthMethod-HardwareOATH.ReadWrite.All | High | 7e9ebcc1-90aa-4471-8051-e68d6b4e9c89 | | UserAuthMethod-Phone.ReadWrite.All | High | 6e85d483-7092-4375-babe-0a94a8213a58 | | UserAuthMethod-QR.ReadWrite.All | High | 4869299f-18c3-40c8-98f2-222657e67db1 | | UserAuthMethod-TAP.ReadWrite.All | High | 627169a8-8c15-451c-861a-5b80e383de5c | | User.ReadWrite.All | Medium | 741f803b-c850-494e-b5df-cde7c675a1ca | | Application.ReadWrite.OwnedBy | Medium | 18a4783c-866b-4cc7-a460-3d5e5662c884 | | Chat.Read.All | Medium | 6b7d71aa-70aa-4810-a8d9-5d9fb2830017 | | Chat.ReadWrite.All | Medium | 294ce7c9-31ba-490a-ad7d-97a7d075e4ed | | Calendars.Read | Medium | 798ee544-9d2d-430c-a058-570e29e34338 | | Calendars.ReadWrite | Medium | ef54d2bf-783f-4e0f-bca1-3210c0444d99 | | Mail.Read | Medium | 810c84a8-4a9e-49e6-bf7d-12d183f40d01 | | Mail.ReadWrite | Medium | e2a3a72e-5f79-4c64-b1b1-878b674786c9 | | BitlockerKey.Read.All | Medium | 57f1cf28-c0c4-4ec3-9a30-19a2eaaf2f6e | | Mail.Send | Medium | b633e1c5-b582-4048-a93e-9f11b44c7e96 | | OnlineMeetings.ReadWrite.All | Medium | b8bb2037-6e08-44ac-a4ea-4674e010e2a4 | | CustomSecAttributeAssignment.ReadWrite.All | Medium | de89b5e4-5b8f-48eb-8925-29c2b33bd8bd | | ServicePrincipalEndpoint.ReadWrite.All | Medium | 89c8469c-83ad-45f7-8ff2-6e3d4285709e | | AgentIdUser.ReadWrite.IdentityParentedBy | Medium | 4aa6e624-eee0-40ab-bdd8-f9639038a614 | | AgentIdentity.CreateAsManager | Low | 4c390976-b2b7-42e0-9187-c6be3bead001 |Делегированные разрешения
| Permission | Severity | GUID |
|---|---|---|
| RoleManagement.ReadWrite.Directory | Dangerous | d01b97e9-cbc0-49fe-810a-750afd5527a3 |
| AppRoleAssignment.ReadWrite.All | Dangerous | 84bccea3-f856-4a8a-967b-dbe0a3d53a64 |
| Application.ReadWrite.All | Dangerous | bdfbf15f-ee85-4955-8675-146e8e5296b5 |
| RoleAssignmentSchedule.ReadWrite.Directory | Dangerous | 8c026be3-8e26-4774-9372-8d5d6f21daff |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Dangerous | 06dbc45d-6708-4ef0-a797-f797ee68bf4b |
| PrivilegedAccess.ReadWrite.AzureADGroup | Dangerous | 32531c59-1f32-461f-b8df-6f8a3b89f73b |
| RoleEligibilitySchedule.ReadWrite.Directory | Dangerous | 62ade113-f8e0-4bf9-a6ba-5acb31db32fd |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Dangerous | ba974594-d163-484e-ba39-c330d5897667 |
| Domain.ReadWrite.All | Dangerous | 0b5d694c-a244-4bde-86e6-eb5cd07730fe |
| Application.ReadUpdate.All | Dangerous | 0586a906-4d89-4de8-b3c8-1aacdcc0c679 |
| AgentIdentityBlueprint.AddRemoveCreds.All | High | 75b5feb2-bfe7-423f-907d-cc505186f246 |
| AgentIdentityBlueprint.ReadWrite.All | High | 4fd490fc-1467-48eb-8a4c-421597ab0402 |
| EntitlementManagement.ReadWrite.All | High | ae7a573d-81d7-432b-ad44-4ed5c9d89038 |
| Organization.ReadWrite.All | High | 46ca0847-7e6b-426e-9775-ea810a948356 |
| Policy.ReadWrite.PermissionGrant | High | 2672f8bb-fd5e-42e0-85e1-ec764dd2614e |
| RoleManagementPolicy.ReadWrite.AzureADGroup | High | 0da165c7-3f15-4236-b733-c0b0f6abe41d |
| RoleManagementPolicy.ReadWrite.Directory | High | 1ff1be21-34eb-448c-9ac9-ce1f506b2a68 |
| Policy.ReadWrite.AuthenticationMethod | High | 7e823077-d88e-468f-a337-e18f1f0e6c7c |
| User.DeleteRestore.All | High | 4bb440cd-2cf2-4f90-8004-aa2acd2537c5 |
| User.EnableDisableAccount.All | High | f92e74e7-2563-467f-9dd0-902688cb5863 |
| DelegatedPermissionGrant.ReadWrite.All | High | 41ce6ca6-6826-4807-84f1-1c82854f7ee5 |
| Policy.ReadWrite.ConditionalAccess | High | ad902697-1014-4ef5-81ef-2b4301988e8c |
| DeviceManagementConfiguration.ReadWrite.All | High | 0883f392-0a7a-443d-8c76-16a6d39c7b63 |
| DeviceManagementRBAC.ReadWrite.All | High | 0c5e8a55-87a6-4556-93ab-adc52c4d862d |
| Directory.ReadWrite.All | High | c5366453-9fb0-48a5-a156-24f0c49a4b84 |
| Group.ReadWrite.All | High | 4e46008b-f24c-477d-8fff-7bb4ec7aafe0 |
| GroupMember.ReadWrite.All | High | f81125ac-d3b7-4573-a3b2-7099cc39df9e |
| UserAuthenticationMethod.ReadWrite.All | High | b7887744-6746-4312-813d-72daeaee7e2d |
| Sites.FullControl.All | High | 5a54b8b3-347c-476d-8f8e-42d5c7424d29 |
| Sites.Manage.All | High | 65e50fdc-43b7-4915-933e-e8138f11f40a |
| User-PasswordProfile.ReadWrite.All | High | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.Read.All | High | 205e70e5-aba6-4c52-a976-6d2d46c48043 |
| Sites.ReadWrite.All | High | 89fe6a52-be36-487e-b7d8-d061c450a026 |
| Files.Read.All | High | df85f4d6-205c-4ac5-a5ea-6bf408dba283 |
| Files.ReadWrite.All | High | 863451e7-0667-486c-a5d6-d135439485f0 |
| DeviceLocalCredential.Read.All | High | 9917900e-410b-4d15-846e-42a357488545 |
| UserAuthMethod-Phone.ReadWrite | High | 6c4aad61-f76b-46ad-a22c-57d4d3d962af |
| UserAuthMethod-Phone.ReadWrite.All | High | 48c99302-9a24-4f27-a8a7-acef4debba14 |
| UserAuthMethod-Password.ReadWrite.All | High | 7f5b683d-df96-4690-a88d-6e336ed6dc7c |
| UserAuthMethod-Password.ReadWrite | High | 60cce20d-d41e-4594-b391-84bbf8cc31f3 |
| AdministrativeUnit.ReadWrite.All | High | 7b8a2d34-6b3f-4542-a343-54651608ad81 |
| User.ReadWrite.All | Medium | 204e0828-b5ca-4ad8-b9f3-f32a958e7cc4 |
| Chat.ReadWrite.All | Medium | 7e9a077b-3711-42b9-b7cb-5fa5f3f7fea7 |
| Mail.Read | Medium | 570282fd-fa5c-430d-a7fd-fc8dc98a9dca |
| Mail.ReadWrite | Medium | 024d486e-b451-40bb-833d-3e66d98c5c73 |
| Mail.Send | Medium | e383f46e-2787-4529-855e-0e479a3ffac0 |
| CustomSecAttributeAssignment.ReadWrite.All | Medium | ca46335e-8453-47cd-a001-8459884efeae |
| ServicePrincipalEndpoint.ReadWrite.All | Medium | 7297d82c-9546-4aed-91df-3d4f0a9b3ff0 |
| BitlockerKey.Read.All | Medium | b27a61ec-b99c-4d6a-b126-c4375d08ae30 |
| AiEnterpriseInteraction.Read | Medium | 859cceb9-2ec2-4e48-bcd7-b8490b5248a5 |
| Calendars.Read | Medium | 465a38f9-76ea-45b9-9f34-9e8b0d4b0b42 |
| Calendars.Read.Shared | Medium | 2b9c4092-424d-4249-948d-b43879977640 |
| Calendars.ReadWrite | Medium | 1ec239c2-d7c9-4623-a91a-a9775856bb36 |
| Calendars.ReadWrite.Shared | Medium | 12466101-c9b8-439a-8589-dd09ee67e8e9 |
| ChannelMessage.Edit | Medium | 2b61aa8a-6d36-4b2f-ac7b-f29867937c53 |
| ChannelMessage.ReadWrite | Medium | 5922d31f-46c8-4404-9eaf-2117e390a8a4 |
| ChannelMessage.Send | Medium | ebf0f66e-9fb1-49e4-a278-222f76911cf4 |
| ChatMessage.Send | Medium | 116b7235-7cc6-461e-b163-8e55691d839e |
| Chat.ReadWrite | Medium | 9ff7295e-131b-4d94-90e1-69fde507ac11 |
| Contacts.ReadWrite | Medium | d56682ec-c09e-4743-aaf4-1a3aac4caa21 |
| Directory.AccessAsUser.All | Medium | 0e263e50-5827-48a4-b97c-d940288653c7 |
| Directory.Read.All | Medium | 06da0dbc-49e2-44d2-8312-53f166ab848a |
| EAS.AccessAsUser.All | Medium | ff91d191-45a0-43fd-b837-bd682c4a0b0f |
| EntitlementMgmt-SubjectAccess.ReadWrite | Medium | e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac |
| EWS.AccessAsUser.All | Medium | 9769c687-087d-48ac-9cb3-c37dde652038 |
| Files.ReadWrite | Medium | 5c28f0bf-8a70-41f1-8ab2-9032436ddb65 |
| IMAP.AccessAsUser.All | Medium | 652390e4-393a-48de-9484-05f9b1212954 |
| MailboxItem.ImportExport | Medium | df96e8a0-f4e1-4ecf-8d83-a429f822cbd6 |
| MailboxFolder.Read | Medium | 52dc2051-4958-4636-8f2a-281d39c6981c |
| MailboxFolder.ReadWrite | Medium | 077fde41-7e0b-4c5b-bcd1-e9d743a30c80 |
| MailboxItem.Read | Medium | 82305458-296d-4edd-8b0b-74dd74c34526 |
| MailboxSettings.ReadWrite | Medium | 818c620a-27a9-40bd-a6a5-d96f7d610b4b |
| Notes.Read | Medium | 371361e4-b9e2-4a3f-8315-2a301a3b0a3d |
| Notes.Read.All | Medium | dfabfca6-ee36-4db2-8208-7a28381419b3 |
| Notes.ReadWrite | Medium | 615e26af-c38a-4150-ae3e-c3b0d4cb1d6a |
| Notes.ReadWrite.All | Medium | 64ac0503-b4fa-45d9-b544-71a463f05da0 |
| POP.AccessAsUser.All | Medium | d7b7f2d9-0f45-4ea1-9d42-e50810c06991 |
| offline_access | Low | 7427e0e9-2fba-42fe-b0c0-848c9e6a8182 |
| openid | Low | 37f7f235-527c-4136-accd-4a02d197296e |
| Low | 64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0 | |
| profile | Low | 14dad69e-099b-42c9-810b-d002981feec1 |
| User.Read | Low | e1fe6dd8-ba31-4d61-89e7-88639da4683d |
Корпоративные приложения Microsoft (First-Party)
По умолчанию приложения Microsoft отфильтровываются, чтобы упростить проверку корпоративных приложений. Используйте параметр -IncludeMsApps, чтобы включить их. Приложения из следующих тенантов считаются принадлежащими Microsoft:
- f8cdef31-a31e-4b4a-93e4-5f571e91255a
- 72f988bf-86f1-41af-91ab-2d7cd011db47
- 33e01921-4d64-4f8c-a055-5bdaffd5e33d
- cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Выполняемые проверки
В следующей таблице кратко перечислены выполняемые проверки, их влияние на оценку и отображается ли предупреждение.
Выполняемые проверки
|Область|Проверка|Влияет на оценку|Предупреждение отображается| |-|-|-|-| |Группы|Является публичной группой M365|Да|Да| |Группы|Является динамической / является динамической и потенциально опасным запросом|Да|Да| |Группы|Роли Entra (активные и имеющие право)|Да|Да| |Группы|Роли Azure (активные и имеющие право)|Да|Да| |Группы|Используется для AppRole|Да|Да| |Группы|Внутренний/внешний SP как владелец|Да|Да| |Группы|В ограниченном AU|Да|Да| |Группы|Вложена в привилегированную группу|Да|Да| |Группы|Используется в CAP|Да|Да| |Группы|Тип группы|Да|Нет| |Группы|Безопасность включена|Да|Нет| |Группы|Вложенный активный участник|Да|Нет| |Группы|Владельцы|Да|Нет| |Группы|Вложенные владельцы|Да|Нет| |Группы|Гость как владелец|Да|Да| |Группы|Синхронизация с локальной средой|Да|Нет| |Группы|Участники (транзитивные)|Да|Нет| |Группы|Назначаемые роли|Да|Нет| |Группы|PIM для групп: подключено|Нет|Нет| |Группы|PIM для групп: участник с правом на привилегированную группу|Да|Да| |Группы|PIM для групп: владелец с правом на привилегированную группу|Да|Да| |Группы|PIM для групп: незащищённая группа, вложенная в защищённую группу|Нет|Да| |Корпоративное приложение|Роль Entra|Да|Да| |Корпоративное приложение|Роль Azure|Да|Да| |Корпоративное приложение|Внешнее|Да|Нет| |Корпоративное приложение|Отключено Microsoft|Нет|Да| |Корпоративное приложение|Подозрительное имя (символы-имитаторы)|Да|Да| |Корпоративное приложение|Разрешение API (приложение)|Да|Да| |Корпоративное приложение|Разрешение API (делегированное)|Да|Да| |Корпоративное приложение|Учётные данные|Да|Да| |Корпоративное приложение|Владельцы|Да|Да| |Корпоративное приложение|Владение регистрациями приложений|Да|Да| |Корпоративное приложение|Владение другими субъектами-службами|Да|Да| |Корпоративное приложение|AppLock|(Да)|Нет| |Корпоративное приложение|Приложение владеет регистрацией приложения|Да|Да| |Корпоративное приложение|Участник / владелец групп|Да|(Да)| |Корпоративное приложение|Роли приложения|Да|Нет| |Корпоративное приложение|Требования к ролям приложения|Да|Нет| |Корпоративное приложение|Неактивно|Нет|Нет| |Корпоративное приложение|Последний успешный вход (дней)|Нет|Нет| |Регистрации приложений|Учётные данные|Да|Да| |Регистрации приложений|Приложение Entra Connect с учётными данными|Да|Да| |Регистрации приложений|Приложение Entra Connect с несколькими сертификатами|Да|Да| |Регистрации приложений|Роли приложения|Да|Нет| |Регистрации приложений|URL перенаправления приложения|Нет|Нет| |Регистрации приложений|AppLock|Да|Нет| |Регистрации приложений|Владельцы|Да|Да| |Регистрации приложений|(Облачные) администраторы приложений с ограниченной областью|Нет|Нет| |Регистрации приложений|Привилегии соответствующего SP|Да|Нет| |Регистрации приложений|Аудитория входа|Нет|Нет| |Управляемое удостоверение|Владельцы|Да|Да| |Управляемое удостоверение|Роль Entra|Да|Да| |Управляемое удостоверение|Роль Azure|Да|Да| |Управляемое удостоверение|API (приложение)|Да|Да| |Управляемое удостоверение|Владение регистрациями приложений|Да|Да| |Управляемое удостоверение|Владение другими субъектами-службами|Да|Да| |Управляемое удостоверение|Участник / владелец групп|Да|(Да)| |Пользователь|Роли Entra (активные и имеющие право)|Да|Да| |Пользователь|Роли Azure (активные и имеющие право)|Да|Да| |Пользователь|Членство в привилегированных группах (активное и имеющее право)|Да|Да| |Пользователь|Владение привилегированными группами (активное и имеющее право)|Да|Да| |Пользователь|Пользователь синхронизации Entra Connect|Да|Да| |Пользователь|Пользователь облачной синхронизации Entra Connect|Да|Да| |Пользователь|Владение регистрацией приложения|Да|Да| |Пользователь|Владение корпоративным приложением|Да|Да| |Пользователь|Не зарегистрирован ни один фактор MFA|Да|Да| |Пользователь|Защищён|Да|Нет| |Пользователь|Неактивен|Нет|Нет| |Пользователь|Участник / владелец групп|Да|(Да)| |Пользователь|Синхронизирован из локальной среды|Да|Нет| |Удостоверение агента|Связанные пользователи агента|Да|Нет| |Удостоверение агента|Внешнее происхождение субъекта blueprint|Да|Да| |Удостоверение агента|Эффективное разрешение API (приложение)|Да|Да| |Удостоверение агента|Эффективное разрешение API (делегированное)|Да|Да| |Удостоверение агента|Роль Entra|Да|Да| |Удостоверение агента|Роль Azure|Да|Да| |Удостоверение агента|Владение регистрациями приложений|Да|Да| |Удостоверение агента|Владение другими субъектами-службами|Да|Да| |Удостоверение агента|Участник / владелец групп|Да|(Да)| |Субъект blueprint удостоверения агента|Связанные удостоверения агента|Да|Нет| |Субъект blueprint удостоверения агента|Связанные пользователи агента|Да|Нет| |Субъект blueprint удостоверения агента|Настроенное разрешение API (приложение)|Нет|Нет| |Субъект blueprint удостоверения агента|Настроенное разрешение API (делегированное)|Нет|Нет| |Субъект blueprint удостоверения агента|Внешнее происхождение родительского blueprint|Да|Нет| |Субъект blueprint удостоверения агента|Роль Entra|Нет|Нет| |Субъект blueprint удостоверения агента|Роль Azure|Нет|Нет| |Субъект blueprint удостоверения агента|Подозрительное имя (символы-имитаторы)|Да|Да| |Blueprint удостоверения агента|Субъекты blueprint|Да|Нет| |Blueprint удостоверения агента|Связанные удостоверения агента|Да|Нет| |Blueprint удостоверения агента|Связанные пользователи агента|Да|Нет| |Blueprint удостоверения агента|Наследуемые разрешения API|Да|Нет| |Blueprint удостоверения агента|Федеративные учётные данные|Да|Нет| |Blueprint удостоверения агента|Секреты / сертификаты|Да|Да| |Blueprint удостоверения агента|Владельцы / спонсоры|Да|(Да)| |Пакеты доступа|Предоставленные роли Entra|Да|Нет| |Пакеты доступа|Предоставленные роли Azure|Да|Нет| |Пакеты доступа|Предоставленные группы|Да|Нет| |Пакеты доступа|Предоставленные роли приложений|Да|Нет| |Пакеты доступа|Предоставленные разрешения API (приложение)|Да|Нет| |Пакеты доступа|Предоставленные разрешения API (делегированное)|Да|Нет| |Пакеты доступа|Предоставленный доступ к SharePoint|Да|Нет| |Пакеты доступа|Широкий самостоятельный запрос без утверждения|Да|Да| |Пакеты доступа|Постоянный доступ без истечения срока или проверки доступа|Нет|Нет| |Пакеты доступа|Опасные правила автоматического назначения|Да|Да| |Пакеты доступа|Самостоятельный запрос через незащищённые целевые группы|Да|Да| |Пакеты доступа|Широкое назначение от имени не-пользователя без утверждения|Да|Нет| |Пакеты доступа|Назначения субъектов-служб|Да|Нет| |Каталоги|Метаданные каталога, состояние и внешняя видимость|Нет|Нет| |Каталоги|Ресурсы каталога|Нет|Нет| |Каталоги|Ресурсы, настраиваемые в новых пакетах доступа|Да|Нет| |Каталоги|Ресурсы и роли, настроенные в существующих пакетах доступа|Да|Нет| |Каталоги|Ненастроенные ресурсы каталога|Да|Нет| |Каталоги|Назначения RBAC каталога|Да|Да| |CAP|Нет или неправильно настроенная политика для устаревшей аутентификации|-|Да| |CAP|Нет или неправильно настроенная политика для блокировки потока кода устройства|-|Да| |CAP|Нет или неправильно настроенная политика для ограничения регистрации сведений безопасности|-|Да| |CAP|Нет или неправильно настроенная политика для нацеливания на рискованные входы|-|Да| |CAP|Нет или неправильно настроенная политика для нацеливания на риск пользователя|-|Да| |CAP|Нет политики, обеспечивающей MFA|-|Да| |CAP|Нет политики, обеспечивающей уровень аутентификации|-|Да| |CAP|Включение ролей с ограниченными назначениями|-|Да| |Настройки PIM|AuthContext|-|Да| |Настройки PIM|AuthContext, связанный с CAP: частота входа|-|Да| |Настройки PIM|AuthContext, связанный с CAP: MFA или уровень аутентификации|-|Да| |Настройки PIM|AuthContext, связанный с CAP: включено|-|Да| |Настройки PIM|AuthContext, связанный с CAP: включённые/исключённые пользователи/группы/сети|-|Да| |Настройки PIM|AuthContext, связанный с CAP: условия|-|Да| |Настройки PIM|MFA при активации|-|Нет| |Настройки PIM|Обоснование активации или заявка|-|Да| |Настройки PIM|Продолжительность активации|-|Да| |Настройки PIM|Утверждение активации|-|Да| |Настройки PIM|Истечение срока назначения с правом|-|Нет| |Настройки PIM|Истечение срока активного назначения|-|Да| |Настройки PIM|MFA для активных назначений|-|Нет| |Настройки PIM|Уведомление об активации роли|-|Нет| |Настройки PIM|Уведомление о назначении роли (активное)|-|Нет| |Настройки PIM|Уведомление о назначении роли (имеющее право)|-|Нет|🛡️ Обнаружение
EntraFalcon не является скрытным инструментом и может быть обнаружен в средах, где ведётся журналирование и мониторинг Microsoft Graph API и активности входа в Azure.
Используемая аутентификация по умолчанию
При выполнении полной перечислительной проверки с потоками, отличными от BroCi, инструмент обычно инициирует четыре интерактивных входа и один неинтерактивный вход. В зависимости от потока и поддержки конечных точек может произойти один дополнительный интерактивный вход для конечных точек политик Security Findings.
| Идентификатор приложения | Тип | Идентификатор ресурса | Назначение |
|---|---|---|---|
| 1b730954-1685-4b74-9bfd-dac224a7b894 | Интерактивный | 00000003-0000-0000-c000-000000000000 | Получение данных PIM для групп |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Интерактивный | 00000003-0000-0000-c000-000000000000 | Получение общих данных объектов клиента |
| 51f81489-12ee-4a9e-aaae-a2591f45987d | Интерактивный | 00000003-0000-0000-c000-000000000000 | Получение PIM для ролей Entra / Azure |
| 80ccca67-54bd-44ab-8625-4b79c4dc7775 | Интерактивный | 00000003-0000-0000-c000-000000000000 | Получение контекста политик Security Findings |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Неинтерактивный | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Получение данных назначений ролей Azure IAM |
Используемая аутентификация BroCi
При использовании аутентификации BroCi происходит только один интерактивный вход.
| Идентификатор приложения | Тип | Идентификатор ресурса | Назначение |
|---|---|---|---|
| c44b4083-3bb0-49c1-b47d-974e53cbdf3c | Интерактивный | 00000003-0000-0000-c000-000000000000 | Начальная аутентификация для использования токена обновления для BroCi |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Неинтерактивный | 00000003-0000-0000-c000-000000000000 | Получение данных PIM для групп |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Неинтерактивный | 01fc33a7-78ba-4d2f-a4b7-768e336e890e | Получение данных PIM для групп |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Неинтерактивный | 00000003-0000-0000-c000-000000000000 | Получение общих данных объектов клиента |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Неинтерактивный | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Получение данных назначений ролей Azure IAM |
Когда BroCi включён, EntraFalcon также запрашивает api.azrbac.mspim.azure.com для PIM для групп.
Подробности
Для сбора данных инструмент отправляет несколько запросов к Microsoft Graph API и, при необходимости, к Azure ARM API — один или несколько на объект. Где возможно, он использует конечную точку Graph Batch для сокращения количества отдельных запросов и повышения эффективности.
Интерактивные входы используют User-Agent браузера. Все неинтерактивные входы и запросы API (Graph и ARM) используют EntraFalcon в качестве User-Agent, если это не изменено параметром -UserAgent.
Для обнаружения использования EntraFalcon синие команды могут отслеживать перечисленные идентификаторы приложений в журналах входа, искать необычные объёмы трафика Graph API или анализировать поведение обновления токенов и пакетных запросов.
🕳️ Известные ограничения
- M365 RBAC: не оценивается
- Defender for Endpoint RBAC: не оценивается
- Покрытие пользователей Conditional Access: эффективное покрытие пользователей и
-ExportCapUncoveredUsersявляются расчётными значениями по принципу «наилучшего усилия» на основе перечисленных пользователей, участников групп, назначений ролей и разрешимых категорий внешних пользователей. Селекторы внешних пользователей разрешаются только для гостевых пользователей клиента, соответствующихb2bCollaborationGuest. Другие типы внешних пользователей или внешние пользователи с указанными внешними клиентами могут сделать значения покрытия приблизительными. Пути PIM с правом сообщаются как потенциальное покрытие и не учитываются как текущее покрытие. Экспорт в CSV ограничен включёнными политиками и включёнными пользователями. - Облачная среда: облачные платформы быстро развиваются. В результате некоторые оценки или обнаружения могут со временем устареть или стать неточными. Кроме того, клиенты становятся всё более сложными, и конкретные конфигурации или комбинации настроек могут приводить к неточным результатам. Хотя мы стремимся поддерживать EntraFalcon в актуальном состоянии, всегда рекомендуется независимо проверять результаты и не полагаться исключительно на инструмент для критически важных решений.
- HTML-отчёты: создаваемые HTML-отчёты не реализуют механизмы защиты от межсайтового скриптинга (XSS).
📦 Интегрированные внешние инструменты
Следующие подмодули были форкнуты и интегрированы в EntraFalcon для поддержки аутентификации, взаимодействия с Microsoft Graph и диаграмм отчётов: