正規アプリの署名を維持したまま内容を改変できるAndroidの脆弱性「Janus」 12
いろんなことができちゃいそう 部門より
正規のAndroidアプリの署名を維持したまま内容を改変できるというAndroidの脆弱性「Janus」を発見者のGuardSquareが解説している(GuardSquareブログ、BetaNews、Register)。
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として修正されている。
どういうルートで攻撃に使用されるケースがあるんだろう? (スコア:0)
法人で自前apk使っているところは当然配布ルートも管理しているし、
個人で野良apk使ってる層(やれと言われて何も考えず従っちゃうような層も含む)は
そもそも署名の確認なんてしていないし、
どういうルートでこの攻撃が使用されるのか興味深いですね
Re: (スコア:0)
改変されてないapkアプリ上から、改変したapkをダウンロードしてきてインストール。
改変されてないapkの中にデータファイルとして改変したapkを入れておいてインストール。
Re: (スコア:0)
#3328344 の方も言ってますが、それって攻撃というよりは自分で自分に向けて使うととっても便利なゴニョゴニョ
Re: (スコア:0)
ガチャゲーで何を引いても(ローカルでは)任意のSSRにするとか、いわゆるチート行為に(ry
こうですか?わかりません!
いいか、みんな
( ゚д゚)
(| y |)
DEXとAPKでは単なるzipだが
dex ( ゚д゚) apk
\/| y |\/
二つ合わさればチートとなる
( ゚д゚) dex+apk
(\/\/
Re: (スコア:0)
これを効果的に使った悪意ある誰それからの攻撃は思い付かないけど、
邪魔臭いプレインストールアプリとかシステムアプリを、
ルート取らずに自分で入れ換えてゴニョゴニョするのが可能……だったらいいな。
Re: (スコア:0)
銀行とか楽●とかS○nyとかなら
「ダウンローダしたapkを信用してください」
とかページに書きかねん前科があるのだが。。。
Re: (スコア:0)
警告が出ますが「はい」を押してください
ってな事をマニュアル書いてたアプリがあったっけな
Re: (スコア:0)
少し違うけど、公式アプリをインストールしてもらうのにウェブなんかで「アプリストアでXXXXを検索してインストール」なんてのも普通にやってるとこ結構あるんだよね。
あれ、悪意のある開発者が同名または似た名前のアプリを出してたらどうする気なんだろう、といつも思う。
普通にストアのリンクを貼ればいいのに。
Re: (スコア:0)
少し違うけど、公式アプリをインストールしてもらうのにウェブなんかで「アプリストアでXXXXを検索してインストール」なんてのも普通にやってるとこ結構あるんだよね。
二段階認証アプリの導入案内でこれやられて呆れ果てたな
Re: (スコア:0)
詳しくないんで、のバグ突かなくても出来るかもしれないけど、
もしかすると、正規アプリのデータとかパーミッションをすべて引き継げたりするんじゃないのかな?
どうなんだろ。
Re: (スコア:0)
引き継げる筈だけどどうやって使うかって話よね。
ゲームのチートとかには強力な手段に見えるけど、
利用者が自分でやる以上利用者自身に対する攻撃にはならないわけで。
(チート自体が運営及び他の利用者に対する攻撃ではあるけど質が違うんで除外)
適当な標的アプリを元に作ってトロイ的にインストールさせると、
標的アプリの権限を利用できるって状態には持ち込めるような気もするが…
そもそも「トロイ的にインストールさせる」の難易度がなぁ……
騙せる相手はそこそこいるにはいるだろうけど。
twitterアプリ (スコア:0)
Twitterアプリってapi投げる時全部自前で暗号化してるからwiresharkとかでもエンドポイント見れないんだけど(だから公式クライアント専用の機能で使っているapiがわからん)
ログを仕込んだ改変バージョンのTwitterアプリに差し替えれば見れるかな