Android OSから見たセキュリティ対策ソフトの制約萩原栄幸が斬る! IT時事刻々(1/2 ページ)

スマートフォンブームの影で、特にAndroidスマートフォンを狙う不正プログラムの増加が指摘されている。対策ソフトなども数多く登場しているが、これらは本当に有効なのだろうか――。

» 2011年12月26日 08時00分 公開
[萩原栄幸,ITmedia]

 今回は恐らく世界で初めてこの効果について検証結果を添えて述べたい。あらかじめお断りするが、本稿の内容は一部の対策ソフトメーカーを非難するものではなく、現在(調査時点)における傾向と事実を明らかにしたにすぎない。また、ここでの結論は調査範囲の中で得たものであり、批判があるかもしれない。後述で指摘していくさまざまな課題は、これから改善が進むことになるだろうし、ぜひそうなってほしい。まずは読者に現実を冷静に知っていただきたいというのが、筆者の希望である。

 ここでの調査結果はKDDIおよびKDDI研究所が安心・安全なスマートフォンの利用促進になればとの思いで、取材に協力していただいた(ご担当はKDDI研究所の竹森敬祐 研究主査)。これは、PC向けのウイルス対策ソフトほどの効果を期待できる技術レベルに達していないことを正しく認識していただくことで、対策ソフトを入れているから何をやっても大丈夫という誤用による事故を防ぎたいとの願いである。

 ITの世界は日進月歩であり、端末メーカーや通信事業者、ウイルス対策ソフトベンダーらに努力によって、本稿の内容は近いうちに陳腐化してしまうかもしれない。また多くの読者に理解してもらえるよう平易な表現に努めたが、一部には専門知識がないと理解が難しいところがあるかもしれない。その部分はご留意いただきたい。

Androidにおける不正プログラムの危険性

 まず誤解を恐れずに言うと、Androidではその設計からウイルス感染はまず起こり得ないのだ。(注意:ウイルスとは、ファイルやインターネットなどを介在して自動的に拡散するものを指す。ここで悪性ソフト全般を指すマルウェアという用語がある。Androidにおいては利用者が明示的にインストールを行わないと、自らが独自に感染することが出来ない機構を持つ。もちろん、研究所でわざと実行環境を作成してのウイルス感染はできるが、一般にご利用のAndroidにおいてはまずあり得ない。あるのはマルウェアへの感染である。)

 このマルウェアの感染経路には通常、以下の3つの種類が考えられる。

  1. Android Marketなどのさまざまなアプリケーションストアからマルウェアをインストールする
  2. メール添付マルウェアをインストールする
  3. USB接続したPCからマルウェアをインストールする(専門用語でいうならadbシェルを経由)

 これらの感染経路において、提供側の責任になる(1)のケースでは一部の悪質なMarketを除けばさまざまな取り組みが行われている。

例えばGoogleは、

  • 開発者登録にクレジットカードが必要で、ある程度の身元保証を義務としており、金銭も徴収することでマルウェアの掲載頻度をなるべく少なくしている
  • ユーザーから指摘を受けた場合は、迅速にマルウェアを駆除するなどの事後対策を行っており、感染者を極力少なくしている

また、「au one Market」では

  • 信頼できるアプリケーション提供者であることの身元確認を行っている
  • アプリケーションを掲載する際に、セキュリティチェックを行う事前対策を持っている

 アプリケーションストアから駆除されれば、“横”への広がりはなくなり、ネットワーク上で生き残るPC向けウイルスに比べて、拡散期間が短い特徴がある。これは、PCにはないAndroidの安全な機構であり、これまで爆発的な感染が生じていない理由である。

マルウェアが実際に感染する仕組み

 Androidはよく知られているように、Linux OSをベースとしている。Linux OS上に利用したい機能や情報へのアクセスを承認するパーミッション可変型のサンドボックスを構築したOSがAndroidというわけだ。

 サンドボックスとはWikipediaでは、「外部から受け取ったプログラムを保護された領域で動作させることによってシステムが不正に操作されるのを防ぐセキュリティモデルのこと」と説明されている。つまり、この領域でしか通常は実行できないこととなる。しかしAndroidの場合、アプリケーションが利用する機能や情報を利用者が承認する形を取っており、サンドボックスに穴を開けることができる。ある意味で「安全性」と「利便性」のトレードオフを利用者に委託した自己責任モデルである。

 Androidにおける感染としては、「パーミッション悪用型」と「脆弱性攻撃型」の2つの形態が考えられる。この2つの解説をする前に、このパーミッションの利用実態を理解しておかねばならないだろう。

驚くべきパーミッションの利用状況

 KDDI研究所の調査によると、2011年8月に、Android Market上の無料アプリケーション980個のパーミッションの利用率を調査した結果が発表された。その中でアプリケーションの利用でどうにも不要と思われるパーミッションが多数発見されている。

 2011年11月28日の読売新聞夕刊の社会面でも大きく取り上げられているが、電話帳の中身を読み取るもの11%、位置情報を読み取るもの27%、スマートフォンの電話番号やSIM情報を読み取るものは58%にも上っているのだ。また新聞には掲載されていないがスマートフォン起動時にアプリケーションを自動起動しているものも12.4%もあり、実に不気味な状況となっている。なぜ単純なゲームソフトにこういう機能が必要なのか――これらの趣旨に関する説明がないまま、画面に承認するかしないかの同意を求められて、OKボタンを押す仕組みとなっており、一度押せば全てが承認されたというような仕組みとなっている。

 さらに重要なことは、そのパーミッションの機能の果たす役割や影響を、アプリケーション制作会社や制作者本人も意識していないという状況となっているのだ。彼らの中には、契約した広告会社のプログラムの特性を知らないままアプリケーション作成時に組み込むケースが多くみられ、アプリケーションの趣旨と表示されるパーミッションのギャップが生じてしまい、ユーザーに不審や不安を与えている実態がある。

 専門家の素人化というのはちょっと言い過ぎかもしれないがそういう状況が今の現実なのだ。

パーミッション利用率の状況
Android Permission 利用率 Permissionの機能説明
READ_PHONE_STATE 57.9% 電話番号やSIM情報の読み取り
ACCESS_COARSE_LOCATION 28.4% Wi-Fiアクセスポイントを使った位置情報の取得
ACCESS_FINE_LOCATION 26.6% GPSを使った位置情報の取得
READ_CONTACTS 10.6% アドレス帳の読み取り

パーミッション悪用型の例

  1. 偽のオンラインバンキング管理用アプリケーション……内容を見ると中にキーロガーが内包される。「READ_INPUT_STATE」
  2. 偽のマルウェア対策アプリケーション……何十種類ものパーミッションを確認。「INTERNET」「READ_PHONE_STATE」「READ_CONTACTS」「CALL_PHONE」「READ_SMS」「SEND_SMS」「PROCESS_OUTGOING_CALLS」「ACCSESS_FINE_LOCATION」
  3. 盗聴アプリケーション……通話音声をSDカードに記録し、その後にファイル交換アプリケーションで漏えいするもの。「WRITE_EXTERNAL_STORAGE」

脆弱性攻撃型の例

 2011年3月に騒動となったアップデート型のマルウェア「Droid Dream」が有名だろう。50種類以上もの海賊版アプリケーションが発見、駆除されている。Android Marketに出現したが、すぐに駆除されている。Droid Dreamは管理者権限を奪い、別のマルウェアを外部から取得して、それを「/system/app」に保存する。一般の権限ではこの領域をWriteできないので、いったんこれを実行されてしまうと、容易にアンインストールができなくなってしまう。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.