Google Workspace: Neue Methoden zur Ausweitung von Angriffen

Weitverbreitete Lösungen sind beliebte Angriffsziele. Ein Beispiel dafür ist Google Workspace, die frühere G Suite. Ist ein lokales System kompromittiert, bestehen weitere Risiken.

Beim Entwickeln neuer Extended-Detection-and-Response-Sensoren entdeckten Sicherheitsanalysten von Bitdefender Angriffsmöglichkeiten in Google Workspace und in der Google Cloud Platform, die möglicherweise zu Ransomware-Angriffen oder zur Datenexfiltration führen. Ausgehend von einem einzelnen kompromittierten Rechner können die Angreifer auf verschiedene Weise vorgehen: Sie können zu anderen, über Images geklonten Maschinen mit installiertem Google Credential Provider für Windows (GCPW) übergehen, sich mit benutzerdefinierten Privilegien Zugriff auf die Cloud-Plattform verschaffen oder lokal gespeicherte Passwörter entschlüsseln, um ihren Angriff über das Google-Ökosystem hinaus fortzusetzen.

Kompromittierung von Identitäten als zentraler Angriffshebel

Google Credential Provider für Windows hat zwei Funktionen, die auch Hacker missbrauchen können. Erstens ermöglicht der GCPW die Remote-Administration von Windows-Geräten ohne VPN-Konnektivität oder Domänenregistrierung. Diese MDM-Funktionalität (Mobile Device Management) ähnelt der von Microsoft Intune und bietet Administratoren die Möglichkeit, Windows-Geräte innerhalb ihrer Google Workspace-Umgebung aus der Ferne zu verwalten und zu steuern. So können Administratoren beispielsweise Sicherheitsrichtlinien durchsetzen, Updates anwenden, Software installieren und Konfigurationen verwalten.

Zweitens ermöglicht er eine SSO-Authentifikation (Single Sign-On) für das Windows-Betriebssystem mit den Anmeldedaten von Google Workspace. So können Nutzer mit denselben Anmeldeinformationen auf ihre Windows-Geräte zugreifen, die sie auch für Google Mail, Google Drive und Google Calendar verwenden. Der Prozess läuft in fünf Schritten ab:

  1. Erstellen eines lokalen Dienstkontos: Während der Installation von GCPW wird ein neues Benutzerkonto „gaia" angelegt und ein zufälliges Passwort generiert. Dieser „gaia"-Benutzer ist nicht für typische Benutzerinteraktionen vorgesehen, sondern dient als Dienstkonto für GCPW. „gaia", also die Google-Konten- und ID-Verwaltung, verfügt über erweiterte Privilegien.
  2. Credential Provider Integration: GCPW fügt dann einen neuen Credential Provider zum Local Security Authority Subsystem Service (lsass) hinzu. Diese Windows-Komponente übernimmt sicherheitsrelevante Vorgänge und damit auch die Authentifikation. Credential Provider in Windows sind dafür gedacht, dass sich Drittanbieter in den Authentifikationsprozess und in die Kontrolle der Nutzerzugriffe integrieren.
  3. Credential-Provider-Authentifikation: Der jetzt in das Windows-Authentifikationssystem integrierte Credential Provider authentifiziert Benutzer über den Sperrbildschirm (Lockscreen). Wenn ein Benutzer versucht, sich anzumelden oder sein Gerät zu entsperren, überprüft der Credential Provider die Anmeldedaten des Benutzers.
  4. Erstellen eines lokalen Benutzerkontos: Dieses neue Nutzerkonto verknüpft der „gaia"-Nutzer mit dem Google Workspace-Konto.
  5. Anmeldung: Der Google Workspace-Nutzer wird dann mit dem neu erstellten lokalen Profil angemeldet und ein Aktualisierungs-Token in diesem lokalen Profil gespeichert.

Hacker können sich nun in diesen Prozess einschalten, Nutzeridentitäten kapern und diese für ihre Zwecke nutzen.

Angriffsmethode 1: Lateral Movements über geklonte Images

In virtualisierten Umgebungen wie Virtual Desktop Infrastructure (VDI) und DaaS-Lösungen (Desktop as a Service) entstehen aus der häufigen Praxis, Rechner zu klonen, Sicherheitsrisiken. Wenn GCPW auf einem Zielrechner installiert wird, wird ein lokales „gaia"-Konto mit einem zufälligen Passwort erstellt. Jeder Rechner hat ein eindeutiges Passwort. Bei einem geklonten Rechner mit vorinstalliertem GCPW wird auch das Passwort geklont. Hacker kennen dann das eine Kennwort für alle Rechner.

Um die mit dem Benutzer „gaia" verknüpften Anmeldeinformationen zu finden, kann ein Angreifer die in lsass gespeicherten Informationen auflisten  und nach Daten zu "L$GAIA_USERNAME" und "L$GAIA_PASSWORD" suchen.

Wenn Rechner mit vorinstalliertem GCPW geklont werden, dann werden auch die Passwörter geklont.
Abbildung 1: Wenn Rechner mit vorinstalliertem GCPW geklont werden, dann werden auch die Passwörter geklont.

Angriffsmethode 2: Token-Anforderung für Zugriff ohne Authentifikation

Um die lokale Windows-Sitzung mit dem breiteren Google-Ökosystem nahtlos zu verbinden, speichert GCPW innerhalb einer Sitzung ein OAuth 2.0-Refresh-Token. Dieses erhält den Nutzerzugang aufrecht, ohne dass eine Authentifikation immer wieder neu verlangt wird. Wenn dieses Token abläuft, müssen sich die Nutzer erneut authentifizieren und ein neues Refresh-Token wird generiert.

Sobald ein Angreifer Zugang zu einem aktualisierten OAuth-Token erhält, hat er die Möglichkeit, Access Tokens anzufordern. Diese Access Token verfügen als Scopes bezeichnete Privilegien. So erstellt ein Scope beispielsweise den Zugriff auf die E-Mails, den Kalender oder die Kontakte eines Benutzers. Mit dem kompromittierten Aktualisierungs-Token kann ein Bedrohungsakteur nun neue Zugriffstoken mit einem der Scopes anfordern, die dem kompromittierten Benutzer zur Verfügung. In der Konsequenz kann er in dem jeweiligen Bereich auf eine breite Palette von Benutzerdaten zugreifen oder Aktionen im Namen des Nutzers durchführen. Das Refresh-Token erhält der Cyberkriminelle am Ende des Authentifikationsprozesses. Dadurch umgehen die Angreifer zum Erwerb eines Access-Tokens vollständig die Multifaktor-Authentifikation (MFA).

Da das Refresh-Token auch im Google-Chrome-Profil gespeichert ist, ist hier die GCPW-Komponente nicht erforderlich. Das lokal installierte Google Chrome reicht für die Ausführung aus: Hacker durchlaufen dafür vier Schritte:

Schritt 1 - Extrahieren des Aktualisierungs-Tokens

Das Refresh-Token wird vorübergehend in der Registry gespeichert und findet später im Chrome-Profil des Benutzers einen dauerhaften Platz. Die Entschlüsselung ist an beiden Orten möglich. Der Ansatz über die Registrierung ist unauffälliger. Hier ist das Token aber nur für eine begrenzte Zeit verfügbar. Die profilbasierte Speichermethode eröffnet einen längeren Zeitrahmen für den Zugriff, ist aber schwieriger vor der IT-Abwehr zu verbergen.

Angreifer können unter anderem über den Refresh-Token versuchen, einen Endpunkt zu kompromittieren.
Abbildung 2: Angreifer können unter anderem über den Refresh-Token versuchen einen Endpunkt zu kompromittieren.

Schritt 2 - Anfordern des Zugriffstokens

Nach Erhalt des Refresh-Tokens verwenden die Angreifer die Anmeldeinformationen einer Applikation, um eine POST-Anforderung zum Ausstellen eines Zugriffstokens zu konstruieren. Die Anmeldedaten sind für Google Chrome und GCPW identisch und erfüllen den OAuth-Standard, der zwei Schlüsselattribute erfordert - client_id und client_secret. Mit diesen Attributen können die Angreifer eine POST-Anfrage erstellen, welche die Privilegien-Scopes definiert.

Diese POST-Anfrage kann dann an den API-Endpunkt (https://www.googleapis.com/oauth2/v4/token) gesendet werden. Dieser Endpunkt stellt im Anschluss das Zugriffstoken aus, welches dem illegitimen Nutzer den erforderlichen Zugriff auf die Google-API eröffnet.

Schritt 3 - Potenzieller Missbrauch von Zugriffstoken

Die Angreifer können nun auf eine Vielzahl von Google-APIs zugreifen wie beispielsweise Zugriff auf Google Calendar (https://www.google.com/calendar/feeds), Anzeigen, Bearbeiten, Erstellen und Löschen von Google Drive-Daten (https://www.googleapis.com/auth/drive), Anzeigen und Verwalten der Nutzer in einer Domäne (https://www.googleapis.com/auth/admin.directory.user) und viele mehr.

Angriffsmethode 3: Passworte wiederherstellen

Gestohlene Zugangstoken eröffnen lediglich einen zeitlich begrenzten und eingeschränkten Zugriff. Der Zugriff auf Klartextanmeldeinformationen wie Benutzernamen und Kennwörter stellt eine größere Gefahr dar. Angreifer können sich dadurch direkt als legitime Benutzer ausgeben, uneingeschränkten Zugriff auf deren Konten erhalten und das Nutzerkonto vollständig übernehmen.

Standardmäßig speichert GCPW das Passwort des Benutzers als verschlüsseltes LSA-Secret (Local Security Authority). Dies wird für die Funktion zum Zurücksetzen des Passworts verwendet.

Der Wert des geheimen Chrome-GCPW-<User_SID> ist ein JSON, welches das verschlüsselte Passwort und die Ressourcen-ID des Schlüssels enthält, der für die Verschlüsselung verwendet wurde. Diese Kodierungsschlüssel werden von Google verwaltet, und nur der Kontoinhaber kann sie abrufen.

Martin Zugec, Bitdefender

„Gestohlene Zugangstoken eröffnen lediglich einen zeitlich begrenzten und eingeschränkten Zugriff. Der Zugriff auf Klartextanmeldeinformationen wie Benutzernamen und Kennwörter stellt eine größere Gefahr dar.“

Martin Zugec, Bitdefender

In Kombination mit dem Missbrauch von Zugriffstoken könnte ein Angreifer zunächst ein gültiges Zugriffstoken mit dem Bereich https://www.google.com/accounts/OAuthLogin generieren. Dann sendet der Angreifer eine GET-Anfrage an https://devicepasswordescrowforwindows-pa.googleapis.com/v1/getprivatekey/<resource_id >. Als Antwort erhält er den privaten RSA-Schlüssel, der erforderlich ist, um das Passwortfeld zu entschlüsseln.

Google Workspace als weit verbreite Plattform für den Alltag eines jeden Nutzers erschließt also weitreichende Angriffsmöglichkeiten, um Identitäten und Nutzerzugänge zu kapern. Die identifizierten Ansatzpunkte erschließen den Angreifern prinzipiell vielfältige Möglichkeiten. Zunächst benötigen die Angreifer aber den Zugriff auf den lokalen Endpunkt. Ein erweiterter Schutz von Endpunkten durch XDR-Lösungen oder auch durch externe MDR-Dienste ist daher auch gegen solche Angriffe die geeignete Abwehr, um ungewöhnliche oder unbefugte Zugriffsversuche schnell zu erkennen und darauf zu reagieren.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über Bedrohungen

ComputerWeekly.de
Close