Googleのもうひとつの秘密のブラウザ
(matan-h.com)- Google Play Services 内の隠しブラウザは Contacts アプリのウェブサイトリンクから開け、Google の保護者による使用制限の一般的な制限と lock-down mode を回避できる
- 回避できる理由は、lock-down mode でも Google Play Services と電話用の Contacts アプリが残っており、Contacts が開く deeplink は保護者によるブロックの対象にならない構造になっているため
https://gds.google.com/gmsdropsは Android の「what’s new」画面につながり、Google ヘルプや Google ページを経由してブラウザのように使える- Android 11+ の screen pinning も、Contacts アプリで
https://podcasts.google.comを開いて Google Podcast のポップアップを表示し、その後デフォルトブラウザへ移動する方法で回避できる - Google は保護者による使用制限の回避と screen pinning 回避の報告を別件として受けたが、screen pinning 回避については intended behavior だと回答し、重複処理も別の報奨プログラムの問題にした
Contacts のリンクで開く Google Play Services ブラウザ
- Google Play Services 内にはリンクからアクセスできる秘密のブラウザがあり、Contacts アプリの連絡先ウェブサイト欄から開ける
- 実行手順は、Contacts アプリで連絡先を編集または新規作成し、「Website」欄に
https://gds.google.com/gmsdropsを入力して保存し、その後リンクを開くというもの - このリンクは Android の「what’s new」画面につながる deeplink
- 「Show me」と「Learn more」をたどるとブラウザ画面に入れる
- その後ハンバーガーメニューで「Google Help」を押し、さらにメニューから「Google」を選ぶと Google ページへ移動できる
- このブラウザは Google アカウントにログインしている場合としていない場合がある
- ここで Google からログアウトしても Chrome ブラウザには影響しない
- lock-down mode では、Google は Android ランチャーやシステムの一部を含むアプリをロックするが、ポップアップ表示や制限適用に使われる Google Play Services と電話用 Contacts アプリ は残す
- 保護者による使用制限は deeplink のオープンを許可しないが、連絡先のウェブサイト欄をクリックした場合は Contacts アプリがリンクを開くためブロックされない
Android screen pinning の回避と Google の回答
- Android screen pinning は Android 11+ で特定のアプリに画面を固定し、許可なく他のアプリへ移動できないようにする機能
- 同じ
gmsdropsリンクは、screen pinning 状態では新しいアプリを開く方式のため使えない - その代わり Google Podcast の deeplink はアプリ全体ではなくポップアップウィンドウとして開く
- Contacts アプリのウェブサイト欄に
https://podcasts.google.comを入れ、アプリが固定された状態でリンクを開くと Google Podcast のポップアップウィンドウが表示される - Google アカウントのアイコンから「Content policies」を押すとデフォルトブラウザへ移動できる
- その後 Google Help と Google メニューを経由して Google ページへ移動できる
- Contacts アプリのウェブサイト欄に
- Google には2件が別々に報告された
- 保護者による使用制限の回避事例
- Android screen pinning 回避事例
- Google は保護者による使用制限の回避案件を screen pinning 回避案件に統合し、その後は重複事例の処理が混乱した状態になった
- screen pinning 回避に対する Google の回答は「Android screen pinning bypassing is the intended behavior」だった
- 重複処理については「potentially another issue」の重複としてクローズされ、別の報奨プログラムの話なので自分たちの問題ではないという趣旨の回答があった
1件のコメント
Hacker News のコメント
セキュリティ脆弱性の報告を受け付けるチームなら、「それは別の社内チームの担当なのでそちらに聞いてください」と言うべきではない。
実際、組織内のほぼ誰であっても、それらしい脆弱性報告を受け取ったなら、適切な担当者に届くようにすべきで、ただ受け流してよいものではない。
それでも逆に見ると、外部顧客であれ社内のステークホルダーであれ、サポート業務は爆弾回しのようなもので、他の人に回せなかった最初の人が火傷を負う。
実際の権限や責任が誰にあるかにかかわらず、みんなが顧客の不満解決を引き受けてくれればよいのだが、現実には多くの人が コペンハーゲン解釈的な倫理 のように振る舞う。
責任者に伝えることすら危険で、それ以上関わると、実際の関連性とは無関係に問題に巻き込まれて責任を負わされる。
これはプリンシパル=エージェント問題と呼んでもいいし、「依頼者が自分の依頼に応じてくれる相手を狩る世界で生き残ること」と呼んでもいい。
以前は業務に少しでも関係する社内依頼はすべて処理しようとしていたが、直属のマネージャーから、1分を超える手助けにはプロジェクト ID や課金コードを求めるように言われた。そうしないと、本来お金をもらってやるべき仕事ができなくなるから、という理由だった。
「Google 内の別部署の連絡先は知らない」「Google の別チームの誰のメールアドレスも知らない」などと言うのだから、一体何をしているのかと思う。
OS に追加した機能の 設計上の欠陥 であるのは確かだが、大規模な調査が必ず必要な案件かどうかは別問題だ。
「我々は見る気もない」というように言ったわけではなさそうだ。
自分の会社でもどうすればよいのか見当がつかない。
子どもの頃、銀行のような機関のロビーには、その会社の Web サイトだけを開ける特殊なブラウザが入ったコンピュータ端末があり、当時は Best Viewed In バッジ もよく見かけた。
親の用事について行くと、そういうコンピュータを見つけて Help ページのようなところをクリックし、そのバッジを探した。すると単一サイトブラウザの制限を回避して、netscape.com のような場所へ出られた。
そこで検索エンジンへのリンクを見つけ、好きなところを見て回ることができた。
そこで CTRL+ALT+DEL でタスクマネージャーを開き、デモソフトウェアを終了させていた。
もっとしつこいデモはすぐ再起動するので、msconfig を開いてスタートアップから外し、再起動した。
そばで見ていた人たちは驚いて、自分の PC でも同じようにしてほしいと頼んできた。そうすると彼らもマインスイーパーやピンボールを試せた。
今では素人っぽく聞こえるが、90年代半ばの CTRL+ALT+DEL は、熟練者だけが知る一種の パワーツール だった。
MS Word で URL を開く機能を選び、検索エンジンや目的のサイトを入力するとブラウザが開き、Web フィルタ を回避できた。
そのサーバーはたいてい motd を more で表示した後、lynx のようなソフトウェアに渡していたが、restricted mode を使っていなかったので、
!shと入力してシェルを開けた。いい時代だった。
Web でメールを開けたので、検索エンジンへのリンクを自分にメールで送り、メール内で右クリックして同じフレームで開いた。
その後は検索結果で見つけられる場所ならどこへでも行けた。
2000年代の高校で制限を回避していた経験はあるので、通りすがりの誰かが詳しく説明してくれるとうれしい。
Google のペアレンタルコントロール機能には残念な点があまりにも多い
Play Store アプリの無効化を求める声はずっと前からあったが、いまだに adb なしでは不可能で、adb は別の問題を生むため良い解決策ではない
実際の子どもたちがペアレンタルコントロール機能をテストしていないように感じる
しばらくの間、YouTube に時間制限をかけても Play Store を開き、スクリーンショット一覧に動画があるアプリへ行き、そこから YouTube に移動すると非常に簡単に回避できた
息子が自分で見つけて見せてくれた
この問題をまとめた5ページの文書を書いておいたが、送る相手がいない
最大の不満は、幼児ではない大きめの子どもが2人いて、複数の Google デバイス、つまりスマートフォン、タブレット、Google TV、Google アカウントでログインした PC が同時にある場合に起きる
Google はペアレンタルコントロールを、「ビリーのスマホを親が物理的に渡し、終わったら返してもらう」という監督状況として想定しているようだ
根本的にアカウント単位ではなくデバイス単位なので面倒で、回避もしやすい
たとえばジルが家の中にある3台の Google TV に自分のアカウントでアクセスできるなら、Family Link は各テレビで1日に何時間許可するかを別々に設定させる
しかしジルにとってテレビは単なるテレビなので、ひとりで家にいれば、1台目のテレビの割り当てを使い切って次のテレビへ移るだけだ
根拠はないが、別々のプロダクトチームが実際には密に協力していないか、むしろ協力しないように報酬を受けているように見えるし、こうしたチームは Google 内で行き止まりのチームなのかもしれない
Family Link チームに来るプロダクト担当者やエンジニアリング担当者には実際の子どもがいないか、いても小さすぎるか、あるとしても幼い子どもが1人程度なのではないかと思う
アクセシビリティ権限を得た瞬間、ユーザーのデバイスを完全に制御できる
権限を分割して、より細かい制御 API を公開することもできたはずだが、完全に視覚障害のあるユーザーがアクセシビリティアプリをすべての操作のインターフェースとして使わなければならない、非常に極端なケースを中心に設計したように見える
その結果、その API の機能を一つだけ使いたい場合でも、アプリを完全に信頼し、デバイス上で何でもできる白紙委任状を与えなければならない
結局、「われわれが意図した利用シナリオはこれだけで、他の用途には妥協しない」という理由だけで、プラットフォームのセキュリティに巨大な穴が生まれている
同年代の集団から完全に隔離しようとして地下室に閉じ込めるのでない限り、少しでも興味のある子どもに技術的に勝つことはほぼできない
この機能はやわらかな境界線として使うと最もよく機能する。回避すれば、それが明白で曖昧さのない不服従になる、という程度だ
結局これはペアレンタルコントロールであって、NSA を防ぐセキュリティではないし、技術的に完璧にしようとすることは、全員にとってかえって悪いことかもしれない
消費者により安全だと感じさせるために入った機能だが、実際に使おうとするとすぐに諦めることになる
小さな例として、iOS の Screen Time では Web サイトを許可リストに制限でき、一見便利そうだが、そうすると多くのアプリのログイン画面のようなものが大量に壊れる
何を直すにはどの URL を許可すべきかという手がかりも与えない
現代の技術を使っていると、「これは複雑すぎて壊れすぎているので、実際のユーザーが多いはずがない」と思うことがあるが、ペアレンタルコントロール機能はまさにそんな感じだ
結局、親の代用品にすぎない
子どもに関心を持って何をしているか知っているか、そうでないかのどちらかだ
子どもが Web 上の何かに弱いと思うなら、そもそもスマートフォンを与えない方が正しい可能性が高い
子どもが十分に理解できる年齢なら、必要なのはソフトウェアによるペアレンタルコントロールではなく親であり、良い親なら子どものアプリにペアレンタルコントロール機能は必要ない
ペアレンタルコントロール機能は他の出所からアプリをインストールすることも阻止するが、Play Store アプリよりも F-Droid アプリの方を好む
最後に、この機能は、私たちがどこかのソフトウェア企業に制御され、「危険から守られている」という幻想を教え、訓練し、強化するものだ
これは Windows 98 のログイン画面回避のようなハッキング技だ
https://i.imgur.com/BULPmCI.gif
正直、Google がシステム設計で Microsoft Windows 98 並みにひどくなるとは思っていなかった
一般ユーザーでも手順をなぞればできる
セキュリティのかなりの部分は、考えるべきことを減らすために攻撃対象領域を最小化することのように思える
ログインダイアログでツールチップを印刷できる必要が一体どこにあるのかと思う
印刷が入ってくる瞬間、安全でないあらゆるサードパーティ要素が一緒に入ってくる
ツールチップやヘルプの印刷を許可するにしても、そうした機能が無効になるセキュリティコンテキストを用意すべきだった
PDF も似たようなもので、3D モデルやスクリプティングのような任意機能の99%はセキュリティエクスプロイトに使われてきた
基本はシンプルにして、そうした機能は避けた方がいい
この古典的なネタ画像を思い出す: https://imgur.com/BULPmCI?r
Craigslist で中古で買った Pixel 2 の FRP 回避に、原文と似た手法を使ったことがある
子どもの頃、退屈でこの画面を何時間も眺めていた末に、ついに突破して初めての「手応え」を味わった瞬間が、自分の人生全体の方向を決めたのかもしれないとも思った
自分にとって初めての「ハッキング」や、コンピューターシステムの内部をいじっていた経験を思い出す。それがITとエンジニアリングのキャリアにつながった
Halo PCを違法コピーしようとしてトロイの木馬で家族のコンピューターを壊してしまい、父が帰宅する前に直す方法を見つけなければならなかった
親が私たちの個人用コンピューターに突然NetNannyのようなペアレンタルコントロールを入れたときも、回避しなければならなかった。すでに何年もインターネットを使っていた後のことで、おそらく上の雑な違法コピーのせいでComcastから手紙が来たのかもしれない
変更の痕跡を残さずネットブックを再び使える状態に戻す過程で、Linux Live CDとLinuxに触れた
明日のハッカーたちも今なおそうした教育を受けていると聞くと、うれしい
任意のtelnet接続を作れるリンクの先のリンクの先のリンクを見つけて、無料ダイヤルアップサービスを自分たちのサービスだけに使わせようとする制限を回避しようとしていた
たとえばtamu.eduの公開サーバーでNethackを遊ぼうとしていたのだが、正確なドメイン名はもう覚えていない
古典的だった
関連する過去記事もある
Google has a secret browser hidden inside the settings - https://news.ycombinator.com/item?id=36478206 - 2023年6月、コメント312件
Google Play Servicesは自分自身に新しい権限を付与することもできると読んだ[1]
これはどうやって可能なのか? root権限があるのか?
[1]https://developers.google.com/android/guides/permissions
ただし、そうしたアプリがアクセスできる権限のリストは非常に広く、開発者が十分多く定義しておけば、実質的にrootのように使える
実際の
rootユーザーではないが盲目的に信頼されており、ユーザー確認なしにアプリのインストールなどを実行できるGMSに関する別のブログ記事で扱われていたように、JSブリッジは特権スコープで実行され得る
Androidをインストールする際にGoogleのプライバシーポリシーに同意することで、これにも同意したことになる
たとえばGrapheneOSで可能
すでにユーザーの許可なしにアプリをインストールしたり削除したりもできる
過去にこれで問題になったこともあるが、十分な事態には至らなかった
サンドボックス化されたPlay Servicesを使うGrapheneOSは影響を受けていないようだ
Phoneアプリは連絡先のWeb URLを見たり開いたりできないようで、Contactsアプリも固定モードで記事に出ている2つのURLを開くのに失敗する
2023年の以前の議論が気になるならこちらにある。コメント312件
https://news.ycombinator.com/item?id=36478206