Az - Basic Information

Impara l'hacking di Azure da zero a eroe con htARTE (Esperto Red Team di HackTricks su AWS)!

Altri modi per supportare HackTricks:

Gerarchia dell'Organizzazione

Gruppi di Gestione

Se la tua organizzazione ha molti abbonamenti Azure, potresti aver bisogno di un modo per gestire in modo efficiente l'accesso, le policy e la conformità per quegli abbonamenti. I gruppi di gestione forniscono uno scope di governance sopra gli abbonamenti.

Si noti che possono essere supportati 10.000 gruppi di gestione in un singolo directory e un albero di gruppi di gestione può supportare fino a sei livelli di profondità.

Dalla documentazione: Ogni directory ha un singolo gruppo di gestione di alto livello chiamato root. Il gruppo di gestione radice è integrato nella gerarchia per avere tutti i gruppi di gestione e gli abbonamenti che si piegano ad esso. Questo gruppo di gestione radice consente l'applicazione di policy globali e assegnazioni di ruoli Azure a livello di directory. Il Global Administrator di Azure AD deve elevare se stesso al ruolo di Amministratore di Accesso Utente di questo gruppo radice inizialmente. Dopo aver elevato l'accesso, l'amministratore può assegnare qualsiasi ruolo Azure ad altri utenti o gruppi della directory per gestire la gerarchia. Come amministratore, puoi assegnare il tuo account come proprietario del gruppo di gestione radice.

Il gruppo di gestione radice non può essere spostato o eliminato, a differenza degli altri gruppi di gestione.

I gruppi di gestione ti offrono una gestione aziendale su larga scala indipendentemente dal tipo di abbonamenti che potresti avere. Tuttavia, tutti gli abbonamenti all'interno di un singolo gruppo di gestione devono fidarsi dello stesso tenant di Azure Active Directory (Azure AD).

Abbonamenti Azure

In Azure, un abbonamento funge da contenitore logico per lo scopo di provisioning di risorse aziendali o tecniche. Questo contenitore mantiene i dettagli delle risorse come macchine virtuali (VM), database, tra gli altri. All'atto della creazione di una risorsa Azure, come una VM, viene specificato l'abbonamento associato ad essa. Questa struttura facilita la delega dell'accesso, utilizzando meccanismi di controllo degli accessi basati su ruoli.

Gruppi di Risorse

Dalla documentazione: Un gruppo di risorse è un contenitore che contiene risorse correlate per una soluzione Azure. Il gruppo di risorse può includere tutte le risorse per la soluzione, o solo quelle risorse che si desidera gestire come gruppo. Generalmente, aggiungi risorse che condividono lo stesso ciclo di vita nello stesso gruppo di risorse in modo da poterle facilmente distribuire, aggiornare ed eliminare come gruppo.

Tutte le risorse devono essere all'interno di un gruppo di risorse e possono appartenere solo a un gruppo e se un gruppo di risorse viene eliminato, tutte le risorse al suo interno vengono eliminate.

Unità Amministrative

Dalla documentazione: Le unità amministrative ti consentono di suddividere la tua organizzazione in qualsiasi unità desideri, e quindi assegnare specifici amministratori che possono gestire solo i membri di quell'unità. Ad esempio, potresti utilizzare le unità amministrative per delegare autorizzazioni agli amministratori di ciascuna scuola di una grande università, in modo che possano controllare l'accesso, gestire gli utenti e impostare le policy solo nella Scuola di Ingegneria.

Solo utenti, gruppi e dispositivi possono essere membri di un'unità amministrativa.

Pertanto, un'unità amministrativa conterrà alcuni membri e ad altri principali verranno **assegnate autorizzazioni su quell'**unità amministrativa che potranno utilizzare per gestire i membri dell'unità amministrativa.

Azure vs Azure AD vs Azure AD Domain Services

È importante notare che Azure AD è un servizio all'interno di Azure. Azure è la piattaforma cloud di Microsoft mentre Azure AD è un servizio di identità aziendale in Azure. Inoltre, Azure AD non è come Windows Active Directory, è un servizio di identità che funziona in modo completamente diverso. Se desideri eseguire un Domain Controller in Azure per il tuo ambiente Windows Active Directory devi utilizzare Azure AD Domain Services.

Principali

Azure supporta diversi tipi di principali:

  • Utente: Una persona regolare con credenziali per l'accesso.

  • Gruppo: Un gruppo di principali gestiti insieme. Le autorizzazioni concesse ai gruppi sono ereditate dai suoi membri.

  • Service Principal/Applicazioni Enterprise: È un'identità creata per l'uso con applicazioni, servizi ospitati e strumenti automatizzati per accedere alle risorse di Azure. Questo accesso è limitato dai ruoli assegnati al service principal, dando il controllo su quali risorse possono essere accessate e a quale livello. Per motivi di sicurezza, è sempre consigliabile utilizzare service principal con strumenti automatizzati anziché consentire loro di accedere con un'identità utente.

Nella creazione di un service principal puoi scegliere tra autenticazione tramite password o autenticazione tramite certificato.

  • Se scegli l'autenticazione tramite password (per impostazione predefinita), salva la password generata poiché non potrai più accedervi.

  • Se scegli l'autenticazione tramite certificato, assicurati che l'applicazione abbia accesso alla chiave privata.

  • Identità Gestita (Credenziali Metadata): Le identità gestite in Azure Active Directory offrono una soluzione per gestire automaticamente l'identità delle applicazioni. Queste identità sono utilizzate dalle applicazioni allo scopo di connettersi a risorse compatibili con l'autenticazione di Azure Active Directory (Azure AD). Utilizzando le identità gestite, le applicazioni possono proteggere i token di Azure AD eliminando la necessità di gestire direttamente le credenziali. Ci sono due tipi di identità gestite:

  • Assegnata dal sistema. Alcuni servizi Azure ti consentono di abilitare un'identità gestita direttamente su un'istanza di servizio. Quando abiliti un'identità gestita assegnata dal sistema, viene creata un'identità in Azure AD. L'identità è legata al ciclo di vita di quell'istanza di servizio. Quando la risorsa viene eliminata, Azure elimina automaticamente l'identità per te. Per progettazione, solo quella risorsa Azure può utilizzare questa identità per richiedere token da Azure AD.

  • Assegnata dall'utente. Puoi anche creare un'identità gestita come risorsa Azure autonoma. Puoi creare un'identità gestita assegnata dall'utente e assegnarla a una o più istanze di un servizio Azure (più risorse). Per le identità gestite assegnate dall'utente, l'identità è gestita separatamente dalle risorse che la utilizzano.

Ruoli e Autorizzazioni

I ruoli vengono assegnati ai principali su un ambito: principale -[HA RUOLO]->(ambito)

I ruoli assegnati ai gruppi vengono ereditati da tutti i membri del gruppo.

A seconda dell'ambito a cui è stato assegnato il ruolo, il ruolo potrebbe essere ereditato ad altri risorse all'interno del contenitore dell'ambito. Ad esempio, se un utente A ha un ruolo sulla sottoscrizione, avrà quel ruolo su tutti i gruppi di risorse all'interno della sottoscrizione e su tutte le risorse all'interno del gruppo di risorse.

Ruoli Classici

Proprietario

  • Accesso completo a tutte le risorse

  • Può gestire l'accesso per altri utenti

Tutti i tipi di risorse

Collaboratore

  • Accesso completo a tutte le risorse

  • Non può gestire l'accesso

Tutti i tipi di risorse

Lettore

• Visualizza tutte le risorse

Tutti i tipi di risorse

Amministratore di Accesso Utenti

  • Visualizza tutte le risorse

  • Può gestire l'accesso per altri utenti

Tutti i tipi di risorse

Ruoli Incorporati

Dalla documentazione: Controllo degli accessi basato su ruoli di Azure (Azure RBAC) ha diversi ruoli incorporati di Azure che è possibile assegnare a utenti, gruppi, principali del servizio e identità gestite. Le assegnazioni di ruolo sono il modo in cui si controlla l'accesso alle risorse di Azure. Se i ruoli incorporati non soddisfano le esigenze specifiche della tua organizzazione, è possibile creare i ruoli personalizzati di Azure.

I ruoli incorporati si applicano solo alle risorse a cui sono destinati, ad esempio controlla questi 2 esempi di ruoli incorporati sulle risorse di Calcolo:

Concede il permesso al vault di backup per eseguire il backup del disco.

3e5e47e6-65f7-47ef-90b5-e5dd4d455f24

Visualizza le macchine virtuali nel portale e accede come utente normale.

fb879df8-f326-4884-b1cf-06f3ad86be52

Questi ruoli possono anche essere assegnati ai contenitori logici (come gruppi di gestione, sottoscrizioni e gruppi di risorse) e i principali interessati li avranno sulle risorse all'interno di quei contenitori.

Ruoli Personalizzati

Azure consente anche di creare ruoli personalizzati con le autorizzazioni necessarie all'utente.

Permesso Negato

  • Affinché un principale abbia accesso a una risorsa, ha bisogno di un ruolo esplicito che gli venga assegnato (in ogni caso) concedendogli tale autorizzazione.

  • Un'assegnazione di ruolo di negazione esplicita ha la precedenza sull'assegnazione del ruolo che concede l'autorizzazione.

Amministratore Globale

Gli utenti con il ruolo di Amministratore Globale hanno la possibilità di 'elevare' al ruolo di Amministratore di Accesso Utenti Azure al gruppo di gestione radice. Ciò significa che un Amministratore Globale potrà gestire l'accesso a tutte le sottoscrizioni e i gruppi di gestione di Azure. Questa elevazione può essere effettuata alla fine della pagina: https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties

Normative di Azure

Le normative di Azure sono un insieme di regole e regolamenti in Microsoft Azure, un servizio di cloud computing, che aiutano a gestire e far rispettare gli standard organizzativi e valutare la conformità su larga scala. Queste normative impongono diverse regole sulle risorse di Azure, garantendo che tali risorse rimangano conformi agli standard aziendali e agli accordi di livello di servizio.

Le normative di Azure sono cruciali per la governance e la sicurezza del cloud, aiutando a garantire che le risorse siano utilizzate correttamente ed efficientemente, e che siano conformi a regolamenti esterni e politiche interne. Alcuni esempi:

  1. Garantire la Conformità con Specifiche Regioni di Azure: Questa normativa garantisce che tutte le risorse siano distribuite in specifiche regioni di Azure. Ad esempio, un'azienda potrebbe voler garantire che tutti i suoi dati siano memorizzati in Europa per la conformità al GDPR.

  2. Imporre Standard di Denominazione: Le normative possono imporre convenzioni di denominazione per le risorse di Azure. Questo aiuta nell'organizzazione e nell'identificazione facile delle risorse in base ai loro nomi, utile in ambienti di grandi dimensioni.

  3. Limitare Determinati Tipi di Risorse: Questa normativa può limitare la creazione di determinati tipi di risorse. Ad esempio, una normativa potrebbe essere impostata per impedire la creazione di tipi di risorse costosi, come determinate dimensioni di VM, per controllare i costi.

  4. Imporre Normative di Tag: I tag sono coppie chiave-valore associate alle risorse di Azure utilizzate per la gestione delle risorse. Le normative possono imporre che determinati tag siano presenti, o abbiano valori specifici, per tutte le risorse. Questo è utile per il tracciamento dei costi, la proprietà o la categorizzazione delle risorse.

  5. Limitare l'Accesso Pubblico alle Risorse: Le normative possono imporre che determinate risorse, come account di archiviazione o database, non abbiano endpoint pubblici, garantendo che siano accessibili solo all'interno della rete dell'organizzazione.

  6. Applicare Automaticamente Impostazioni di Sicurezza: Le normative possono essere utilizzate per applicare automaticamente impostazioni di sicurezza alle risorse, ad esempio applicando un gruppo di sicurezza di rete specifico a tutte le VM o garantendo che tutti gli account di archiviazione utilizzino la crittografia.

Si noti che le Normative di Azure possono essere collegate a qualsiasi livello della gerarchia di Azure, ma sono comunemente utilizzate nel gruppo di gestione radice o in altri gruppi di gestione.

Ambito delle Autorizzazioni

In Azure le autorizzazioni possono essere assegnate a qualsiasi parte della gerarchia. Ciò include gruppi di gestione, sottoscrizioni, gruppi di risorse e risorse individuali. Le autorizzazioni sono ereditate dalle risorse contenute dell'entità a cui sono state assegnate.

Questa struttura gerarchica consente una gestione efficiente e scalabile delle autorizzazioni di accesso.

Azure RBAC vs ABAC

RBAC (controllo degli accessi basato su ruoli) è ciò che abbiamo già visto nelle sezioni precedenti: Assegnare un ruolo a un principale per concedergli accesso a una risorsa. Tuttavia, in alcuni casi potresti voler fornire gestione degli accessi più dettagliata o semplificare la gestione di centinaia di assegnazioni di ruoli.

Azure ABAC (controllo degli accessi basato su attributi) si basa su Azure RBAC aggiungendo condizioni di assegnazione del ruolo basate su attributi nel contesto di azioni specifiche. Una condizione di assegnazione del ruolo è un controllo aggiuntivo che è possibile aggiungere facoltativamente alla tua assegnazione di ruolo per fornire un controllo degli accessi più dettagliato. Una condizione filtra le autorizzazioni concesse come parte della definizione del ruolo e dell'assegnazione del ruolo. Ad esempio, puoi aggiungere una condizione che richiede che un oggetto abbia un tag specifico per leggere l'oggetto. Non è possibile negare esplicitamente l'accesso a risorse specifiche utilizzando condizioni.

Autorizzazioni predefinite degli utenti

Un utente di base avrà alcune autorizzazioni predefinite per enumerare alcune parti di AzureAD:

  • Leggere tutti gli utenti, Gruppi, Applicazioni, Dispositivi, Ruoli, Sottoscrizioni e le loro proprietà pubbliche

  • Invitare Ospiti (può essere disattivato)

  • Creare gruppi di sicurezza

  • Leggere le appartenenze ai Gruppi non nascosti

  • Aggiungere ospiti ai Gruppi di proprietà

  • Creare nuove applicazioni (può essere disattivato)

  • Aggiungere fino a 50 dispositivi ad Azure (può essere disattivato)

Puoi vedere l'elenco completo delle autorizzazioni predefinite degli utenti nella documentazione. Inoltre, nota che in quell'elenco puoi vedere anche l'elenco delle autorizzazioni predefinite degli ospiti.

Ricorda che per enumerare le risorse di Azure, all'utente è necessario un consenso esplicito dell'autorizzazione.

Gestione delle identità privilegiate (PIM)

La Gestione delle identità privilegiate (PIM) in Azure è uno strumento che gestisce, controlla e monitora l'accesso privilegiato in Azure Active Directory e Azure. Migliora la sicurezza fornendo accesso privilegiato su richiesta e limitato nel tempo, applicando flussi di approvazione e richiedendo autenticazioni aggiuntive. Questo approccio riduce al minimo il rischio di accessi non autorizzati garantendo che le autorizzazioni elevate siano concesse solo quando necessario e per una durata specifica.

Token di autenticazione

Ci sono tre tipi di token utilizzati in OIDC:

  • Token di accesso: Il client presenta questo token al server delle risorse per accedere alle risorse. Può essere utilizzato solo per una specifica combinazione di utente, client e risorsa e non può essere revocato fino alla scadenza - che di default è di 1 ora. La rilevazione è bassa utilizzando questo.

  • Token ID: Il client riceve questo token dal server di autorizzazione. Contiene informazioni di base sull'utente. È vincolato a una specifica combinazione di utente e client.

  • Token di aggiornamento: Fornito al client con il token di accesso. Usato per ottenere nuovi token di accesso e ID. È vincolato a una specifica combinazione di utente e client e può essere revocato. La scadenza predefinita è di 90 giorni per i token di aggiornamento inattivi e nessuna scadenza per i token attivi.

Le informazioni per l'accesso condizionale sono memorizzate all'interno del JWT. Quindi, se richiedi il token da un indirizzo IP consentito, quell'IP sarà memorizzato nel token e quindi potrai utilizzare quel token da un IP non consentito per accedere alle risorse.

Controlla la seguente pagina per apprendere i diversi modi per richiedere token di accesso e accedere con essi:

pageAz - AzureAD (AAD)

Gli endpoint API più comuni sono:

  • Gestore delle risorse di Azure (ARM): management.azure.com

  • Microsoft Graph: graph.microsoft.com (Azure AD Graph che è deprecato è graph.windows.net)

Riferimenti

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated