連載
» 2017年04月19日 05時00分 公開

統計で見るサイバーセキュリティ群像劇(4):CasperJSと類似画像分類で見えてきた、Android野良アプリの具体的な危険性 (1/2)

筆者が独自に収集した統計データを基に、サイバーワールドの裏側を探る本連載。今回は、「使うのは危険だ」とよくいわれるAndroid野良アプリの具体的な危険性について調査してみました。

[安藤類央(国立情報学研究所),@IT]

 インターネットから得られるさまざまな統計データを基に、メディアや書籍ではあまり取り上げられることのないサイバーセキュリティの裏(?)世界を探訪する本連載「統計で見るサイバーセキュリティ群像劇」。今回は、セキュリティ分野ではよく行われる「異常検知」を話題にします。

 異常検知には、大量の文字列、パケットヘッダなどのデータを機械学習で処理する方法がありますが、今回は少し趣向を変えて、文字列データを何らかの画像に変換して目視で行う方法を紹介します。異常検知の対象は、「Third-party market application」(「野良アプリ」と呼ばれることがあります)のAndroid APKファイルにしました。

昨今のAndroid野良アプリとマルウェア

 よく言われることですが、スマートフォンの普及により、Android搭載デバイスの数が急激に増加しているようです。最近のニュースによると、利用されているOSの数について、Android OSがWindows OSに迫ってきているとのことです。

参考リンク:「Android OSがWindowsに肉薄」、スマホ時代のOSシェア分布(Business Insider)

 これに並行して、ここ数年でAndroidマルウェアの話題も増えてきています。チェック・ポイント・ソフトウェア・テクノロジーズによると、2016年12月1日現在、新たなAndroidマルウェアにより、100万件以上のGoogleアカウントがセキュリティ侵害を受けているそうです。

参考リンク:新たなAndroidマルウェア・キャンペーン「Gooligan」を発見 100万件以上のGoogleアカウントに大規模セキュリティ侵害が発生(チェック・ポイント・ソフトウェア・テクノロジーズ)

 今回の主役である、野良アプリはどうなのか。関連するニュースを調べてみると、野良アプリは、マルウェアの温床とまでは言いませんが、悪意のあるコードが混入するケースが多いようです。下記記事は、Google Playと他の野良アプリマーケットにおけるマルウェアの割合を報告したものです。Google Playよりも最大で30倍多いマルウェアが発見されているようです。

 とはいえ、本連載の目的はマルウェアを見つけることではありません。今回は、Google Playでサポートされてないアプリを収集し、統計を取ってみることにしました。

野良アプリをダウンロードしてURLを抽出

 野良アプリのダウンロード方法は、至ってシンプルです。下記コードのように、Pythonの「urllib2」モジュールを使っています。そのため、ダウンロードできるサイトは限られますし、APKも満遍なく集めたものではありません。

response = urllib2.urlopen(apk[0], timeout=600)
data = response.read()

 ここでは、野良アプリのAPKを10万ファイルほどダウンロードし、そのファイルからURLとおぼしき文字列を抜き出しました。その結果、抽出されたURLは48万行程度になりました。

# wc -l apkurl.txt
487301 apkurl.txt

48万のURLを集計処理

 このapkurl.txtに、grepやawkなどで簡単な集計処理を行ってみました。図1は、抜き出したURL文字列の出現頻度のランキングです。やや食傷気味の方がいたらすみませんが、本連載の1〜3回目と同じく、ロングテールの図が出てきました。

図1 APKファイルからgrepしたURL文字列の出現頻度

 何しろ48万行あるので、ロングテールの部分をしらみつぶしに見ていくことはできません。そのため、関連するニュース記事などを参考にしながら、順次調べていくことにします。まず、URLの中から頻度が高いものを幾つか抜き出してみました。

表1 頻出URL文字列の抜粋
www.podst.ru 5182
twitter.com 2903
yp.shoutcast.com 2631
facebook.com 2508
www.linkedin.com 2462
java.apps.opera.com 2453
html5.apps.opera.com 2453

 やはりAndroidアプリから、有名どころSNSへのアクセスはあるようです。またアプリの配布元のサイトや、ポッドキャスト、ストリーミング系のサイトへのアクセスが目立ちました。

Androidアプリが実際にどのような国へ接続しに行っているのか

 ここで、「Androidアプリが実際にどのような国へ接続しに行っているのか」を調べて見ることにします。アプリの国別ダウンロード数が載っている記事を参考にしました。

 2015年のものですが、どの国が盛んにダウンロードしているかというランキングなので、今回の調査には参考になるものかと思います。これを踏まえて、先ほどのURL文字列リストから、国コードを抽出しランキングを作成してみました。

表2 国コードのランキング
US 60107
CH 20017
RU 5231
AT 1100
NL 958
DE 820
CA 584
GB 398
FR 236
JP 214
SG 202
AP 174
CN 153
KR 115

 2位にスイスなどの若干以外な国名が載っていますが、大体スマホユーザーの多そうな国がランキングしているようです。アプリマーケティング研究所の記事に載っている国、米国、ロシア、ドイツ、日本、中国、韓国は、大体上位にあります。

 残念ことに、一時期、Androidアプリで不正送金を行うトロイの木馬が話題になっていましたが、今回は、URLのみを対象としたこともあり、これというAPKが見つかりませんでした。また、Androidアプリの不正送金先の国別ランキングなどはネット上で見つかりませんでした(あったら逆に困るということもあるかもしれませんが)。

 ここからは、今回の本題である画像類似検索の話に入ります。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。