パスワードを忘れた? アカウント作成
13478151 story
Android

正規アプリの署名を維持したまま内容を改変できるAndroidの脆弱性「Janus」 12

ストーリー by hylom
いろんなことができちゃいそう 部門より
headless曰く、

正規のAndroidアプリの署名を維持したまま内容を改変できるというAndroidの脆弱性「Janus」を発見者のGuardSquareが解説している(GuardSquareブログBetaNewsRegister)。

Androidのアプリケーションパッケージ(APK)ファイルはZIPファイルであり、ZIPエントリの外側に任意のデータを挿入できる。しかしJAR署名スキームではZIPエントリのみを使用して署名の整合性を確認するため、ZIPエントリの外にデータが挿入されても署名は有効のままとなる。一方、Dalvik実行可能ファイル(DEX)は末尾に任意のデータを追加できる。そのため、DEXファイルの末尾にAPKファイルをつなげて1つのファイルにすることでDEXファイルとしてもAPKファイルとしても有効なファイルとなり、署名も維持される。

AndroidランタイムはAPKファイルからDEXファイルを抽出して実行するが、ファイルの種類を識別する際にDEXヘッダーを見つけるとDEXファイルとして実行してしまうのだという。Androidでは署名が異なるAPKファイルでインストール済みアプリをアップデートすることはできないが、悪意あるDEXファイルを正規のAPKファイルと組み合わせることで、正規のアップデートとしてインストールさせることが可能となる。こういったAPKファイルがGoogle Playで配布されることはないものの、ユーザーをだましてインストールさせることで、高い権限を持つシステムアプリを置き換えたり、バンキングアプリを偽物に置き換えたりといった攻撃が可能だ。

Android 5.0以降がJanusの影響を受けるが、Android 7.0以降で利用可能なAPK署名スキームv2ではAPKファイル全体が署名の検証対象になるため、v2署名を使用したアプリは影響を受けない。GuardSquareではこの問題を7月31日にGoogleへ報告しており、12月のAndroidセキュリティアップデートCVE-2017-13156として修正されている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 法人で自前apk使っているところは当然配布ルートも管理しているし、
    個人で野良apk使ってる層(やれと言われて何も考えず従っちゃうような層も含む)は
    そもそも署名の確認なんてしていないし、
    どういうルートでこの攻撃が使用されるのか興味深いですね

    • by Anonymous Coward

      改変されてないapkアプリ上から、改変したapkをダウンロードしてきてインストール。
      改変されてないapkの中にデータファイルとして改変したapkを入れておいてインストール。

      • by Anonymous Coward

        #3328344 の方も言ってますが、それって攻撃というよりは自分で自分に向けて使うととっても便利なゴニョゴニョ

        • by Anonymous Coward

          ガチャゲーで何を引いても(ローカルでは)任意のSSRにするとか、いわゆるチート行為に(ry
          こうですか?わかりません!

          いいか、みんな
                 ( ゚д゚)
                (| y |)

          DEXとAPKでは単なるzipだが
           dex  ( ゚д゚)  apk
             \/| y |\/

          二つ合わさればチートとなる
               ( ゚д゚)  dex+apk
               (\/\/

    • by Anonymous Coward

      これを効果的に使った悪意ある誰それからの攻撃は思い付かないけど、
      邪魔臭いプレインストールアプリとかシステムアプリを、
      ルート取らずに自分で入れ換えてゴニョゴニョするのが可能……だったらいいな。

    • by Anonymous Coward

      銀行とか楽●とかS○nyとかなら
      「ダウンローダしたapkを信用してください」
      とかページに書きかねん前科があるのだが。。。

      • by Anonymous Coward

        警告が出ますが「はい」を押してください

        ってな事をマニュアル書いてたアプリがあったっけな

      • by Anonymous Coward

        少し違うけど、公式アプリをインストールしてもらうのにウェブなんかで「アプリストアでXXXXを検索してインストール」なんてのも普通にやってるとこ結構あるんだよね。
        あれ、悪意のある開発者が同名または似た名前のアプリを出してたらどうする気なんだろう、といつも思う。
        普通にストアのリンクを貼ればいいのに。

        • by Anonymous Coward

          少し違うけど、公式アプリをインストールしてもらうのにウェブなんかで「アプリストアでXXXXを検索してインストール」なんてのも普通にやってるとこ結構あるんだよね。

          二段階認証アプリの導入案内でこれやられて呆れ果てたな

    • by Anonymous Coward

      詳しくないんで、のバグ突かなくても出来るかもしれないけど、
      もしかすると、正規アプリのデータとかパーミッションをすべて引き継げたりするんじゃないのかな?
      どうなんだろ。

      • by Anonymous Coward

        引き継げる筈だけどどうやって使うかって話よね。
        ゲームのチートとかには強力な手段に見えるけど、
        利用者が自分でやる以上利用者自身に対する攻撃にはならないわけで。
        (チート自体が運営及び他の利用者に対する攻撃ではあるけど質が違うんで除外)

        適当な標的アプリを元に作ってトロイ的にインストールさせると、
        標的アプリの権限を利用できるって状態には持ち込めるような気もするが…
        そもそも「トロイ的にインストールさせる」の難易度がなぁ……
        騙せる相手はそこそこいるにはいるだろうけど。

  • by Anonymous Coward on 2017年12月13日 10時34分 (#3328890)

    Twitterアプリってapi投げる時全部自前で暗号化してるからwiresharkとかでもエンドポイント見れないんだけど(だから公式クライアント専用の機能で使っているapiがわからん)
    ログを仕込んだ改変バージョンのTwitterアプリに差し替えれば見れるかな

typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...