- Über das Manage my account-Popup auf Android lässt sich ein Bildschirm öffnen, von dem aus man zu normalen Websites wechseln kann; er ist auch innerhalb der Einstellungen und der Google-App-Familie zugänglich
- Der Pfad dorthin führt nacheinander über den Tab „Security“ der Google-Kontoverwaltung, den Password Manager, die Hilfe zur geräteinternen Verschlüsselung, die Datenschutzrichtlinie und das Suchmenü
- Auf diesem Bildschirm ist sogar die Wiedergabe von YouTube möglich, aber es gibt weder Browserverlauf noch Adressleiste, und beim Zurückgehen landet man statt in der Web-Historie wieder im Einstellungsbildschirm
- In der JavaScript-Konsole sind das
mm-Objekt sowie die FunktionencloseView(),requestSecurityKeyHandshake()undupdateSecurityKey()sichtbar; der tatsächliche Zweck einiger Funktionen ist jedoch unklar - Google antwortete zunächst, es handele sich nicht um eine Sicherheitslücke und auch die Umgehung der Kindersicherung sei beabsichtigtes Verhalten, kündigte aber drei Tage nach Veröffentlichung und Medienberichten an, die Meldung erneut zu prüfen
Ein versteckter Browser, der innerhalb der Android-Einstellungen geöffnet wird
- Viele Apps auf Android haben ein Manage my account-Popup, das auch in zentralen Apps wie den Einstellungen und der Google-App-Familie erreichbar ist
- Durch einige Schritte verhält sich der Inhalt des Popups wie ein Browser, der zu gewöhnlichen Websites navigieren kann
- Einstellungen → Google oder in einer App mit Kontoauswahl „Manage my account“ wählen
- Im Tab „Security“ den „Password Manager“ wählen
- Oben rechts das Symbol
Settingswählen - „Set up on-device encryption“ → „Learn more about on-device encryption“ wählen
- Im Hamburger-Menü zu „Privacy Policy“ wechseln
- Oben das Menü mit den neun Punkten antippen, etwa 5 Sekunden warten und dann „Search“ wählen, oder zum Eintrag
Googlewechseln - Wenn man sich vom Google-Konto abmeldet, lässt es sich wie ein Browser verwenden, der zu beliebigen Zielen navigieren kann
- In diesem Zustand ist auch die Wiedergabe von YouTube-Videos möglich, und der Bildschirm wird innerhalb der Einstellungen-App oder der App geöffnet, über die man ursprünglich eingestiegen ist
-
Unterschiede zu einem normalen Browser
- Es wird kein Browserverlauf gespeichert
- Beim Beenden der Sitzung wird man automatisch vom angemeldeten Google-Konto abgemeldet
- Es gibt keine Adressleiste
- Beim Drücken der Zurück-Taste kehrt man nicht zur vorherigen Webseite zurück, sondern in die Einstellungen des Password Managers
Das JavaScript-Objekt mm und Googles Reaktion
- In mobilen JavaScript-Konsolen wie eruda lässt sich ein JavaScript-Objekt namens
mmsehen - Das
mm-Objekt hat drei FunktionencloseView(): Schließt den Browser und verhält sich ähnlich wie beim Drücken der Zurück-TasterequestSecurityKeyHandshake(): Die Funktion konnte nicht verifiziert werden, wirkt dem Namen nach aber sensibelupdateSecurityKey(): Die Funktion konnte nicht verifiziert werden, wirkt dem Namen nach aber sensibel
- Da dieser Browser über den Pfad der Funktion on-device encryption geöffnet wird, bleibt es Spekulation, ob die beiden nicht verifizierten Funktionen mit der Einrichtung lokaler Verschlüsselungsschlüssel zusammenhängen
- Google antwortete auf die erste Meldung, dies sei keine Sicherheitslücke, und die Umgehung der Kindersicherung sei „Intended Behavior“
- Nach der Veröffentlichung des Beitrags berichteten mehrere Medien im englisch- und russischsprachigen Raum darüber; drei Tage nach der Veröffentlichung teilte Google mit, die Meldung erneut zu prüfen
- Als verwandte Diskussion gibt es Hacker News discussion
2 Kommentare
Als ich in die Passwortverwaltung gegangen bin, hatte ich immer das Gefühl, dass alles irgendwie einen Takt langsamer ist … dann war das wohl doch nicht nur Einbildung.
Hacker-News-Kommentare
Ich habe ein wenig nachgeforscht, und wenn man auf „Manage my account“ klickt, bleibt man nicht in der Einstellungen-App, sondern wechselt zu einer in Google Play Services eingebetteten Activity
Letztlich war der Browser
com.google.android.gms/.auth.folsom.ui.GenericActivity, und es sah nicht so aus, als würde er Chrome verwenden, also die standardmäßige System-WebView-Implementierung auf meinem HandyAndroid kann mit
addJavascriptInterfaceeine Schnittstelle zwischen Android-Code und JavaScript-Code erstellen, und GMS scheint das ziemlich intensiv zu nutzen, daher wirkt es wie eine später untersuchenswerte AngriffsflächeDie verdächtige
mm-Schnittstelle befindet sich inMagicArchChallengeViewund ist mit der obfuskierten Klassebwuzverbunden.bwuzselbst ist fast leer, verweist aber wiederum auf einige weitere obfuskierte KlassenEine String-Suche zeigt, dass die beiden Klassen
"qvc"und"pdn"zugehörige Funktionen exponieren;pdnscheint der Kern zu sein, und inqvcgibt es nützliche Fehler-Logs, die verraten, wofür die einzelnen Parameter stehensetVaultSharedKeyserwartet ein Array von JSON-Objekten mit den WertengaiaId,epochundkey, macht daraus eine Liste und übergibt sie an eine abstrakte Klasse, die tief mit der Kontosicherheit zusammenzuhängen scheintaddEncryptionRecoveryMethoderwartetgaiaId, eine Liste von Security-Domains und einen öffentlichen Mitgliedsschlüssel und übergibt auch das an dieselbe abstrakte KlasseIch musste hier aufhören, weil ich zur Arbeit musste, aber es scheint sich zu lohnen, nicht nur diese Schnittstelle, sondern auch andere Schnittstellen weiter zu untersuchen, die GMS gegenüber WebView exponiert
https://developer.android.com/reference/android/webkit/WebVi...
Selbst wenn es Blink ist, ist es vermutlich längst nicht so aktuell wie das, was Chrome bereitstellt. Der Link zur Dokumentation lässt darauf schließen, dass es tatsächlich WebKit ist
https://2021.stateofthebrowser.com/speakers/alex-russell/
gaiaIdfür Google Accounts and ID Administration ID steht: Wer diesem praktisch global eindeutigen Google-Identifier diesen Namen gegeben hat, war vermutlich ziemlich stolz darauf — und das zu RechtIch verstehe nicht, was daran anders sein soll als an anderen eingebetteten WebViews. Fast jede App hat doch irgendwo eine eingebettete WebView für Dinge wie „Datenschutzerklärung anzeigen“, oder?
Es ist oft sehr viel einfacher, HTML anzuzeigen, als die gesamte Datenschutzerklärung an den App-Entwickler zu übergeben
Soweit ich mich erinnere, war es auch ziemlich schwierig, eine WebView so zu konfigurieren, dass mehrere Domains oder URLs erlaubt sind. Ich bin allerdings kein Android-Entwickler, und das letzte Mal ist auch schon ein paar Jahre her
Die Sache mit der Schlüsselverwaltung ist bisher noch ziemlich spekulativ, und der Autor hat auch nicht getestet, was das tatsächlich macht, daher ist der Stand eher: „Da sind zwei Methoden, von denen ich nicht weiß, was sie tun, die aber beängstigend aussehen“
Das erinnert ein wenig daran, wie man bei gesperrtem Browser über CHM-Hilfedateien ins Internet ging
Verdammt, jetzt sieht man mein Alter
Das ist genau dieselbe Methode, mit der ich als Kind die Jugendschutz-App unter Windows umgangen habe
Ich durfte den Computer nur eine Stunde benutzen, und wenn die Zeit um war, wurden alle Apps außer Microsoft Office geschlossen, weil die als produktiv galten
Durch Herumklicken habe ich es irgendwie geschafft, in Outlook einen Browser zu öffnen und auf Miniclip Flash-Spiele zu spielen
Wir haben den Standard-Webbrowser auf Terminal geändert, dann Word geöffnet, einen Link erstellt und darauf geklickt. Ein normal gestartetes Terminal war üblicherweise eingeschränkt, sodass das Starten anderer Apps fehlschlug, aber die auf diese Weise geöffnete Terminal-Instanz hatte mehr Rechte, sodass man mit
open /path/to/your/appDinge wie Spiele von eingelegten Datenträgern starten konnteAls die Aufsicht im Selbstlernraum kam und fragte, ob wir Starcraft spielen dürften, antwortete ich: „Wie Sie wissen, sind diese Computer ziemlich stark gesperrt, also wenn wir dieses Spiel starten können, dann hat die Schule das wohl erlaubt.“ Ich kann immer noch nicht glauben, dass das funktioniert hat
Wenn ein Kind diesen Hack findet und damit gesperrte Websites aufrufen kann, finde ich, hat es sich das verdient
Einen ähnlichen Bypass gab es auch auf der Lizenzseite von
aboutFolgt man den Links zu den Lizenzen, bekommt man einen Browser. Das ist praktisch, wenn man auf Dingen wie In-Car-Headunits oder Peloton-Bikes einen Browser öffnen will
Das sieht aus wie eine Auflistung aller Dateien im Dateisystem
Die Erfahrung dieser Person, die Google einen Bug gemeldet hat, erinnert mich an meine eigene Erfahrung
Ich: In Google Sheets gibt es einen Bug, durch den gelöschte Inhalte gegenüber Dritten offengelegt werden
Google: Kein Bug. Funktioniert wie beabsichtigt. Ticket geschlossen
Ich: Wirklich? Ich habe durch die Nutzung dieser Anwendung tatsächlich Schaden erlitten
Google: Eigentlich ist es schon ein Bug, aber es ist seit Langem ein bekanntes Problem und daher nicht für Bug Bounties qualifiziert. Ticket geschlossen
Ich: In Gmail gibt es einen Bug, durch den gefälschte E-Mails einen DKIM-Fehlschlag verbergen und wie legitim erscheinen können
Google: "Won't fix (Intended Behavior)"
Ich: Will Google also wirklich, dass gefälschte E-Mails in der Oberfläche wie legitim aussehen?
Google: Tatsächlich ist das ein bekanntes Problem
Außerdem versuchten die ersten Artikel dazu, die Schwachstelle mit chinesischem/russischem Hacking in Verbindung zu bringen. Solche Propaganda sollte man Google selbst zurückspiegeln. Google ist ein US-Unternehmen und hat die Hintertür weit offen gelassen, sodass sie von jedem ausgenutzt werden konnte, ob aus dem Ausland oder im Inland. Tatsächlich wurde sie von beiden Seiten ausgenutzt
Google hat ein echtes Problem. Ich weiß nicht, was dort seit 2019 passiert ist, aber es ist nichts Gutes
Ich: Es gibt einen Bug in Google Play Services
Google: Kein Bug. Funktioniert wie beabsichtigt. Ticket geschlossen
Ich: Ich habe den Bug in meinem Blog veröffentlicht, und es gab breite Medienberichterstattung
Google: Offenbar lagen wir falsch! Es ist tatsächlich ein Bug. Wir melden uns in ein paar Wochen wieder
Heute habe ich erfahren, dass es eine mobile JavaScript-Konsole gibt
https://eruda.liriliri.io/
Man kann die Entwicklertools auf einem anderen Computer öffnen, und alle Informationen werden per WebSocket synchronisiert. Ich habe das einmal verwendet, um ein Problem auf dem Gerät eines Kunden zu debuggen
data:text/html,, aber das hier ist überraschend funktionsreichSo etwas habe ich früher auch in der Lobby gemacht, während meine Eltern Bankgeschäfte erledigten
Damals waren best viewed in Netscape Navigator-Tags eine Goldgrube. Der Ablauf war fast derselbe: Man hat sich durchgeklickt, bis so ein Tag auftauchte, und ist von dort zu einer Suchmaschine weitergegangen
Danach bin ich auf eine dubiose, mit Adware vollgestopfte Streaming-Seite gegangen, und in dem Moment, als ich zu einem anderen Video wechselte, fror der gesamte Tesla-Computer ein und ich musste das Auto hart neu starten
Das erinnert mich an ältere Windows-Versionen. Durch Drücken von F1 konnte man über die Windows-Hilfe verschiedene Ausführungsbefehle auslösen
explorer.exeund Run wählen"