ホワイトハウスの公式アプリをデコンパイルしたら、GDPR回避・GPS追跡・個人のGitHubからコード読み込みが見つかった
セキュリティリサーチャーがホワイトハウスの公式Androidアプリをデコンパイル。GDPR同意バナーとペイウォールを強制削除するJavaScript注入、4.5分ごとのGPS追跡パイプライン、個人のGitHub Pagesからのコード読み込み、開発用残骸など衝撃の内容が判明。
「ニュースアプリ」の中身がやばい
あるセキュリティリサーチャーが、ホワイトハウスが新しくリリースしたAndroidアプリをデコンパイルした。結果は予想の斜め上だった。
アプリ自体はReact Native + Expo製で、バックエンドはWordPress。開発元は「forty-five-press」という会社。ニュース、ライブ配信、フォトギャラリー、政策ページなどを表示するコンテンツポータルだ。ハードコードされた文字列には「Greatest President Ever!」やICEの通報フォームへのリンクも含まれている。
ここまでは「まあ、そういうアプリね」で済む。問題はその先だ。
GDPR同意バナーとペイウォールを強制的に消すコード
アプリ内ブラウザでWebページを開くたびに、JavaScriptが自動注入される。何をするかというと——
Cookie同意バナー、GDPRダイアログ、OneTrustポップアップ、ログインウォール、サインアップウォール、ペイウォールをすべて非表示にする。さらにMutationObserverで動的に追加される同意要素も継続的に削除する。
アメリカ合衆国の公式政府アプリが、第三者のウェブサイトにCSSとJavaScriptを注入して、プライバシー同意ダイアログとペイウォールを剥がしている。
4.5分ごとのGPS追跡パイプライン
Expoの設定には「withNoLocation」というプラグインがある。位置情報を削除するはずのプラグインだ。しかし、OneSignal SDKの位置追跡コードはAPKに完全にコンパイルされたままだった。
フォアグラウンドで4.5分ごと、バックグラウンドで9.5分ごとにGPS座標を取得し、緯度・経度・精度・タイムスタンプをOneSignalのサーバーに送信するパイプラインが存在する。
追跡は「現時点で自動起動はしない」が、setLocationShared(true)を1回呼ぶだけで全パイプラインが起動する状態だ。そしてそのAPIはアプリのJSバンドル内で参照されている。
個人のGitHub Pagesからコードを読み込んでいる
YouTube埋め込みにはreact-native-youtube-iframeライブラリを使っているが、このライブラリは個人のGitHub PagesサイトからプレーヤーHTMLを読み込む。
つまり、そのGitHubアカウントが乗っ取られれば、ホワイトハウスアプリの全ユーザーに任意のコードを実行させることができる。政府アプリが見知らぬ人のGitHub Pagesからコードを読み込んでいる。
開発用の残骸がプロダクションビルドに
localhostのURL、開発者のローカルIP(10.4.4.109)、Expo開発クライアント、Compose PreviewActivity——すべてリリースビルドに含まれている。証明書ピンニングもない。
違法か?おそらく違う。政府アプリとして期待されるレベルか?それもおそらく違う。
ソース: Thereallo
この記事が役に立ったら共有してください