
Discovod - stock.adobe.com
Wie Sie die Sicherheit von Microsoft 365 mit PowerShell testen
Das Microsoft 365 Admin Center bietet Sicherheitsbewertungen und Verbesserungsvorschläge. Mit PowerShell-Skripten wie SCuBA können Admins die verteilten Einstellungen prüfen.
Im Microsoft 365 Admin Center steht im Bereich Sicherheit die Sicherheitsbewertung für jedes Microsoft-365-Abonnement zur Verfügung. Hier können Admins auch die Sicherheitsbewertung sehen und erhalten Tipps und Best Practices, welche Einstellungen verbessert werden sollten. Die Einstellungen sind allerdings auf verschiedene Admin Center verteilt und das Finden der passenden Einstellungen ist oft nicht sehr einfach. Mit Skripten lassen sich die verschiedenen Einstellungen zentral auslesen und damit besser und einfach zusammenfassen. Mit Best Practices können Admins danach die Einstellung so setzen, wie sie von Microsoft und Behörden wie der US-amerikanischen CISA empfohlen sind.
SCuBA-PowerShell-Skript für mehr Sicherheit in Microsoft 365 nutzen
Die US-amerikanische Behörde CISA (Cybersecurity and Infrastructure Security Agency) hat das Projekt Secure Cloud Business Applications (SCuBA) zur Verfügung gestellt, das Anleitungen und Best Practices an die Hand gibt, um Sicherheitseinstellungen in Cloud-Geschäftsanwendungen wie Microsoft 365 und Entra ID optimal einzustellen. SCuBA enthält Anleitungen zur Verbesserung der Sicherheit für:
- Microsoft Defender für Office 365
- Microsoft Entra ID
- Microsoft Exchange Online
- Microsoft SharePoint und OneDrive for Business
- Microsoft Power BI
- Microsoft Power Plattform
- Microsoft Teams
Die Überprüfung der Sicherheitseinstellungen erfolgt idealerweise über ein PowerShell-Skript, da dieses auf alle Einstellungen zentral zugreifen kann, ohne auf verschiedene Admin Center zu setzen. Für die Analyse und das Umsetzen muss der ausführende Nutzer globale Admin-Rechte für das Abonnement besitzen.

Installation des SCuBA-PowerShell-Moduls
Um das SCuBA-PowerShell-Modul zu nutzen, kommt ein lokaler Rechner zum Einsatz, der Zugriff auf das Internet und auf Microsoft 365 hat. Die Installation des Moduls erfolgt mit:
Set-ExecutionPolicy Unrestricted
Install-Module -Name ScubaGear -Force
Wird das Skript nicht mehr benötigt, kann die Ausführungsrichtlinie der PowerShell wieder auf restricted oder remotesigned gesetzt werden. Nach der Änderung der Ausführungsrichtlinie ist ein Neustart der PowerShell notwendig. Nach der Installation des SCuBA-Moduls sind weitere Abhängigkeiten wichtig. Diese werden mit dem folgenden Befehl installiert:
Initialize-SCuBA

Sobald die Grundlagen des Skriptes ohne Fehlermeldung installiert sind, können alle oben gezeigten Dienste in der Cloud auf optimale Sicherheit überprüft werden.
Umfassende Prüfung von Microsoft-365-Diensten und Entra ID
Bei der Ausführung des Skriptes erscheinen mehrere Anmeldefenster für Microsoft 365 und Entra ID. Hier müssen sich Admins daher mehrmals mit globalen Admin-Rechten anmelden, damit das Skript alle relevanten Informationen auslesen kann. Um alle Dienste zu testen, wird in der PowerShell der folgende Befehl eingegeben:
Invoke-SCuBA -OPAPath “C:\Temp\ScubaGear\” -OutPath “C:\Temp\ScubaGear\”
Das Verzeichnis muss vorher angelegt werden, ansonsten erscheint ein Fehler. Nach der erfolgreichen Authentifizierung prüft das Skript umfangreich alle Dienste von Microsoft 365, die oben angeben sind. Sollen nur einzelne Dienste überprüft werden, geht das auch. Die alleinige Überprüfung von Microsoft Entra ID erfolgt zum Beispiel mit:
Invoke-SCuBA -OPAPath “C:\Temp\ScubaGear\” -ProductNames aad -OutPath “C:\Temp\ScubaGear”
Überprüfung der Sicherheitsanalyse von Microsoft 365 und Entra ID
Sobald die Überprüfung abgeschlossen ist, speichert das Skript einen HTML-Bericht im angegebenen Verzeichnis. Es ist möglich, in diesem Bericht zu navigieren. Durch einen Klick auf einen Link wechselt die Anzeige auf den jeweiligen Dienst in Microsoft 365. Dadurch lassen sich fehlende oder nicht korrekt gesetzte Sicherheitseinstellungen für jeden Dienst in Microsoft 365 und für Entra ID zentral prüfen. Sobald die Analyse abgeschlossen ist, erfolgt mit dem folgenden Befehl eine Trennung des SCuBA-Moduls mit Entra ID und Microsoft 365:
Disconnect-SCuBATenant
365Inspect Community Edition für die Sicherheitsanalyse nutzen
Ein weiteres Skript in diesem Bereich ist 365Inspect.ps1. Dieses steht in der Community-Edition kostenlos zur Verfügung, ist in der Funktion aber gegenüber der kostenpflichtigen Version eingeschränkt. Zunächst müssen für das Skript die Voraussetzungen installiert werden:
Install-Module -Name ExchangeOnlineManagement -AllowClobber -Force
Install-Module -Name PnP.PowerShell -AllowClobber -Force
Install-Module -Name Microsoft.Graph -AllowClobber -Force
Install-Module -Name MicrosoftTeams -AllowClobber -Force

Danach erfolgt der Download von GitHub als ZIP-Datei und das Extrahieren der heruntergeladenen Dateien in das Verzeichnis C:\temp\365inspect. Danach lässt sich das Skript zum Beispiel mit dem folgenden Befehl starten:
.\365Inspect.ps1 -OutPath <value> -UserPrincipalName [email protected] -Auth <MFA|DEVICE|ALREADY_AUTHED|APP> -pnpPowerShellApplicationId <Your Pnp PowerShell Application/Client ID>
Um die dazugehörige App-Registrierung einmal zu erstellen, kommt das Skript .\Create-365InspectApp.ps1 im Download-Verzeichnis zum Einsatz. Der registrierten App müssen in Microsoft 365 noch entsprechende Rechte zugewiesen werden. Diese sind auf der Downloadseite zu sehen. Wenn die App nicht mehr benötigt wird, kann sie aus der Umgebung gelöscht werden. Es ist aber durchaus sinnvoll, regelmäßig Tests durchzuführen.