Pixnapping攻撃、Google Authenticatorの2FAコードを30秒未満で乗っ取り

Pixnapping攻撃とは

セキュリティ研究者たちは、Google Authenticatorやその他の機密性の高いモバイルアプリケーションから二段階認証(2FA)コードを30秒未満で抽出できる、新たな高度な攻撃手法「Pixnapping」を発表しました。

Pixnappingは、Androidのグラフィックレンダリングシステムの基本的な機能を悪用し、被害者アプリケーションからピクセルデータを盗むサイドチャネル攻撃です。従来のブラウザベースのピクセル窃取攻撃がiframeにウェブサイトを埋め込むことに依存するのとは異なり、この新技術はAndroidインテントを使用して被害者アプリケーションを起動し、その上に半透明の攻撃者制御アクティビティを重ねます。

CVE-2025-48561として追跡されているこの脆弱性は、現代のブラウザセキュリティ保護を回避し、複数のデバイスメーカーのAndroidユーザーを脅かす、ピクセル窃取攻撃の重大な進化を示しています。この攻撃は、AndroidのSurfaceFlingerサービスが複数のウィンドウを合成する方法を悪用し、悪意のあるアプリが慎重に調整されたぼかし操作とタイミング測定を通じて、被害者アプリケーションから個々のピクセルを分離、拡大、抽出することを可能にします。

このフレームワークは主に以下の3つのステップで動作します。

  • 攻撃者アプリは、被害者アプリケーションからエクスポートされたアクティビティを開くためにAndroidインテントを送信し、そのピクセルをレンダリングパイプラインに投入します。
  • 攻撃者は、個々の被害者ピクセルに対してマスキング、拡大、エンコーディング技術を使用する半透明のアクティビティのスタックを作成します。
  • 攻撃は、グラフィックデータ圧縮などのパターン依存型GPU最適化によって引き起こされるレンダリング時間の差を測定し、ピクセルカラー情報を漏洩させます。

研究者たちは、Google Pixel 6、7、8、9デバイス、およびSamsung Galaxy S25スマートフォンで攻撃を成功させ、デバイスに応じて0.15〜2.11ピクセル/秒の漏洩率を達成しました。

Google Authenticatorへの影響

Pixnappingの最も憂慮すべきデモンストレーションは、Google Authenticatorから有効期限が切れる前に一時的な2FAコードを盗むことです。研究者たちは、文字全体を復元するのではなく、各桁から慎重に選択された4つのピクセルを漏洩させる最適化されたOCRスタイルの技術を使用することで、重要な30秒のリフレッシュウィンドウ内で完全な6桁のコードを復元するのに53〜73%の成功率を達成しました。

Google Pixelデバイスでは、平均抽出時間は14.3秒から25.8秒の範囲で、Pixel 6が平均14.3秒で最速でした。この攻撃は特別なAndroid権限を必要とせず、わずかに透明なレイヤーの下に悪意のあるアクティビティを隠すことで、ステルスに動作します。ユーザーが攻撃者アプリをインストールして起動すると、それ以上のユーザー操作は不要です。この技術は、Google Authenticatorのインターフェースにおける可変幅フォントと間隔に動的に適応し、利用可能な時間枠を最大化するために新しい30秒間隔の開始を待ってから抽出プロセスを開始します。

広範なデータへの脅威

Google Authenticatorへの攻撃は最も時間的制約のあるデモンストレーションですが、Pixnappingははるかに広範な機密データを脅かします。研究者たちは、Googleマップのタイムライン(タイムスタンプと住所を含む完全な位置情報履歴)、スクリーンセキュリティが有効なSignalメッセージ、GoogleメッセージからのSMS会話、Venmoの口座残高と取引詳細、Gmailの受信トレイの内容(送信者情報とメッセージプレビューを含む)、Googleアカウントの個人情報(名前、住所、メールアドレスなど)から情報を抽出することに成功しました。

この攻撃は、従来のピクセル窃取技術を大幅に軽減してきたブラウザベースの保護を根本的に回避します。上位100万のウェブサイトの調査では、X-Frame-OptionsヘッダーとSameSiteクッキーポリシーにより、従来のiframeベースの攻撃に対して脆弱なのはわずか0.2%でした。対照的に、Chromeブラウザアプリを通じて開かれた場合は100%のウェブサイトが脆弱であり、Chromeカスタムタブを通じてアクセスされた場合は99.3%が依然としてリスクにさらされています。さらに、研究者たちは、暗黙的インテントを通じてターゲットにできる238,036のアクティビティが96,783のAndroidアプリに存在し、アプリケーションあたり平均2つのエクスポートされたアクティビティがあることを特定しました。

対策と提言

研究者たちは2025年2月24日にGoogleに調査結果を開示し、高 severityの評価とCVEの割り当てを受けました。Googleは2025年9月2日に最初のパッチをリリースしましたが、研究者たちはその後回避策を発見し、この緩和策がSamsungデバイスを保護しないことを確認しました。9月にはGoogleとSamsungの両方にフォローアップの開示が行われ、包括的な緩和策に関する調整は2025年10月13日現在も進行中です。

研究チームは、フレームベースの攻撃を無力化したframe-ancestors Content Security Policyディレクティブと同様に、攻撃者が被害者ピクセル上で計算を行うのを防ぐことで、攻撃フレームワークの第二の条件をターゲットにすることを推奨しています。提案されている緩和策の一つは、開発者がアクティビティ上での透明なレイヤーを明示的な許可リストに制限できるようにすることで、アプリがデフォルトで脆弱になるのではなく、オプトインすることを強制することです。このアプローチは、Androidアプリレイヤーの協調的なマルチアクター設計を維持しつつ、機密性の高いアプリケーションをピクセル抽出から保護するでしょう。


元記事: https://gbhackers.com/google-authenticator-2fa/