Ottimizzare la sicurezza di Microsoft 365 con ScubaGear di CISA
Proteggere gli ambienti Microsoft 365 e le risorse cloud aziendali è oggi più che mai essenziale, in un contesto dove le minacce informatiche diventano sempre più sofisticate e pervasive. Questa guida è la prima di una serie dedicate all’esplorazione di strumenti e metodologie per valutare e migliorare la postura di sicurezza del tenant Microsoft 365.
Cos’è ScubaGear?
ScubaGear è uno strumento avanzato sviluppato dalla Cybersecurity and Infrastructure Security Agency (CISA) nell’ambito dell’iniziativa SCuBA (Secure Cloud Business Applications). Permette di analizzare in modo automatizzato la configurazione di sicurezza del tenant Microsoft 365, confrontandola con baseline di sicurezza predefinite. Una baseline di sicurezza è un insieme di configurazioni e controlli raccomandati per proteggere un ambiente informatico contro le minacce, fungendo da punto di riferimento minimo per garantire un livello accettabile di sicurezza.
Obiettivo della guida
Questa guida pratica fornisce una panoramica dello strumento ScubaGear, i requisiti per la sua configurazione e i passaggi per eseguire un’analisi della sicurezza del tenant Microsoft 365. È progettata per supportare amministratori IT, responsabili della sicurezza e team di compliance nel migliorare la protezione del loro ambiente cloud.
Seguire questa guida consentirà di migliorare la postura di sicurezza dell’ambiente Microsoft 365 e di:
- Identificare le configurazioni non conformi.
- Ricevere raccomandazioni basate sulle baseline di sicurezza.
- Applicare modifiche per elevare il livello di protezione.
Come funziona ScubaGear?
ScubaGear adotta un approccio strutturato per analizzare la sicurezza del tenant Microsoft 365, basato su tre fasi principali:
- Interrogazione dei dati di configurazione
Utilizzando script PowerShell, lo strumento raccoglie le configurazioni del tenant direttamente dalle API di Microsoft 365. Questi dati includono impostazioni critiche, come l’autenticazione, i permessi e la gestione dei dati. - Analisi delle configurazioni con Open Policy Agent (OPA)
Le configurazioni raccolte vengono analizzate tramite OPA, un motore di policy open-source che confronta i dati con regole di sicurezza definite nelle baseline. Queste regole, scritte nel linguaggio Rego, traducono le best practice di sicurezza in controlli automatizzati. - Report dei risultati
I risultati sono presentati in formati accessibili come HTML, JSON e CSV. I report evidenziano le aree di non conformità, fornendo suggerimenti pratici per raggiungere gli standard di sicurezza desiderati.
Figura 1: ScubaGear, processo in tre fasi
Tecnologie chiave integrate
- PowerShell:
Utilizzato per interrogare l’API di Microsoft 365 e recuperare le configurazioni in modo rapido e sicuro. - Open Policy Agent (OPA):
Consente di definire e applicare regole di sicurezza scalabili, codificate nel linguaggio Rego. - Rego:
Linguaggio progettato per scrivere policy dichiarative, usato per descrivere configurazioni ideali come l’obbligo di MFA o la disabilitazione dell’autenticazione legacy.
Nota sul report generato
Il report generato da ScubaGear non solo identifica le configurazioni problematiche, ma fornisce anche raccomandazioni dettagliate. Tuttavia, è importante ricordare che ogni organizzazione è unica: alcune raccomandazioni potrebbero non essere immediatamente applicabili e vanno valutate attentamente nel contesto specifico.
Contenuto pratico
Requisiti e preparazione
Prima di iniziare a utilizzare ScubaGear, assicurati di soddisfare i seguenti requisiti:
-
Accesso amministrativo al tenant Microsoft 365:
È necessario disporre delle autorizzazioni di amministratore per configurare ed eseguire lo strumento.
-
Versione di PowerShell:
È richiesto PowerShell 5 poiché alcuni moduli di SharePoint non sono compatibili con PowerShell 7.
-
Per verificare la versione installata, esegui il seguente comando:12# Verifica della versione di PowerShell$PSVersionTable.PSVersion
Figura 2: Verifica della versione installata di Powershell
-
Modulo Az per PowerShell:
Se il modulo Az non è già installato, esegui il seguente comando in una sessione PowerShell con privilegi di amministratore:
12# Installazione del modulo AzInstall-Module -Name Az -Repository PSGallery -Force
Figura 3: Installazione del modulo AZ do Powershell
attendi che tutte le dipendenze vengano scaricate.
Figura 4: Installazione dei pacchetti per il modulo AZ di Powershell
Installazione del modulo ScubaGear
-
Metodo consigliato:
Sebbene ScubaGear possa essere scaricato da GitHub, il modo consigliato per installarlo è da PSGallery. Per installare la versione più recente di ScubaGear, esegui:
12# Installazione del modulo ScubaGearInstall-Module -Name ScubaGear
Figura 5: Comando per installare il modulo Az per PowerShell
-
Installazione delle dipendenze
Configura l’ambiente eseguendo i seguenti comandi:
1234# Permetti l'esecuzione di script remotiSet-ExecutionPolicy RemoteSigned -Scope CurrentUser# Inizializza il modulo ScubaGearInitialize-SCuBA
Figura 6: Installazione dipendenze del modulo ScubaGear
-
Verifica dell’installazione:
Dopo l’installazione, verifica che ScubaGear sia stato configurato correttamente eseguendo:12# Verifica della versione di ScubaGearInvoke-SCuBA -Version
Figura 7: Verifica della corretta installazione
Modalità di esecuzione di ScubaGear
ScubaGear supporta due modalità di esecuzione principali, adattabili alle esigenze e al livello di automazione richiesto.
-
Modalità interattiva (Interactive Mode)
In questa modalità, l’utente deve fornire manualmente le credenziali richieste dalle librerie Microsoft durante l’esecuzione dello strumento.
-
Quando utilizzarla:
- Per un’implementazione rapida senza dover configurare file di parametri o credenziali preimpostate.
- Quando si desidera mantenere un controllo manuale durante l’analisi.
-
Requisiti:
- Sono necessarie alcune autorizzazioni per l’utente e, in certi casi, anche per l’applicazione.
- Adatta per utenti che eseguono test su configurazioni specifiche o ambienti meno complessi.
-
Modalità non interattiva (Non-interactive Mode)
Questa modalità consente di automatizzare l’esecuzione di ScubaGear fornendo le credenziali direttamente tramite parametri della riga di comando o file di configurazione.
-
Quando utilizzarla:
- Per esecuzioni automatizzate o ripetitive su più tenant.
- Quando si integrano test di sicurezza in pipeline CI/CD o processi di monitoraggio continuo.
-
Requisiti:
- Le credenziali devono essere configurate preventivamente.
- Richiede maggiore configurazione rispetto alla modalità interattiva.
Permessi richiesti
Permessi Utente
ScubaGear accede a diverse API di Microsoft 365 per raccogliere informazioni sulla sicurezza delle configurazioni. Per garantire il corretto funzionamento, l’utente deve disporre dei seguenti ruoli minimi per ciascun prodotto:
Prodotto | Ruolo |
Entra ID | Global Reader |
Defender for Office 365 | Global Reader (or Exchange Administrator) |
Exchange Online | Global Reader (or Exchange Administrator) |
Power Platform | Power Platform Administrator con una licenza “Power Apps for Office 365” |
Sharepoint Online | SharePoint Administrator |
Microsoft Teams | Global Reader (o Teams Administrator) |
Nota: gli utenti con il ruolo di amministratore globale dispongono sempre delle autorizzazioni utente necessarie per eseguire lo strumento.
Permessi Applicazione
Alcuni prodotti, come Entra ID e SharePoint, richiedono autorizzazioni aggiuntive per le applicazioni tramite il Microsoft Graph PowerShell SDK.
-
Autorizzazioni richieste per l’applicazione:
- Directory.Read.All
- GroupMember.Read.All
- Organization.Read.All
- Policy.Read.All
- PrivilegedEligibilitySchedule.Read.AzureADGroup
- PrivilegedAccess.Read.AzureADGroup
- RoleManagement.Read.Directory
- RoleManagementPolicy.Read.AzureADGroup
- User.Read.All
- Directory.Read.All
Nota: Il Microsoft Graph PowerShell SDK potrebbe apparire come “non verificato” nella schermata di consenso dell’applicazione AAD. Si tratta di un problema noto di lunga data e non influisce sul funzionamento dello strumento.
Esecuzione di ScubaGear in modalità interattiva
Una volta configurate le autorizzazioni utente e applicazione, ScubaGear può essere eseguito in modalità interattiva. In questa modalità, l’utente deve fornire le proprie credenziali per autenticarsi al tenant Microsoft 365.
- Flusso operativo:
Durante l’esecuzione, potrebbe essere richiesto di selezionare il profilo da utilizzare per ogni prodotto sottoposto a test. Tuttavia, l’autenticazione viene effettuata una sola volta per l’intero processo.
Esecuzione dei controlli con ScubaGear
-
Eseguire il test su tutti i prodotti, per analizzare tutti i prodotti disponibili nel tenant:12# Eseguire il test su tutti i prodottiInvoke-SCuBA -ProductNames *
-
Eseguire il controllo su un singolo prodotto, per analizzare un prodotto specifico, utilizza l’opzione -ProductNames con il nome del prodotto desiderato:
12# Eseguire il test su Microsoft TeamsInvoke-SCuBA -ProductNames teams
L’elenco dei valori accettabili è:
Prodotto |
Nome Valore |
Entra ID |
aad |
Defender for Office 365 |
defender |
Exchange Online |
exo |
Power Platform |
powerplatform |
SharePoint Online and OneDrive for Business |
sharepoint |
Microsoft Teams |
teams |
-
Eseguire il test su più prodotti, per analizzare più prodotti aggiungili al flag -ProductNames, separati da virgole:12# Eseguire il test su SharePoint e TeamsInvoke-SCuBA -ProductNames sharepoint, teams
Percorso di output personalizzato
Per impostazione predefinita, ScubaGear crea una nuova directory nella directory corrente e salva i file di report al suo interno. Puoi specificare un percorso personalizzato utilizzando il parametro -OutPath, come l’esempio riportato sotto:
1 |
Invoke-SCuBA -ProductNames * -OutPath C:\temp\reports |
Per la guida è stato usato: Invoke-SCuBA -ProductNames * -OutPath $HOME\m365pro-reports
Output generato
Dopo l’esecuzione, il report viene salvato in una cartella denominata con il seguente schema:
M365BaselineConformance_ANNO_MESE_GIORNO_ORA_MINUTO_SECONDO
Questa cartella si troverà:
- Nella directory corrente di esecuzione.
- Oppure, nel percorso specificato con il parametro -OutPath.
Contenuto della cartella dei report
File | Descrizione |
IndividualReports/ | Contiene report separati per ogni singolo prodotto analizzato. |
ActionPlan.csv | File CSV con tutti i controlli non conformi, utile per pianificare e gestire le azioni di remediation. |
BaseLineReports.html | Report dettagliato in formato HTML che mostra i risultati dei controlli eseguiti. |
ScubaResults.csv | File CSV con i risultati di tutti i controlli, inclusi campi utili per gestire le remediation. |
TestResults.json | Risultati del test in formato JSON, utile per l’integrazione con altri strumenti. |
ScubaResults.json | Versione JSON dettagliata dei risultati. |
Punti chiave aggiuntivi
- ActionPlan.csv è particolarmente utile per definire e monitorare il piano di remediation.
- Il formato HTML è ottimo per una visualizzazione immediata e facilmente interpretabile.
- I file JSON e CSV sono ideali per integrazioni con tool di analisi o automazione (es. Power BI, script Python).
Visualizzazione dei risultati
Il modo principale per analizzare i risultati generati da ScubaGear è aprire il file BaseLineReports.html. Questo file fornisce un riepilogo generale dei risultati, consentendo anche un drill-down nei report dettagliati per ogni singolo prodotto analizzato.
Figura 8: Report finale del tool ScubaGear
Nel report, i risultati sono evidenziati utilizzando un sistema di codifica a colori per facilitare l’interpretazione:
Colori | Descrizione |
Verde | Controlli superati |
Giallo | Controlli superati con avvisi |
Rosso | Controlli falliti |
Grigio | Controlli non applicabili o controllo manuale richiesto |
Per brevità, diamo un’occhiata ai risultati del rapporto Entra ID.
Figura 9: Selezione per il dettaglio dei controlli eseguiti per il prodotto Entra ID
Il riepilogo contiene un elenco di tutti i controlli eseguiti e il risultato di ciascun controllo.
Figura 10: Dettaglio dei controlli eseguiti per il prodotto Entra ID con ScubaGear
Classificazione dei controlli:
-
Shall:
- Impostazioni di sicurezza obbligatorie.
- Devono essere implementate per superare il controllo.
- In caso di mancata implementazione, il risultato sarà evidenziato in rosso.
-
Should:
- Impostazioni di sicurezza consigliate ma non obbligatorie.
- Se non implementate, verranno evidenziate con un avviso in giallo.
Gestione delle remediation
Il report evidenzia che il tenant utilizzato per questa guida è stato creato a scopo dimostrativo e presenta diverse lacune nella configurazione di sicurezza. Per migliorare la postura di sicurezza del tenant, il primo passo consiste nell’applicare le remediation suggerite.
Per tenere traccia delle attività di miglioramento, utilizza il file ActionPlan.csv generato da ScubaGear. Questo file, facilmente apribile in Excel o altri strumenti, fornisce un elenco strutturato delle azioni necessarie per correggere i controlli falliti
Figura 11: File Excel con il piano d’azione (ActionPlan.csv) per la gestione delle remediation
Suggerimenti per la gestione delle remediation
-
Prioritizza i controlli obbligatori (Shall):
- Concentrati sulle impostazioni critiche evidenziate in rosso, in quanto rappresentano le maggiori lacune di sicurezza.
-
Valuta i controlli consigliati (Should):
- Anche se non obbligatori, possono migliorare ulteriormente la sicurezza e ridurre i rischi futuri.
-
Monitora i progressi:
- Aggiorna il file ActionPlan.csv man mano che le remediation vengono implementate, utilizzandolo come documento di tracciamento.
Conclusioni
ScubaGear si conferma come uno strumento fondamentale per verificare e migliorare la postura di sicurezza del tenant Microsoft 365. La sua capacità di confrontare automaticamente le configurazioni con le baseline di sicurezza dell’iniziativa SCuBA rappresenta un’opportunità eccellente per mantenere un ambiente sicuro e al passo con le rapide evoluzioni della sicurezza nel cloud. Utilizzare questo strumento aiuta a garantire che non vengano trascurati aspetti cruciali della sicurezza e che le configurazioni siano sempre aggiornate e conformi agli standard.
Tuttavia, è essenziale comprendere che ScubaGear da solo non può garantire la massima sicurezza. Sebbene fornisca un punto di partenza robusto per valutare lo stato delle configurazioni, è solo una parte di una strategia di sicurezza complessiva. La valutazione dei risultati deve essere fatta tenendo conto delle specificità e dei requisiti unici del proprio ambiente aziendale. Alcune raccomandazioni potrebbero non essere applicabili o potrebbero necessitare di aggiustamenti in base alle politiche e alle priorità aziendali.
Per ottenere il massimo da ScubaGear, è cruciale non seguire le raccomandazioni in modo meccanico. Ogni configurazione deve essere valutata nel contesto della propria organizzazione, e le modifiche devono essere integrate in un piano di sicurezza globale, ben strutturato e personalizzato. Solo così si potranno ottenere risultati ottimali, ridurre i rischi e garantire una protezione continua dell’ambiente cloud aziendale.
Infine, il report generato da ScubaGear, insieme ai file ActionPlan.csv e ai risultati dettagliati, offre gli strumenti necessari per monitorare i progressi e adottare misure correttive, supportando un processo continuo di miglioramento della sicurezza.