金運開運、商売繁盛、布袋さん

健康、元気、金運、商運隆昌、千客万来を布袋様に祈願し業界ネタを配信するブログ

Android OSから見たセキュリティ対策ソフトの制約

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

 ここでの調査結果は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ボタンを押す仕組みとなっており、一度押せば全てが承認されたというような仕組みとなっている。

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

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

パーミッション利用率の状況

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


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

●脆弱性攻撃型の例

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

●大流行のAndroid向けウイルス対策ソフトは有効なのか?

 ここまでの話の流れでは、「危険なので、できれば対策メーカーの有料ソフトを、最低でも無料ソフトをインストールしましょう」となるが、そう簡単ではない。Android向けの対策ソフトを調べてみると、何と検知できないケースが、数多く存在することが分かったのである。

 2011年10月25日に情報処理推進機構(IPA)から「スマートフォンのセキュリティ<危険回避>>対策のしおり」なるものが発表された。その中に「セキュリティソフトを利用する」とある。この記載には、「パソコンで培った技術を利用して、スマートフォンでも高度な対策ができるようです」とある。

 ウイルス対策ソフトの意義を否定するつもりはない、何もないよりはあった方がいい。しかし、その有効性をきちんと確認しているのか、はなはだ疑問を感じざるを得ないのである。PCとスマートフォン(調査したのはAndroidだけだが)は、良く似ているがやはり多くの部分で違う。ここからはその事実を紹介したい。

●Androidの実行権限について

 なるべく平易に説明するなら、Androidの実行権限には3種類ある。


1. 一般権限……アプリケーション開発者が自己署名してMarketプレイスを通じて(一部不法Marketもあるようだが)配布されるアプリケーション。「Dalvik」サンドボックス内で動作し、利用者承認のパーミッションの機能を持つ。保存先は「/data/app」「/data/app-private」「SDカード」の3つ
2. システム権限(管理者権限と混同されがちだが異なる)……/systemディレクトリ配下にインストールされたアプリケーションに与えられる権限。Androidが持つ約130種のパーミッションの機能の全てを利用できる(一般権限は約70種)。保存先の多くは「/system/app」
3. 管理者権限……Androidの領域外でLinuxのroot権限が割り当てられたものでLinuxコマンドを利用できる。

 これらの権限区分において「ウイルス対策ソフト」(正確にはマルウェア対策ソフト)がどこで動作しているかというと、調査した全てのソフトが「一般権限」であった。世界中の全てのソフトで調査をしたものではないが、有名なものは調べている。ここから、以下のような疑問を生じてしまうのである。

●マルウェア対策ソフトの限界

 1.前述の一般権限での保存先の1つにある「/data/app-private」内は、一般権限ではコード自体をスキャンできない。スキャンできるのは「/data/app」もしくは「SDカード」だけである。それではこの領域(/data/app-private)への書き込みはどうすればいいか。この領域のアプリケーションを専門用語で「フォワードロックアプリ」というが、一番簡単な方法はAndroid Marketに投稿するときに「著作権管理フラグ」をオンにすればいい。これだけでコード検証型のスキャン対象から外れてしまうのである。

 2.一般権限でマルウェアを駆除しようとするなら、PackageManagerにアンインストールを依頼して、利用者による手動操作を待つことになる。マルウェアがインストールされただけではまだ攻撃は行われない。起動して初めて攻撃が行われ、さまざまな影響を及ぼす結果をもたらす。だが、Androidにはアプリを自動起動させる仕組みが豊富にある。例えば「端末の起動」「SMS受信」「電話発呼」などである。実験ではインストールしてから自動起動されるまで約1秒のものも見つかった。この間に利用者は画面でアプリの削除要求をしなければいけない。実際に1秒以内でのユーザー操作は不可能であり、被害に遭ってからの事後の駆除となり意味がなくなる。

 3.一般権限ではメモリダンプやリアルタイムでの通信モニタも使えず、他のアプリケーションの挙動を監視することは不可能だ。例えば、一般のWebブラウザを使った悪性Webサイトへの接続制限では、接続した後で悪性URLの場合にはWebブラウザを停止させる。これは、Logcatログを監視してアクセス履歴をチェックしているだけなので、実際問題としては接続して事件が発生してから停止させるため、その時は既に“後の祭り”なのである。

 またインストールでのスキャンはその仕組み上、ウイルス対策ソフトはインストールが完了したブロードキャストを拾って検査するので、その時は既に「/data/app」やSDカードに展開済み。もし「/system/app」にインストールされてしまった場合には、一般権限では駆除できなくなる。そこからスキャンして何か意味があるのだろうか(もちろん、「/data」以下にインストールされたアプリが、継続的な情報漏えいや外部攻撃を行うものであれば、手動による駆除も意義は大きい)。

 なお、アプリがインストールされる先のほとんどは、「/data」配下であることを述べておく。ここにインストールされるアプリは、アンインストール操作により、クリーンに駆除できる。PCの場合には、感染による影響が残ってしまうことが多いのに対して、Androidの安全機構の一つであると言える。

●かなり堅牢な“スッピン”のAndroid

 Android自体は実は堅牢な仕組みである。その理由は、自動感染型ウイルスが存在しない。

 スマートフォンを狙う不正プログラムやマルウェアが急増しているといわれており、これ自体は確かだが、絶対数からみると、マルウェアの数はPCに比べると極めて少ない。著者が独自で入手した情報は、10月時点ではその比率は「1600(PC):1(スマートフォン)」だった。これには調査対象に亜種が含まれていない。亜種を含むと、その差は「約42000:1」となる。このように情報源によって数字が相当に異なるほど、スマートフォンのマルウェアの数は少ないということだ(けたが違いすぎるのである)。

 全体的な傾向としては、スマートフォンはPCに近づいているが、まだまだスマートフォンのマルウェアに遭遇したユーザーは希少な存在である。実際にKDDI研究所が、会社や個人でスマートフォンのマルウェアに遭遇して、実際に被害を受けたかの問いかけでは実被害を訴えたユーザーはいなかった。今後はさらにその差は縮小するだろうが、PCと肩を並べるにはもう少し時間がかかりそうだと筆者は感じている。

 現実にAndroid Marketにマルウェアが掲載されることはほとんどなく、通信事業者の独自のMarketでも同様だ。それよりは、グレーなアプリケーション(見解の相違はあるが、例えば端末改造ツールやシャッター音の無いカメラなど)は今後も増加すると思われる。

 セキュリティがほとんど考慮されないようなMarketプレイスでの感染事例が増加する可能性がある。Android向けウイルス対策ソフトにPCと同じレベルの防御力を期待している一部のユーザーが、対策ソフトをインストールすることで、逆に「危険なMarketプレイスに行っても安全」と思い込む場合を懸念している。本記事はこのユーザーへの注意喚起を主な目的にしている。

●マルウェア対策ソフトの意義をどう考える?

 Androidのマルウェア対策ソフトに文字通りの機能を期待しても、それは“ないものねだり”となる。ただし保険として(偽対策ソフトを除けば)考えればないよりはいい。PCと違い、機能に限界があると理解した上で利用すべきだろう。過去に出現した手動起動型、もしくは時間をかけて自動起動するマルウェアには有効といった程度だと割り切るべきだ。筆者としては今より優秀な製品が登場することを期待したい。

 特に有料ソフトであれば、ウイルス対策以外にもさまざまな機能を数多く搭載しているので、そちらを期待しての購入ならユーザーも納得できるだろう。「リモートロック」「リモート消去」「ログ管理」「盗難対策」「バックアップ機能」「データリカバリ対策」など、メーカーによって呼び方も機能も多種多様だ。

 以上の点を踏まえてユーザーに知ってほしいのは、ウイルス対策ソフトの現状は“ないよりはまし”程度であるということ。それよりも、世間で評判になっている一部の悪質Marketは、セキュリティ管理がほとんどされていないので、絶対にアクセスしないことの方が遥かに有効な安全対策となる。また、「メールの添付ファイルに用心する」「怪しいサイトには行かない」といったPCでは常識の、危険だと思われる行為をスマートフォンでもしないことが重要である。スマートフォンを有効に利用していくという前向きの姿勢でぜひセキュリティ対策を心がけてほしい。

 日本スマートフォンセキュリティフォーラム(JSSEC)でも「スマートフォン&タブレットの業務利用に関するセキュリティガイドライン」を提供している。手前みそで申し訳ないが、無料なのでぜひこのガイドも併せて活用していただきたい。

 対策ソフトメーカーに対しては、「できること」「できないこと」をより明確に表現(技術者が不勉強な場合もあるが)していただきたい。一部製品の宣伝では「誇大広告ではないか?」と思われるケースも見受けられる。

●問題は山積み

 Androidには、本稿で取り上げたウイルス対策ソフト以外にも検討課題が多い。無線LANやWi-Fiにおけるセキュリティ問題もあるが、筆者が非常に懸念しているのが「著作権管理」である。例えば、先日のJSSECの発表の場でSony Ericssonの方(米国在住)が「ゲームでテトリスを検索すると3000種類以上ものゲームが見つかる」と話しており、この中で「正規の著作権を保持したテトリスはどれか?」と問いに、筆者はまったく分からなかった。ほとんどが、本家のソースをコピーしたのではと疑われるものや、そっくりな機能を持ったアプリが無料ゲームとして提供されている。「いったい本家のアプリはどれ?」という状況で、これは有名なゲームに限った話ではない。

 Androidの世界では、制作者自身が何カ月も苦心して作成したゲームや優良ツールが簡単に盗まれ、別名でMarketに出されるケースも多いと聞く。この現状をどう改善すべきなのか。そもそも本当にあなたが「正規の制作者」だと、どのように主張すればよいのか――デジタル認証といった技術論もさることながら、商流や物流、そして情流を鑑みるとまだまだ問題が山積されているのである。以前にも本コーナーで記したが、ソフトの購入とはモノを購入することではなく、使用する権利を購入するという事をどうやったら実効力のあるものにできるのだろうか。まだまだ道は長い。

 最後に、本稿の執筆にあたっては多大な技術支援をKDDI研究所 竹森敬祐 研究主査から受けた。この場を借りてお礼を申し上げる。彼の全面的な協力なくして本件は投稿できなかったと思う。心から感謝を申し添えるものである。

業界の話題、問題、掘り出し物、ちょっとしたニュース配信中。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 18歳未満の死亡状況、すべ... | トップ | 吉田所長、TV会議で一芝居…... »
最新の画像もっと見る

日記」カテゴリの最新記事