So sichern Sie den Zugriff auf Microsoft Graph PowerShell
Mit Microsoft Graph PowerShell können Sie Verwaltungs- und Verwaltungsaufgaben für Microsoft 365 und Azure AD über die Befehlszeile ausführen. Wenn Sie es noch nicht verwendet haben, werden Sie vielleicht feststellen, dass das ursprüngliche Konzept hinter der Ausführung des Connect-Cmdlets und der Anmeldung mit Ihren Administratoranmeldeinformationen dem ähnelt, was Sie gewohnt sind. Das Problem besteht jedoch darin, dass es nicht dasselbe ist … Das Modul ist für die Verbindung mit einer Anwendung in Azure AD konzipiert, der ausdrücklich bestimmte Berechtigungen für Microsoft Graph erteilt wurden, entweder durch delegierte Berechtigungen oder durch Anwendungsberechtigungen. Dies wirft einige Sicherheitsaspekte sowohl bei Azure AD-Anwendungen als auch bei der Verbindung mit Microsoft Graph über PowerShell auf.
In diesem Tutorial werde ich diese Sicherheitsüberlegungen und die daraus resultierenden Probleme im Detail erläutern und Ihnen zeigen, wie Sie Microsoft Graph PowerShell sicher verwenden.
Sicherheitsüberlegungen für Microsoft Graph PowerShell
Der Standardanwendungsname ist immer derselbe
Sobald Sie das Microsoft Graph PowerShell-Modul installiert und eine Verbindung zu Microsoft Graph mit Stellvertreterberechtigungen hergestellt haben, was zu Beginn am häufigsten vorkommt, In Ihrem Mandanten wird eine allgemeine Unternehmensanwendung mit dem Namen „Microsoft Graph Command Line Tools“ registriert. Die Anwendungs-ID ist auf „14d82eec-204b-4c2f-b7e8-296a70dab67e“ festgelegt, was für alle Mandanten konsistent ist und auch dann, wenn sie im selben Mandanten neu erstellt wird. Dies bedeutet, dass die Anwendung von guten und hinteren Akteuren leicht identifiziert werden kann. Darüber hinaus müssen Sie nicht unbedingt den Standardanwendungsnamen angeben, Connect-MgGraph selbst reicht aus.
Um Delegiertenberechtigungen zuzustimmen, müssen Sie ein globaler Administrator sein
Das Herstellen einer Verbindung zu Microsoft Graph mit Stellvertreterberechtigungen ist einfach und der Vorgang ist „fast“ genau das, was Sie von der Verwendung älterer Module wie den MSOnline- und AzureAD-Modulen kennen. Wenn Sie jedoch zum ersten Mal eine Verbindung herstellen oder in der Vergangenheit keine bestimmte Berechtigung angegeben haben, müssen Sie ein globaler Administrator in Ihrem Mandanten sein, um den Berechtigungen für die Microsoft Graph-Befehlszeilentools in Azure AD zuzustimmen. Diese Berechtigungen werden der Anwendung dann dauerhaft zugewiesen, nicht nur für die Dauer Ihrer Sitzung.
Berechtigungen müssen nur einmal von einem Administrator für alle erteilt werden
Sobald Sie zum ersten Mal eine Verbindung zu Microsoft Graph herstellen, müssen Sie die Berechtigungen nicht mehr erneut angeben und haben die gleiche Zugriffsebene wie zuvor, möglicherweise sogar noch mehr, wenn es um Berechtigungen geht haben sich im Laufe der Zeit aufgebaut. Sie können dies überprüfen, indem Sie das Cmdlet Get-MgContext verwenden oder die Anwendungsberechtigungen in Azure AD anzeigen. Das Problem hierbei ist, dass (insbesondere bei verwalteten IT-Anbietern von Drittanbietern) Berechtigungen für die Standard-App aufgebaut werden, was dazu führen kann, dass zukünftige Sitzungen stark überprivilegiert sind.
Jeder kann die zugestimmte Berechtigung standardmäßig in seinem Benutzerkontext verwenden
Die Standardeinstellung für die Benutzerzuweisung für die Microsoft Graph-Befehlszeilenanwendung in Azure AD sieht vor, dass keine Benutzerzuweisung erforderlich ist. Das bedeutet, dass jeder Benutzer in Ihrer Umgebung das Cmdlet Connect-MgGraph in einer PowerShell-Sitzung verwenden kann (sofern der bedingte Zugriff dies zulässt), um eine Verbindung zu Microsoft Graph herzustellen und programmgesteuerten Zugriff auf die Daten in seinem Benutzerkontext zu haben. Das bedeutet, dass ein Administratorbenutzer in einem Moment eine privilegierte Änderung mit Microsoft Graph vornehmen kann und dann auch andere privilegierte Benutzer programmgesteuert auf dieselben Daten zugreifen können. Obwohl dies kein Problem zu sein scheint, helfen Sie Angreifern, Daten im Falle einer Kompromittierung sehr schnell zu exfiltrieren.
Überstundensitzungen werden überprivilegiert
Es gibt keine einfache Möglichkeit, die Einwilligung zu widerrufen oder erteilte Berechtigungen für die App in Azure AD zu entfernen. Sie haben die Möglichkeit, die delegierten Berechtigungen über das alte Azure AD PowerShell-Modul zu entfernen oder die App manuell in Azure AD zu löschen (was bevorzugt wird). Wenn Sie die App jedoch löschen und neu erstellen, müssen Sie daran denken, die Eigenschaft „Zuweisung erforderlich“ auf „Ja“ zu aktualisieren.
Conditional Access funktioniert irgendwie ...
Sie können den bedingten Zugriff verwenden, um den Zugriff auf die Anwendungen einzuschränken, mit denen Sie eine Verbindung zu Microsoft Graph PowerShell herstellen, einschließlich der integrierten Anwendung. Dies funktioniert jedoch nicht. Wenn Sie mit bedingtem Zugriff auf Microsoft Graph zugreifen möchten, müssen Sie „Alle Cloud-Apps“ auswählen.
So sichern Sie den Microsoft Graph PowerShell-Zugriff
Einige der folgenden Einstellungen treffen möglicherweise nicht vollständig auf Sie oder Ihre Organisation zu. Sie sollten jedoch alle so verstanden werden, dass ihre Umsetzung auf die eine oder andere Weise zusätzliche Sicherheitsvorteile für Ihren Mieter mit sich bringt. Befolgen Sie die folgenden Schritte in beliebiger Reihenfolge für jede Empfehlung.
Blockieren oder beschränken Sie die Zustimmung zur Benutzeranwendung
Standardmäßig können Benutzer in Ihrer Organisation Anwendungen die Berechtigung erteilen, Details zu ihrem Konto anzuzeigen. Ich empfehle, dies zu sperren, sodass nur einer minimalen Menge an Informationen zugestimmt werden kann. Dies ermöglicht es kritischen Anwendungen, sich bei Bedarf mit dem Benutzerkonto anzumelden, verringert jedoch die Menge an Informationen, die die Anwendung anzeigen kann. Befolgen Sie die folgenden Schritte, um sicherzustellen, dass nur der minimalen Menge an Informationen zugestimmt werden kann. Diese Informationen werden als „geringes Risiko“ eingestuft.
1. Melden Sie sich hier bei Microsoft Entra an: https://entra.microsoft.com/
2. Erweitern Sie Anwendungen und wählen Sie Unternehmensanwendungen aus
3. Wählen Sie Einwilligung und Berechtigungen
4. Wählen Sie dann auf der Registerkarte Benutzereinwilligungseinstellungen die Option Benutzereinwilligung für Apps von verifizierten Herausgebern zulassen, für ausgewählte Berechtigungen (empfohlen) aus
5. Klicken Sie auf derselben Seite auf Berechtigungen zur Klassifizierung als geringe Auswirkung auswählen
6. Klicken Sie auf der Registerkarte Niedrig auf Berechtigungen hinzufügen und fügen Sie die folgenden Berechtigungen hinzu:
- Profil > Basisprofil der Benutzer anzeigen
- Openid > Benutzer anmelden
- E-Mail > E-Mail-Adresse der Benutzer anzeigen
Legen Sie die Standard-App „Befehlszeilentools“ von Microsoft Graph auf „Zuweisung erforderlich“ fest
Die Öffnung „Zuweisung erforderlich“ für Anwendungen in Azure AD stellt sicher, dass nicht jeder standardmäßig eine Verbindung zu Ihrer Anwendung herstellen kann. Dadurch können Sie sicherstellen, dass nur manuell definierte Benutzer/Gruppen das Recht erhalten, sich mit Ihrer Anwendung zu verbinden und somit auf die Daten zuzugreifen, für deren Zugriff sie eine Genehmigung erhalten haben. Führen Sie die folgenden Schritte aus, um sicherzustellen, dass nur bestimmte Benutzer mit Graph-Berechtigungen auf die Standardanwendung oder eine benutzerdefinierte Anwendung zugreifen können.
1. Wählen Sie in Microsoft Entra Anwendungen > Unternehmensanwendungen
2. Öffnen Sie die Anwendung Microsoft Graph Command Line Tools
3. Klicken Sie auf Eigenschaften und ändern Sie dann Zuweisung erforderlich in Ja.
Minimieren Sie die Anzahl globaler Administratoren
Überprüfen Sie Ihre globalen Administratoren. Verfügen Sie über die empfohlene Anzahl globaler Administratoren und überwachen Sie Verwaltungsaufgaben? Sie können PIM auch zur Steuerung und Überwachung privilegierter Rollen verwenden. Führen Sie die folgenden Schritte aus, um alle aktiven und berechtigten Zuweisungen für die globale Administratorrolle zu überprüfen.
1. Wählen Sie in Microsoft Entra Rollen & Administratoren aus
2. Wählen Sie auf der Registerkarte Alle Rollen aus der Rollenliste Globaler Administrator aus
3. Überprüfen Sie die Registerkarten Berechtigte und Aktive Zuweisungen und überprüfen Sie dann, ob jeder Benutzer weiterhin globalen Administratorzugriff benötigt. Entfernen Sie die Konten, die keine globalen Administratorrechte benötigen
Verwenden Sie benutzerdefinierte Anwendungen in Azure AD mit vorab zugewiesenen Microsoft Graph-Berechtigungen
Indem Sie den Zugriff auf die integrierte Microsoft Graph-Befehlszeilentools-Anwendung blockieren und bestimmte Microsoft Graph-Anwendungen mit den erforderlichen Berechtigungen zum Abschließen der Aufgabe erstellen, stellen Sie sicher, dass es keine übermäßigen Zugriffe gibt. privilegierte Anwendungen in Ihrem Mandanten und dass nur das erforderliche Personal eine Verbindung zu dieser Anwendung herstellen kann.
Folgen Sie meiner ausführlichen Anleitung hier: „Mit einem Client-Geheimnis eine Verbindung zu Microsoft Graph PowerShell herstellen“ und befolgen Sie die Schritte zum Erstellen einer Anwendung in Azure AD und zum Zuweisen der relevanten Berechtigungen.
Um mit dem Cmdlet Connect-MgGraph eine Verbindung zu Ihrer spezifischen Anwendung herzustellen, können Sie die Parameter -ClientId und TenantId verwenden.
Connect-Mggraph -ClientId <ClientId> -TenantId <TenantId>Verwenden Sie eindeutige Identitäten, um den Zugriff mit einem stärkeren bedingten Zugriff gezielter zu gestalten
Falls noch nicht geschehen, sollten Sie neue Identitäten (Benutzerkonten) für Verwaltungsaufgaben konfigurieren und diese Konten mit bedingtem Zugriff stark sperren. Das Problem mit Microsoft Graph PowerShell besteht darin, dass die App nicht direkt mit bedingtem Zugriff angesprochen werden kann und Sie „Alle Cloud-Apps“ auswählen müssen, um zusätzliche Sicherheit für den Zugriff auf die App anzuwenden. Daher sollten Sie Ihren Zugriff so gestalten, dass nur bestimmte Identitäten Zugriff auf die Azure AD-Anwendungsebene haben sollten, und diese Identitäten dann mit einer strengen Richtlinie für bedingten Zugriff angesprochen werden sollten, die auf alle Cloud-Apps abzielt.
Bieten Sie Ihrem IT-Personal Administratorschulungen an
Schließlich ist es wichtig, dass Ihre IT-Mitarbeiter mit den Änderungen bei der Verwaltung von Microsoft 365 und Azure AD mit PowerShell vertraut sind. Während einige Aufgaben wahrscheinlich zur zweiten Natur geworden sind, vollziehen sich Veränderungen schnell und umfassend, daher ist es wichtig, dass Sie Ihren Teams stundenlange Schulungszeit widmen.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass es bei der Verwendung der Microsoft Graph PowerShell-Anwendung einige übersehene Standardkonfigurationen gibt. In Verbindung mit einer schlechten Benutzerberechtigungsverwaltung und der Zuweisung privilegierter Rollen zu alltäglichen Benutzerkonten könnte es zu einer tickenden Zeitbombe kommen, von der Sie nicht einmal wissen. Die in diesem Beitrag beschriebenen Schritte helfen dabei, Angriffe und Rechteausweitungspfade in Ihrem Mandanten zu minimieren, die mit Microsoft Graph PowerShell ausgenutzt werden könnten.