Automatisierung von Microsoft 365 Sicherheitsprüfungen mit Maester
Die Einrichtung von Microsoft 365 beginnt normalerweise mit guten Vorsätzen: Conditional Access wird konfiguriert, Multi-Faktor-Authentifizierung ist für Admins aktiviert, Gastzugriff auf sensible Gruppen ist eingeschränkt. Sechs Monate vergehen, Teammitglieder wechseln, jemand deaktiviert eine Regel für eine schnelle Lösung und vergisst, sie wieder zu aktivieren. Dies wird normalerweise während eines Audits oder nach einem Vorfall entdeckt.
Die manuelle Überwachung des Tenant-Status über das Entra ID-Portal oder das monatliche Durchklicken Dutzender Menüs durch Ingenieure ist mühsam und unzuverlässig. Automatisierte Tests werden schon lange zur Überprüfung der Serverinfrastrukturkonfiguration eingesetzt. Das Maester-Projekt überträgt diesen Ansatz auf die Microsoft 365-Umgebung.
Was Maester ist
Maester ist ein Test-Framework, das auf PowerShell und der beliebten Pester-Engine aufbaut. Sein Hauptzweck ist es, eine Reihe von Prüfungen gegen Ihren M365-Tenant auszuführen, Einstellungen gegen Best Practices für Sicherheit zu verifizieren und einen detaillierten Bericht zu erstellen.
Das Tool integriert Microsoft Graph API, M365-Verwaltungsmodule und vertraute Pester-Tests. Wenn Sie schon einmal Unit-Tests in PowerShell geschrieben haben, wird Ihnen die Syntax von Maester vertraut vorkommen.
Schnellstart und Ausführung
Sie benötigen PowerShell und ein paar Befehle für den Einstieg. Die Installation erfolgt direkt aus der PowerShell Gallery:
Install-Module -Name Maester -Scope CurrentUser
Nach der Installation erstellen Sie einen Arbeitsordner und laden die fertige Testsuite herunter:
md ~/maester-tests
cd ~/maester-tests
Install-MaesterTests
Das Ausführen der Tests umfasst zwei Schritte: Authentifizierung und Aufruf des Runners selbst.
cd ~/maester-tests
Connect-Maester
Invoke-Maester
Der Connect-Maester-Befehl fordert die Authentifizierung bei Microsoft Entra an. Übrigens gibt es einen Parameter für die Arbeit mit Sovereign Clouds wie USGov oder China:
Connect-Maester -Environment USGov
Funktionsübersicht
Fertige Tests überprüfen grundlegende Einstellungen: Conditional Access-Richtlinien, MFA-Status, Passwortkonfigurationen, externe Freigabeparameter und Admin-Rollen. Der praktische Nutzen des Frameworks zeigt sich in mehreren Bereichen.
Benutzerdefinierte Pester-Tests
Sie sind nicht auf den Standard-Satz aus dem Repository beschränkt. Jede .tests.ps1-Datei im Tests-Ordner wird Teil des Gesamtlaufs. Wenn Ihre Organisation das Erstellen öffentlicher Links zu SharePoint-Dateien verbietet, schreiben Sie einen kurzen Pester-Test, der diese Einstellung über die Microsoft Graph API überprüft.
Verschiedene Berichtsformate
Die Invoke-Maester-Ergebnisse können in HTML, JSON, CSV, Excel oder Markdown exportiert werden. Ein interaktiver HTML-Bericht eignet sich gut, um ihn Auditoren zu zeigen oder auf eine interne Webressource hochzuladen.
Chat-Benachrichtigungen
Ergebnisse müssen nicht in der Konsole gelesen werden. Das Skript sendet eine Zusammenfassung an Microsoft Teams, Slack oder per E-Mail. Wenn jemand über Nacht eine kritische Sicherheitsrichtlinie geändert hat, sieht das Team morgens eine Nachricht im Arbeitskanal.
CI/CD-Integration
Das Framework passt in das DevSecOps-Konzept. Die zeitgesteuerte Ausführung lässt sich einfach in GitHub Actions, Azure DevOps oder GitLab CI einrichten. Die Autoren haben eine gebrauchsfertige Action im GitHub Marketplace (maester365/maester-action) veröffentlicht, die die Prüfergebnisse in der Pipeline-Zusammenfassung ausgibt.
Fallstricke
In der Repository-Beschreibung warnen die Entwickler vor instabilem Betrieb des ExchangeOnlineManagement-Moduls Version 3.9.2. Verbindungsversuche mit dieser Version führen häufig zu Fehlern. Der Fehler hängt mit dem Microsoft-Modul selbst zusammen, nicht mit Maester, daher ist es besser, vorübergehend frühere Versionen von ExchangeOnlineManagement zu verwenden.
Ein weiterer Punkt ist die Aktualität der Tests. Microsoft-Sicherheitsstandards und APIs ändern sich regelmäßig. Um die Prüfungen aktuell zu halten, müssen Sie gelegentlich frische Tests mit dem Update-MaesterTests-Befehl abrufen.
Fazit
Maester ist nützlich für Systemadministratoren, Sicherheitsingenieure und DevOps-Spezialisten, die Microsoft 365-Tenants verwalten. Das Tool verlagert Sicherheitsauditing aus der Kategorie mühsamer manueller Arbeit in die automatisierte Code-Verifizierung. Wenn Sie Änderungen im Tenant überwachen und Benachrichtigungen über Konfigurationsabweichungen erhalten möchten, lohnt es sich, das Projekt in Ihrer Infrastruktur zu testen.
Ähnliche Projekte