サイト内の現在位置

偽ショートメッセージ「不在通知SMS」について

NECセキュリティブログ

2020年9月25日

NECサイバーセキュリティ戦略本部セキュリティ技術センターの岩田です。
今回のブログでは宅配便の不在通知を装う偽ショートメッセージについて見ていきたいと思います。

※注意事項
 本ブログに記載の内容を悪用したクラッキング行為等は、絶対にしないでください。

はじまり

漏洩した電話番号なのか、あるいはランダムなのかわかりませんが、不在通知のSMSが届きます。

メッセージにはユーザーがクリックしたくなるような文面とURLが含まれています。

Webサイト

通知されたURLへPCでアクセスしてもブラウザには何も表示されませんでした。Webページのソースを確認してみると難読化されたJavaScriptが含まれており、何か処理をしているようです。

JavaScriptの難読化を解除すると、以下のような処理をしていることが分かりました。

1. URLへアクセスした端末がApple系デバイスの場合

userAgentにiPhoneやiPadが含まれている場合には、apple.txtファイルの内容をalert表示しappleurl.txtファイルの内容にリダイレクトします。

(わかりやすいようにスクリプトを編集しています)

apple.txtには誘導するためのメッセージが記載されていました。また、appleurl.txtにはフィッシングサイトと思われるURL(すでにアクセスができませんでした)が記載されていました。
Apple系のデバイスではSMSのリンクをクリックするとフィッシングサイトに誘導されるようです。

apple.txt

appleurl.txt

2. URLへアクセスした端末がAndroid系デバイスの場合

userAgentにAndroidやLinuxが含まれている場合には、anzhuo.txtファイルの内容をalert表示しanzhuourl.txtファイルの内容にリダイレクトします。
anzhuoは中国語でAndroidを意味するようです。

(わかりやすいようにスクリプトを編集しています)

Android系のデバイスではアプリケーション(apkファイル)がダウンロードされます。

anzhuo.txt

anzhuourl.txt

3. その他

1,2の条件に当てはまらないデバイスでアクセスした場合、実行される処理は何も記載されていませんでした。このためPCでリンクをクリックしてもブラウザには何も表示されません。

難読化したスクリプトはそのまま、別ファイルを編集するだけで表示メッセージやリダイレクト先(ダウンロードファイル名)を変更できるように作られていました。

アプリケーション

Android系デバイスでアクセスするとダウンロードするアプリケーションについて簡単に見ていきます。
jadx new window[1]を使うと、簡単にapkファイルやdexファイルを解析することができます。

過剰な権限要求

アプリケーションのマニフェストAndroidManifest.xmlファイルを確認すると多数の権限を要求していました。

アプリケーションをインストールすると一般的な権限については暗黙的に許可されます。今回のアプリケーションではアカウント情報(通常はGoogleのメールアドレス)やプロファイル情報(ユーザー名や電話番号)の取得、ネットワークアクセスなどの権限が付与されます。
特に強い権限に関してはアプリケーションインストール時に、権限を与えて良いかユーザーに確認する画面が表示されます。

(OSのバージョンにより表示内容は変わります)

今回のアプリケーションでは正規アプリケーションに偽装しユーザーから許可を得ようとしていました。

復号

アプリケーション実体は暗号化されており、assetsに格納されていました。

アプリケーションから復号処理の実装が確認できたので、Pythonのスクリプトを作成しアプリケーション実体(dexファイル)を復号しました。

(アプリケーションに実装されていた復号処理)
(復号するPythonプログラム)

アプリケーション実体

復号したアプリケーションにはネイティブコードは含まれておらず、すべてJavaで記述されていました。斜め読みして気になる部分をピックアップします。

フィッシング画面

数種類の言語でフィッシング画面が準備されていました。端末の言語設定を確認し日本語(“ja”)の場合には日本語のフィッシングページを表示します。

フィッシング画面のテンプレート

個人情報やクレジットカード情報を盗むための画面が準備されていました。

クレジットカード番号のチェック

クレジットカード番号を詳細にチェックしていました。
正しいカード番号を入力してほしいという強い意思を感じます。

「アカウント危険」メッセージ

以前のマルウェア機能の残骸だと思われるコードやメッセージが残っていました。このときは非常に多くの言語に対応していたようです。
今回のアプリケーションは過去に悪用されていたプログラムを流用しているようです。

日本向けターゲット:銀行系

ターゲットだと思われる銀行系のアプリケーションIDとpinterestのURLとフィッシングのメッセージがプログラムに含まれていました。

日本向けターゲット:キャリア決済

また、キャリア決済をターゲットにしていると思われるプログラムも確認できました。

どちらもpinterestから情報を読み込むようです。

pinterest

アプリケーションに含まれていたURLを確認したところ、いくつかのページにはメッセージやURLが書き込まれていました。

pinterestの情報を書き換えることで、インストールしたアプリケーションの挙動を変更することができるようです。

遠隔操作

アプリケーションをインストールした端末を外部から制御する機能が実装されているようです。おおよその機能は文字列から推測可能です。

プログラムを解析しないと許可された権限をアプリケーションがどのように使うのかはわかりません。必要以上に権限を要求するアプリケーションはインストールしないという選択も大事です。

別アプリケーションとの比較

数日後に別URLからもアプリケーションを入手できたので、2つのアプリケーションの処理内容を簡単に比較してみました。

  • アプリケーション実体の復号方法は同一
  • pinterestのURLは同一
  • アプリケーション実体の処理に差分あり

新しく入手したアプリケーションからはrequestIgnoreBatteryOpt()関数の実装が無くなっていました。
(省电は中国語で省エネの意味のようです。)

アプリケーション1

アプリケーション2(新しく入手したアプリケーション)

(アプリケーション2はrequestIgnoreBatteryOpt()関数の実装が空になっていました。)

pinterestのURLに変化がないため同一アクターが作成したアプリケーションだと考えられます。また、ちょっとした修正をしていることより、アクターはコストをかけずに簡単にアプリケーションを変更することが可能だと推測されます。よって、必要に応じてアプリケーションに機能追加することやターゲットを変更することが可能だと考えられます。残骸だと思われたコードがまた利用される可能性もありそうです。

偽装する正規アプリケーションにバリエーションがあることや複数の影響が確認されていることより、アプリケーションに実装されている機能が徐々に変化しているのかもしれません new window[2]

まとめ

  • SMSで通知されたリンク先のWebサイトとの中身と、Android系デバイスでダウンロードするアプリケーションについてざっくりと解析しました。
  • 高度な技術を用いるのではなく、巧みにユーザーを騙すことで目的を達成しようとしていました。
  • 端末が遠隔操作された場合、どのような被害が発生するのか想像もつきません。端末の情報が盗られるだけではなく、犯罪インフラの一部として利用されてしまう恐れもあります。絶対に興味本位でアプリケーションをインストールしないようにして下さい。

本ブログに記載されている会社名および商品名は各社の商標または登録商標です。

参考資料

執筆者プロフィール

岩田 友臣(いわた ともおみ)
セキュリティ技術センター リスクハンティングチーム

hardware/firmware/softwareの開発や生体認証の技術開発などを経て、現在はペネトレーションテスト、脆弱性診断などの業務に従事。
noranecoのメンバー。主にReversing/Misc問を担当
SANS - Cyber Defense NetWars 2019.10 / 2020.8 1位(Team)
2019 Flare-On Challenge メダル保持
SECCON 2019 国際決勝5位
GXPN、GCIH、RISSを保持
今欲しい資格は ねこ検定