mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-13 05:16:32 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
### Gruppi di Gestione
|
||||
|
||||
- Può contenere **altri gruppi di gestione o sottoscrizioni**.
|
||||
- Questo consente di **applicare controlli di governance** come RBAC e Azure Policy una sola volta a livello di gruppo di gestione e farli **ereditar** da tutte le sottoscrizioni nel gruppo.
|
||||
- Questo consente di **applicare controlli di governance** come RBAC e Azure Policy una sola volta a livello di gruppo di gestione e farli **ereditarie** da tutte le sottoscrizioni nel gruppo.
|
||||
- Possono essere supportati **10.000 gruppi di gestione** in una singola directory.
|
||||
- Un albero di gruppi di gestione può supportare **fino a sei livelli di profondità**. Questo limite non include il livello radice o il livello di sottoscrizione.
|
||||
- Ogni gruppo di gestione e sottoscrizione può supportare **solo un genitore**.
|
||||
@@ -21,14 +21,14 @@
|
||||
|
||||
### Sottoscrizioni Azure
|
||||
|
||||
- È un altro **contenitore logico in cui possono essere eseguite e fatturate risorse** (VM, DB…).
|
||||
- È un altro **contenitore logico in cui possono essere eseguite risorse** (VM, DB…) e verrà fatturato.
|
||||
- Il suo **genitore** è sempre un **gruppo di gestione** (e può essere il gruppo di gestione radice) poiché le sottoscrizioni non possono contenere altre sottoscrizioni.
|
||||
- **Fiducia solo in un directory Entra ID**
|
||||
- Le **autorizzazioni** applicate a livello di sottoscrizione (o a qualsiasi dei suoi genitori) sono **ereditarie** a tutte le risorse all'interno della sottoscrizione.
|
||||
|
||||
### Gruppi di Risorse
|
||||
|
||||
[Dal documento:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) 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 desideri gestire come un gruppo**. In generale, aggiungi **risorse** che condividono il **stesso ciclo di vita** allo stesso gruppo di risorse in modo da poterle facilmente distribuire, aggiornare ed eliminare come un gruppo.
|
||||
[Dal documento:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-python?tabs=macos#what-is-a-resource-group) 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 un gruppo**. In generale, aggiungi **risorse** che condividono lo **stesso ciclo di vita** allo stesso gruppo di risorse in modo da poterle facilmente distribuire, aggiornare ed eliminare come un 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 anch'esse eliminate.
|
||||
|
||||
@@ -60,19 +60,19 @@ Entra ID è un servizio di **gestione dell'identità e degli accessi basato su c
|
||||
|
||||
I Servizi di Dominio Entra estendono le capacità di Entra ID offrendo **servizi di dominio gestiti compatibili con gli ambienti tradizionali di Windows Active Directory**. Supporta protocolli legacy come LDAP, Kerberos e NTLM, consentendo alle organizzazioni di migrare o eseguire applicazioni più vecchie nel cloud senza dover distribuire controller di dominio on-premises. Questo servizio supporta anche le Group Policy per la gestione centralizzata, rendendolo adatto a scenari in cui carichi di lavoro legacy o basati su AD devono coesistere con ambienti cloud moderni.
|
||||
|
||||
## Principali di Entra ID
|
||||
## Principali Entra ID
|
||||
|
||||
### Utenti
|
||||
|
||||
- **Nuovi utenti**
|
||||
- Indica nome email e dominio dal tenant selezionato
|
||||
- Indica nome visualizzato
|
||||
- Indica password
|
||||
- Indica proprietà (nome, titolo di lavoro, informazioni di contatto…)
|
||||
- Indica il nome e il dominio dell'email dal tenant selezionato
|
||||
- Indica il nome visualizzato
|
||||
- Indica la password
|
||||
- Indica le proprietà (nome, titolo di lavoro, informazioni di contatto…)
|
||||
- Il tipo di utente predefinito è “**membro**”
|
||||
- **Utenti esterni**
|
||||
- Indica email per invitare e nome visualizzato (può essere un'email non Microsoft)
|
||||
- Indica proprietà
|
||||
- Indica l'email da invitare e il nome visualizzato (può essere un'email non Microsoft)
|
||||
- Indica le proprietà
|
||||
- Il tipo di utente predefinito è “**Ospite**”
|
||||
|
||||
### Permessi Predefiniti per Membri e Ospiti
|
||||
@@ -96,10 +96,10 @@ Puoi controllarli in [https://learn.microsoft.com/en-us/entra/fundamentals/users
|
||||
- Registrare Applicazioni: Predefinito **Sì**
|
||||
- Limitare gli utenti non amministratori dalla creazione di tenant: Predefinito **No**
|
||||
- Creare gruppi di sicurezza: Predefinito **Sì**
|
||||
- Limitare l'accesso al portale di amministrazione di Microsoft Entra: Predefinito **No**
|
||||
- Limitare l'accesso al portale di amministrazione Microsoft Entra: Predefinito **No**
|
||||
- Questo non limita l'accesso API al portale (solo web)
|
||||
- Consentire agli utenti di collegare l'account di lavoro o scolastico con LinkedIn: Predefinito **Sì**
|
||||
- Mostrare mantenere l'utente connesso: Predefinito **Sì**
|
||||
- Mostra mantenere l'utente connesso: Predefinito **Sì**
|
||||
- Limitare gli utenti dal recuperare la chiave BitLocker per i loro dispositivi di proprietà: Predefinito No (controlla nelle Impostazioni Dispositivo)
|
||||
- Leggere altri utenti: Predefinito **Sì** (tramite Microsoft Graph)
|
||||
- **Ospiti**
|
||||
@@ -113,7 +113,7 @@ Puoi controllarli in [https://learn.microsoft.com/en-us/entra/fundamentals/users
|
||||
- **Solo gli utenti assegnati a ruoli amministrativi specifici possono invitare utenti ospiti**
|
||||
- **Nessuno nell'organizzazione può invitare utenti ospiti, inclusi gli amministratori (il più restrittivo)**
|
||||
- **Uscita utente esterno**: Predefinito **Vero**
|
||||
- Consentire agli utenti esterni di lasciare l'organizzazione
|
||||
- Consenti agli utenti esterni di lasciare l'organizzazione
|
||||
|
||||
> [!TIP]
|
||||
> Anche se limitati per impostazione predefinita, gli utenti (membri e ospiti) con permessi concessi potrebbero eseguire le azioni precedenti.
|
||||
@@ -133,12 +133,12 @@ Ci sono **2 tipi di appartenenze**:
|
||||
|
||||
### **Principi di Servizio**
|
||||
|
||||
Un **Principio di Servizio** è un **identità** creata per **uso** con **applicazioni**, servizi ospitati e strumenti automatizzati per accedere alle risorse Azure. Questo accesso è **ristretto dai ruoli assegnati** al principio di servizio, dandoti il controllo su **quali risorse possono essere accessibili** e a quale livello. Per motivi di sicurezza, è sempre consigliato **utilizzare principi di servizio con strumenti automatizzati** piuttosto che consentire loro di accedere con un'identità utente.
|
||||
Un **Principio di Servizio** è un **identità** creata per **l'uso** con **applicazioni**, servizi ospitati e strumenti automatizzati per accedere alle risorse Azure. Questo accesso è **ristretto dai ruoli assegnati** al principio di servizio, dandoti il controllo su **quali risorse possono essere accessibili** e a quale livello. Per motivi di sicurezza, è sempre consigliato **utilizzare principi di servizio con strumenti automatizzati** piuttosto che consentire loro di accedere con un'identità utente.
|
||||
|
||||
È possibile **accedere direttamente come un principio di servizio** generando un **segreto** (password), un **certificato**, o concedendo accesso **federato** a piattaforme di terze parti (ad es. Github Actions) su di esso.
|
||||
|
||||
- Se scegli l'autenticazione **password** (per impostazione predefinita), **salva la password generata** poiché non potrai accedervi di nuovo.
|
||||
- Se scegli l'autenticazione tramite certificato, assicurati che l'**applicazione avrà accesso alla chiave privata**.
|
||||
- Se scegli l'autenticazione con certificato, assicurati che l'**applicazione avrà accesso alla chiave privata**.
|
||||
|
||||
### Registrazioni App
|
||||
|
||||
@@ -149,10 +149,10 @@ Una **Registrazione App** è una configurazione che consente a un'applicazione d
|
||||
1. **ID Applicazione (Client ID):** Un identificatore unico per la tua app in Azure AD.
|
||||
2. **URI di Reindirizzamento:** URL dove Azure AD invia le risposte di autenticazione.
|
||||
3. **Certificati, Segreti e Credenziali Federate:** È possibile generare un segreto o un certificato per accedere come il principio di servizio dell'applicazione, o per concedere accesso federato ad essa (ad es. Github Actions). 
|
||||
1. Se viene generato un **certificato** o un **segreto**, è possibile per una persona **accedere come il principio di servizio** con strumenti CLI conoscendo l'**ID applicazione**, il **segreto** o il **certificato** e il **tenant** (dominio o ID).
|
||||
1. Se viene generato un **certificato** o un **segreto**, è possibile a una persona di **accedere come il principio di servizio** con strumenti CLI conoscendo l'**ID applicazione**, il **segreto** o il **certificato** e il **tenant** (dominio o ID).
|
||||
4. **Permessi API:** Specifica quali risorse o API l'app può accedere.
|
||||
5. **Impostazioni di Autenticazione:** Definisce i flussi di autenticazione supportati dall'app (ad es., OAuth2, OpenID Connect).
|
||||
6. **Principio di Servizio**: Un principio di servizio viene creato quando viene creata un'App (se viene fatto dalla console web) o quando viene installata in un nuovo tenant.
|
||||
6. **Principio di Servizio**: Un principio di servizio viene creato quando viene creata un'App (se è fatto dalla console web) o quando viene installata in un nuovo tenant.
|
||||
1. Il **principio di servizio** otterrà tutti i permessi richiesti con cui è stato configurato.
|
||||
|
||||
### Permessi di Consenso Predefiniti
|
||||
@@ -161,22 +161,22 @@ Una **Registrazione App** è una configurazione che consente a un'applicazione d
|
||||
|
||||
- **Non consentire il consenso dell'utente**
|
||||
- Sarà richiesto un amministratore per tutte le app.
|
||||
- **Consentire il consenso dell'utente per app di editori verificati, per permessi selezionati (Consigliato)**
|
||||
- **Consentire il consenso dell'utente per le app di editori verificati, per permessi selezionati (Consigliato)**
|
||||
- Tutti gli utenti possono dare consenso per permessi classificati come "basso impatto", per app di editori verificati o app registrate in questa organizzazione.
|
||||
- **Predefinito** permessi a basso impatto (anche se devi accettare per aggiungerli come bassi):
|
||||
- **Permessi a basso impatto predefiniti** (anche se è necessario accettare per aggiungerli come bassi):
|
||||
- User.Read - accedi e leggi il profilo utente
|
||||
- offline_access - mantieni l'accesso ai dati a cui gli utenti hanno dato accesso
|
||||
- openid - accedi gli utenti
|
||||
- profile - visualizza il profilo di base dell'utente
|
||||
- email - visualizza l'indirizzo email dell'utente
|
||||
- **Consentire il consenso dell'utente per app (Predefinito)**
|
||||
- **Consentire il consenso dell'utente per le app (Predefinito)**
|
||||
- Tutti gli utenti possono dare consenso per qualsiasi app per accedere ai dati dell'organizzazione.
|
||||
|
||||
**Richieste di consenso dell'amministratore**: Predefinito **No**
|
||||
|
||||
- Gli utenti possono richiedere il consenso dell'amministratore per app a cui non possono dare consenso
|
||||
- Se **Sì**: È possibile indicare Utenti, Gruppi e Ruoli che possono dare consenso alle richieste
|
||||
- Configura anche se gli utenti riceveranno notifiche via email e promemoria di scadenza 
|
||||
- Configura anche se gli utenti riceveranno notifiche email e promemoria di scadenza 
|
||||
|
||||
### **Identità Gestite (Metadati)**
|
||||
|
||||
@@ -184,16 +184,16 @@ Le identità gestite in Azure Active Directory offrono una soluzione per **gesti
|
||||
|
||||
Ci sono due tipi di identità gestite:
|
||||
|
||||
- **Assegnate 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, un **principio di servizio** viene creato nel tenant Entra ID fidato dalla sottoscrizione in cui si trova la risorsa. Quando la **risorsa** viene **eliminata**, Azure elimina automaticamente **l'identità** per te.
|
||||
- **Assegnate dall'utente**. È anche possibile per gli utenti generare identità gestite. Queste vengono create all'interno di un gruppo di risorse all'interno di una sottoscrizione e un principio di servizio verrà creato nel EntraID fidato dalla sottoscrizione. Poi, puoi assegnare l'identità gestita a una o **più istanze** di un servizio Azure (risorse multiple). Per le identità gestite assegnate dall'utente, **l'identità è gestita separatamente dalle risorse che la utilizzano**.
|
||||
- **Assegnata al sistema**. Alcuni servizi Azure consentono di **abilitare un'identità gestita direttamente su un'istanza di servizio**. Quando abiliti un'identità gestita assegnata al sistema, viene creato un **principio di servizio** nel tenant Entra ID fidato dalla sottoscrizione in cui si trova la risorsa. Quando la **risorsa** viene **eliminata**, Azure elimina automaticamente **l'identità** per te.
|
||||
- **Assegnata dall'utente**. È anche possibile per gli utenti generare identità gestite. Queste vengono create all'interno di un gruppo di risorse all'interno di una sottoscrizione e verrà creato un principio di servizio nel tenant EntraID fidato dalla sottoscrizione. Poi, puoi assegnare l'identità gestita a una o **più istanze** di un servizio Azure (risorse multiple). Per le identità gestite assegnate dall'utente, **l'identità è gestita separatamente dalle risorse che la utilizzano**.
|
||||
|
||||
Le Identità Gestite **non generano credenziali eterne** (come password o certificati) per accedere come il principio di servizio ad essa associato.
|
||||
|
||||
### Applicazioni Aziendali
|
||||
|
||||
È solo un **tabella in Azure per filtrare i principi di servizio** e controllare le applicazioni che sono state assegnate.
|
||||
È solo una **tabella in Azure per filtrare i principi di servizio** e controllare le applicazioni che sono state assegnate.
|
||||
|
||||
**Non è un altro tipo di “applicazione”**, non esiste alcun oggetto in Azure che sia un “Applicazione Aziendale”, è solo un'astrazione per controllare i Principi di servizio, le Registrazioni App e le identità gestite.
|
||||
**Non è un altro tipo di “applicazione”,** non c'è alcun oggetto in Azure che sia un “Applicazione Aziendale”, è solo un'astrazione per controllare i Principi di servizio, le Registrazioni App e le identità gestite.
|
||||
|
||||
### Unità Amministrative
|
||||
|
||||
@@ -225,25 +225,25 @@ Esempio:
|
||||
|
||||
**I ruoli** assegnati ai **gruppi** sono **ereditati** da tutti i **membri** del gruppo.
|
||||
|
||||
A seconda dell'ambito a cui è stato assegnato il ruolo, il **ruolo** potrebbe essere **ereditato** da **altre 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.
|
||||
A seconda dell'ambito a cui è stato assegnato il ruolo, il **ruolo** potrebbe essere **ereditato** da **altre risorse** all'interno del contenitore di 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** | <ul><li>Accesso completo a tutte le risorse</li><li>Può gestire l'accesso per altri utenti</li></ul> | Tutti i tipi di risorsa |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------ |
|
||||
| **Collaboratore** | <ul><li>Accesso completo a tutte le risorse</li><li>Non può gestire l'accesso</li></ul> | Tutti i tipi di risorsa |
|
||||
| **Lettore** | • Visualizza tutte le risorse | Tutti i tipi di risorsa |
|
||||
| **Amministratore Accesso Utente** | <ul><li>Visualizza tutte le risorse</li><li>Può gestire l'accesso per altri utenti</li></ul> | Tutti i tipi di risorsa |
|
||||
| ----------------------------- | ---------------------------------------------------------------------------------------- | ------------------ |
|
||||
| **Collaboratore** | <ul><li>Accesso completo a tutte le risorse</li><li>Non può gestire l'accesso</li></ul> | Tutti i tipi di risorsa |
|
||||
| **Lettore** | • Visualizza tutte le risorse | Tutti i tipi di risorsa |
|
||||
| **Amministratore Accesso Utente** | <ul><li>Visualizza tutte le risorse</li><li>Può gestire l'accesso per altri utenti</li></ul> | Tutti i tipi di risorsa |
|
||||
|
||||
### Ruoli Predefiniti
|
||||
|
||||
[Dal documento: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Il controllo degli accessi basato sui ruoli di Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) ha diversi **ruoli predefiniti di Azure** che puoi **assegnare** a **utenti, gruppi, principi di servizio e identità gestite**. Le assegnazioni di ruolo sono il modo in cui controlli **l'accesso alle risorse Azure**. Se i ruoli predefiniti non soddisfano le esigenze specifiche della tua organizzazione, puoi creare i tuoi [**ruoli personalizzati di Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.**
|
||||
[Dal documento: ](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles)[Il controllo degli accessi basato sui ruoli di Azure (Azure RBAC)](https://learn.microsoft.com/en-us/azure/role-based-access-control/overview) ha diversi **ruoli predefiniti** di Azure che puoi **assegnare** a **utenti, gruppi, principi di servizio e identità gestite**. Le assegnazioni di ruolo sono il modo in cui controlli **l'accesso alle risorse Azure**. Se i ruoli predefiniti non soddisfano le esigenze specifiche della tua organizzazione, puoi creare i tuoi [**ruoli personalizzati di Azure**](https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles)**.**
|
||||
|
||||
I ruoli **predefiniti** si applicano solo alle **risorse** per cui sono **destinati**, ad esempio controlla questi 2 esempi di **ruoli predefiniti su risorse Compute**:
|
||||
|
||||
| [Lettore Backup Disco](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#disk-backup-reader) | Fornisce permesso al vault di backup per eseguire il backup del disco. | 3e5e47e6-65f7-47ef-90b5-e5dd4d455f24 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------ |
|
||||
| [Login Utente Macchina Virtuale](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Visualizza le Macchine Virtuali nel portale e accede come utente normale. | fb879df8-f326-4884-b1cf-06f3ad86be52 |
|
||||
| [Accesso Utente Macchina Virtuale](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#virtual-machine-user-login) | Visualizza le Macchine Virtuali nel portale e accede come utente normale. | fb879df8-f326-4884-b1cf-06f3ad86be52 |
|
||||
|
||||
Questi ruoli possono **essere assegnati anche su contenitori logici** (come gruppi di gestione, sottoscrizioni e gruppi di risorse) e i principi interessati li avranno **sulle risorse all'interno di quei contenitori**.
|
||||
|
||||
@@ -292,29 +292,29 @@ Esempio di JSON di permessi per un ruolo personalizzato:
|
||||
}
|
||||
}
|
||||
```
|
||||
### Permessi ordine
|
||||
### Ordine delle autorizzazioni
|
||||
|
||||
- Affinché un **principale abbia accesso a una risorsa**, deve avere un ruolo esplicito assegnato a lui (in qualsiasi modo) **che gli conceda quel permesso**.
|
||||
- Un'esplicita **assegnazione di ruolo di negazione ha la precedenza** sul ruolo che concede il permesso.
|
||||
- Affinché un **principale abbia accesso a una risorsa**, deve avere un ruolo esplicito assegnato (in qualsiasi modo) **che gli conceda tale autorizzazione**.
|
||||
- Un'esplicita **assegnazione di ruolo di negazione ha la precedenza** sul ruolo che concede l'autorizzazione.
|
||||
|
||||
<figure><img src="../../../images/image (191).png" alt=""><figcaption><p><a href="https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10">https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10</a></p></figcaption></figure>
|
||||
|
||||
### Amministratore Globale
|
||||
|
||||
L'Amministratore Globale è un ruolo di Entra ID che concede **controllo completo sul tenant di Entra ID**. Tuttavia, di default non concede alcun permesso sulle risorse di Azure.
|
||||
L'Amministratore Globale è un ruolo di Entra ID che concede **controllo completo sul tenant di Entra ID**. Tuttavia, di default non concede alcuna autorizzazione sulle risorse di Azure.
|
||||
|
||||
Gli utenti con il ruolo di Amministratore Globale hanno la possibilità di '**elevare' al ruolo di Amministratore Accesso Utente di Azure nel Gruppo di Gestione Radice**. Quindi, gli Amministratori Globali possono gestire l'accesso in **tutte le sottoscrizioni e i gruppi di gestione di Azure.**\
|
||||
Gli utenti con il ruolo di Amministratore Globale hanno la possibilità di '**elevare' il ruolo di Amministratore dell'accesso utente di Azure nel Gruppo di gestione radice**. Quindi, gli Amministratori Globali possono gestire l'accesso in **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](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties)
|
||||
|
||||
<figure><img src="../../../images/image (349).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Politiche di Azure
|
||||
|
||||
**Le Politiche di Azure** sono regole che aiutano le organizzazioni a garantire che le loro risorse soddisfino standard specifici e requisiti di conformità. Consentono di **applicare o auditare impostazioni sulle risorse in Azure**. Ad esempio, puoi impedire la creazione di macchine virtuali in una regione non autorizzata o garantire che tutte le risorse abbiano tag specifici per il tracciamento.
|
||||
Le **Politiche di Azure** sono regole che aiutano le organizzazioni a garantire che le loro risorse soddisfino standard specifici e requisiti di conformità. Consentono di **applicare o auditare le impostazioni sulle risorse in Azure**. Ad esempio, puoi impedire la creazione di macchine virtuali in una regione non autorizzata o garantire che tutte le risorse abbiano tag specifici per il tracciamento.
|
||||
|
||||
Le Politiche di Azure sono **proattive**: possono fermare la creazione o la modifica di risorse non conformi. Sono anche **reattive**, consentendo di trovare e correggere risorse non conformi esistenti.
|
||||
Le Politiche di Azure sono **proattive**: possono impedire la creazione o la modifica di risorse non conformi. Sono anche **reattive**, consentendo di trovare e correggere risorse non conformi esistenti.
|
||||
|
||||
#### **Concetti Chiave**
|
||||
#### **Concetti chiave**
|
||||
|
||||
1. **Definizione della Politica**: Una regola, scritta in JSON, che specifica cosa è consentito o richiesto.
|
||||
2. **Assegnazione della Politica**: L'applicazione di una politica a un ambito specifico (ad es., sottoscrizione, gruppo di risorse).
|
||||
@@ -323,12 +323,12 @@ Le Politiche di Azure sono **proattive**: possono fermare la creazione o la modi
|
||||
|
||||
**Alcuni esempi:**
|
||||
|
||||
1. **Garantire la Conformità con Regioni Azure Specifiche**: Questa politica garantisce che tutte le risorse siano distribuite in regioni Azure specifiche. Ad esempio, un'azienda potrebbe voler garantire che tutti i suoi dati siano archiviati in Europa per la conformità al GDPR.
|
||||
2. **Applicare Standard di Nominazione**: Le politiche possono applicare convenzioni di denominazione per le risorse di Azure. Questo aiuta a organizzare e identificare facilmente le risorse in base ai loro nomi, il che è utile in ambienti grandi.
|
||||
3. **Limitare Certi Tipi di Risorse**: Questa politica può limitare la creazione di certi tipi di risorse. Ad esempio, una politica potrebbe essere impostata per impedire la creazione di tipi di risorse costosi, come alcune dimensioni di VM, per controllare i costi.
|
||||
4. **Applicare Politiche di Tagging**: I tag sono coppie chiave-valore associate alle risorse di Azure utilizzate per la gestione delle risorse. Le politiche possono imporre che determinati tag debbano essere presenti o avere 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 politiche 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 politiche possono essere utilizzate per applicare automaticamente impostazioni di sicurezza alle risorse, come applicare un gruppo di sicurezza di rete specifico a tutte le VM o garantire che tutti gli account di archiviazione utilizzino la crittografia.
|
||||
1. **Garantire la conformità con regioni Azure specifiche**: Questa politica garantisce che tutte le risorse siano distribuite in regioni Azure specifiche. Ad esempio, un'azienda potrebbe voler garantire che tutti i suoi dati siano archiviati in Europa per la conformità al GDPR.
|
||||
2. **Applicare standard di denominazione**: Le politiche possono applicare convenzioni di denominazione per le risorse di Azure. Questo aiuta a organizzare e identificare facilmente le risorse in base ai loro nomi, il che è utile in ambienti grandi.
|
||||
3. **Limitare determinati tipi di risorse**: Questa politica può limitare la creazione di determinati tipi di risorse. Ad esempio, una politica potrebbe essere impostata per impedire la creazione di tipi di risorse costosi, come alcune dimensioni di VM, per controllare i costi.
|
||||
4. **Applicare politiche di tagging**: I tag sono coppie chiave-valore associate alle risorse di Azure utilizzate per la gestione delle risorse. Le politiche possono imporre che determinati tag debbano essere presenti o avere 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 politiche 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 le impostazioni di sicurezza**: Le politiche possono essere utilizzate per applicare automaticamente le impostazioni di sicurezza alle risorse, come l'applicazione di un gruppo di sicurezza di rete specifico a tutte le VM o garantire che tutti gli account di archiviazione utilizzino la crittografia.
|
||||
|
||||
Nota che le Politiche 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.
|
||||
|
||||
@@ -360,10 +360,10 @@ Questa struttura gerarchica consente una gestione efficiente e scalabile delle a
|
||||
|
||||
### Azure RBAC vs ABAC
|
||||
|
||||
**RBAC** (controllo accessi basato su ruoli) è ciò che abbiamo già visto nelle sezioni precedenti: **Assegnare un ruolo a un principale per concedergli accesso** a una risorsa.\
|
||||
**RBAC** (controllo degli accessi basato sui 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 una **gestione degli accessi più dettagliata** o **semplificare** la gestione di **centinaia** di **assegnazioni** di ruolo.
|
||||
|
||||
Azure **ABAC** (controllo 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 puoi opzionalmente aggiungere 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 a un oggetto di avere un tag specifico per leggere l'oggetto**.\
|
||||
Azure **ABAC** (controllo degli accessi basato sugli 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 puoi opzionalmente aggiungere 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 a un oggetto di avere un tag specifico per leggere l'oggetto**.\
|
||||
Non **puoi** esplicitamente **negare** **l'accesso** a risorse specifiche **utilizzando condizioni**.
|
||||
|
||||
## Riferimenti
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Informazioni di Base
|
||||
|
||||
Entra ID è la piattaforma di gestione dell'identità e degli accessi (IAM) basata sul cloud di Microsoft, che funge da sistema fondamentale di autenticazione e autorizzazione per servizi come Microsoft 365 e Azure Resource Manager. Azure AD implementa il framework di autorizzazione OAuth 2.0 e il protocollo di autenticazione OpenID Connect (OIDC) per gestire l'accesso alle risorse.
|
||||
Entra ID è la piattaforma di gestione dell'identità e degli accessi (IAM) basata su cloud di Microsoft, che funge da sistema fondamentale di autenticazione e autorizzazione per servizi come Microsoft 365 e Azure Resource Manager. Azure AD implementa il framework di autorizzazione OAuth 2.0 e il protocollo di autenticazione OpenID Connect (OIDC) per gestire l'accesso alle risorse.
|
||||
|
||||
### OAuth
|
||||
|
||||
@@ -13,7 +13,7 @@ Entra ID è la piattaforma di gestione dell'identità e degli accessi (IAM) basa
|
||||
1. **Server delle Risorse (RS):** Protegge le risorse possedute dal proprietario delle risorse.
|
||||
2. **Proprietario delle Risorse (RO):** Tipicamente un utente finale che possiede le risorse protette.
|
||||
3. **Applicazione Client (CA):** Un'applicazione che cerca di accedere alle risorse per conto del proprietario delle risorse.
|
||||
4. **Server di Autorizzazione (AS):** Emmette token di accesso alle applicazioni client dopo averle autenticate e autorizzate.
|
||||
4. **Server di Autorizzazione (AS):** Emissione di token di accesso alle applicazioni client dopo averle autenticate e autorizzate.
|
||||
|
||||
**Ambiti e Consenso:**
|
||||
|
||||
@@ -38,7 +38,7 @@ Entra ID è la piattaforma di gestione dell'identità e degli accessi (IAM) basa
|
||||
- Non possono autenticarsi in modo sicuro al server di autorizzazione.
|
||||
- **Implicazione di Sicurezza:** Un attaccante può impersonare un'applicazione client pubblica quando richiede token, poiché non esiste un meccanismo per il server di autorizzazione per verificare la legittimità dell'applicazione.
|
||||
|
||||
## Authentication Tokens
|
||||
## Token di Autenticazione
|
||||
|
||||
Ci sono **tre tipi di token** utilizzati in OIDC:
|
||||
|
||||
@@ -50,9 +50,9 @@ Ci sono **tre tipi di token** utilizzati in OIDC:
|
||||
- Ottenere un nuovo token di aggiornamento non revoca il token di aggiornamento precedente.
|
||||
|
||||
> [!WARNING]
|
||||
> 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 poi puoi utilizzare quel token da un **IP non consentito per accedere alle risorse**.
|
||||
> Le informazioni per il **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 poi puoi utilizzare quel token da un **IP non consentito per accedere alle risorse**.
|
||||
|
||||
### Access Tokens "aud"
|
||||
### Token di Accesso "aud"
|
||||
|
||||
Il campo indicato nel campo "aud" è il **server delle risorse** (l'applicazione) utilizzato per eseguire il login.
|
||||
|
||||
@@ -71,13 +71,13 @@ Il comando `az account get-access-token --resource-type [...]` supporta i seguen
|
||||
* **arm (Azure Resource Manager)**: Utilizzato per gestire le risorse Azure tramite l'API Azure Resource Manager. Questo include operazioni come la creazione, l'aggiornamento e la cancellazione di risorse come macchine virtuali, account di archiviazione e altro.
|
||||
- `https://management.core.windows.net/ o https://management.azure.com/`
|
||||
|
||||
- **batch (Azure Batch Services)**: Utilizzato per accedere ad Azure Batch, un servizio che consente applicazioni di calcolo parallelo su larga scala e ad alte prestazioni in modo efficiente nel cloud.
|
||||
- **batch (Azure Batch Services)**: Utilizzato per accedere ad Azure Batch, un servizio che consente applicazioni di calcolo parallelo e ad alte prestazioni su larga scala in modo efficiente nel cloud.
|
||||
- `https://batch.core.windows.net/`
|
||||
|
||||
* **data-lake (Azure Data Lake Storage)**: Utilizzato per interagire con Azure Data Lake Storage Gen1, che è un servizio di archiviazione e analisi dei dati scalabile.
|
||||
- `https://datalake.azure.net/`
|
||||
|
||||
- **media (Azure Media Services)**: Utilizzato per accedere ad Azure Media Services, che forniscono servizi di elaborazione e distribuzione dei media basati sul cloud per contenuti video e audio.
|
||||
- **media (Azure Media Services)**: Utilizzato per accedere ad Azure Media Services, che forniscono servizi di elaborazione e distribuzione di media basati su cloud per contenuti video e audio.
|
||||
- `https://rest.media.azure.net`
|
||||
|
||||
* **ms-graph (Microsoft Graph API)**: Utilizzato per accedere all'API Microsoft Graph, l'endpoint unificato per i dati dei servizi Microsoft 365. Consente di accedere a dati e informazioni da servizi come Azure AD, Office 365, Enterprise Mobility e servizi di sicurezza.
|
||||
@@ -88,13 +88,13 @@ Il comando `az account get-access-token --resource-type [...]` supporta i seguen
|
||||
|
||||
</details>
|
||||
|
||||
### Access Tokens Scopes "scp"
|
||||
### Ambiti dei Token di Accesso "scp"
|
||||
|
||||
L'ambito di un token di accesso è memorizzato all'interno della chiave scp all'interno del JWT del token di accesso. Questi ambiti definiscono a cosa ha accesso il token di accesso.
|
||||
|
||||
Se un JWT è autorizzato a contattare un'API specifica ma **non ha l'ambito** per eseguire l'azione richiesta, **non sarà in grado di eseguire l'azione** con quel JWT.
|
||||
|
||||
### Esempio di ottenimento di token di aggiornamento e accesso
|
||||
### Esempio di Ottenimento di Token di Aggiornamento e Accesso
|
||||
```python
|
||||
# Code example from https://github.com/secureworks/family-of-client-ids-research
|
||||
import msal
|
||||
@@ -121,7 +121,6 @@ device_flow
|
||||
pprint(azure_cli_bearer_tokens_for_graph_api)
|
||||
|
||||
|
||||
|
||||
# DECODE JWT
|
||||
def decode_jwt(base64_blob: str) -> Dict[str, Any]:
|
||||
"""Decodes base64 encoded JWT blob"""
|
||||
@@ -153,7 +152,7 @@ Inoltre, **questo è possibile con tutti i refresh token** nella [Microsoft iden
|
||||
|
||||
Inoltre, nota che le applicazioni FOCI sono applicazioni pubbliche, quindi **non è necessario alcun segreto** per autenticarsi al server.
|
||||
|
||||
I client FOCI noti riportati nella [**ricerca originale**](https://github.com/secureworks/family-of-client-ids-research/tree/main) possono essere [**trovati qui**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv).
|
||||
Poi i client FOCI noti riportati nella [**ricerca originale**](https://github.com/secureworks/family-of-client-ids-research/tree/main) possono essere [**trovati qui**](https://github.com/secureworks/family-of-client-ids-research/blob/main/known-foci-clients.csv).
|
||||
|
||||
### Get different scope
|
||||
|
||||
@@ -174,7 +173,7 @@ scopes=[
|
||||
)
|
||||
pprint(azure_cli_bearer_tokens_for_outlook_api)
|
||||
```
|
||||
### Ottieni diversi client e ambiti
|
||||
### Ottieni client e scope diversi
|
||||
```python
|
||||
# Code from https://github.com/secureworks/family-of-client-ids-research
|
||||
microsoft_office_client = msal.PublicClientApplication("d3590ed6-52b3-4102-aeff-aad2292ab01c")
|
||||
|
||||
Reference in New Issue
Block a user