Gestione dell'accesso Just-in-Time (JIT) per macchine virtuali di Azure
01/10/2024
Questo articolo tecnico ed educativo ha lo scopo di guidare analisti della sicurezza, amministratori IT e ingegneri di sistema nell'implementazione e nella gestione dell'accesso Just-in-Time (JIT) per macchine virtuali di Azure (VM). JIT è una funzionalità di sicurezza fondamentale offerta da Microsoft Defender for Cloud che aiuta a proteggere le VM da attacchi di accesso non autorizzati, riducendo drasticamente la superficie di attacco della rete limitando l'accesso alle porte di gestione solo quando e per il tempo strettamente necessario [1].
Introduzione
Negli ambienti cloud, le macchine virtuali sono spesso bersaglio di attacchi di forza bruta e scansioni delle porte, in particolare quelle con porte di gestione (come RDP 3389 e SSH 22) esposte a Internet. Mantenere queste porte continuamente aperte crea una superficie di attacco inutilmente ampia, aumentando il rischio di compromissione. JIT Access risolve questo problema consentendo ai team di sicurezza di bloccare il traffico in entrata verso le VM per impostazione predefinita e di aprire le porte di gestione solo su richiesta, per un periodo di tempo limitato e da indirizzi IP specifici. Questo approccio segue il principio del privilegio minimo e dello Zero Trust, garantendo che l’accesso sia concesso solo quando giustificato e per il minor tempo possibile [2].
Questa guida pratica tratterà i prerequisiti per abilitare JIT, il processo di configurazione tramite Microsoft Security Center, come richiedere e approvare l'accesso JIT, l'integrazione con gli avvisi di sicurezza e le procedure consigliate per una gestione efficace. Verranno fornite istruzioni dettagliate, esempi di comandi e istruzioni dell'interfaccia della riga di comando di Azure in modo che il lettore possa implementare e convalidare il JIT, rafforzando la sicurezza delle proprie macchine virtuali di Azure e proteggendole dalle minacce di accesso non autorizzato.
Perché l'accesso Just-in-Time (JIT) è fondamentale per le macchine virtuali di Azure?
- Riduzione della superficie di attacco: chiude le porte di gestione delle VM per impostazione predefinita, esponendole solo quando e per il tempo necessario, riducendo al minimo le opportunità per gli aggressori.
- Controllo granulare degli accessi: consente di specificare quali utenti possono richiedere l'accesso, quali porte possono essere aperte, per quanto tempo e da quali indirizzi IP di origine.
- Conformità: aiuta a soddisfare i requisiti di conformità che richiedono uno stretto controllo sull'accesso alle risorse critiche.
- Visibilità e controllo: fornisce registri dettagliati di tutte le richieste di accesso JIT, approvazioni e aperture/chiusure di porte, facilitando il controllo e le indagini sulla sicurezza.
- Integrazione con Defender for Cloud: completamente integrato con Microsoft Defender for Cloud, sfruttando le sue funzionalità di gestione del livello di sicurezza e di protezione dalle minacce.
- Automazione: può essere automatizzato per approvare l'accesso in scenari specifici, come la risposta agli incidenti o le operazioni di manutenzione programmata.
Prerequisiti
Per implementare l'accesso JIT per macchine virtuali di Azure, saranno necessari i seguenti elementi:
- Abbonamento Azure attivo: un abbonamento Azure per creare e gestire risorse.
- Accesso amministrativo: un account con il ruolo di "Proprietario", "Collaboratore" o "Amministratore della sicurezza" nella sottoscrizione di Azure o nel gruppo di risorse in cui si trovano le VM.
- Microsoft Defender for Cloud Standard (o Defender for Servers): JIT è una funzionalità premium di Microsoft Defender for Cloud e richiede che il piano Defender for Servers sia abilitato sull'abbonamento contenente le VM [3].
- Macchine virtuali di Azure esistenti: macchine virtuali di Azure che desideri proteggere con JIT. Per questo tutorial presupporremo che tu abbia già distribuito VM.
- CLI di Azure o Azure PowerShell: strumenti da riga di comando installati e configurati per interagire con Azure.
Passo dopo passo: abilitazione e gestione dell'accesso JIT
Configuriamo il JIT per le tue VM di Azure.
1. Abilitazione del piano Defender for Servers
Come menzionato nei prerequisiti, JIT richiede l'attivazione del piano Defender for Servers.
- Apri il browser e accedi al portale di Azure: "https://portal.azure.com".
- Accedi con un account che disponga delle autorizzazioni necessarie.
- Nel campo di ricerca in alto, digita "Defender for Cloud" e selezionalo dai risultati.
- Nel dashboard di Defender for Cloud, seleziona Impostazioni ambientee nel riquadro di navigazione a sinistra.
- Seleziona la sottoscrizione di Azure che contiene le tue VM.
- Nella pagina dei piani Defender, assicurati che il piano Defender for Servers sia "Attivato". In caso contrario, fare clic su "Abilita" e seguire le istruzioni per abilitarlo.
2. Abilitazione dell'accesso JIT per le macchine virtuali
È possibile abilitare JIT per singole macchine virtuali o per più macchine virtuali contemporaneamente.
- Nel dashboard di Defender for Cloud, seleziona Protezione del carico di lavoro nel riquadro di navigazione a sinistra.
- Scorri verso il basso fino alla sezione "Protezione avanzata" e fai clic su Accesso VM just-in-time.
-
Nella scheda "Macchine virtuali", vedrai tre sottoschede: "Configurato", "Consigliato" e "Non configurato".
- "Consigliato": elenca le VM che il Centro sicurezza consiglia di proteggere con JIT.
- "Non configurato": elenca le VM che non sono protette da JIT ma che sono idonee.
-
Seleziona le VM nella scheda "Consigliata" o "Non configurata" per le quali desideri abilitare JIT.
-
Fare clic su Abilita JIT sulla VM.
-
Configura policy JIT: per ciascuna VM selezionata, è possibile configurare le seguenti opzioni:
- Porte: Le porte di gestione che saranno protette (es: 22, 3389, 5985, 5986). Puoi aggiungere porte personalizzate.
- Protocollo: il protocollo per ciascuna porta (ad esempio TCP, UDP).
- Tempo massimo di richiesta: il tempo massimo (in ore) in cui una porta può essere aperta dopo una richiesta approvata. Il valore predefinito è 3 ore.
- Indirizzi IP di origine approvati: facoltativo, ma altamente consigliato. Limita l'accesso a IP o blocchi IP specifici. Per impostazione predefinita è "Any" (
*), il che significa che qualsiasi IP può richiedere l'accesso.
-
Fare clic su Salva per applicare la policy JIT alle VM selezionate.
3. Richiesta di accesso Just-in-Time a una VM
Quando un utente o un amministratore deve accedere a una macchina virtuale protetta da JIT, deve richiedere l'accesso.
- Nel dashboard del Centro sicurezza, seleziona Protezione del carico di lavoro > Accesso just-in-time alle VM.
- Nella scheda "Macchine virtuali", seleziona la VM a cui desideri accedere (dovrebbe trovarsi nella scheda "Configurata").
-
Fare clic su Richiedi accesso.
-
Nella finestra "Richiedi accesso", specificare:
- Porte: le porte che devi aprire.
- Indirizzo IP di origine: l'indirizzo IP pubblico da cui ti connetterai. Puoi selezionare "Il mio indirizzo IP" (l'IP pubblico attuale del tuo dispositivo) o "Personalizzato" per specificare un IP o CIDR.
- Periodo di tempo: la durata dell'accesso (limitata dal "Tempo massimo di richiesta" configurato nella policy JIT).
- Giustificazione: Una breve descrizione del motivo della richiesta di accesso.
-
Fare clic su Porte aperte.
- Nota: se la policy JIT richiede l'approvazione, la richiesta verrà inviata agli approvatori configurati prima dell'apertura delle porte.
4. Approvazione delle richieste di accesso JIT (se configurate)
Per gli scenari in cui è richiesta l'approvazione (tramite App per la logica di Azure o Funzioni di Azure), il processo può variare. Per impostazione predefinita, JIT apre le porte immediatamente su richiesta, a meno che non sia configurata un'automazione del flusso di lavoro.
- Suggerimento: per i flussi di lavoro di approvazione, è possibile usare App per la logica di Azure per monitorare i log di controllo di Azure o gli eventi del Centro sicurezza di Azure e attivare un processo di approvazione (ad esempio, inviare un messaggio di posta elettronica a un gruppo di sicurezza per l'approvazione manuale).
5. Controllo dello stato di accesso JIT
Dopo aver richiesto l'accesso è possibile verificarne lo stato sul portale.
- Nel dashboard del Centro sicurezza, seleziona Protezione del carico di lavoro > Accesso just-in-time alle VM.
- Nella scheda "Macchine virtuali", la VM a cui hai richiesto l'accesso dovrebbe mostrare uno stato che indica che l'accesso è "Attivo" o "In sospeso" (se approvato).
- La colonna "Tempo rimanente" mostrerà quanto tempo di accesso è rimasto.
6. Disabilitazione dell'accesso JIT (facoltativo)
Se è necessario disabilitare JIT per una VM, attenersi alla seguente procedura:
- Nel dashboard del Centro sicurezza, seleziona Protezione del carico di lavoro > Accesso just-in-time alle VM.
- Nella scheda "Macchine virtuali", seleziona la VM configurata.
- Fare clic su Disabilita JIT sulla VM.
Convalida e test
Convalidare l'efficacia di JIT Access è fondamentale per garantire che le tue VM siano protette e che l'accesso possa essere concesso quando necessario.
1. Testare il blocco De accesso standard
- Prova ad accedere a una porta di gestione (ad esempio RDP 3389 o SSH 22) da una VM protetta da JIT senza richiedere l'accesso JIT.
- Risultato previsto: la connessione dovrebbe essere rifiutata o scaduta poiché le porte sono chiuse per impostazione predefinita.
2. Test dell'accesso JIT approvato
- Richiedi l'accesso JIT alla VM e alla porta desiderate utilizzando il relativo indirizzo IP pubblico.
-
Dopo l'approvazione (o l'apertura immediata se non è configurata alcuna approvazione), provare ad accedere alla VM tramite RDP o SSH dallo stesso indirizzo IP pubblico.
- Risultato previsto: la connessione dovrebbe avere esito positivo.
-
Attendere la scadenza del tempo di accesso JIT (o annullare manualmente l'accesso).
- Prova ad accedere nuovamente alla VM.
- Risultato previsto: la connessione dovrebbe essere nuovamente rifiutata.
3. Controllo dei registri di controllo
Tutte le operazioni JIT vengono registrate nei log di controllo di Azure, fornendo una traccia completa di chi ha richiesto cosa, quando e da dove.
- Nel portale di Azure passare al gruppo di risorse o alla VM specifica.
- Nel riquadro di navigazione a sinistra, seleziona Registro attività.
- Filtra gli eventi relativi a "Accesso VM Just-in-Time" o "Microsoft.Security/locations/jitNetworkAccessPolicies".
- Verranno visualizzati eventi come "Politica di accesso alla rete JIT creata", "Politica di accesso alla rete JIT richiesta", "Politica di accesso alla rete JIT approvata" (se applicabile) e "Politica di accesso alla rete JIT chiusa".
Suggerimenti e best practice per la sicurezza
- Principio del privilegio minimo: configura le policy JIT per garantire il minor privilegio possibile: le porte esatte necessarie, per il minor tempo possibile e dagli IP di origine più limitati.
- Limita indirizzi IP di origine: quando possibile, specificare gli indirizzi IP di origine nella policy JIT e nelle richieste di accesso. Evitare di utilizzare "Any" (
*) per gli IP di origine. - Periodi di tempo brevi: imposta il tempo massimo di richiesta sul periodo di tempo ragionevole più breve (ad esempio 1-2 ore), costringendo gli utenti a rivalutare la necessità di accesso.
- Monitoraggio e avvisi: configura avvisi in Monitoraggio di Azure per le richieste di accesso JIT, in particolare per porte critiche o IP imprevisti. Integra questi avvisi con il tuo SIEM (ad esempio Microsoft Sentinel).
- Automazione del flusso di lavoro: per ambienti con requisiti di approvazione rigorosi, usare App per la logica di Azure o Funzioni di Azure per creare flussi di lavoro di approvazione personalizzati per le richieste JIT.
- Documentazione e formazione: documenta chiaramente le politiche di accesso JIT e forma gli utenti su come richiedere l'accesso e sull'importanza di seguire le migliori pratiche di sicurezza.
- Revisione periodica: rivedere regolarmente le politiche JIT e i registri di accesso per garantire che rimangano pertinenti ed efficaci.
- Combinazione con NSG e firewall di Azure: JIT integra altri livelli di sicurezza di rete, come i gruppi di sicurezza di rete (NSG) e il firewall di Azure. Usateli insieme per una difesa in profondità.
Risoluzione dei problemi comuni
- Impossibile abilitare JIT per una VM: verificare che il piano Defender for Servers sia abilitato per l'abbonamento alla VM. Assicurati che la VM non sia in uno stato non valido o che non vi siano impostazioni in conflitto.
- Impossibile richiedere l'accesso JIT: assicurati di disporre delle autorizzazioni necessarie (ad esempio
CollaboratoreoOperatore di accesso Just-in-Time della macchina virtuale) per richiedere l'accesso. Assicurati che la VM sia configurata per JIT e che le porte siano definite nella policy. - Connessione rifiutata dopo la richiesta JIT: verifica che l'indirizzo IP di origine specificato nella richiesta JIT corrisponda all'IP pubblico del tuo dispositivo. Confermare che il periodo di tempo non sia scaduto. Verificare che non siano presenti altri gruppi di rete o regole firewall che bloccano il traffico dopo l'apertura della porta JIT.
- Apertura porte errate: controllare la policy JIT configurata per la VM per assicurarsi che siano elencate le porte corrette. Se si usa l'interfaccia della riga di comando di Azure, controllare i parametri della porta.
- Avvisi di sicurezza per l'accesso JIT: esamina eventuali avvisi di sicurezza relativi a JIT. Ciò potrebbe indicare un tentativo di accesso non autorizzato o una configurazione errata.
- Prestazioni della VM interessate: il JIT in sé non dovrebbe influire sulle prestazioni della VM. In caso di problemi, esaminare altri componenti della VM o della rete.
Conclusione
OLa gestione degli accessi Just-in-Time (JIT) per le macchine virtuali di Azure è una strategia di sicurezza essenziale per proteggere le risorse cloud dalle minacce di accesso non autorizzato. Chiudendo le porte di gestione per impostazione predefinita e aprendole solo su richiesta, JIT riduce significativamente la superficie di attacco, rafforza il tuo livello di sicurezza e ti aiuta a soddisfare i requisiti di conformità. L'implementazione efficace di JIT, combinata con le migliori pratiche di sicurezza e il monitoraggio continuo, garantisce che le tue VM rimangano sicure e accessibili solo a utenti e scopi legittimi. Con questa guida pratica, i professionisti della sicurezza saranno ben attrezzati per configurare, convalidare e gestire l'accesso JIT, rendendo le loro macchine virtuali di Azure più resilienti e protette.
Riferimenti:
[1]Microsoft Learn. Che cos'è l'accesso JIT (just-in-time) alla VM?. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-overview [2]Microsoft Learn. Abilita l'accesso just-in-time alle VM. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-usage [3]Microsoft Learn. Gestisci la sicurezza del server con Microsoft Defender for Cloud. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-servers-plan [4]Microsoft Learn. Gestisci l'accesso JIT (just-in-time) alle tue VM utilizzando PowerShell. Disponibile all'indirizzo: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-powershell