In seinem TROOPERS19-Vortrag ("I'm in your cloud ... reading everyone's email") sprach Dirk-jan Mollema über ein von ihm entdecktes Problem, das die Verwendung des SMTP-Abgleichs (auch Soft Matching genannt) zur Synchronisierung von Active Directory (AD)-Benutzern mit Azure AD ermöglichte, mit dem Ziel, nicht synchronisierte Konten zu kapern. Jan erklärte, dass Microsoft die Möglichkeit blockierte, On-Prem-Konten zu synchronisieren, die aktive Zuweisungen zu administrativen Rollen in Azure AD hatten.
Wir sind dieser Aussage nachgegangen. Die schlechte Nachricht: Unsere Nachforschungen haben ergeben, dass jeder, der in einer AD-Umgebung über Rechte zur Erstellung von Konten verfügt, das Kennwort eines Azure AD-Benutzers ändern und - mit einigen Voraussetzungen - über geeignete Rollenzuweisungen privilegierten Zugriff erhalten kann.
Was führt zu dieser Azure AD-Sicherheitslücke?
Die meisten Unternehmen verwenden Active Directory, um Berechtigungen und den Zugriff auf Netzwerkressourcen zu verwalten. Viele dieser Unternehmen beginnen auch mit der Nutzung von Azure AD, einem Cloud-basierten Identitäts- und Zugriffsverwaltungsdienst, um Benutzeridentitäten und Zugriffsberechtigungen für Ressourcen wie das Azure-Portal und Office 365 zu verwalten.
In hybriden Identitätsimplementierungen werden Objekte zwischen den lokalen AD-Umgebungen und Azure AD-Mandaten synchronisiert. In solchen Umgebungen können Benutzer dieselbe Identität für On-Premises AD und Azure AD verwenden.
Azure AD-Verbindung
Azure AD Connect ist eine Microsoft-Anwendung, die entwickelt wurde, um eine hybride Identität durch die Synchronisierung von On-Prem AD-Objekten mit Azure AD-Objekten zu erreichen. Azure AD Connect umfasst viele Funktionen, von denen die wichtigsten die Passwort-Hash-Synchronisierung, die Pass-Through-Authentifizierung, die Federation-Integration (mit ADFS) und die Synchronisierung (mit Azure AD Connect Sync) sind. Die Kennwort-Hash-Synchronisierung und die allgemeine Synchronisierung sind für diese Diskussion am wichtigsten.
Während einer Azure AD Connect Express-Installation werden neue Konten erstellt, um die Synchronisierung zu unterstützen.
- AD DS Connector-Konto:
- Wird zum Lesen und Schreiben in AD verwendet
- Gewährung der Berechtigungen Verzeichnisänderungen replizieren und Verzeichnisänderungen replizieren Alle für die Verwendung von Password Hash Sync
- Vorangestellt mit MSOL_########
- ADSync-Dienstkonto: Wird für die Synchronisierung und für den Zugriff auf die SQL-Datenbank verwendet
- Azure AD Connector-Konto:
- Wird verwendet, um Informationen in Azure AD zu schreiben.
- Gewährung der speziellen Rolle Verzeichnis-Synchronisationskonten, die nur die Berechtigung zur Durchführung von Verzeichnis-Synchronisationsaufgaben hat
- Vorangestellt mit Sync_*
In einer hybriden Identitätsimplementierung ist die Integrität zwischen On-Prem-Umgebungen und Azure AD-Tenants wichtig. Um dieses Ziel zu erreichen, gleicht Azure AD Connect Benutzerobjekte zwischen Azure AD und AD ab.
Während der Ersteinrichtung und Synchronisierung von Azure AD Connect wird ein Quellanker-Attribut ausgewählt. Dieses Attribut identifiziert ein Benutzerobjekt eindeutig zwischen AD und Azure AD. Azure AD Connect führt den Abgleich anhand dieses Attributs durch und gleicht Benutzerobjekte zwischen Azure AD und AD mit einer von zwei Techniken ab:
- Harter Abgleich
- Soft (SMTP) Abgleich
Harter Abgleich
Wenn Sie Azure die Verwaltung des Quellankers überlassen, sucht Azure AD Connect nach einem von zwei möglichen sourceAnchor-Attributen:
- Azure AD Connect Version 1.1.486.0 und älter verwenden objectGUID.
- Azure AD Connect Version 1.1.524.0 und neuere Versionen verwenden mS-DS-ConsistencyGuid.
Wenn das Attribut mS-DS-ConsistencyGuid nicht ausgefüllt ist, schreibt Azure AD Connect die objectGUID des Benutzers in dieses Attribut. ImmutableID ist der entsprechende Wert des Azure AD-Objekts - im Wesentlichen die base64-kodierte objectGUID. Abbildung 1 zeigt ein Beispiel für das Abrufen der ImmutableID eines Azure AD-Objekts von der objectGUID des On-Prem AD-Benutzers.
Soft (SMTP) Abgleich
Der weiche (SMTP) Abgleich verwendet zwei Attribute, die sowohl in AD als auch in Azure AD vorhanden sind:
- userPrincipalName
- proxyAddress
Soft Matching ist erfolgreich, wenn Benutzerobjekte übereinstimmen, sofern zwei Bedingungen erfüllt sind:
- Das Attribut userPrincipalName in Azure AD entspricht dem in AD.
- Das primäre proxyAddress-Attribut in AD stimmt mit der proxyAddress in Azure AD überein.
Wenn ein harter oder weicher Abgleich erfolgreich ist, wird das passende Benutzerobjekt aktualisiert. Wenn es keine Übereinstimmung gibt, wird ein Benutzerobjekt im Azure AD-Mandanten erstellt, das mit dem On-Prem AD-Benutzerobjekt übereinstimmt, wobei die Attribute des Kontos verwendet werden.
Passwort-Hash-Synchronisierung
Die Passwort-Hash-Synchronisierung ist eine Authentifizierungsmethode, die in hybriden Identitätsumgebungen von Azure AD implementiert ist. Diese Methode, die standardmäßig aktiviert ist, synchronisiert alle zwei Minuten den Hash des On-Prem AD-Passworts des Benutzers mit Azure AD. Die Synchronisierung des Passwort-Hashes ermöglicht es Benutzern, sich mit demselben Passwort sowohl bei AD als auch bei Azure AD anzumelden. (Eine ausführlichere Erklärung der Passwort-Hash-Synchronisierung finden Sie unter Semperis - Verständnis der Azure AD Passwort-Hash-Synchronisierung).
Aktive versus wählbare Rollen
Azure AD-Benutzern können Rollen zugewiesen werden, die Berechtigungen zur Verwaltung verschiedener Azure AD-Ressourcen gewähren. Rollen können entweder aktiv oder berechtigt zugewiesen werden.
Berechtigte Zuweisungen erfordern, dass der Benutzer die Rolle aktiviert. Dazu muss der Benutzer eine MFA-Aktion durchführen, eine geschäftliche Rechtfertigung vorlegen oder eine Genehmigung von bestimmten Genehmigern anfordern. Berechtigte Rollen können dauerhaft oder für einen bestimmten Zeitraum zugewiesen werden(Abbildung 2). Es gibt keine zeitliche Begrenzung dafür, wann eine dauerhaft zugewiesene berechtigte Rolle aktiviert werden muss.
Aktive Zuweisungen erfordern keine Benutzeraktion für die Nutzung der Rolle. Benutzer haben die mit einer Rolle verbundenen Privilegien so lange, wie sie dieser Rolle zugewiesen sind(Abbildung 3).
Wie der SMTP-Abgleich zu einer Azure AD-Schwachstelle wird
Ein Objekt in Azure AD kann in Azure AD oder On-Prem AD verwaltet werden. Jedes Objekt hat eine Markierung, die anzeigt, ob das Konto mit einem On-Prem-Konto synchronisiert wurde. Das folgende Beispiel zeigt dieses Kennzeichen im Azure-Benutzer-Panel. Der Benutzer Lee Gu ist synchronisiert(Abbildung 4), der Benutzer Lynne Robbins nicht(Abbildung 5).
Abbildung 5Siekönnen diese Einstellungen auch im Office 365 Active Users Panel in der Spalte Sync Status sehen(Abbildung 6 und Abbildung 7).
Abbildung 7
Es kann vorkommen, dass Sie die Quelle der Berechtigung für ein Cloud-verwaltetes Benutzerkonto übertragen möchten. Nehmen wir zum Beispiel an, dass ein Benutzerkonto direkt von Office 365 aus erstellt wird, wodurch der Benutzer Cloud-verwaltet wird. Sie möchten diesen Benutzer jedoch über das lokale AD verwalten, so wie wir es mit dem Rest Ihrer Benutzer tun.
Dazu können Sie die Verzeichnissynchronisierung verwenden. Diese Methode verwendet den SMTP-Abgleich, um das Office 365-Benutzerkonto mit einem On-Prem-Benutzerkonto zu synchronisieren, basierend auf dem Attribut proxyAddress.
Um Konten über den SMTP-Abgleich zu synchronisieren, sind zwei Schritte erforderlich:
- Erstellen Sie ein AD-Konto mit demselben userPrincipalName wie das Azure AD-Konto.
- Konfigurieren Sie das Attribut proxyAddress so, dass es mit der proxyAddress des Azure AD-Benutzers übereinstimmt
Abbildung 8 zeigt die Eigenschaften des Benutzers Lee Gu im lokalen AD. Hier erstellen Sie den Benutzer und weisen ihm dieselbe proxyAddress und denselben userPrincipalName zu wie dem von der Cloud verwalteten Benutzer Lee Gu.
Abbildung 9 zeigt die Lee Gu-Benutzereigenschaften in Azure AD.
Wenn Azure AD Connect ein Objekt in Azure AD mit den übereinstimmenden Attributen userPrincipalName und proxyAddress findet, erfolgt ein SMTP-Abgleich. Wenn die Kennwort-Hash-Synchronisierung konfiguriert ist, was standardmäßig der Fall ist, überschreibt dieser Prozess das bestehende Kennwort für das Azure AD-Konto mit dem Kennwort für das On-Prem-Konto.
Wichtige Hinweise zum SMTP-Abgleichverfahren:
- Der AD-Benutzer muss neu synchronisiert werden.
- Dirk-jan hat festgestellt, dass die Synchronisierung nicht funktioniert, wenn der Azure AD-Benutzer ein aktiver hochprivilegierter Benutzer ist. Sie können zum Beispiel einen On-Prem-Benutzer nicht mit einem aktiven Global Administrator Azure AD-Benutzer synchronisieren. (Dieses Problem wurde behoben, nachdem Dirk-jan es entdeckt hatte).
- Wenn der userPrincipalName des On-Prem-Benutzers nicht mit dem Cloud-Benutzer übereinstimmt, wird ein neuer Cloud-Benutzer erstellt. Dieser Benutzer wird mit dem On-Prem-Benutzer synchronisiert und hat eine gültige Office 365-E-Mail-Adresse, die durch sein userPrincipalName-Attribut und nicht durch seine proxyAddress bestimmt wird
Wenn Sie beispielsweise versuchen, den Benutzer Megan Bowen zu synchronisieren, indem Sie das Attribut proxyAddress, aber einen anderen userPrincipalName verwenden, ist das Ergebnis ein neuer Azure AD-Benutzer - auch wenn Sie keinen Zugriff auf Azure AD oder keine Berechtigungen haben(Abbildung 10).
Wenn Sie einen neuen On-Prem-Benutzer mit demselben proxyAddress-Attribut, aber einem anderen userPrincipalName erstellen(Abbildung 11), erhalten Sie zwei Benutzerobjekte mit dem Namen Megan Bowen, jedes mit einem anderen userPrincipalName. Das neuere Objekt wird synchronisiert, und das ursprüngliche Objekt wird von Azure AD in der Cloud verwaltet(Abbildung 12).
Abbildung 12
Sie können sich mit dem neuen Cloud-Benutzerkonto und dem On-Premise-Passwort anmelden und MFA konfigurieren(Abbildung 13).
Wie der SMTP-Abgleich zu Missbrauch führen kann
Das Semperis Research Team hat entdeckt, dass es möglich ist, SMTP-Abgleiche zu verwenden, um On-Prem-Benutzer mit Azure AD-Benutzern zu synchronisieren, die für administrative Rollen in Frage kommen. Angreifer, die sich vor Ort Zugang verschafft haben, können diesen Ansatz nutzen, um Azure AD zu kompromittieren.
Der SMTP-Abgleich funktioniert für Benutzer mit hohen Rechten, die für ein Recht berechtigt sind, das nicht aktiviert wurde. Missbrauch ist möglich, unabhängig davon, ob die administrative Rolle dem Benutzer direkt zugewiesen wurde oder über eine Azure-Gruppe, die zur Aktivierung der Rolle berechtigt ist.
Um den SMTP-Abgleich zu missbrauchen, muss entweder MFA nicht verwendet werden oder die Rollenaktivierung darf keine MFA-Verifizierung erfordern. Wir haben eine Liste aller hochprivilegierten Rollen erstellt, die keine MFA-Verifizierung für die Rollenaktivierung erfordern(Tabelle 1).
Tabelle 1. Hochprivilegierte Rollen und MFA-Verifizierungsanforderungen
MFA anfordern | Sie benötigen keine MFA |
Azure-Informationsschutz-Administrator Administrator für Rechnungsstellung Administrator für Cloud-Anwendungen Administrator für die Einhaltung von Richtlinien Administrator für bedingten Zugriff Kunden-LockBox-Zugangsgenehmiger Verzeichnisschreiber Dynamics 365-Verwalter Exchange-Verwalter Globaler Administrator Intune Verwalter Partner Tier1-Unterstützung Partner Tier2-Unterstützung Power BI Verwalter Privilegierte Rolle Administrator Sicherheits-Administrator SharePoint-Administrator Skype for Business-Administrator Benutzer-Administrator |
Gast-Benutzer Eingeschränkter Gast-Benutzer Gast-Einlader Helpdesk-Administrator Administrator für Serviceunterstützung Benutzer Verzeichnis-Leser Geräte-Benutzer Azure AD Verbundenes Gerät Lokaler Administrator Gerät beitreten Workplace-Gerät beitreten Verzeichnis-Synchronisationskonten Geräte-Manager Anwendungsadministrator Anwendungsentwickler Sicherheit Leser Berichte-Leser Nachrichten-Center-Leser Administrator für Desktop-Analytik Lizenz-Administrator Cloud-Geräte-Administrator Administrator für Authentifizierung Administrator für Privilegierte Authentifizierung Teams Communications Administrator Teams Communications Support-Techniker Spezialist für den Kommunikations-Support von Teams Teams Administrator Einblicke Administrator Message Center Datenschutz-Leser Administrator für externe ID-Benutzerströme Administrator für externe ID-Benutzerflussattribute B2C IEF Schlüsselsatz-Administrator B2C IEF-Richtlinien-Administrator Administrator für externe Identitätsanbieter Administrator für Compliance-Daten Sicherheit Operator Kaizala-Verwalter Globaler Leser Such-Administrator Such-Editor Passwort-Administrator Drucker-Administrator Drucker-Techniker Administrator für Authentifizierungsrichtlinien Gruppen-Administrator Power Platform-Verwalter Azure DevOps Verwalter Administrator für hybride Identitäten Office Apps Verwalter Netzwerk-Administrator Insights Business Leader Teams Geräte Administrator Angriffs-Simulation Administrator Angriffs-Nutzlast Autor Verwendung Zusammenfassung Berichte Leser Wissens-Administrator Wissens-Manager Domänenname-Verwalter Administrator für Attributdefinition Attribut-Zuordnung Administrator Attributdefinition Leser Attribut-Zuordnung Leser Exchange-Empfänger Administrator Administrator für Identitätsverwaltung Administrator für Cloud-App-Sicherheit Windows Update-Bereitstellungs-Administrator Windows 365-Administrator Edge-Verwalter Administrator für virtuelle Besuche Analyst für Einblicke |
Nehmen wir zum Beispiel an, dass der von der Cloud verwaltete Benutzer Lidia Holloway für die Rolle Globaler Administrator berechtigt ist(Abbildung 14).
Sie verwenden den SMTP-Abgleich, um diesen Benutzer mit einem neuen On-Premise-Benutzer zu synchronisieren(Abbildung 15).
Nachdem Sie sich mit Lidias On-Prem-Passwort bei Azure AD angemeldet haben, können Sie die Rolle Globaler Administrator aktivieren(Abbildung 16). Dazu müssen Sie MFA verwenden ("Zusätzliche Überprüfung erforderlich"). Wenn der ursprüngliche Cloud-Benutzer keine MFA erforderte, können Sie diese einfach konfigurieren und dann die Rolle aktivieren(Abbildung 17).
Abbildung 17
Sie können eine Rolle aktivieren, für die keine zusätzliche MFA-Verifizierung erforderlich ist, die aber zum Globalen Administrator erhoben werden kann, z. B. Anwendungsadministrator. Und wie Dirk-Jan beschreibt, kann diese Rolle dann direkt in die Rolle des Globalen Administrators eskaliert werden.
Verwenden Sie Semperis DSP , um diese Azure AD-Schwachstelle zu erkennen.
Semperis Directory Services Protector ( DSP) sammelt Azure AD Änderungsdaten. Um einen Versuch, diese Schwachstelle auszunutzen, zu erkennen, sucht DSP nach dem spezifischen Angriffsmuster, das die Synchronisierung eines AD-Benutzers mit einem Azure AD-Benutzer umfasst, der für eine Rolle mit hohen Rechten in Frage kommt, gefolgt von der Aktivierung dieser Rolle. DSP Sicherheitsindikator (SI) "Azure AD-Rollenaktivierung nach Synchronisierung" identifiziert dieses Muster. DSP identifiziert auch den SI "AAD-Benutzer, der für eine Rolle mit hohen Rechten in Frage kommt und nicht mit AD synchronisiert ist". Dieser SI weist auf Azure AD-Benutzer hin, die für eine Rolle mit hohen Rechten in Frage kommen und über das Attribut proxyAddress verfügen, aber nicht mit einem lokalen Konto synchronisiert sind, wodurch sie für diesen Angriff anfällig sind.
Andere Entdeckungen von SMTP-Missbrauch
Eine weitere Möglichkeit ist die Verwendung von Azure-Auditprotokollen, um nach Synchronisierungen und Rollenaktivierungen in Ihrer Umgebung zu suchen(Abbildung 18).
In diesem Beispiel können Sie sehen, dass der Name des Aktionsclients "DirectorySync" lautet und dass der alte Wert für LastDirSyncTime leer ist. Diese Informationen zeigen an, dass der Benutzer zum ersten Mal mit dem lokalen AD synchronisiert hat.
Das folgende Protokoll zeigt die Rollenaktivierung(Abbildung 19). Über das Attribut RoleDefinitionOriginId können Sie nach der aktivierten Rolle suchen.
Behebung von SMTP-Missbrauch
Um diesen Angriff zu verhindern, empfiehlt Microsoft, MFA für alle Benutzer zu verlangen ("Härten Sie Ihren Azure AD Connect Server"). Die Abschwächung wird erreicht, indem Sie sicherstellen, dass Benutzer MFA konfiguriert haben , bevor Sie ihnen eine berechtigte Rolle zuweisen. Sie können auch die Option zur Verwendung von Soft Matching für die Synchronisierung deaktivieren.
Offenlegung
Dieses Problem wurde am 10. Juni 2022 über das Microsoft Security Response Center (MSRC) gemeldet. Microsoft antwortete am 13. Juli: "[B]ased on our assessment, there are mitigative controls in place that a user can use to avoid this vulnerability. Wir haben festgestellt, dass das Verhalten absichtlich herbeigeführt wurde."
Mehr erfahren
Wenn Sie mehr über den Schutz Ihres Unternehmens vor AD- und Azure AD-Schwachstellen erfahren möchten, lesen Sie die folgenden Ressourcen: