このページの本文へ

McAfee Blog

電話番号を狙う不審なAndroidアプリ、韓国ユーザー向けもGoogle Play上に多数発見

2013年11月29日 14時18分更新

文● McAfee

  • この記事をはてなブックマークに追加
  • 本文印刷

 先日のブログでMcAfeeは、密かに電話番号を盗む、日本ユーザー向けの不審なAndroidチャットアプリをGoogle Play上で発見したことを報告しました。私たちはまた、それに類似したJavaScriptによる手法で電話番号を盗む、約120個ものAndroidアプリがGoogle Play上で公開されていることを確認しました。これらのアプリは主に韓国ユーザーをターゲットとしています。また、これらはJavaScriptベースのハイブリッド・モバイルアプリ開発フレームワークの1つである「Appspresso」を用いて開発されています。

Fig.1 韓国ユーザーを標的としたGoogle Play上の不審なアプリの例

 これらのアプリは、今年11月初めからGoogle Play上で公開され続けており、Google Playでの統計によると、ダウンロード総数は少なくとも170,000件、最大で640,000件に達しているようです。ユーザーインタフェースが韓国語のみをサポートしていることから、これらのアプリは主に韓国ユーザーを対象にしていると思われます。しかし、ここ日本でもGoogle Play上でアダルト関連の日本語キーワードでアプリを検索すると結果リストに現れるため、日本のユーザーも注意する必要があります。なお、これらのアプリのほとんどがアダルト・コンテンツに関するものです。

Fig.2 壁紙設定アプリとして公開されている不審アプリの例(非アダルト)

 ユーザーが起動するとすぐに、これらのアプリは事前の通知や承諾確認なしに端末の電話番号を取得し、密かにアプリ開発者のWebサーバーに送信します。電話番号の取得はアプリの機能の実現には全く不要であるため、これらのアプリは初めから電話番号詐取を目的として設計されていると言えます。

Fig.3 アプリケーション起動時の画面

 これらのアプリは全て、クロスプラットフォームのハイブリッド・モバイルアプリ開発フレームワーク「Appspresso」を用いて開発されています(注:この開発フレームワーク自体に悪意があるわけではありません)。このフレームワークを使用すると、開発者はアプリの主要なロジックをHTMLやJavaScriptを用いて記述することができ、またJavaScript経由で端末プラットフォーム(この場合はAndroid)の機能を呼び出すこともできます。つまり、このフレームワークがJavaとJavaScriptのコードの連携を可能にしています。また、独自のJavaScript APIを定義したプラグインを開発者が追加することもできます。

 これらのアプリでは、AndroidのJava APIであるTelephonyManager.getLine1Number()メソッドを使用して端末の電話番号を取得する”phone()”メソッドを独自プラグインに実装し、アプリのJavaScriptコードからそれを呼び出せるようにしています。そして、JavaScriptコードでは、この”phone()”を使用して電話番号を取得し、アプリ起動時にWebView上でアクセスするURL内のクエリパラメータにそれを指定することでWebサーバーに送信します。

Fig.4 JavaScriptから電話番号取得するためのphone()メソッドを定義したJavaコード

 なお、Javaコードでは、取得した電話番号が「+82」(韓国の国番号)から始まる場合のみ特殊な処理を行っています。

Fig.5 電話番号を取得し外部サーバーに送信するためのJavaScriptコード

 McAfee Mobile Security はこれらのアプリをAndroid/AxLeaker.Aとして検出します。

関連記事

 ※本ページの内容はMcAfee Blogの抄訳です。
原文:Japanese Chat App for Android Steals Phone Numbers

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中