スマートフォンのアプリケーション・ソフトウエア(以下、アプリ)をインストールすることで個人情報が盗まれてしまった―。2012年前半からこんな事件がテレビのニュースや新聞の記事を時々、賑わすようになった。こうした悪さをするアプリ、いわゆるマルウエアが使う手口は、ユーザーを騙して不正なアプリをインストールさせ、ユーザーに気付かれないように端末内の情報(電話帳のデータなど)を取得するものであった。

 Androidでは、当該アプリのインストール時にアプリが必要とする権限について提示する。ユーザーがこれを許可しない限り、アプリはインストールされず、データは窃取されない。しかし、多くのユーザーはアプリが利用する権限を気にせずにインストールする傾向にあるため、結果として電話帳情報や位置情報など個人に関わる情報が悪意あるものの手に渡ることになる。ユーザーの間で、アプリが求める権限を気にするという習慣が根付かない限り、今後も類似の事件は発生すると思われる。

 さて、報道されている悪用事例はないのだが、実はアプリのインストール時に端末内の情報へのアクセスを求めないにも関わらず、個人に関わる情報を盗まれてしまう攻撃手口に対する懸念がセキュリティー技術者の間で広がっている。インストール済みのAndroidアプリの脆弱性を他のアプリから悪用するというもので、最悪の場合、端末内の情報を窃取することができる。この手口が有効に働くことを示す実証コードが公開されていたりするため、いつこの手口を使った攻撃が顕在化してもおかしくない。

 アプリに残っている脆弱性にもよるが、Androidアプリの脆弱性を攻撃する手口については、ユーザーが怪しい権限を要求するアプリをインストールしないようにするという従来型の対策では守りきれない。個々のアプリ開発者が脆弱性を作り込まないようにする必要がある。また、Androidアプリに作り込まれた脆弱性によっては、細工されたWebページを閲覧するだけで攻撃が成功してしまうものも存在する(本連載第4回「HTMLを表示しただけで被害を受ける脆弱性」参照)。

図1 Androidアプリの脆弱性を悪用する2種類の攻撃
図1 Androidアプリの脆弱性を悪用する2種類の攻撃
[画像のクリックで拡大表示]

 本連載では、他のアプリに不正利用されてしまったり、細工されたページを閲覧することで攻撃が成立するといったAndroidアプリの脆弱性に焦点を当てて、こうした脆弱性を生み出すAndroidのアプリ間連携の仕組み、脆弱性の内容、問題を残さないための対策について解説する(図1)。