Google設定内に隠された秘密のブラウザ
(matan-h.com)- AndroidのManage my accountポップアップで通常のWebサイトへ移動できる画面が開き、SettingsやGoogleアプリ群の中からもアクセスできる
- 進入経路はGoogleアカウント管理のSecurityタブ、Password Manager、オンデバイス暗号化のヘルプ、プライバシーポリシー、Searchメニューの順にたどる
- この画面ではYouTubeの再生まで可能だが、閲覧履歴とアドレスバーがなく、戻る操作ではWeb履歴ではなく設定画面へ戻る
- JavaScriptコンソールでは
mmオブジェクトと、closeView(),requestSecurityKeyHandshake(),updateSecurityKey()関数が見え、一部の関数の実際の用途は確認されていない - Googleは当初、これはセキュリティ脆弱性ではなく、保護者による利用制限の回避も意図された動作だと回答したが、公開と報道の3日後に報告を再検討すると知らせた
Android設定内で開く隠しブラウザ
- Androidの複数のアプリにはManage my accountポップアップがあり、SettingsやGoogleアプリ群のような主要アプリからもアクセスできる
- いくつかの手順を踏むと、ポップアップ内部が通常のWebサイトへ移動できるブラウザのように動作する
- Settings → Google、またはアカウント選択が可能なアプリで「Manage my account」を選択
- 「Security」タブで「Password Manager」を選択
- 右上の
Settingsアイコンを選択 - 「Set up on-device encryption」→「Learn more about on-device encryption」を選択
- ハンバーガーメニューから「Privacy Policy」へ移動
- 上部の9点メニューを押して約5秒待ってから「Search」を選ぶ、または
Google項目へ移動 - Googleアカウントからログアウトすると、任意の場所へ移動できるブラウザのように使える
- この状態ではYouTube動画の再生も可能で、画面はSettingsアプリ、または最初に入ったアプリの内部で開く
-
通常のブラウザとの違い
- 閲覧履歴が残らない
- セッション終了時にログイン中のGoogleアカウントから自動的にログアウトされる
- アドレスバーがない
- 戻るキーを押すと前のWebページではなくPassword Manager設定側へ戻る
mm JavaScriptオブジェクトとGoogleの対応
- erudaのようなモバイルJavaScriptコンソールで
mmというJavaScriptオブジェクトを確認できる mmオブジェクトには3つの関数があるcloseView(): ブラウザを閉じ、戻るキーを押したときと似たように動作するrequestSecurityKeyHandshake(): 機能は確認されていないが、名前からするとセンシティブに見える関数updateSecurityKey(): 機能は確認されていないが、名前からするとセンシティブに見える関数
- このブラウザはon-device encryption機能の経路で開くため、未確認の2つの関数がローカル暗号化キーの設定に関連していた可能性は推測の域を出ない
- Googleは最初の報告に対し、これはセキュリティ脆弱性ではなく、保護者による利用制限の回避は「Intended Behavior」だと回答した
- 記事公開後、英語圏やロシア語圏など複数のメディアが取り上げ、公開から3日後にGoogleはこの報告を再検討すると通知した
- 関連する議論としてHacker News discussionがある
2件のコメント
パスワード管理に入ると、なんだかワンテンポ遅い感じがしていたけど……気のせいじゃなかったのかもしれませんね
Hacker Newsの意見
少し調べてみたところ、"Manage my account" を押すと設定アプリ内にとどまるのではなく、Google Play Services 内に埋め込まれた Activity に移動する
最終的にブラウザは
com.google.android.gms/.auth.folsom.ui.GenericActivityで、私のスマホのデフォルトのシステム WebView 実装である Chrome を使っているようには見えなかったAndroid では
addJavascriptInterfaceによって Android コードと JavaScript コードの間のインターフェースを作れるが、GMS 内ではこれをかなり多用しているようで、後で見る価値のある攻撃面に思える怪しい
mmインターフェースはMagicArchChallengeView内にあり、難読化されたbwuzクラスにつながっている。bwuz自体はほぼ空だが、さらにいくつかの難読化クラスへ接続されている文字列検索をすると
"qvc"と"pdn"の 2 つのクラスが関連関数を公開しており、pdnが中核のように見え、qvcには各パラメータが何かを示す有用なエラーログがあるsetVaultSharedKeysはgaiaIdとepoch、keyの 2 つの値を持つ JSON オブジェクト配列を期待し、これをリスト化してアカウントのセキュリティと深く関係していそうな抽象クラスに渡すaddEncryptionRecoveryMethodはgaiaId、セキュリティドメインの一覧、メンバー公開鍵を期待し、これも同じ抽象クラスに渡すここで出勤しないといけないので止めたが、このインターフェースだけでなく、GMS が WebView に公開しているほかのインターフェースもさらに掘る価値がありそうだ
https://developer.android.com/reference/android/webkit/WebVi...
Blink だとしても、Chrome が提供するものほど最新ではない可能性が高そうだ。ドキュメントのリンクを見る限り WebKit っぽい
https://2021.stateofthebrowser.com/speakers/alex-russell/
gaiaIdが Google Accounts and ID Administration ID の略だなんて、事実上 Google 全体の一意 ID にこの名前を付けた人はかなり誇らしかっただろうし、それももっともだこれが他の埋め込み WebView と何が違うのかわからない。ほとんどすべてのアプリが「プライバシーポリシーを見る」みたいなところに 埋め込み WebView を入れていないか?
プライバシーポリシー全文をアプリ開発者に渡すより、HTML を表示するほうがずっと簡単なことが多い
記憶では、複数ドメインや URL を許可する WebView を設定するのもかなり大変だった。Android 開発者ではないし、最後に触ったのも数年前だが
鍵管理の話はまだ推測に近く、投稿者は実際に何をするのかテストしたわけではないので、「何なのかはわからないが怖そうなメソッドが 2 つある」程度だ
ブラウザが塞がれているときに CHM ヘルプファイル からインターネットに接続していたのと少し似ている
くそ、年がばれるな
子どものころに Windows の ペアレンタルコントロールアプリ を回避していた方法とまったく同じだ
コンピュータの使用時間は 1 時間しかなく、時間が来ると生産性用途という理由で Microsoft Office アプリ以外は全部閉じられた
あれこれクリックしていたら、どうにかして Outlook 内でブラウザを開き、Miniclip で Flash ゲームを遊べた
デフォルトのウェブブラウザを Terminal に変えてから Word を開き、リンクを作ってクリックした。通常起動した Terminal はほかのアプリの実行が失敗するなどの制限があったが、この方法で開いた Terminal インスタンスは権限が強く、
open /path/to/your/appで挿入したディスク内のゲームなどを実行できた自習監督の先生が来て、Starcraft をやっていいのかと聞いたとき、「先生もご存じのとおり、このコンピュータはかなりロックされています。だから私たちがこのゲームをできるなら、学校が許可したということでしょう」と答えたが、今でもそれが通ったのが信じられない
子どもがこのハックを見つけてブロックされたサイトにアクセスできるなら、それくらいは享受する資格があると思う
似たような回避策が
aboutの ライセンスページ にもあったライセンスへ行くリンクをたどるとブラウザが現れる。車載ヘッドユニットや Peloton バイクのような環境でブラウザを起動するときに便利だ
ファイルシステム内の全ファイル一覧のように見える
Google にバグを報告したこの人の経験が、自分の経験を思い出させる
私: Google Sheets に削除済みコンテンツが第三者に露出するバグがあります
Google: バグではありません。意図した動作です。Issue をクローズします
私: 本当ですか? このアプリケーションを使っていて、私は実際に被害を受けたのですが
Google: 実はバグではありますが、かなり前から知られている問題なのでバグバウンティの対象ではありません。Issue をクローズします
私: Gmail で偽装メールが DKIM 失敗を消して正常に見えるようにできるバグがあります
Google: "Won't fix (Intended Behavior)"
私: 本当に Google は、インターフェース上で偽装メールが正常に見えることを意図しているのですか?
Google: 実は既知の問題です
しかも最初に出た記事では、その脆弱性を中国/ロシアのハッキングと結び付けようとしていました。そういうプロパガンダは Google 自身に返すべきです。Google は米国企業であり、外国でも国内でも誰でも悪用できるようにバックドアを大きく開け放っていました。実際、両方に悪用されていました
Google には本当に問題があります。2019 年以降に何があったのかは分かりませんが、良くありません
私: Google Play Services にバグがあります
Google: バグではありません。意図した動作です。Issue をクローズします
私: ブログにそのバグを載せたところ、メディアで大きく報じられました
Google: どうやら私たちが間違っていたようです! 本当にバグでした。数週間後にまた連絡します
モバイルJavaScript コンソールなんてものがあるのを今日知った
https://eruda.liriliri.io/
別のコンピューターで開発者ツールを開けて、すべての情報が WebSocket で同期される。顧客の機器の問題をデバッグするときに一度使ったことがある
data:text/html,まで使う手間をかけることがあるけれど、これは驚くほど高機能だ両親が銀行の用事をしている間、ロビーで同じようなことをしていた
当時は best viewed in Netscape Navigator タグが宝の山だった。流れもほとんど同じで、そういうタグが出るまで押して、そこから検索エンジンに移っていた
その後、怪しいアドウェアだらけのストリーミングサイトに移動したら、別の動画に切り替えた瞬間に Tesla のコンピューター全体がフリーズして、車をハードリブートしなければならなかった
昔の Windows バージョンを思い出す。F1 を押すと Windows Help 経由でいろいろな実行コマンドをトリガーできた
explorer.exeを右クリックして Run を選ぶ」みたいな感じだ