Automatizzare i controlli di sicurezza di Microsoft 365 con Maester
La configurazione di Microsoft 365 di solito inizia con le migliori intenzioni: Conditional Access è configurato, l'autenticazione a più fattori è abilitata per gli admin, l'accesso guest ai gruppi sensibili è limitato. Passano sei mesi, i membri del team cambiano, qualcuno disabilita una regola per una correzione rapida e dimentica di riabilitarla. Questo di solito viene scoperto durante un audit o dopo un incidente.
Monitorare manualmente lo stato del tenant attraverso il portale Entra ID o far cliccare gli ingegneri attraverso decine di menu una volta al mese è tedioso e inaffidabile. I test automatizzati sono stati a lungo utilizzati per verificare la configurazione dell'infrastruttura server. Il progetto Maester adatta questo approccio per l'ambiente Microsoft 365.
Cos'è Maester
Maester è un framework di testing costruito su PowerShell e il popolare motore Pester. Il suo scopo principale è eseguire una serie di controlli sul tuo tenant M365, verificare le impostazioni rispetto alle best practice di sicurezza e generare un report dettagliato.
Lo strumento integra Microsoft Graph API, i moduli di gestione M365 e i familiari test Pester. Se hai mai scritto test unitari in PowerShell, la sintassi di Maester ti sembrerà nativa.
Avvio rapido e lancio
Hai bisogno di PowerShell e un paio di comandi per iniziare. L'installazione viene eseguita direttamente da PowerShell Gallery:
Install-Module -Name Maester -Scope CurrentUser
Dopo l'installazione, crea una cartella di lavoro e scarica la suite di test pronta all'uso:
md ~/maester-tests
cd ~/maester-tests
Install-MaesterTests
L'esecuzione dei test prevede due passaggi: l'autenticazione e l'invocazione del runner stesso.
cd ~/maester-tests
Connect-Maester
Invoke-Maester
Il comando Connect-Maester richiede l'autenticazione a Microsoft Entra. A proposito, c'è un parametro per lavorare con cloud sovrani come USGov o China:
Connect-Maester -Environment USGov
Panoramica delle funzionalità
I test pronti all'uso verificano le impostazioni di base: policy di accesso condizionale, stato MFA, configurazioni delle password, parametri di condivisione esterna e ruoli admin. Il valore pratico del framework si rivela in diverse aree.
Test Pester personalizzati
Non sei limitato al set standard dal repository. Qualsiasi file .tests.ps1 nella cartella dei test diventa parte dell'esecuzione complessiva. Se la tua organizzazione vieta la creazione di link pubblici ai file SharePoint, scrivi un breve test Pester che verifica questa impostazione tramite Microsoft Graph API.
Molteplici formati di report
I risultati Invoke-Maester possono essere esportati in HTML, JSON, CSV, Excel o Markdown. Un report HTML interattivo è comodo da mostrare agli auditor o caricare su una risorsa web interna.
Notifiche nelle chat
I risultati non devono essere letti nella console. Lo script invia un riepilogo a Microsoft Teams, Slack o via email. Se qualcuno ha modificato una policy di sicurezza critica durante la notte, il team vedrà un messaggio nel canale di lavoro la mattina.
Integrazione con CI/CD
Il framework si adatta al concetto di DevSecOps. Eseguirlo su schedule è facile da configurare in GitHub Actions, Azure DevOps o GitLab CI. Gli autori hanno rilasciato un'action pronta all'uso in GitHub Marketplace (maester365/maester-action) che emette i risultati dei controlli nel riepilogo della pipeline.
Raccomandazioni
Nella descrizione del repository, gli sviluppatori avvertono sul funzionamento instabile del modulo ExchangeOnlineManagement versione 3.9.2. I tentativi di connessione con questa versione spesso generano errori. Il problema è legato al modulo Microsoft stesso, non a Maester, quindi è meglio usare temporaneamente le versioni precedenti di ExchangeOnlineManagement.
Un altro aspetto è l'aggiornamento dei test. Gli standard di sicurezza e le API di Microsoft cambiano regolarmente. Per mantenere i controlli aggiornati, dovrai occasionalmente recuperare nuovi test con il comando Update-MaesterTests.
Conclusione
Maester sarà utile per amministratori di sistema, ingegneri della sicurezza e specialisti DevOps che gestiscono tenant Microsoft 365. Lo strumento sposta l'audit della sicurezza dalla categoria del lavoro manuale tedioso alla verifica automatizzata del codice. Se vuoi monitorare le modifiche nel tenant e ricevere notifiche sul drift della configurazione, il progetto vale la pena di essere testato nella tua infrastruttura.
Progetti correlati