Androidをはじめとするスマートフォンには、セキュリティ上の脅威が多数存在し、犯罪が存在する。脅威や犯罪をすべて見抜き対策するのは困難であり、また、OSの脆弱性を個人の努力で防ぐことには限界がある。
そこで、セキュリティ製品の導入が必要になってくるのだが、セキュリティソフトというのは万能で完全なのだろうか?残念ながら、答は「ノー」である。セキュリティソフトもまた一般のユーザーアプリケーションなのだ。セキュリティメーカーやプラットフォームごとに事情は異なるが、セキュリティベンダーの苦悩はさまざまなところに存在する。
ここでは、シェアの拡大と共にマルウェアの種類も増加しつつあるAndroid端末を例に、スマートフォン向けのセキュリティソフトについて紹介しよう。
日本固有の事情~ガラパゴス スマートフォン?
「ガラパゴスケータイ(ガラケー)」と呼ばれるように日本の携帯電話事情は独特で、市場をある種の無菌状態化してくれた。ガラケーの対抗と見られるスマートフォンにおいても実は同様で、ある種の「ガラパゴス化」が見られる。
たとえば、メール仕様などはその一例だ。海外では世界標準のテキストメッセージとして「SMS(Short Message Service)」が、写真や音楽データなどの送信も可能な「MMS(Multimedia Messaging Service)」が使われる。一方、日本では事情が異なる。ソフトバンクを除いて海外のSMS/MMS形式とは一線を画しており、たとえばメッセージの送受信方式と端末上での保存形式が違う。
種類 | 海外 | NTTドコモ | au(KDDI) | ソフトバンク |
---|---|---|---|---|
テキスト メッセージ | SMS | SMS(FOMA)/ ショートメール(mova) | Cメール | SMS |
マルチメディア メッセージ | MMS | iモードメール(一般端末)/ spモードのメール(スマートフォン) | Eメール | MMS(S!メール) |
また、ケータイサイトが非常に発達した日本では、スマートフォンでもケータイサイトのアクセスが望まれる。このため、端末をエミュレーションする独自のブラウザが登場している。しかし、これらのアプリケーションは、通常のWebブラウザとは実装が異なるものだ。
さらに国内のAndroid端末には、赤外線通信やワンセグ、おサイフケータイなどのような機能がメーカーにより追加されている。こうした努力により、独自のガラパゴスケータイ文化を引き継いでいるのだ。
一方で、ベースは全世界で使われるAndroidであるため、当然のように同じ脆弱性をもつ。これまでのケータイのように完全にガラパゴス化すれば、Android端末であっても、ある種の無菌状態が保たれたかもしれない。しかし、残念ながらAndroidスマートフォンでは完全なガラパゴス化された状態にはなっていないのだ。
ここまで、日本のスマートフォンの独自性を紹介したが、それには理由がある。セキュリティベンダーがAndroid用のセキュリティソフトを開発する際、独自性が問題となるケースがあるのだ。
たとえば、多くのセキュリティソフトには、「WIPE(ワイプ)」と呼ばれるユーザーデータ削除の機能がある。この機能を使うと、端末の盗難時などに、遠隔からメールを含む個人データを消去できるのだ。Android 2.2からは、工場出荷時に戻す(=ユーザー固有のデータを消す)というコマンドがサポートされており、セキュリティソフトはこのコマンドを呼び出してユーザーデータを削除する。
一方、Android 2.1以前を搭載する端末では、このコマンドが使えないため、セキュリティソフトが対象となるデータを個別に削除する。そこでワールドワイドで使われるSMS/MMS形式の保存メッセージを前提としたメール削除しか考慮しないと、独自仕様の実装を持つガラパゴススマートフォンでは、データを完全に削除できない場合があるのだ。
セキュリティベンダーは、このような独自実装を確認しながら製品を市場にリリースしていくのだが、この製品の多様性が頭を悩ませるところだ。実際にはほとんどのセキュリティベンダーは各国で共通した仕様で製品を作りリリースするため、日本の独自性をもった仕様については対応しきれないケースがあるので気を付けてほしい。
特にAndroid2.1以前のバージョンの機種では、WIPE機能を利用してもメールデータが削除できないケースがある。Android 2.2以降のバージョンであれば、工場出荷時設定に戻すコマンドを利用する仕様の製品であれば、キャリアを問わずデータをすべて削除してくれる。
なお、各セキュリティベンダーは対応OSや動作確認済み機種などを公表していることもある。購入する前には、確認してみるとよいだろう。
Android用セキュリティソフトの困難さ
まず最初に、日本独自の理由によるAndroid用セキュリティソフト開発の困難さを紹介したが、そもそもAndroid端末を対象にすること自体に大きな困難がある。一般的なWindows用セキュリティソフトには、バックグラウンドで起動し続け、ファイルやアプリケーションの挙動を見張る「リアルタイムスキャン」が搭載されている。Androidにも、プロセスをマルチタスク・マルチスレッド化して処理し、バックグラウンドで実行する機能がある。そのため、Windows用セキュリティソフトのようなリアルタイムスキャンも可能に思えるかもしれない。しかし、実際上はきわめて難しいのだ。
スマートフォン端末にとっての最重要条件でもあるユーザーエクスペリエンス面に焦点を当ててみると、その理由は、
- バッテリーを消費する
- 強制終了されてしまう
という2点にある。
バッテリーの節約
スマートフォンは、当然ながら日々持ち歩くものであり、重さとデザインは重要な要素となる。この結果、搭載するバッテリーの容量に制限がでてくる。そのため、バッテリーを一番消費するプロセッサー(CPU)の稼働を減らすため、アプリケーションはCPU負荷が軽くなるよう作る必要がある。Android端末ではセキュリティソフトも一般のアプリケーションの一種として扱われるため、セキュリティソフトであっても軽量化という宿命を負わされている。最高のセキュリティを求められているにもかかわらず、バッテリーを消費する機能をどんどん盛り込むわけにはいかないのだ。
バッテリー消費の最たる機能がリアルタイムスキャンだ。バックグラウンドであっても、スレッドが稼働していればバッテリーを消費し続けてしまう。これが、Windows用のセキュリティソフトのようなリアルタイムスキャンを、Androidで実現するのが難しい理由の1つだ。
他のアプリに終了されてしまう
Androidでは、すべてのアプリケーションはサンドボックスと呼ばれる互いに不可侵な仮想空間上に展開され実行される。このサンドボックスは一般ユーザーの権限であり、基本的にシステム領域からは明確に切り離されている。そして、アプリケーションの種類によらず互いに同じレベルで動作する。
お互いに同じレベルで動作する点が、セキュリティソフトでは大きな問題となる。タスク管理アプリの中には、動作中の他のプロセスを終了する機能を持つものがある。前述したが、セキュリティソフトといえど一般アプリケーションと同じ扱いであり、この機能を使って終了させられてしまう可能性があるのだ。このような仕様では、セキュリティソフトとして失格である。
以上の「バッテリーを消費する」と「強制終了されてしまう」という2つが、Android端末上に常駐して番犬のようにあらゆるアクセスを見張りつづけるWindows用のセキュリティソフトのようなリアルタイムスキャンの仕組みが難しい理由だ。Androidを守るためには、常駐化させずに最大限のセキュリティを守る仕組みを考えなければならないのである。
(次ページ、「セキュリティ側もAndroidの制限を利用」に続く)
この連載の記事
-
第2回
TECH
シェア伸ばすAndroidを襲った「駆除できないウイルス」の恐怖 -
第1回
TECH
iPhoneも対象に!スマートフォンを狙うモバイルマルウェアとは - この連載の一覧へ