世界を動かす技術を、日本語で。

ピクスナッピング攻撃

概要

  • Pixnapping は、Androidアプリやウェブサイトの画面情報を盗み出す新たな攻撃手法
  • 主要なAndroidデバイス (Google PixelやSamsung Galaxy)で実証済み
  • 権限不要 で2FAコードやチャット内容など可視情報を窃取可能
  • Google Authenticator 等の機密アプリも30秒未満で攻撃可能
  • CVE-2025-48561 として脆弱性登録済み、対策は進行中

Pixnapping攻撃の概要

  • Pixnapping は悪意のあるAndroidアプリが他アプリやウェブサイトの画面情報を密かに盗み出す攻撃手法
  • Android API および GPU.zip というハードウェアサイドチャネルを悪用
  • Google Pixel 6~9、Samsung Galaxy S25 など主要端末で攻撃実証
  • Gmail、Google Accounts、Signal、Google Authenticator、Venmo、Google Maps など幅広いアプリ・サービスが被害対象
  • Google Authenticator の2FAコードもユーザーに気づかれず30秒以内に窃取可能

影響範囲と要件

  • Android 13~16 (ビルドBP3A.250905.014まで)の端末で攻撃確認
  • 他ベンダー端末 も攻撃原理上、影響を受ける可能性大
  • アプリ権限不要 で攻撃可能(マニフェストに権限記載不要)

窃取される情報

  • 画面上に表示される全ての情報 が窃取対象
    • チャットメッセージ
    • 2FAコード
    • メール本文 など
  • 画面に表示されない情報 (例:非表示の秘密鍵)は窃取不可

攻撃手順

  • ターゲットアプリ (例:Google Authenticator)を呼び出し、機密情報を画面に表示させる
  • 特定ピクセル (例:2FAコード表示部分)に対しグラフィカルな操作を誘発
  • GPU.zipサイドチャネル を利用し、ピクセル単位で情報を窃取
  • 必要なピクセル数だけ繰り返し、 OCR技術 で元情報を復元
  • 実質的には スクリーンショットの窃取 と同等の効果

悪用されるAndroid API

  • ウィンドウブラーAPI によるピクセル操作誘発
  • VSyncコールバック でレンダリング時間計測
  • インテント で半透明アクティビティを重ねる手法
  • 詳細は論文参照

パッチ・対策状況

  • Google はブラーAPIの利用制限で対応を試みるも、 回避策 が発見され未解決
  • GPU.zipサイドチャネル に対するパッチは2025年10月時点で未定
  • CVE-2025-48561 として公式に脆弱性登録
  • 他OSへの影響 は未調査

利用者・開発者へのアドバイス

  • 利用者 はAndroidのセキュリティパッチを即時適用
  • 開発者 向けの具体的な対策は現時点で不明

App List Bypass脆弱性

  • 他アプリのインストール有無 を権限不要で判別可能な新たな脆弱性
  • ユーザープロファイリング等に悪用可能
  • Google は「Won’t fix (Infeasible)」として修正予定なし

ソースコード・ロゴ・論文

  • Pixnappingロゴ はCC0ライセンスで自由利用可能
  • ソースコード はパッチ公開後にGitHubで公開予定
  • 論文 はACM CCS 2025で発表予定、プレプリント入手可能

タイムライン(主な出来事)

  • 2025年2月24日: GoogleにPixnappingを報告
  • 2025年4月14日: PixnappingがHigh Severity評価
  • 2025年5月5日: App List BypassがLow Severity評価
  • 2025年9月~10月: Google/Samsungへの追加報告とパッチ対応
  • 2025年10月13日: Googleが12月セキュリティパッチで追加対応予定と発表

参考リンク

  • Pixnapping論文・プレプリント公式ページ
  • CVE詳細CVE-2025-48561
  • ロゴダウンロード :SVG, PNG(公式サイト参照)

Hackerたちの意見

名前だけでいいブラウザゲームを探してたんだ。

新しい技術ってわけじゃないけど、特定の攻撃には効果的だね。正直、もし特定のアプリをユーザーのスマホに入れたいなら、もうすでに配信されてるAndroidアプリを使った方がいいと思うよ。例えばFacebookみたいに。「このアプリは定期的にスクリーンショットを撮ります」ってプライバシー通知を出せば、意外と多くの人が受け入れるんだよね。 > 「Pixnappingのソースコードは公開しましたか?」 パッチが利用可能になったら、このリンクでソースコードを公開するよ: https://github.com/TAC-UCB/pixnapping ここで何が起きているかを逆解析するのはそんなに難しくないよ。パッチが出るまで待ってもよかったけど、早く注目を集めたかったみたいだね。

元の脆弱性のパッチはすでに公開されてるよ: https://android.googlesource.com/platform/frameworks/native/... そしてコミットメッセージには「ウィンドウ間でぼかしをかけるのにかかる時間を測定することでピクセル盗難を防ごうとしている」と明記されてる。研究者たちはパッチの回避策を見つけたからコードを公開してないんだ。それに「GPUベンダーはGPU.zipのパッチをコミットしていない」とか「Googleはアプリリストバイパスの脆弱性をパッチすることを約束していない。彼らは私たちの報告を「修正しない(実行不可能)」として解決した」とかも言ってるし。元の開示は2025年2月24日だったから、彼らが焦っているとは思えないな。「このアプリは定期的にスクリーンショットを撮ります」って言っても、スクリーンショットから除外されているものを撮るにはエクスプロイトが必要だよ(ユーザーが本当にスクリーンショットを撮りたい場合でもね)。

Googleへの最初の開示は2025年2月24日だった。十分な時間があったよね。

現代のデバイスは複雑すぎて完全に安全にはなれないよね。どんどん「機能」を追加していく傾向があって、その85%は誰も求めてないし、使うこともない機能なんだ。将来的には、小さくてシンプルな安全なOSの市場ができると思う。freeBSDみたいにね。

バニーのPrecursor?クールに聞こえるけど、めっちゃ高いよね。100ドルのグラフ計算機がぼったくりだと思ったなら、Precursorは同じような形状と計算能力だけど、1000ドルで数学の試験には使えないんだ。https://www.bunniestudios.com/blog/2020/introducing-precurso... (現在ダウン中、後で復旧するかも)

移動中に世界を楽しめる端末があったら最高だな〜 (-;

ドメインとロゴがあるから、これは本気だね。セキュリティ研究者もエンゲージメントを作ってブランドを育てなきゃいけないから。

OGハートブリードを覚えてる人いる?

マーケティングが必要な時点で、あまり深刻じゃないと思う。

私の結論: アプリはインストールしない方がいい。ウェブサイトを使おう。アプリは「権限なし」でも権限がありすぎるから。

残念なことに、最近は多くのことに専用のモバイルアプリが必要なんだよね。スマホは持ってないし、持ち歩いてもいないけど、なんとかやっていけてるって感じ。

UberやLyftがウェブサイトを使わせてくれたらいいのに。普通のタクシーを探したり、他の人のアプリに頼るのが嫌なんだよね。

OSベンダーはそんなことさせたくないよね。デスクトップを使ってるなら、GoogleはChromeを使わせたいし。みんな収益の30%を取りたいし、プラットフォームにロックインさせたいんだ。ダークパターンや機能を制限して、アプリストアに誘導しようとする。ソフトウェアベンダーも、アプリを使わせる理由は、ユーザーがアプリを使いたくない理由と同じ。ダークパターンを使って、ネイティブアプリに誘導しようとするんだ。この二つの欲求が、ウェブを使うのが現実的かどうかに影響してると思う。ここには立法が必要だと思うよ。アプリは、依存しているウェブサービスの次に来るべきで、企業が意図的にウェブサイトを悪化させてアプリに誘導するのは許されるべきじゃない。

このタイプのサイドチャネル攻撃には詳しくないけど、記事によると、Chromeを通じて悪用可能なGPU.zipを使うみたいだよ。https://www.hertzbleed.com/gpu.zip/

JS無効にしてる状態で!

TOTPに関しては、攻撃が実行可能なのはフォントと画面上のピクセル位置が分かっている場合だけだってことに注意してね。> 第5章で説明されている攻撃は、敏感な画面領域を盗むのに数時間かかる—特定のカテゴリーの一時的な秘密を攻撃者の手の届かないところに置くことになる。例えば2FAコードを考えてみて。デフォルトでは、この6桁のコードは30秒ごとに更新される[38]。これが攻撃に厳しい時間制限を課すんだ。攻撃者が30秒以内に6桁を漏らせなければ、画面から消えちゃう。> その代わり、攻撃者がフォントを知っていると仮定すると、各秘密の数字は、慎重に選ばれた数ピクセルを漏らすことで区別できるんだ。

最良の防御策は、2FAアプリを生体認証が必要なように設定することみたいだね。このオプションを言及しなかったのは不思議だな。

それは確かに一理あるけど、私の中ではこういうことが引き起こされた。「自分のデータがもっと盗まれないようにするには、Androidにもっとデータを渡すしかない」

バイオメトリクスは、誰かがそれを複製する方法を見つけたら変更できないよね。

セキュリティの専門家じゃないけど、Windowsのデスクトップにアプリをインストールすると、Androidのピックスナッピングよりも早く、目立たずに混乱を引き起こせるんじゃないかな。もし二つのウェブサイトで同じパスワードを使ってたら、どちらか一方のサイトがそのパスワードを使ってもう一方にログインできちゃう(追加のセキュリティがなければね)。理論上はセキュリティが弱いけど、実際にはこういう攻撃はあまり一般的じゃないし、簡単でもない。

でも、Windowsのデスクトップにアプリをインストールすると、Androidのピックスナッピングよりも早く、目立たずに混乱を引き起こせるんじゃないかな。デスクトップではアプリはサンドボックス化されてないけど、モバイルではされてる。サンドボックスから抜け出すのはセキュリティ違反だよ。デスクトップでは、ファーストフードチェーンごとにアプリをインストールする人はいないけど、モバイルではそうしてる。

これはレンダリング時間から計算してサイドチャネル攻撃をする、巧妙な攻撃ベクターだと思う。研究者たちには拍手を送りたいけど、Google Authenticatorでもかなりの時間とピクセルをキャプチャする必要があるだろうね。心配なのは、これがどれだけ再現できて、メッセージからOTPを盗むのに使えるかってこと。明確なテンプレート(例えば、GitHubの通知メールのデザイン)を使ったフィッシングが増えてるから、私はメールのリンクをクリックするのを完全にやめたし、今はインテントからアプリを直接起動するのもやめてる(例えば「開く」)。手動で開いて操作を行う方がいいし、不要なアプリは削除した方がいいけど、人々は攻撃面を過小評価してる(SDKやウェブページのインテントを通じて来る可能性がある)。