Androidマルウェアを使った架空請求による詐欺行為で、逮捕者が出たことが6月14日に明らかになっている。架空請求自体は目新しいわけではないが、個人情報も取得していたようで、実質的な被害が出ている。

どうやらアダルトサイトで配布していたマルウェアのようで、Google Play上に公開されていたわけではない模様だが、少なくともGoogle Playやキャリアのアプリマーケット以外、通常のサイトで配布されているようなアプリのインストールは、よほどのことがないかぎりしない方がいい。

独立したアプリ、必要最小限の権限

さて前回に引き続き、Windows Phoneのセキュリティモデルについて。現行のWindows Phone 7.5は、Windows OSの流れをくむが、一から開発し直されたOSのため、いろいろな部分で、従来のWindowsとは異なっている。

そもそもWindowsは、セキュリティ機能が不備だった割に、インターネット接続機能の強化と市場への拡大がアダとなって、攻撃に頻繁に狙われてきた。2000年ごろまではまさに「無防備」(チーフセキュリティアドバイザ・高橋正和氏)の状態だった。

これが大きく転換したのが、当時会長だったビル・ゲイツ氏による「Trustworthy Computing」(信頼できるコンピューティング)という社内メッセージだ。これによって、同社のソフトウェアはセキュリティを重視した設計に変更されていく。Windows XPは、著名な「Code Red」ワームの登場以前の設計だったため、Windows XP SP2でようやくセキュリティ機能が実装され始めたが、Windows Vista以降は設計段階からセキュリティが考慮されている。「構造的には木造家屋と鉄筋コンクリートぐらいの違いがある」と高橋氏。問題が起きないというわけではないが、「強度が違うぐらいまで持ってこれた」と話す。

こうしたセキュリティレベルをさらに強化したのがWindows Phone 7.5だ。WP7.5では、アプリからOSへのアクセス制限を強化している。Windowsでは自由に利用できるOSの機能を制限しているわけだ。アプリは限定された情報や機能にしかアクセスできず、位置情報や端末情報など、取得される情報は事前にユーザーが許可を出したものしか利用できない。

一般のアプリはすべて独立動作しており、ほかのアプリのデータ・メモリの領域にはアクセスできないし、バックグラウンド動作もできない。microSDカードなどのリムーバブルメディアも利用できないし、Bluetoothのプロファイルも制限されている。

このセキュリティモデルは、「分離の原則」と「最小限の構成」で設計されたものだ。アプリの動作環境は「チャンバー(Chamber)」と呼ばれる領域に分離。このチャンバーは4種類あり、それぞれにセキュリティポリシーによって定義されたアクセス権限が決められている。各チャンバーに配置されたアプリは、それ以上の権限が取得できないようになっている。

もっとも高度な権限を持つチャンバーは「TCB(Trusted Computing Base)」と呼ばれる領域。WP7.5内のほとんどの機能に無制限にアクセスでき、カーネルやカーネルモードドライバはここで動作している。この領域を利用できるのはマイクロソフトだけだ。

「ERC(Elevated Rights Chamber)」は、セキュリティポリシーをのぞくすべての機能にアクセスでき、サービスやユーザーモードドライバが動作する。ここもマイクロソフトだけがアクセスできる。

「SRC(Standard Rights Chamber)」は、プリインストールアプリ向けの領域で、TCBやERCのように、デバイス全体に影響するサービスを除き、プリインストールアプリはここで動作する。マイクロソフトや端末メーカー、キャリアがプリインしたアプリがここに搭載されることになる。

そして「LPC(Least Privileged Chamber)」が、一般のアプリが動作する領域だ。アプリ配信マーケットのMarketplaceを通じて提供されるアプリは、基本的にここで動作する。各アプリがメモリ領域やストレージを備え、ほかのアプリのメモリ・ストレージにはアクセスできないようになっている。アプリは、外部への通信は可能だが、アプリ間の通信チャネル自体が存在しないため、完全な分離となっているという。与えられる権限も最小限だ。

アプリはOSの機能(Capabilities)を利用することができる。アプリが利用できる機能は、カメラ、コンタクトリスト、デバイス情報、Live ID、ロケーション、ネットワーク、プッシュ通知、センサーなどがあり、基本的にはユーザーの承認が必要だ。ただし、OSのネイティブAPIにアプリがアクセスすることもできないという。

あるアプリを立ち上げようとすると、現在起動中のアプリを停止しなければならないので、バックグラウンドでアプリが動作することはない。バックグラウンドでGPSを使って位置情報を取得したり、カメラで写真を撮ったり、メールを送信したり、といったことはできないので、少なくともそうした攻撃は起こりえない、ということになっている。

ちなみに、WP向けアプリでは、端末の固有IDを取得することはできない。そもそもそうした権限が存在しないためで、端末の製造番号や無線機器の固有番号など、いわゆる固有IDをアプリが利用することはできないそうだ。

このように、WP7.5では、アプリに制限を課すことで、よりセキュリティレベルの高い環境を実現している。アプリの自由度は低くなるが、例えば地図アプリやカメラアプリなど、通常の機能を実現するアプリが作れないわけではない。この辺りは、マイクロソフトが開発者に対して、アプリ開発のノウハウや情報を積極的に提供していくべきだろう。来るWindows 8でも、メトロアプリに関しては制限が設けられるため、開発者側も工夫が必要になってきそうだ。

いずれにしても、WPアプリのセキュリティモデルの1つが、このチャンバーによる分離、必要最小限の権限、という考え方だ。WP7.5のセキュリティモデルに関しては、次回以降も説明したい。

関連リンク

連載バックナンバー