狙われ始めたAndroid

第4回:ウイルス対策ソフトが悩む“リスクウェア”とは


 モバイル系OSに限らずとも、Windows、Mac OS、Unix/Linuxその他のOS上で動作するプログラム/アプリケーションの中には、マルウェアとまではいかなくても「怪しげな」ものは存在します。

 具体例を挙げるときりはないのですが、例えばハッキングを行うためのツールや端末の遠隔操作を実現するソフトなど、使い方に依存したり、使用する人・使用させる人の意図に左右されたりして、悪意のある挙動になってしまったり、そうでなかったりする場合に分かれるものがあるのです。こういったプログラムは、リスクウェアやグレーウェアと呼ばれます(本稿ではリスクウェアと呼ぶことにします)。

リスクウェア、グレーウェア

 一例として、「VNC」というソフトウェアを挙げます。一般的にはVirtual Network Computingの略です。このソフトウェアはオープンソースで、いくつかの派生アプリケーションが存在していますが、どれも基本的にはインストールした端末を遠隔で操作する機能を提供します。

 正当な(悪意のない)人がこれを利用すれば、例えば管理ツールとして便利で有用なアプリケーションと言えると思いますが、悪意を持った人が他人の端末にこれをインストールして勝手に操作ないしは監視を行ったとすると、やられている側にとっては危険性を持つアプリケーションということになります。

 Kaspersky Labでは、VNCを「not-a-virus:RemoteAdmin.Win32.WinVNC」という名称で検出します。検出名の先頭にある「not-a-virus:」とは、リスクウェアに属するものに付与する接頭辞です。

バックアップツール?

 本題であるモバイル関連の話題に移りましょう。モバイルOSにもリスクウェアとして分類できるものが存在します。一例として紹介するのは「Gone in 60 Second」(略称:gi60s)です。日本語版は存在しなかったこともあってか、日本ではあまり話題にはならなかったような気がします。

gi60sの公式サイト

 gi60sは、かつてAndroid Market(現Google Play)でも公開されていたアプリです。公式サイトもあります。本稿執筆時点(2012年6月)においては、公式サイトは依然として運営されており、サイトの右肩にはAvailable on the Android Marketというロゴも掲載されています。ただ、そのロゴはGoogle Playにはリンクされておらず、apkファイルを直接ダウンロードする形態になっているようです。

 公式サイトに記載もあるのですが、当アプリはAndroid用のクラウドバックアップツール(Very fast and simple Android Cloud BackUp.)です。サイト上ではそのように主張している、という表現の方が的を射ているかもしれません。

 先に申し上げると、Kaspersky Labでは、このアプリを「not-a-virus:Monitor.AndroidOS.Gonca」として検出します。なお、製品の種別やバージョンによっては「not-a-virus:HEUR:Monitor.AndroidOS.Gonca」という検出名になることもあります。

 リスクウェア扱いをしている理由はいくつかありますが、主なところは、このアプリのバックアップ手法にあります。同サイトにも記載がある通り、このアプリをインストールして実行すると、約60秒で端末の中のさまざまなデータをリモートホストにバックアップ(つまりコピー)します。バックアップ対象は、コンタクトリスト(電話帳)、通話履歴、メールメッセージ、ブラウザーの閲覧履歴などです。その後、アプリは自動的にアンインストールされます。バックアップの際に表示される5桁のコードをサイトに入力すると、バックアップデータを参照できる、という仕組みです。これを端末の所有者が自分自身の意思で何が起きるか理解した上で使用すれば、おそらく問題は起きないでしょう。

 ただし、例えば端末所有者以外の人が他人の端末で本人に断わりもなくこれを行ったとすると、ごく素直な客観的感覚では「情報窃盗ツール」としても悪用されたということになり得るでしょう。当該サイトでは他人のデータを盗むために使用しないよう注意書きがありますが、喚起文を読まない、もしくは無視する人が情報窃盗ツールとして使用しないという確約にはなりません。従ってKaspersky Labでは、当アプリを、使用方法に依存するアプリという位置付けで、リスクウェアとして検出しているのです。

gi60sのサイトに記載された注意書き

リスクウェアの線引きはウイルス対策製品ごとに異なることも

 ここで、どういうものをマルウェアとし、どういうものをリスクウェアとするのか、という線引きの問題が浮上します。定義としては、各ウイルス対策ベンダーや研究者間で似通っているとしても、正確な区別を行う線引きは非常に難しいというのが現状です。あるウイルス対策製品ではリスクウェア扱いであるのに、別のウイルス対策製品では非検出ということも、中にはあります。

 さらに、リスクウェアの中でも、その機能や攻撃性に応じていくつかの種類に分類が可能です。重要なことは、使用方法やアプリとしての在り方・捉え方によっては、危険性ないしは攻撃性があると言えるアプリでも、現状はウイルス対策ソフトでリスクウェアとして扱うことができないような、非常にきわどいアプリ(ないしはアプリ内に含まれたモジュール)が出てきているという点です。

 線引きという観点では、さらに微妙な問題もあります。

 スマートフォンはPC端末にあるような文書や個人情報、メールなどのほかにも、プライバシーに関わるさまざまな情報がつまっています。読者の皆様もご承知の通り、スマートフォンは電話であり、かつ高度な情報端末であるので、その機能を利活用するために、連絡先(電話帳)やGPS位置情報機能など、見方によってはPC端末よりも高性能であると言ってもよいでしょう。

 スマートフォンで動作するアプリは、場合によってはこれらの機能や情報を駆使してさまざまなサービスを提供します。こういった機能や情報をアプリが使用するために、Android OSの場合はパーミッションという機構を装備しています。例えば、あるアプリが位置情報の取得と電話帳の読み取りを行いたい場合は、このパーミッションを使用することを宣言し、アプリをインストール時にユーザーが許可することで、当該アプリはそれらの機能を使い、情報収集などを行うことが可能になるのです。

 先述の微妙な問題とは、このパーミッションと深く関連します。本連載でも紹介したことがあるAndroidに感染する初期のマルウェアである「Fake Player」は、動画再生ソフトであると見せかけていますが、SMSを送信します。SMSを送信するためには、そのためのパーミッションが必要であり、インストール時にそれを宣言しています。攻撃者・犯罪者側からすれば、ユーザーが権限を許可しているのだから文句はないだろう、という強引な理屈が聞こえてきそうですが、ユーザーを偽って勝手にSMSを送信し金銭を窃盗するという挙動は明らかですので、各ウイルス対策ベンダーはこれをマルウェアとして扱います。これは、非常に分かりやすい例です。

 微妙できわどいものは、いわゆるターゲティング広告の例でしょう。ターゲティング広告とは、ユーザーの属性やプロファイル、趣味趣向などに合わせた適切な広告のことです。これを配信するためのモジュール、ならびにターゲティング広告を生成するために情報を収集するモジュールを搭載するアプリがあります。特に無償アプリによく見られます。無償アプリは、ユーザーからアプリ使用料を徴収する代わりに、広告収入で収益を得ているものが多いためです。

 情報収集モジュールが必要とするパーミッションは、収集しようとする情報の種類に依存するのですが、よくある例としては、位置情報、電話帳の読み取り、端末を識別できる情報(電話番号、メールアドレス、端末ID、国番号など)、メール、ブラウザーの閲覧履歴などです。場合によってはもっと多くのパーミッションに対する許可を求めてくるものもあります。

 問題は、これらの情報を得るための許諾や十分な説明の有無です。アプリインストール時に現れるパーミッション許諾画面は、仕様上必要であるために機械的に表示されているとも言えます。つまり、パーミッション許諾画面では、どんな機能を使用するかを宣言はしていますが、何の目的でそれらの情報を収集するかを伝えてくれることはないのです。

 もちろん、正当な理由で情報を収集する事業者やアプリ開発者は、その許諾と目的の説明を、アプリマーケットや自身のサイト、ドキュメントなどで十分に行っています。問題は、それを行わずに公開されているアプリの存在です。ウイルス対策ベンダーの視点では、完全にユーザーを欺き意図しない挙動を行っているとは言い切れないケースがほとんどで、情報収集モジュールを搭載していることだけを理由に、即時マルウェアという扱いを行うわけにもいきません。理由は単純で、誤検知が多発するからです。情報収集に対し十分な説明を行っているアプリと行っていないアプリの間で、情報収集の挙動は技術的には変わらないので、それだけを理由にマルウェア扱いすることが困難なことは明白です。

「Trojan-spy.AndroidOS.Dougalek」として検知されるアプリのパーミッション許諾画面。このアプリは、動画再生アプリを装っているにもかかわらず、感染したAndroid端末から重要な情報を抜き取ったり、収集した情報を攻撃者のPCに送信する恐れがあるため、マルウェアとして検知されている。

 そういった挙動をするアプリに対しては、インストール時などに注意やお知らせを出すのもひとつのアイデアでしょう。これをウイルス対策ソフトが行うかどうかは、また別の議論になるかと思いますが、課題を解決するためのひとつの糸口である気がしています。ただ、現状は、おそらくほぼすべてのアプリをインストールする時点で、こういったお知らせを出すということになりそうですから、一様に機械的にこれを行ってしまっても、ユーザーにとっては目障りではあっても効果は薄いものになりそうですので、手法はさらに深い検討の余地があります。特にAndroidアプリについては、非常に多くの種類のアプリが日々開発されていることもあり、これらへの対策は急務と言えるでしょう。

 なお、筆者が所属するKaspersky Labs Japanも加盟している日本スマートフォンセキュリティ協会では、技術部会アプリケーションワーキンググループで、それぞれの特徴を元に分類を行い、対策につなげていこうとする活動が行われています 。


関連情報

2012/6/25 06:00


前田 典彦
株式会社カスペルスキーに所属し、チーフセキュリティエヴァンゲリストとしてマルウェアおよびインターネットセキュリティに関する調査啓蒙活動に従事するほか、社外NPO法人や各種団体の委員・幹事としても活動している。同社のCSIRT組織であるKLIRRTの代表も務める。