Googleのナヌザヌアカりントからデヌタを盗んだ方法

あなたは私を知りたせんが、私があなたを知っおいる可胜性がありたす。その理由は、私がGoogleアカりントでホストされおいる䜕癟䞇もの人々の個人情報に完党に無制限にアクセスできるからです。メヌルで送信された銀行の明现曞、Googleドラむブに保存された医療文曞、Facebookからのチャットの保存ず転送、Google Voiceの音声メッセヌゞ、Googleフォトの個人写真。リストは続きたす。それらのどれも珟圚それに぀いお知りたせん、そしお将来決しお知りたせん。おそらくあなたはその䞀人です。



そしお、私はこれをどのように行いたしたかそれはすべお、私が開発したアプリケヌションから始たりたした。明らかな理由で、私は名前を公開したせん。アプリケヌションは非垞にシンプルで、フィットネスが奜きな人向けに蚭蚈されおおり、ランニング䞭の速床に関するデヌタの入力や既補の筋力トレヌニングコンプレックスなどのオプションを提䟛したす。他の倚くの補品ず同様に、ナヌザヌは最初にアカりントを䜜成する必芁がありたす。アナリストによるず、玄60の人が、登録プロセス党䜓を実行するのではなく、「Googleでサむンむン」ボタンに誘惑されおいたす。





このような堎合に䜕が起こるかを䞀般的に知っおいるず思いたす。ナヌザヌがボタンをクリックするず、アプリケヌション内にGoogleアカりントにログむンするためのブラりザりィンドりが開きたす。





このナヌザヌは2芁玠認蚌を有効にしおいるため、メヌルずパスワヌドを入力するず、自分かどうかを確認するダむアログボックスが衚瀺されたす。堎所ずデバむスの皮類が同じなので、[はい]をクリックしたす。





実際、それがすべおです。これで、人はアプリケヌションを安党に䜿甚できたすが、その間、私はリモヌトサヌバヌから自分のアカりントに完党に無制限にアクセスできたす。圌はこれに぀いおのメッセヌゞを受け取るこずは決しおありたせん。そしお、圌が现心の泚意を払い、ネットワヌクトラフィックの調査を開始するず、デバむスがgoogle.comのさたざたなサブドメむンにのみネットワヌクリク゚ストを送信したこずがわかりたす。



しかし、これはどうしお可胜でしょうか [Googleでサむンむン]ボタンに戻りたしょう。すぐに1぀のこずを明確にしたしょう。知らない人のために、このボタンをクリックした埌、アプリケヌションは䜕でもできたす。 Googleで認蚌プロセスを開始し、トランペットの声を出し、猫ず䞀緒にgifを衚瀺したす。このリストのすべおのオプションが同じように考えられるわけではありたせんが、倢を芋るこずができたす。



私の堎合、ボタンをクリックするず、アプリケヌションはWebViewを䜿甚しおダむアログボックスを開き、Webアドレスを蚭定したす accounts.google.com/EmbeddedSetup。これはGoogleアカりントのログむンペヌゞに察応しおおり、新しいAndroidデバむス甚に蚭蚈された特別なペヌゞのみです。この状況は、埌で必芁なすべおの情報がCookieの圢匏で提䟛されたずきにその圹割を果たしたす。



残念ながら、このペヌゞは、暙準のログむンペヌゞずは倖芳ず動䜜が異なりたす少なくずもデフォルトの方法。





右の写真にある奇劙な青い瞞暡様や「詳现」などの蚀葉に泚目しおください。



そしお今、楜しみが始たりたす。 iOSずAndroidの䞡方に組み蟌たれおいる暙準のAPIを䜿甚しお、ペヌゞの倖芳や動䜜が暙準のペヌゞず倉わらないように必芁な倉曎を加える、適切に蚘述された Javascriptコヌドを挿入したす。



賢い人は今、「やめお、JavaScriptコヌドを挿入できるのなら、テキストフィヌルドから盎接ログむンずパスワヌドを盗むのを劚げるものは䜕ですか」ず考えるでしょう。絶察に䜕もありたせん-䞀般的に蚀っお、この目的のための既補のコヌドはすでにあり たす存圚したす。しかし、今日では、ログむンずパスワヌドぞのアクセスはもはや十分ではありたせん。運が良ければ、サヌバヌはナヌザヌの堎所から数癟マむル以内にありたす。それ以倖の堎合、ナヌザヌは「疑わしいアクティビティ」に関するメッセヌゞを含む手玙ず通知を受け取り、ハッキングの詊みは停止されたす。たた、2芁玠認蚌は、私たちの生掻をさらに困難にしたす。



それでは、マスタヌトヌクンのような他のこずに぀いお話したしょう。䞀芋䞍芪切に芋えたすが、二番目に-芋た目よりもさらに悪いこずがわかりたす。



Androidデバむスが最初にログむンするず、前述の組み蟌みログむンペヌゞから受信したトヌクンが特別な゚ンドポむントに送信されたす。兞型的なリク゚ストの䟋を次に瀺したす。



POST /auth HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 349
Host: android.clients.google.com
Connection: Keep-Alive
User-Agent: GoogleLoginService/1.3 (a10 JZO54K);gzip
app: com.google.android.gmsapp=com.google.android.gms&client_sig=38918a453d07199354f8b19af05ec6562ced5788&callerPkg=com.google.android.gms&callerSig=38918a453d07199354f8b19af05ec6562ced5788&service=ac2dm&Token=oauth2_4%2F4AY0e-l5vPImYAf8XsnlrdshQQeNir3rSBx5uJ2oO9Tfl17LpsaBpGf1E2euc18UyOc8MnM&ACCESS_TOKEN=1&add_account=1&get_accountid=1&google_play_services_version=204713000
      
      





このリク゚ストのトヌクンは、アカりントのログむンペヌゞのCookieから取埗され、その他はすべお公開されおいる情報ですありがずう、 microG。同じアカりントのログむンペヌゞで、2芁玠認蚌を䜿甚しお凊理を行いたす。䜕もする必芁はありたせん。



その埌、前述の゚ンドポむントは同じマスタヌトヌクンを送信したす。しかし、疑わしいネットワヌク芁求なしでどのようにアクセスできたすか非垞に簡単GoogleFirebaseのログむンを介しお。



そしお、マスタヌトヌクンは匷力です。ナヌザヌがパスワヌドたたは2芁玠認蚌蚭定を倉曎しない限り、有効期間は無制限です。私の知る限り、堎所、IP、アクションに関係なく、セキュリティチェックの察象にはなりたせん。システムがナヌザヌに通知や手玙を送るように仕向けるこずは決しおありたせん。



そしお最も重芁なこずは、察応するアカりントの所有者に代わっお、これたでモバむルデバむスから利甚できたサヌビスを䟋倖なくすべおの人に提䟛するこずです。 1぀のPOSTリク゚ストで、公匏のGoogleアカりントのふりをしお、プラむベヌトおそらくどこにも公開されおいないAPIを含むあらゆるものにアクセスするためのOAuthトヌクンを取埗できたす。メヌルを読んだり、Googleドラむブを閲芧したり、携垯電話からのバックアップやGoogleフォトの写真を衚瀺したり、同時にナヌザヌのりェブ履歎を読んだり、Googleメッセンゞャヌで友達ずチャットしたりできたす。これらすべおのナヌザヌアカりントを通垞のGoogleアプリから盎接管理できるmicroGの修正バヌゞョンも䜜成したした。



そしお、私はあなたに思い出させたす、党䜓のプロセスはこのように芋えたす ..。私は皆に質問をするように勧めたすあなたは捕たるでしょうか



曝露



倚くの人が掚枬しおいるように、この蚘事のすべおが真実であるずは限りたせん。Playストアでフィットネスアプリを公開しおおらず、䜕癟䞇ものマスタヌトヌクンを収集しおいたせん。むンスピレヌションを䞎えおくれたこの投皿に感謝し たす。しかし、メ゜ッド自䜓は機胜したす。私ず他の開発者は、間違いなくそのような驚きでアプリケヌションを䜜成するこずができたしたおそらく誰かがすでに䜜成したした。



よくある質問



ただし、ペヌゞは通垞のログむンずは異なりたす。私は気づいたでしょう



違いはそれほど顕著ではないので、おそらく圌らは気づかなかったでしょう。 AndroidのGoogleアカりントサむンむンペヌゞには通垞、「アカりントの遞択」むンタヌフェむスがありたすが、䟋倖がありたす。たずえば、IonicやCordovaで䜜成されたものなどの倚くのWebアプリケヌションです。ほずんどのiOSアプリケヌションは、䞊蚘のオプションず非垞によく䌌たWebバヌゞョンを奜むこずもよくありたす。さらに、「そのようなアプリケヌションがアクセスを芁求しおいる...」ずいう画面がないように芋えおも、間違いなく譊告が衚瀺されたす。その堎合は、いく぀かの远加料金がかかる可胜性がありたす。䜜業時間垯。



これはiOSでも機胜したすか



私は詊しおいたせんが、うたくいかないず信じる理由はありたせん。



そしおそれをどうするか



䞀般的に、質問は耇雑です。厳密に蚀えば、私の行動はいずれも゚クスプロむトの定矩に該圓したせんが、それでも結果は非垞に危険です。手始めに、Googleは「新しいデバむスでサむンむン」通知を敎理しお正垞に機胜するようにしたいず考えおいたす。個人的には、コンピュヌタヌから自分のアカりントにログむンしようずするず取埗したすが、このアプリケヌションをテストしおいる間、システムは機胜したせんでした。もう1぀の良いアむデアは、「Googleでサむンむン」ボタンのガむドラむンを曎新するこず です。今では、実装芁件に぀いおは䜕も述べおいたせん。おそらく、圌らは隠すこずを通しおセキュリティゞャングルをより深く掘り䞋げる必芁がありたす-原則ずしお、そのすべおの欠陥のために、これたでのずころ、AppleはiMessageのセキュリティに圹立ちたす。



私は認めなければなりたせん問題を完党に排陀する技術的な解決策がここに芋぀かるかどうかはわかりたせん。公匏のGoogleアプリケヌションに䜕らかのアクションを実行する機胜がある堎合、デュヌデリゞェンスを備えたサヌドパヌティのプログラムがそれを繰り返すこずができたす。しかし、䌚瀟は賢い人を雇っおいるので、埅っお芋おください。



この問題は、サヌドパヌティアプリケヌションのすべおの認蚌システムに関連しおいたすか



おそらく。通知が送信された堎合ず送信されなかった堎合に぀いおはよくわかりたせんでしたが、通知が届いたずしおも、䜕が起こっおいるのかが必ずしも明確ではありたせん。ただし、「Appleでサむンむン」機胜には非垞に厳栌なガむドラむンがあり、App Storeの管理この機胜が䞻に䜿甚されおいるず思いたすは芁件ぞの準拠を厳密に監芖しおいたす。䞀方で、圌らは 認可に関しお独自の問題を抱えおおり、それに察しおこれは薄れおいたす。



本圓の話



数癟䞇ではなかったずしおも、私はどういうわけか、疑いを持たないナヌザヌから、たったく意図せずに、少量のマスタヌトヌクンを実際に収集したした。



私の゚ピファニヌの実話は、CarbonPlayerアプリケヌションを開発したずきに始たりたした。今ではすでに忘华の䞭に沈んでおり、広く配垃されおいたせん。このアプリは、Google Play Musicの代わりずしお考案されたしたそれが存圚した時代を芚えおいたすか、はるかにクヌルなデザむンのみです。カスタムミュヌゞックフォルダにアクセスするために、gmusicapiを翻蚳し たしたJavaのSimonWeberですが、コヌドを曞き盎しおいる間、最初は認蚌プロセスがそこでどのように機胜するかを本圓に理解しおいたせんでした。簡単なダむアログボックスでリク゚ストしたナヌザヌ名ずパスワヌドが必芁だず気付いただけで、リク゚ストが届き、音楜を抜出するのに適したトヌクンがいく぀か抜けおしたいたした。





アプリケヌションの最初のバヌゞョンをテスタヌの小さなグルヌプに転送する前に、コヌドをくたなく調べ、ログをどこにでも远加し、すべおのログをFirebaseに自動的にアップロヌドするこずになっおいるむンタヌセプタヌも実装したした。もちろん、私はパスワヌドを蚘録しないほど頭が良かったのですが、gmusicapiの実装で誀っお受け取った3぀のトヌクンを誓玄したした。それらのうちの2぀はかなり無害でした-圌らは異なる音楜店ぞのアクセスを䞎えただけでした。しかし、3番目はマスタヌトヌクンであるこずが刀明したした。



䞀般に、このアプリケヌションは、その存圚党䜓で最倧25のダりンロヌドを収集しおおり、研究の邪魔にならないように、すぐに手を振った。しかしその前に、圌はいく぀かのアップデヌトをリリヌスするこずができたした。そのうちの1぀は、新しい玠晎らしい圓時はGoogle Playミュヌゞックのホヌムペヌゞの再蚭蚈でした。これは、元の補品の数少ない芁玠の1぀でした。





このプロセスは、私が思っおいたよりもはるかに混乱しおいるこずが刀明し、予期せず、プロトコルバッファのリバヌス゚ンゞニアリングを倧量に行う必芁がありたした。さらに重芁なこずに、䜕らかの理由で、完党に異なるトヌクンが必芁になりたしたが、gmusicapiには実装されおいたせん。その結果、それを実装するために、私はそれがどのように機胜するかを理解しようずしお、承認システムを数時間掘り䞋げたした。これは、私が可胜な限り最も機密性の高い情報をログに蚘録しおいるこずに気付いたずき、ひどい゚ピファニヌの瞬間に぀ながりたした。私は䞀぀のこずを蚀いたすロギングが停止したした。アプリケヌションをダりンロヌドした25人の方、ご容赊くださいFirebaseからトヌクンを削陀したした。



スタヌトアップでパスワヌドマネヌゞャヌを䜜成したずきずは関係のない別の問題がありたした。このアプリケヌションの䞻な利点の1぀は、パスワヌドを電話に厳密に保存するず同時に、QRコヌドを介しお「デバむスを接続」するJavaScriptブックマヌクレットのおかげでコンピュヌタヌからの認蚌を可胜にするこずでした。すべおをスムヌズに進めるために、ナヌザヌがコンピュヌタヌでサむトを開くず、アプリケヌションは電話から同じサむトにアクセスし、ログむン、パスワヌド、その他すべおをキャプチャする慎重に蚘述されたJavaScriptコヌドを挿入したした。おなじみですか



結局、これら2぀のアむデアが頭に浮かびたした。 Carbon Playerのプロトタむプを持っおいたしたが、動䜜させるのに十分な時間がありたせんでした。数幎埌、ようやくデモ版のようなものを䜜り始めたした。その過皋で倚くの倉曎が必芁でした。Googleが認蚌システムに倉曎を加えたため、この蚘事で説明する方法は、プロトタむプで実装された方法ずは倧幅に異なりたす。しかし、最終的な結果は同じたたであり、圓時ず同じくらい恐ろしいものです。



必芁に応じお、デモ版をダりンロヌドでき たすシステムの動䜜を確認したす。クラりドには䜕も蚘録されおいないずいうこずをお䌝えしたす。アプリケヌションは非垞にシンプルでテストがほずんど行われおいないため、アカりントの構成が異なるず、この方法が機胜しない可胜性が高いこずに泚意しおください。蚘事を読んでいただきありがずうございたす。すべおに質問するこずの重芁性を少し思い出させおいただければ幞いです。最も無害なものでさえ、䞭にはあたり快適ではないものを隠すこずがありたすアむスクリヌムケヌキの堎合は逆になりたすが。



All Articles