
EntraFalcon V20260824
Uno strumento PowerShell leggero per valutare la postura di sicurezza degli ambienti Microsoft Entra ID. Aiuta a identificare oggetti privilegiati, assegnazioni rischiose e potenziali errori di configurazione.
EntraFalcon

EntraFalcon è uno strumento di valutazione basato su PowerShell per pentester, analisti della sicurezza e amministratori di sistema, progettato per valutare il livello di sicurezza di un ambiente Microsoft Entra ID.
Pensato per essere facile da usare, EntraFalcon funziona con PowerShell 5.1 e 7, supporta sia Windows che Linux e non richiede moduli PowerShell aggiuntivi, installazioni extra o consenso dell'API Microsoft Graph.
Lo strumento aiuta a individuare oggetti privilegiati, assegnazioni potenzialmente rischiose e configurazioni errate di Conditional Access spesso trascurate, come ad esempio:
- Utenti con controllo su gruppi o applicazioni ad alto privilegio
- Applicazioni enterprise esterne o interne con permessi eccessivi (ad es., API Microsoft Graph, ruoli Azure)
- Utenti con assegnazioni di ruoli IAM di Azure direttamente sulle risorse
- Account privilegiati sincronizzati da ambienti on-premises
- Utenti inattivi o utenti senza capacità MFA
- Gruppi non protetti utilizzati in assegnazioni sensibili (ad es., esclusioni di Conditional Access, Subscription Owner o membri idonei di un gruppo privilegiato)
I risultati vengono presentati in report HTML interattivi per supportare un'esplorazione e un'analisi efficienti.
🚀 Funzionalità
- Script PowerShell semplice, compatibile con PowerShell 5.1 e 7. Funziona su Windows e Linux
- Autenticazione integrata che supporta più metodi
- Utilizza applicazioni Microsoft di prima parte con ambiti pre-consentiti per bypassare le richieste di consenso dell'API Graph
- Genera report HTML navigabili che supportano filtri, ordinamento, esportazione dei dati, ecc.
- Esegue oltre 90 controlli automatizzati e riepiloga i risultati in un Security Findings Report
- Include controlli per configurazioni tenant deboli e proprietà o permessi degli oggetti rischiosi
- Fornisce valutazioni di gravità, oltre a descrizioni del problema, potenziali minacce e indicazioni per la correzione
- Elenca gli oggetti interessati e fornisce collegamenti diretti ai relativi report dettagliati per ulteriori indagini
- Esegue una valutazione di base di impatto, probabilità e rischio per evidenziare gli oggetti ad alto privilegio scarsamente protetti e ordinare i dati.
- Visualizza avvisi per configurazioni rischiose e privilegi elevati
- Enumera gli oggetti Entra ID, tra cui:
- Utenti (inclusi Agent Users)
- Gruppi
- Applicazioni enterprise
- Registrazioni di app
- Identità gestite
- Identità degli agenti
- Principal del blueprint delle identità degli agenti
- Blueprint delle identità degli agenti
- Assegnazioni PIM:
- PIM per ruoli Entra
- PIM per gruppi
- PIM per ruoli Azure
- Assegnazioni di ruoli Entra
- Assegnazioni di ruoli Azure
- Assegnazioni RBAC di Intune
- Pacchetti di accesso
- Cataloghi di Entitlement Management
- RBAC dei cataloghi
- Criteri di Conditional Access
- Unità amministrative
- Impostazioni PIM:
- PIM per ruoli Entra
- PIM per gruppi (solo autenticazione BroCi)
✅ Requisiti
| Tipo | Permesso | Obbligatorio | Impatto se assente |
|---|---|---|---|
| Ruolo Entra ID | Global Reader | Sì | Non è possibile eseguire gli script |
| Ruolo Azure | Reader: su ogni Management Group o Subscription | No | Impossibile valutare le assegnazioni IAM di Azure |
Inoltre, devi essere in grado di autenticarti all'API Microsoft Graph e, opzionalmente, all'API Azure ARM dal dispositivo su cui esegui lo strumento. Assicurati che i criteri di Conditional Access non blocchino la tua autenticazione.
▶️ Utilizzo
Scaricare EntraFalcon
Per iniziare, clona il repository e accedi alla directory del progetto:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Nota: Potrebbe essere necessario modificare temporaneamente i criteri di esecuzione di PowerShell per eseguire lo script.
Fallo solo per script attendibili!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Eseguire EntraFalcon
EntraFalcon include il supporto integrato per l'autenticazione Entra ID. Usare -AuthFlow per selezionare il flusso di autenticazione.
Per le valutazioni standard, usare uno dei flussi a copertura completa:
| Flusso consigliato | Ideale per | Piattaforma | Copertura |
|---|---|---|---|
BroCi (predefinito) | Esecuzioni interattive su Windows | Windows | Completa |
BroCiManualCode | Autenticazione in un altro browser | Windows, Linux, macOS | Completa |
BroCiToken | Token di aggiornamento esistente del portale Azure | Windows, Linux, macOS | Completa |
ServicePrincipal | Automazione / CI | Windows, Linux, macOS | Completa |
BroCi richiede un solo accesso interattivo. BroCiToken e ServicePrincipal non ne richiedono alcuno. I flussi utente di fallback possono richiedere più accessi interattivi perché vengono richiesti token di risorse separati.
Flussi di autenticazione di fallback
A causa della mancanza di applicazioni di prima parte pre-consentite, i flussi di fallback non possono eseguire l'enumerazione completa (PIM for Groups, Access Packages, Catalogs). Pertanto, attualmente rimangono solo opzioni di fallback.
| Flusso | Usare solo quando | Piattaforma | Limitazioni |
|---|---|---|---|
AuthCode | È richiesta la compatibilità legacy | Windows | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. |
DeviceCode | L'autenticazione basata su browser non è possibile | Windows, Linux, macOS | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. Alcuni controlli di Security Findings vengono eseguiti con profondità ridotta. |
ManualCode | L'autenticazione deve essere completata tramite una sessione browser separata | Windows, Linux, macOS | Copertura parziale. Nessun report autonomo per PIM for Groups, Access Packages o Catalogs. |
Consigliato: flusso BroCi (predefinito / solo Windows)
BroCi usa applicazioni di prima parte alternative e richiede un solo accesso interattivo.
È utile quando il client Azure Active Directory PowerShell richiede l'assegnazione e deve essere evitato.```powershell
.\run_EntraFalcon.ps1
Selezione esplicita di BroCi:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Consigliato: BroCi + Flusso di Codice Manuale```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. Lo script copia l'URL di autenticazione negli appunti.
2. Incolla l'URL in un browser (opzionalmente su un altro dispositivo per il supporto SSO).
3. Apri gli strumenti di sviluppo del browser e, nella scheda Rete, abilita `Preserve log`.
4. Completa l'autenticazione.
5. Cerca nel log di rete `code=1.` e copia l'URL della richiesta contenente il codice negli appunti.
6. Premi Invio per continuare; lo script legge il codice dagli appunti e completa l'acquisizione del token.
#### Consigliato: BroCi con Token
Se è già disponibile un token di aggiornamento valido del portale Azure (client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), può essere utilizzato direttamente.
Esempio: Ottenere il token di aggiornamento dal browser
1. Apri gli strumenti di sviluppo del browser e, nella scheda Rete, abilita Preserve log.
2. Autenticati su https://entra.microsoft.com.
3. Cerca nel log di rete `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` ed estrai il token di aggiornamento dalla risposta.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Consigliato: Service Principal
Autentica come applicazione registrata utilizzando la concessione delle credenziali client OAuth2 — nessuna interazione utente richiesta.
Utile per esecuzioni automatizzate ripetute.
Richiede una registrazione personalizzata dell'app Entra con autorizzazioni API Graph di tipo Application (vedi sotto).
Con segreto client:```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
**Con certificato PFX:**```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePath "C:\certs\app.pfx"
Per un PFX protetto da password, aggiungi -SPCertificatePassword (Read-Host -Prompt "Certificate password" -AsSecureString).
Con certificato PEM + chiave privata (solo PowerShell 7+):```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPCertificatePemPath "C:\certs\cert.pem" -SPPrivateKeyPemPath "C:\certs\key.pem"
Per una chiave privata crittografata, aggiungi `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)`.
##### Autorizzazioni richieste per la registrazione dell'app
Concedi le seguenti autorizzazioni **Applicazione** (non Delegata) sulla registrazione dell'app e fornisci il consenso amministrativo:
| Autorizzazione | Tipo |
|---|---|
| `AdministrativeUnit.Read.All` | Applicazione |
| `AgentIdentity.Read.All` | Applicazione |
| `AgentIdentityBlueprint.Read.All` | Applicazione |
| `AgentIdentityBlueprintPrincipal.Read.All` | Applicazione |
| `Application.Read.All` | Applicazione |
| `AuditLog.Read.All` | Applicazione |
| `Device.Read.All` | Applicazione |
| `EntitlementManagement.Read.All` | Applicazione |
| `Group.Read.All` | Applicazione |
| `Organization.Read.All` | Applicazione |
| `Policy.Read.All` | Applicazione |
| `PrivilegedAccess.Read.AzureADGroup` | Applicazione |
| `RoleManagement.Read.Directory` | Applicazione |
| `RoleManagementPolicy.Read.AzureADGroup` | Applicazione |
| `User.Read.All` | Applicazione |
| `DeviceManagementRBAC.Read.All` | Applicazione |
Inoltre, assegna il ruolo **Azure Reader** sul gruppo di gestione radice (o su ogni sottoscrizione pertinente) e, opzionalmente, il ruolo **Global Reader** all'entità servizio in Entra ID (richiesto per lo stato MFA per utente).
#### Fallback: Flusso del codice di autorizzazione (solo Windows)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Fallback: Device Code Flow
È spesso limitato da Conditional Access in ambienti hardened.
Con DeviceCode, due controlli di Security Findings vengono eseguiti con profondità ridotta (CAP-004 e CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
#### Fallback: flusso con codice di autorizzazione + codice manuale```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
- Lo script copia l'URL di autenticazione negli appunti.
- Incolla l'URL in un browser (opzionalmente su un altro dispositivo per il supporto SSO).
- Completa l'autenticazione.
- Copia l'URL di reindirizzamento finale dalla barra degli indirizzi del browser (contenente il codice di autorizzazione) negli appunti.
- Premi Invio per continuare; lo script legge il codice dagli appunti e completa l'acquisizione del token.
Altri Parametri
Includi App Enterprise di Proprietà Microsoft
Per impostazione predefinita, le applicazioni enterprise ufficiali di Microsoft sono escluse dalla valutazione per ridurre il rumore. Per includerle nell'enumerazione e nell'analisi, usa l'interruttore -IncludeMsApps:```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
#### Valutazione Skip PIM per i Gruppi
Usa l'opzione `-SkipPimForGroups` per saltare la pre-raccolta e l'arricchimento di PIM per i Gruppi.
Questo salta anche il report autonomo delle impostazioni di `PIM for Groups`.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Altri Parametri Opzionali
| Parametro | Descrizione | Valore Predefinito |
|---|---|---|
| UserAgent | User agent utilizzato per le richieste all'endpoint del token e per le chiamate API. | EntraFalcon |
| DisableCAE | Disabilita la richiesta di token Continuous Access Evaluation (CAE). | false |
| Tenant | Specifica il tenant (ID o dominio) per l'autenticazione. Utile quando si valuta un tenant diverso da quello principale dell'account. | Tenant principale dell'account |
| OutputFolder | Cartella di output in cui vengono salvati i report. | Results_%TenantName%_YYYYMMDD_HHMM |
| LimitResults | Limita il numero di gruppi e utenti nel report (dopo l'ordinamento per rischio). Utile per tenant di grandi dimensioni. | - |
| LogLevel | Controlla la verbosità della registrazione CLI in fase di esecuzione. Valori supportati: Off (predefinito), Verbose, Debug, Trace. | Off |
| ApiTop | Imposta il numero massimo di oggetti restituiti dall'API. Valori più bassi riducono il rischio di timeout (HTTP 504), ma aumentano il numero di richieste. | 999 (Intervallo valido: 5–999) |
| AuthFlow | Selettore del flusso di autenticazione preferito. Valori: BroCi (predefinito), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal. | BroCi |
| BroCiToken | Refresh token del portale Azure per AuthFlow BroCiToken. | - |
| SPClientId | ID applicazione (client) del service principal. Richiesto per -AuthFlow ServicePrincipal. | - |
| SPClientSecret | Segreto client per il service principal. Utilizzato con -AuthFlow ServicePrincipal. | - |
| SPCertificatePath | Percorso di un file di certificato PFX/P12 per l'autenticazione del service principal. | - |
| SPCertificatePassword | Password (SecureString) per il certificato PFX specificato da -SPCertificatePath. | - |
| SPCertificatePemPath | Percorso di un file di certificato PEM. Utilizzato insieme a -SPPrivateKeyPemPath. | - |
| SPPrivateKeyPemPath | Percorso del file della chiave privata PEM corrispondente a -SPCertificatePemPath. | - |
| SPPrivateKeyPemPassword | Password (SecureString) per la chiave privata PEM specificata da -SPPrivateKeyPemPath. | - |
| Csv | Abilita la scrittura di file di report CSV in aggiunta ai file di report TXT/HTML. | false |
| ExportCapUncoveredUsers | Per ogni policy di Accesso Condizionale abilitata con targeting utente, esporta un CSV che elenca gli utenti non coperti da tale policy. I file vengono scritti in una sottocartella ConditionalAccessPolicies_UncoveredUsers nella directory di output. | false |
| ExportFindingsJson | Esporta tutti i Security Findings come JSON al termine dell'esecuzione. | false |
| ExportDataJson | Esporta il report arricchito e i dataset di supporto come file di dati JSON grezzi in Data_Json; i metadati dell'esecuzione sono disponibili in Summary.json. | false |
| DebugObjectDump | Esporta gli oggetti di report finali in memoria come CLIXML in Debug_ObjectDump per risoluzione dei problemi e test. | false |
📊 Alcuni Esempi di Report
Report dei Security Finding

Utenti

Utenti (Sezione Dettagli)

Ruoli Entra ID

Ruoli Azure

Applicazione Enterprise (Sezione Dettagli)

Policy di Accesso Condizionale

Policy di Accesso Condizionale (Sezione Dettagli)

Impostazioni Ruolo PIM (Entra)

Identità Agente

Riepilogo Enumerazione

📑 Report HTML
Generale
- Fare clic sul pulsante ⚙️ Columns per mostrare o nascondere colonne specifiche.
- Fare clic su 💾 Export per scaricare CSV/JSON o copiare CSV/TSV/JSON dei dati attualmente visibili.
- Fare clic su 👁 Share View per copiare filtri, ordinamento e selezione delle colonne come collegamento condivisibile.
- Fare clic su 🧰 Preset Views per applicare filtri e selezioni di colonne preconfigurati.
- Fare clic su 🔄 Reset View per ripristinare la visualizzazione predefinita.
- Fare clic sui nomi degli oggetti per passare alle informazioni dettagliate, anche in altri report.
- Quando si utilizza la navigazione interna, premere il pulsante Indietro del browser per tornare indietro.
- Alcuni campi di intestazione delle tabelle mostrano testo di aiuto al passaggio del mouse.
- Ordinare i dati facendo clic su un'intestazione di tabella.
- Alt+clic su un'intestazione di colonna principale della tabella per nascondere rapidamente quella colonna.
- Alt+clic su una riga di contenuto della tabella principale per nasconderla temporaneamente. Utilizzare il chip delle righe nascoste o Reset View per mostrare di nuovo le righe nascoste.
Filtraggio
- Se non viene specificato un operatore, il filtraggio utilizza per impostazione predefinita contains.
- Utilizzare
=per una corrispondenza esatta. - Utilizzare
^per starts with (ad es.,^Mallory). - Utilizzare
$per ends with (ad es.,$domain.ch). - Sono supportati operatori di confronto come
>,<,>=,<=(solo valori numerici). - I filtri possono essere negati iniziando con
!(tranne per i confronti numerici). Esempi:!Mallory,!=Mallory,!^Malloryo!$domain.ch. - Utilizzare
=emptyper corrispondere a celle vuote, o!=emptyper corrispondere a celle non vuote. - Utilizzare
||per corrispondere a uno qualsiasi di più valori nella stessa colonna (ad es.,Admin || Guest). - Utilizzare
&&per richiedere più corrispondenze nella stessa colonna (ad es.,!adm && !svc && !sql). - Per applicare la logica OR tra colonne, utilizzare
or_,group1_,group2_... direttamente in un campo di filtro. Esempi: nella colonna 1:or_>1, nella colonna 2:or_!Mallory - Nota: La colonna DisplayName include anche l'ID dell'oggetto (invisibile), quindi è possibile filtrare anche per ID.
Controlli tramite Parametri GET
- Filtraggio: Applicare i filtri utilizzando i nomi dei campi come parametri HTTP GET, ad es.,
?EntraRoles=>1&Enabled=true.
Per applicare la logica OR tra colonne, utilizzare il prefissoor_ogroup1_(ad es.,?or_EntraRoles=>0&or_GrpMem=>0). - Selezione Colonne: Scegliere quali colonne visualizzare utilizzando il parametro
columns. Esempio:?columns=DisplayName,Owner. - Ordinamento: Ordinare i dati utilizzando i parametri
sortesortDir. Esempio:?sort=Impact&sortDir=desco?sort=OwnerCount&sortDir=asc. - Dettagli Oggetto: Passare direttamente a un oggetto specifico nel report utilizzando un'ancora (
#) e l'ID dell'oggetto, ad es.#%ObjectID%.
Valutazione
- Impact: Rappresenta la quantità o la gravità delle autorizzazioni dell'oggetto.
- Likelihood: Rappresenta quanto facilmente l'oggetto può essere influenzato o quanto è protetto.
- Risk: Punteggio calcolato: Impact × Likelihood = Risk.
- Importante:
- Questo punteggio è inteso come una valutazione di base per aiutare a ordinare e dare priorità alle voci nella tabella.
- I punteggi di rischio non sono direttamente confrontabili tra diversi tipi di oggetti o report.
- Non è inteso a sostituire una valutazione completa del rischio.
🔧Sotto il Coffano
Categorizzazione dei Ruoli
I ruoli Entra ID e Azure sono approssimativamente categorizzati in diversi livelli di tier. Questa categorizzazione influenza i punteggi di impatto degli oggetti assegnati a tali ruoli. L'obiettivo è assegnare un punteggio di impatto più alto agli utenti con ruoli più potenti (ad es., Global Administrator) rispetto agli utenti con ruoli meno critici (ad es., Global Reader), anche se entrambi sono considerati ruoli privilegiati da Microsoft.
Nota: Per i ruoli Azure, questa categorizzazione è meno precisa, poiché l'impatto effettivo dipende fortemente dall'ambito dell'assegnazione del ruolo. Ad esempio, un ruolo Owner su una singola macchina virtuale ha un impatto significativamente inferiore rispetto a quando lo stesso ruolo viene applicato a un'intera sottoscrizione. Potrebbe anche essere una sottoscrizione di test senza alcuna risorsa.
Ruoli Entra ID
| Nome Ruolo | Livello Tier | 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 |
Ruoli Azure
| Nome Ruolo | Livello Tier | 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 |
Categorizzazione delle Autorizzazioni API
Alcune autorizzazioni API consentono a un'applicazione di escalare direttamente ai privilegi di Global Administrator. Pertanto, diverse autorizzazioni API sono categorizzate in diversi livelli di gravità. Questa categorizzazione influenza il punteggio di impatto delle applicazioni a cui sono assegnate queste autorizzazioni — sia come autorizzazioni applicazione che come autorizzazioni delegate per gli utenti.
Autorizzazione Applicazione
| Permission | Severity | GUID | |-------------------------------------------------------------|------------|----------------------------------------| | RoleManagement.ReadWrite.Directory | Pericoloso | 9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8 | | AppRoleAssignment.ReadWrite.All | Pericoloso | 06b708a9-e830-4db3-a914-8e69da51d44f | | Application.ReadWrite.All | Pericoloso | 1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9 | | RoleAssignmentSchedule.ReadWrite.Directory | Pericoloso | dd199f4a-f148-40a4-a2ec-f0069cc799ec | | PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Pericoloso | 41202f2c-f7ab-45be-b001-85c9728b9d69 | | PrivilegedAccess.ReadWrite.AzureADGroup | Pericoloso | 2f6817f8-7b12-4f0f-bc18-eeaf60705a9e | | RoleEligibilitySchedule.ReadWrite.Directory | Pericoloso | fee28b28-e1f3-4841-818e-2704dc62245f | | PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Pericoloso | 618b6020-bca8-4de6-99f6-ef445fa4d857 | | Domain.ReadWrite.All | Pericoloso | 7e05723c-0bb0-42da-be95-ae9f08a6e53c | | Application.ReadUpdate.All | Pericoloso | fc023787-fd04-4e44-9bc7-d454f00c0f0a | | AgentIdentityBlueprint.ReadWrite.All | Alto | 7fddd33b-d884-4ec0-8696-72cff90ff825 | | AgentIdentityBlueprint.AddRemoveCreds.All | Alto | 0510736e-bdfb-4b37-9a1f-89b4a074763a | | ADSynchronization.ReadWrite.All | Alto | ab43b826-2c7a-4aff-9ecd-d0629d0ca6a9 | | EntitlementManagement.ReadWrite.All | Alto | 9acd699f-1e81-4958-b001-93b1d2506e19 | | Organization.ReadWrite.All | Alto | 292d869f-3427-49a8-9dab-8c70152b74e9 | | Policy.ReadWrite.PermissionGrant | Alto | a402ca1c-2696-4531-972d-6e5ee4aa11ea | | RoleManagementPolicy.ReadWrite.AzureADGroup | Alto | b38dcc4d-a239-4ed6-aa84-6c65b284f97c | | RoleManagementPolicy.ReadWrite.Directory | Alto | 31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad | | Policy.ReadWrite.AuthenticationMethod | Alto | 29c18626-4985-4dcd-85c0-193eef327366 | | User.DeleteRestore.All | Alto | eccc023d-eccf-4e7b-9683-8813ab36cecc | | User.EnableDisableAccount.All | Alto | 3011c876-62b7-4ada-afa2-506cbbecc68c | | DelegatedPermissionGrant.ReadWrite.All | Alto | 8e8e4742-1d95-4f68-9d56-6ee75648c72a | | Policy.ReadWrite.ConditionalAccess | Alto | 01c0a623-fc9b-48e9-b794-0756f8e8f067 | | DeviceManagementConfiguration.ReadWrite.All | Alto | 9241abd9-d0e6-425a-bd4f-47ba86e767a4 | | DeviceManagementRBAC.ReadWrite.All | Alto | e330c4f0-4170-414e-a55a-2f022ec2b57b | | Directory.ReadWrite.All | Alto | 19dbc75e-c2e2-444c-a770-ec69d8559fc7 | | Group.ReadWrite.All | Alto | 62a82d76-70ea-41e2-9197-370581804d09 | | GroupMember.ReadWrite.All | Alto | dbaae8cf-10b5-4b86-a4a1-f871c94c6695 | | UserAuthenticationMethod.ReadWrite.All | Alto | 50483e42-d915-4231-9639-7fdb7fd190e5 | | User-PasswordProfile.ReadWrite.All | Alto | cc117bb9-00cf-4eb8-b580-ea2a878fe8f7 | | Sites.FullControl.All | Alto | a82116e5-55eb-4c41-a434-62fe8a61c773 | | Sites.FullControl.All SharePointAPI | Alto | 678536fe-1083-478a-9c59-b99265e6b0d3 | | Sites.Manage.All SharePointAPI | Alto | 9bff6588-13f2-4c48-bbf2-ddab62256b36 | | Sites.Read.All SharePointAPI | Alto | d13f72ca-a275-4b96-b789-48ebcc4da984 | | Sites.ReadWrite.All SharePointAPI | Alto | fbcd29d2-fcca-4405-aded-518d457caae4 | | Sites.Manage.All | Alto | 0c0bf378-bf22-4481-8f81-9e89a9b4960a | | Sites.Read.All | Alto | 332a536c-c7ef-4017-ab91-336970924f0d | | Sites.ReadWrite.All | Alto | 9492366f-7969-46a4-8d15-ed1a20078fff | | Files.Read.All | Alto | 01d4889c-1287-42c6-ac1f-5d1e02578ef6 | | Files.ReadWrite.All | Alto | 75359482-378d-4052-8f01-80520e7db3cd | | DeviceLocalCredential.Read.All | Alto | db51be59-e728-414b-b800-e0f010df1a79 | | AdministrativeUnit.ReadWrite.All | Alto | 5eb59dd3-1da2-4329-8733-9dabdc435916 | | UserAuthMethod-HardwareOATH.ReadWrite.All | Alto | 7e9ebcc1-90aa-4471-8051-e68d6b4e9c89 | | UserAuthMethod-Phone.ReadWrite.All | Alto | 6e85d483-7092-4375-babe-0a94a8213a58 | | UserAuthMethod-QR.ReadWrite.All | Alto | 4869299f-18c3-40c8-98f2-222657e67db1 | | UserAuthMethod-TAP.ReadWrite.All | Alto | 627169a8-8c15-451c-861a-5b80e383de5c | | User.ReadWrite.All | Medio | 741f803b-c850-494e-b5df-cde7c675a1ca | | Application.ReadWrite.OwnedBy | Medio | 18a4783c-866b-4cc7-a460-3d5e5662c884 | | Chat.Read.All | Medio | 6b7d71aa-70aa-4810-a8d9-5d9fb2830017 | | Chat.ReadWrite.All | Medio | 294ce7c9-31ba-490a-ad7d-97a7d075e4ed | | Calendars.Read | Medio | 798ee544-9d2d-430c-a058-570e29e34338 | | Calendars.ReadWrite | Medio | ef54d2bf-783f-4e0f-bca1-3210c0444d99 | | Mail.Read | Medio | 810c84a8-4a9e-49e6-bf7d-12d183f40d01 | | Mail.ReadWrite | Medio | e2a3a72e-5f79-4c64-b1b1-878b674786c9 | | BitlockerKey.Read.All | Medio | 57f1cf28-c0c4-4ec3-9a30-19a2eaaf2f6e | | Mail.Send | Medio | b633e1c5-b582-4048-a93e-9f11b44c7e96 | | OnlineMeetings.ReadWrite.All | Medio | b8bb2037-6e08-44ac-a4ea-4674e010e2a4 | | CustomSecAttributeAssignment.ReadWrite.All | Medio | de89b5e4-5b8f-48eb-8925-29c2b33bd8bd | | ServicePrincipalEndpoint.ReadWrite.All | Medio | 89c8469c-83ad-45f7-8ff2-6e3d4285709e | | AgentIdUser.ReadWrite.IdentityParentedBy | Medio | 4aa6e624-eee0-40ab-bdd8-f9639038a614 | | AgentIdentity.CreateAsManager | Basso | 4c390976-b2b7-42e0-9187-c6be3bead001 |Autorizzazione Delegata
| Permission | Severity | GUID |
|---|---|---|
| RoleManagement.ReadWrite.Directory | Pericoloso | d01b97e9-cbc0-49fe-810a-750afd5527a3 |
| AppRoleAssignment.ReadWrite.All | Pericoloso | 84bccea3-f856-4a8a-967b-dbe0a3d53a64 |
| Application.ReadWrite.All | Pericoloso | bdfbf15f-ee85-4955-8675-146e8e5296b5 |
| RoleAssignmentSchedule.ReadWrite.Directory | Pericoloso | 8c026be3-8e26-4774-9372-8d5d6f21daff |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Pericoloso | 06dbc45d-6708-4ef0-a797-f797ee68bf4b |
| PrivilegedAccess.ReadWrite.AzureADGroup | Pericoloso | 32531c59-1f32-461f-b8df-6f8a3b89f73b |
| RoleEligibilitySchedule.ReadWrite.Directory | Pericoloso | 62ade113-f8e0-4bf9-a6ba-5acb31db32fd |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Pericoloso | ba974594-d163-484e-ba39-c330d5897667 |
| Domain.ReadWrite.All | Pericoloso | 0b5d694c-a244-4bde-86e6-eb5cd07730fe |
| Application.ReadUpdate.All | Pericoloso | 0586a906-4d89-4de8-b3c8-1aacdcc0c679 |
| AgentIdentityBlueprint.AddRemoveCreds.All | Alto | 75b5feb2-bfe7-423f-907d-cc505186f246 |
| AgentIdentityBlueprint.ReadWrite.All | Alto | 4fd490fc-1467-48eb-8a4c-421597ab0402 |
| EntitlementManagement.ReadWrite.All | Alto | ae7a573d-81d7-432b-ad44-4ed5c9d89038 |
| Organization.ReadWrite.All | Alto | 46ca0847-7e6b-426e-9775-ea810a948356 |
| Policy.ReadWrite.PermissionGrant | Alto | 2672f8bb-fd5e-42e0-85e1-ec764dd2614e |
| RoleManagementPolicy.ReadWrite.AzureADGroup | Alto | 0da165c7-3f15-4236-b733-c0b0f6abe41d |
| RoleManagementPolicy.ReadWrite.Directory | Alto | 1ff1be21-34eb-448c-9ac9-ce1f506b2a68 |
| Policy.ReadWrite.AuthenticationMethod | Alto | 7e823077-d88e-468f-a337-e18f1f0e6c7c |
| User.DeleteRestore.All | Alto | 4bb440cd-2cf2-4f90-8004-aa2acd2537c5 |
| User.EnableDisableAccount.All | Alto | f92e74e7-2563-467f-9dd0-902688cb5863 |
| DelegatedPermissionGrant.ReadWrite.All | Alto | 41ce6ca6-6826-4807-84f1-1c82854f7ee5 |
| Policy.ReadWrite.ConditionalAccess | Alto | ad902697-1014-4ef5-81ef-2b4301988e8c |
| DeviceManagementConfiguration.ReadWrite.All | Alto | 0883f392-0a7a-443d-8c76-16a6d39c7b63 |
| DeviceManagementRBAC.ReadWrite.All | Alto | 0c5e8a55-87a6-4556-93ab-adc52c4d862d |
| Directory.ReadWrite.All | Alto | c5366453-9fb0-48a5-a156-24f0c49a4b84 |
| Group.ReadWrite.All | Alto | 4e46008b-f24c-477d-8fff-7bb4ec7aafe0 |
| GroupMember.ReadWrite.All | Alto | f81125ac-d3b7-4573-a3b2-7099cc39df9e |
| UserAuthenticationMethod.ReadWrite.All | Alto | b7887744-6746-4312-813d-72daeaee7e2d |
| Sites.FullControl.All | Alto | 5a54b8b3-347c-476d-8f8e-42d5c7424d29 |
| Sites.Manage.All | Alto | 65e50fdc-43b7-4915-933e-e8138f11f40a |
| User-PasswordProfile.ReadWrite.All | Alto | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.Read.All | Alto | 205e70e5-aba6-4c52-a976-6d2d46c48043 |
| Sites.ReadWrite.All | Alto | 89fe6a52-be36-487e-b7d8-d061c450a026 |
| Files.Read.All | Alto | df85f4d6-205c-4ac5-a5ea-6bf408dba283 |
| Files.ReadWrite.All | Alto | 863451e7-0667-486c-a5d6-d135439485f0 |
| DeviceLocalCredential.Read.All | Alto | 9917900e-410b-4d15-846e-42a357488545 |
| UserAuthMethod-Phone.ReadWrite | Alto | 6c4aad61-f76b-46ad-a22c-57d4d3d962af |
| UserAuthMethod-Phone.ReadWrite.All | Alto | 48c99302-9a24-4f27-a8a7-acef4debba14 |
| UserAuthMethod-Password.ReadWrite.All | Alto | 7f5b683d-df96-4690-a88d-6e336ed6dc7c |
| UserAuthMethod-Password.ReadWrite | Alto | 60cce20d-d41e-4594-b391-84bbf8cc31f3 |
| AdministrativeUnit.ReadWrite.All | Alto | 7b8a2d34-6b3f-4542-a343-54651608ad81 |
| User.ReadWrite.All | Medio | 204e0828-b5ca-4ad8-b9f3-f32a958e7cc4 |
| Chat.ReadWrite.All | Medio | 7e9a077b-3711-42b9-b7cb-5fa5f3f7fea7 |
| Mail.Read | Medio | 570282fd-fa5c-430d-a7fd-fc8dc98a9dca |
| Mail.ReadWrite | Medio | 024d486e-b451-40bb-833d-3e66d98c5c73 |
| Mail.Send | Medio | e383f46e-2787-4529-855e-0e479a3ffac0 |
| CustomSecAttributeAssignment.ReadWrite.All | Medio | ca46335e-8453-47cd-a001-8459884efeae |
| ServicePrincipalEndpoint.ReadWrite.All | Medio | 7297d82c-9546-4aed-91df-3d4f0a9b3ff0 |
| BitlockerKey.Read.All | Medio | b27a61ec-b99c-4d6a-b126-c4375d08ae30 |
| AiEnterpriseInteraction.Read | Medio | 859cceb9-2ec2-4e48-bcd7-b8490b5248a5 |
| Calendars.Read | Medio | 465a38f9-76ea-45b9-9f34-9e8b0d4b0b42 |
| Calendars.Read.Shared | Medio | 2b9c4092-424d-4249-948d-b43879977640 |
| Calendars.ReadWrite | Medio | 1ec239c2-d7c9-4623-a91a-a9775856bb36 |
| Calendars.ReadWrite.Shared | Medio | 12466101-c9b8-439a-8589-dd09ee67e8e9 |
| ChannelMessage.Edit | Medio | 2b61aa8a-6d36-4b2f-ac7b-f29867937c53 |
| ChannelMessage.ReadWrite | Medio | 5922d31f-46c8-4404-9eaf-2117e390a8a4 |
| ChannelMessage.Send | Medio | ebf0f66e-9fb1-49e4-a278-222f76911cf4 |
| ChatMessage.Send | Medio | 116b7235-7cc6-461e-b163-8e55691d839e |
| Chat.ReadWrite | Medio | 9ff7295e-131b-4d94-90e1-69fde507ac11 |
| Contacts.ReadWrite | Medio | d56682ec-c09e-4743-aaf4-1a3aac4caa21 |
| Directory.AccessAsUser.All | Medio | 0e263e50-5827-48a4-b97c-d940288653c7 |
| Directory.Read.All | Medio | 06da0dbc-49e2-44d2-8312-53f166ab848a |
| EAS.AccessAsUser.All | Medio | ff91d191-45a0-43fd-b837-bd682c4a0b0f |
| EntitlementMgmt-SubjectAccess.ReadWrite | Medio | e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac |
| EWS.AccessAsUser.All | Medio | 9769c687-087d-48ac-9cb3-c37dde652038 |
| Files.ReadWrite | Medio | 5c28f0bf-8a70-41f1-8ab2-9032436ddb65 |
| IMAP.AccessAsUser.All | Medio | 652390e4-393a-48de-9484-05f9b1212954 |
| MailboxItem.ImportExport | Medio | df96e8a0-f4e1-4ecf-8d83-a429f822cbd6 |
| MailboxFolder.Read | Medio | 52dc2051-4958-4636-8f2a-281d39c6981c |
| MailboxFolder.ReadWrite | Medio | 077fde41-7e0b-4c5b-bcd1-e9d743a30c80 |
| MailboxItem.Read | Medio | 82305458-296d-4edd-8b0b-74dd74c34526 |
| MailboxSettings.ReadWrite | Medio | 818c620a-27a9-40bd-a6a5-d96f7d610b4b |
| Notes.Read | Medio | 371361e4-b9e2-4a3f-8315-2a301a3b0a3d |
| Notes.Read.All | Medio | dfabfca6-ee36-4db2-8208-7a28381419b3 |
| Notes.ReadWrite | Medio | 615e26af-c38a-4150-ae3e-c3b0d4cb1d6a |
| Notes.ReadWrite.All | Medio | 64ac0503-b4fa-45d9-b544-71a463f05da0 |
| POP.AccessAsUser.All | Medio | d7b7f2d9-0f45-4ea1-9d42-e50810c06991 |
| offline_access | Basso | 7427e0e9-2fba-42fe-b0c0-848c9e6a8182 |
| openid | Basso | 37f7f235-527c-4136-accd-4a02d197296e |
| Basso | 64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0 | |
| profile | Basso | 14dad69e-099b-42c9-810b-d002981feec1 |
| User.Read | Basso | e1fe6dd8-ba31-4d61-89e7-88639da4683d |
Applicazioni Enterprise di Prima Parte Microsoft
Per impostazione predefinita, le applicazioni Microsoft vengono escluse per semplificare la revisione delle Applicazioni Enterprise. Utilizzare l'opzione -IncludeMsApps per includerle. Le applicazioni dei seguenti tenant sono considerate di proprietà Microsoft:
- f8cdef31-a31e-4b4a-93e4-5f571e91255a
- 72f988bf-86f1-41af-91ab-2d7cd011db47
- 33e01921-4d64-4f8c-a055-5bdaffd5e33d
- cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Controlli Eseguiti
La tabella seguente riassume approssimativamente i controlli eseguiti, insieme al loro impatto sul punteggio e alla presenza di un avviso.
Controlli Eseguiti
|Area|Check|Impatto sul punteggio|Avviso visualizzato| |-|-|-|-| |Gruppi|È un gruppo M365 pubblico|Sì|Sì| |Gruppi|È dinamico / È dinamico con query potenzialmente pericolosa|Sì|Sì| |Gruppi|Ruoli Entra (attivi ed eleggibili)|Sì|Sì| |Gruppi|Ruoli Azure (attivi ed eleggibili)|Sì|Sì| |Gruppi|Utilizzato per AppRole|Sì|Sì| |Gruppi|SP interno/esterno come proprietario|Sì|Sì| |Gruppi|In AU ristretta|Sì|Sì| |Gruppi|Annidato in gruppo privilegiato|Sì|Sì| |Gruppi|Utilizzato in CAP|Sì|Sì| |Gruppi|Tipo di gruppo|Sì|No| |Gruppi|Security abilitata|Sì|No| |Gruppi|Membro attivo annidato|Sì|No| |Gruppi|Proprietari|Sì|No| |Gruppi|Proprietari annidati|Sì|No| |Gruppi|Guest come proprietario|Sì|Sì| |Gruppi|Sincronizzazione on-prem|Sì|No| |Gruppi|Membri (transitivi)|Sì|No| |Gruppi|Assegnabile a ruoli|Sì|No| |Gruppi|PIM per gruppi: onboarded|No|No| |Gruppi|PIM per gruppi: membro eleggibile di gruppo privilegiato|Sì|Sì| |Gruppi|PIM per gruppi: proprietario eleggibile di gruppo privilegiato|Sì|Sì| |Gruppi|PIM per gruppi: gruppo non protetto annidato in gruppo protetto|No|Sì| |EnterpriseApp|Ruolo Entra|Sì|Sì| |EnterpriseApp|Ruolo Azure|Sì|Sì| |EnterpriseApp|Esterna|Sì|No| |EnterpriseApp|Disabilitata da Microsoft|No|Sì| |EnterpriseApp|Nome sospetto (caratteri simili)|Sì|Sì| |EnterpriseApp|Autorizzazione API (applicazione)|Sì|Sì| |EnterpriseApp|Autorizzazione API (delegata)|Sì|Sì| |EnterpriseApp|Credenziali|Sì|Sì| |EnterpriseApp|Proprietari|Sì|Sì| |EnterpriseApp|Proprietà su registrazioni app|Sì|Sì| |EnterpriseApp|Proprietà di altri service principal|Sì|Sì| |EnterpriseApp|AppLock|(Sì)|No| |EnterpriseApp|L'app possiede una registrazione app|Sì|Sì| |EnterpriseApp|Membro / proprietario di gruppi|Sì|(Sì)| |EnterpriseApp|AppRoles|Sì|No| |EnterpriseApp|Requisiti AppRole|Sì|No| |EnterpriseApp|Inattiva|No|No| |EnterpriseApp|Ultimo accesso riuscito (giorni)|No|No| |RegistrazioniApp|Credenziali|Sì|Sì| |RegistrazioniApp|App Entra Connect con credenziali|Sì|Sì| |RegistrazioniApp|App Entra Connect con più certificati|Sì|Sì| |RegistrazioniApp|AppRoles|Sì|No| |RegistrazioniApp|URL di reindirizzamento app|No|No| |RegistrazioniApp|AppLock|Sì|No| |RegistrazioniApp|Proprietari|Sì|Sì| |RegistrazioniApp|Amministratori app (cloud) con ambito|No|No| |RegistrazioniApp|Privilegi dello SP corrispondente|Sì|No| |RegistrazioniApp|Pubblico di accesso|No|No| |IdentitàGestite|Proprietari|Sì|Sì| |IdentitàGestite|Ruolo Entra|Sì|Sì| |IdentitàGestite|Ruolo Azure|Sì|Sì| |IdentitàGestite|API (app)|Sì|Sì| |IdentitàGestite|Proprietà su registrazioni app|Sì|Sì| |IdentitàGestite|Proprietà di altri service principal|Sì|Sì| |IdentitàGestite|Membro / proprietario di gruppi|Sì|(Sì)| |Utente|Ruoli Entra (attivi ed eleggibili)|Sì|Sì| |Utente|Ruoli Azure (attivi ed eleggibili)|Sì|Sì| |Utente|Appartenenza a gruppi privilegiati (attiva ed eleggibile)|Sì|Sì| |Utente|Proprietà di gruppi privilegiati (attiva ed eleggibile)|Sì|Sì| |Utente|Utente sincronizzato Entra Connect|Sì|Sì| |Utente|Utente sincronizzato Entra Connect Cloud Sync|Sì|Sì| |Utente|Proprietà di registrazioni app|Sì|Sì| |Utente|Proprietà di applicazioni enterprise|Sì|Sì| |Utente|Nessun fattore MFA registrato|Sì|Sì| |Utente|È protetto|Sì|No| |Utente|Inattivo|No|No| |Utente|Membro / proprietario di gruppi|Sì|(Sì)| |Utente|Sincronizzato da on-prem|Sì|No| |IdentitàAgente|Utenti agente collegati|Sì|No| |IdentitàAgente|Origine principale blueprint esterna|Sì|Sì| |IdentitàAgente|Autorizzazione API effettiva (applicazione)|Sì|Sì| |IdentitàAgente|Autorizzazione API effettiva (delegata)|Sì|Sì| |IdentitàAgente|Ruolo Entra|Sì|Sì| |IdentitàAgente|Ruolo Azure|Sì|Sì| |IdentitàAgente|Proprietà su registrazioni app|Sì|Sì| |IdentitàAgente|Proprietà di altri service principal|Sì|Sì| |IdentitàAgente|Membro / proprietario di gruppi|Sì|(Sì)| |PrincipaleBlueprintIdentitàAgente|Identità agente collegate|Sì|No| |PrincipaleBlueprintIdentitàAgente|Utenti agente collegati|Sì|No| |PrincipaleBlueprintIdentitàAgente|Autorizzazione API configurata (applicazione)|No|No| |PrincipaleBlueprintIdentitàAgente|Autorizzazione API configurata (delegata)|No|No| |PrincipaleBlueprintIdentitàAgente|Origine blueprint padre esterna|Sì|No| |PrincipaleBlueprintIdentitàAgente|Ruolo Entra|No|No| |PrincipaleBlueprintIdentitàAgente|Ruolo Azure|No|No| |PrincipaleBlueprintIdentitàAgente|Nome sospetto (caratteri simili)|Sì|Sì| |BlueprintIdentitàAgente|Principali blueprint|Sì|No| |BlueprintIdentitàAgente|Identità agente collegate|Sì|No| |BlueprintIdentitàAgente|Utenti agente collegati|Sì|No| |BlueprintIdentitàAgente|Autorizzazioni API ereditabili|Sì|No| |BlueprintIdentitàAgente|Credenziali federate|Sì|No| |BlueprintIdentitàAgente|Segreti / certificati|Sì|Sì| |BlueprintIdentitàAgente|Proprietari / sponsor|Sì|(Sì)| |PacchettiAccesso|Ruoli Entra concessi|Sì|No| |PacchettiAccesso|Ruoli Azure concessi|Sì|No| |PacchettiAccesso|Gruppi concessi|Sì|No| |PacchettiAccesso|Ruoli applicazione concessi|Sì|No| |PacchettiAccesso|Autorizzazioni API concesse (applicazione)|Sì|No| |PacchettiAccesso|Autorizzazioni API concesse (delegata)|Sì|No| |PacchettiAccesso|Accesso SharePoint concesso|Sì|No| |PacchettiAccesso|Auto-richiesta ampia senza approvazione|Sì|Sì| |PacchettiAccesso|Accesso persistente senza scadenza o revisione dell'accesso|No|No| |PacchettiAccesso|Regole di assegnazione automatica pericolose|Sì|Sì| |PacchettiAccesso|Auto-richiesta tramite gruppi target non protetti|Sì|Sì| |PacchettiAccesso|Assegnazione ampia per conto di non utenti senza approvazione|Sì|No| |PacchettiAccesso|Assegnazioni di service principal|Sì|No| |Cataloghi|Metadati, stato e visibilità esterna del catalogo|No|No| |Cataloghi|Risorse del catalogo|No|No| |Cataloghi|Risorse configurabili in nuovi pacchetti di accesso|Sì|No| |Cataloghi|Risorse e ruoli configurati in pacchetti di accesso esistenti|Sì|No| |Cataloghi|Risorse del catalogo non configurate|Sì|No| |Cataloghi|Assegnazioni RBAC del catalogo|Sì|Sì| |CAP|Nessuna policy o policy configurata in modo errato per l'autenticazione legacy|-|Sì| |CAP|Nessuna policy o policy configurata in modo errato per il blocco del flusso del codice dispositivo|-|Sì| |CAP|Nessuna policy o policy configurata in modo errato per limitare le registrazioni delle informazioni di sicurezza|-|Sì| |CAP|Nessuna policy o policy configurata in modo errato per il targeting degli accessi rischiosi|-|Sì| |CAP|Nessuna policy o policy configurata in modo errato per il targeting del rischio utente|-|Sì| |CAP|Nessuna policy che imponga l'MFA|-|Sì| |CAP|Nessuna policy che imponga l'Authentication Strength|-|Sì| |CAP|Inclusione di ruoli con assegnazioni con ambito|-|Sì| |ImpostazioniPIM|AuthContext|-|Sì| |ImpostazioniPIM|CAP collegato ad AuthContext: frequenza di accesso|-|Sì| |ImpostazioniPIM|CAP collegato ad AuthContext: MFA o AuthStrength|-|Sì| |ImpostazioniPIM|CAP collegato ad AuthContext: abilitato|-|Sì| |ImpostazioniPIM|CAP collegato ad AuthContext: utenti/gruppi/reti inclusi/esclusi|-|Sì| |ImpostazioniPIM|CAP collegato ad AuthContext: condizioni|-|Sì| |ImpostazioniPIM|MFA di attivazione|-|No| |ImpostazioniPIM|Giustificazione o ticket di attivazione|-|Sì| |ImpostazioniPIM|Durata dell'attivazione|-|Sì| |ImpostazioniPIM|Approvazione dell'attivazione|-|Sì| |ImpostazioniPIM|Scadenza dell'assegnazione eleggibile|-|No| |ImpostazioniPIM|Scadenza dell'assegnazione attiva|-|Sì| |ImpostazioniPIM|MFA per assegnazioni attive|-|No| |ImpostazioniPIM|Notifica di attivazione del ruolo|-|No| |ImpostazioniPIM|Notifica di assegnazione del ruolo (attiva)|-|No| |ImpostazioniPIM|Notifica di assegnazione del ruolo (eleggibile)|-|No|🛡️ Rilevamento
EntraFalcon non è stealthy e può essere rilevato in ambienti in cui l'attività di accesso a Microsoft Graph API e Azure viene registrata e monitorata.
Autenticazione predefinita utilizzata
Quando viene eseguita un'enumerazione completa con flussi non BroCi, lo strumento avvia in genere quattro accessi interattivi e un accesso non interattivo. A seconda del flusso e del supporto dell'endpoint, può verificarsi un ulteriore accesso interattivo per gli endpoint delle policy di Security Findings.
| ID applicazione | Tipo | ID risorsa | Scopo |
|---|---|---|---|
| 1b730954-1685-4b74-9bfd-dac224a7b894 | Interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare i dati PIM per i gruppi |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare i dati generali degli oggetti del tenant |
| 51f81489-12ee-4a9e-aaae-a2591f45987d | Interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare i dati PIM per i ruoli Entra / Azure |
| 80ccca67-54bd-44ab-8625-4b79c4dc7775 | Interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare il contesto delle policy di Security Findings |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Non interattivo | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Recuperare i dati delle assegnazioni dei ruoli Azure IAM |
Autenticazione BroCi utilizzata
Quando viene utilizzata l'autenticazione BroCi, si verifica un solo accesso interattivo.
| ID applicazione | Tipo | ID risorsa | Scopo |
|---|---|---|---|
| c44b4083-3bb0-49c1-b47d-974e53cbdf3c | Interattivo | 00000003-0000-0000-c000-000000000000 | Autenticazione iniziale per utilizzare il token di aggiornamento per BroCi |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Non interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare i dati PIM per i gruppi |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Non interattivo | 01fc33a7-78ba-4d2f-a4b7-768e336e890e | Recuperare i dati PIM per i gruppi |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Non interattivo | 00000003-0000-0000-c000-000000000000 | Recuperare i dati generali degli oggetti del tenant |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Non interattivo | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Recuperare i dati delle assegnazioni dei ruoli Azure IAM |
Quando BroCi è abilitato, EntraFalcon interroga anche api.azrbac.mspim.azure.com per PIM per i gruppi.
Dettagli
Per la raccolta dei dati, lo strumento invia più richieste a Microsoft Graph API e, facoltativamente, ad Azure ARM API—una o più per oggetto. Dove possibile, sfrutta l'endpoint Batch di Graph per ridurre il numero di richieste individuali e migliorare l'efficienza.
Gli accessi interattivi utilizzano lo User-Agent del browser. Tutti gli accessi non interattivi e le richieste API (Graph e ARM) utilizzano EntraFalcon come User-Agent, a meno che non venga modificato con il parametro -UserAgent.
Per rilevare l'utilizzo di EntraFalcon, i blue team possono monitorare i log di accesso per gli ID applicazione elencati, cercare volumi insoliti di traffico Graph API o analizzare il comportamento di aggiornamento dei token e delle richieste batch.
🕳️ Limitazioni note
- RBAC M365: non valutato
- RBAC Defender for Endpoint: non valutato
- Copertura utenti Conditional Access: la copertura utente effettiva e
-ExportCapUncoveredUserssono calcoli best-effort basati su utenti enumerati, membri di gruppi, assegnazioni di ruoli e categorie di utenti esterni risolvibili. I selettori di utenti esterni vengono risolti solo per gli utenti guest del tenant che corrispondono ab2bCollaborationGuest. Altri tipi di utenti esterni o utenti esterni con tenant esterni specificati possono rendere approssimativi i valori di copertura. I percorsi PIM eleggibili vengono segnalati come copertura potenziale e non vengono conteggiati come attualmente coperti. L'esportazione CSV è limitata alle policy abilitate e agli utenti abilitati. - Ambiente cloud: le piattaforme cloud si evolvono rapidamente. Di conseguenza, alcune valutazioni o rilevamenti potrebbero diventare obsoleti o imprecisi nel tempo. Inoltre, i tenant stanno diventando sempre più complessi e configurazioni specifiche o combinazioni di impostazioni possono portare a risultati imprecisi. Sebbene ci impegniamo a mantenere EntraFalcon aggiornato, si consiglia sempre di convalidare i risultati in modo indipendente e di non fare affidamento esclusivamente sullo strumento per decisioni critiche.
- Report HTML: i report HTML generati non implementano meccanismi di protezione contro il cross-site scripting (XSS).
📦 Strumenti esterni integrati
I seguenti sottomoduli sono stati forkati e integrati in EntraFalcon per supportare l'autenticazione, l'interazione con Microsoft Graph e i grafici dei report: