Wir beschreiben eine gefundene Schwachstelle in Google Drive, mit der es für Benutzer möglich ist, unwiderruflich Dateien in geteilten Ordnern zu löschen, obwohl diese nicht die entsprechenden Rechte haben. Dies ist durch eine fehlerhafte Logik der Versionsverwaltung möglich. Der Bug wurde an Google gemeldet, jedoch als Intended behavior deklariert.
Berechtigungen im Google Drive
Während der täglichen Arbeit fallen viele Dokumente, Medien und andere wichtige Dateien an, welche sicher und hochverfügbar abgelegt werden müssen. Ein beliebter Cloud-Service, auf die viele Unternehmen zurückgreifen, ist Google Drive, welche nahtlos in Google Workplace eingebunden ist. Um die Hierarchie im Unternehmen und die jeweiligen Berechtigungen abzubilden, implementiert Google ein bestimmtes Berechtigungskonzept. Dieses regelt die Befugnisse, die Mitarbeiterkonten in geteilten Ordnern haben – beispielsweise die Erstellung, Löschung und Änderung von Dateien. Folgende Rollen sind definiert:
- Administrator
- Content-Manager
- Beitragender
- Kommentator
- Betrachter
Mitarbeiter erhalten oft den Zugriff Beitragender für geteilte Ordner, mit der Dateien erstellt und bearbeitet, jedoch nicht gelöscht werden können. Im Folgenden wird eine von Vincent Reckendrees und Johannes Ludwig gefundene Schwachstelle beschrieben, wie ein Benutzer mit der Berechtigung Beitragender trotzdem Dateien unwiderruflich löschen kann. Dieser Fehler wurde an Google gemeldet, jedoch als gewolltes Verhalten eingestuft. Der Disclosure Prozess mit Google wird ebenfalls erläutert.
Beschreibung der Business Logic Schwachstellen im Google Drive
Für Benutzer, die das Zugriffslevel Beitragender für einen Ordner haben, existiert für jede Datei, in einem für diesen Benutzer freigegebenen Ordner die Möglichkeit, eine neue Version dieser Datei hochzuladen. Dies stellt eine sogenannte Business Logic Schwachstelle, welche wir im Penetrationstesting häufig vorfinden dar. Es gibt Ausnahmen, auf die unten eingegangen werden.
Bildunterschrift: Die Versionsverwaltung ist über Google Drive aufrufbar.
In diesem Menü hat man die Möglichkeit, die Versionen für eine Datei einzusehen.
Bildunterschrift: Für eine Datei kann es mehrere Versionen geben.
Dieses Menü hat jedoch auch die Funktionalität alte Dateiversionen zu löschen.
Bildunterschrift: Für unberechtigte Benutzer ist es möglich alte Dateien zu löschen.
Ein Beitragender (oft also jeder Mitarbeiter) kann theoretisch wichtige Projektdaten, Vertriebsdokumente oder andere geschäftliche Dateien mit einer ein Byte großen Textdatei oder sonstigen ersetzen und die alte Datei dabei unwiderruflich löschen.
Bildunterschrift: Alte Dateien können unwiderruflich gelöscht werden.
Dieses Verfahren ließe sich auch automatisiert durchführen, womit ein Mitarbeiter im schlimmsten Fall innerhalb einiger Sekunden alle Dateien in Ordnern, auf die er mit der Rolle Beitragender Zugriff hat, löschen könnte.
Wichtig anzumerken ist hierbei, dass es eine Ausnahme gibt:
In Google Drive gibt es die Möglichkeit, direkt neue Dateien wie Docs oder Sheets zu erstellen. Diese können dann direkt mit Google Tools wie Google Sheets oder Google Tabellen geöffnet und bearbeitet werden. Für direkt in Google Drive erstellte Dateien, ist keine Versionsverwaltung über Google Drive aufrufbar. Diese Dateien haben innerhalb der Anwendung eine eigene Versionsverwaltung, in der keine alten Versionen gelöscht werden können.
Bildunterschrift: In Google Anwendungen existiert eine andere Versionshistorie.
Falls eine Datei hochgeladen wird, die mit Google Tools geöffnet und editiert werden kann,
unterliegt diese sowohl dem Versionstracker von Google Drive als auch dem der Anwendung. Der Versionstracker der Google Anwendung greift ab dem Zeitpunkt, an dem diese hochgeladene Datei geöffnet wurde.
Wird beispielsweise eine XLSX-Datei hochgeladen und in Google Drive geöffnet, so wird für diese Datei auch der andere Versionstracker aktiviert und ein Löschen ist nicht mehr durchführbar.
Die Schwachstelle ist demnach nur ausnutzbar für noch nicht in Google Drive geöffnete Dokumente, für die Google Drive Google Tools hat, um diese zu editieren (Tabellenkalkulation, Dokumente, Präsentationen) oder andere Dateien, die ohnehin nicht mit Google Drive editiert werden können (Bilder, PDF, Videos, Binärdateien etc.).
Responsible Disclosure bei Google
Timeline:
Datum | Sender | Nachricht |
Mär 2, 2023 | AWARE7 | Meldung des Bugs. |
Mär 3, 2023 | Rückfrage bezüglich der Rolle. | |
Mär 3, 2023 | AWARE7 | Rückmeldung, dass nicht Benutzerrolle, sondern das Zugriffslevel für geteilte Ordner gemeint ist. |
Mär 6, 2023 | Rückmeldung, dass der Bug untersucht wird. | |
Mär 6, 2023 | Der Bug wurde als Abuse Risk eingestuft. | |
Apr 3, 2023 | AWARE7 | Erfragen von Neuigkeiten. |
Apr 5, 2023 | Finale Rückmeldung, siehe unten. | |
Apr 5, 2023 | Setzen des Status auf: Won’t fix (Intended behavior) |
Finale Rückmeldung von Google:
Hi!
We’ve reviewed your submission and decided not to track it as a security bug, as we are already aware of this issue.
For the same reason, your report will also not be accepted to our VRP. Only first reports of technical security vulnerabilities are in scope for VRP 🙁 Sorry about that.
Nevertheless, we’re looking forward to your next report! To maximize the chances of it being accepted, check out the Bug Hunter University and learn some Secrets of Google VRP.
Thanks again for your report and time,
Google Trust & Safety
Unserer Meinung nach ist dies eine Fehleinschätzung von Google, da dieser Fehler verheerende Auswirkungen für ein Unternehmen bedeuten kann. Das Zugriffslevel Beitragender wird vergeben, damit ein Mitarbeiter keine Dateien unwiderruflich löschen kann. Dass sie es doch können, ist den meisten Administratoren sicher nicht bewusst. Aktuell gibt es nur die Gegenmaßnahme, ein schwächeres Zugriffslevel wie Kommentator zu vergeben, mit dem die Benutzer jedoch keine Dateien mehr erstellen oder ändern können.
Für einen Fehler im Berechtigungsmanagement spricht weiterhin, dass es bei der anderen Versionsverwaltung (für mit Google Tools editierbare Dokumente) keine Möglichkeit gibt, alte Versionen zu löschen. Alle Versionen bleiben stets erhalten und können nicht wie bei den anderen Dateien überschrieben werden.