写真●ソニーデジタルネットワークアプリケーションズの松並勝 事業2部開発5課(セキュリティビジネスグループ)課長
写真●ソニーデジタルネットワークアプリケーションズの松並勝 事業2部開発5課(セキュリティビジネスグループ)課長
[画像のクリックで拡大表示]

 スマートフォンからユーザーの情報を外部に送る「Carrier IQ」が話題になっている(関連記事)。実はCarrier IQのような確信犯的なアプリケーションだけでなく、善意で作られたアプリケーションであっても、脆弱性を突かれるなどしてユーザーの情報が漏えいする場合がある。

 ソニーグループ内のソフトウエア専門会社であるソニーデジタルネットワークアプリケーションズ(ソニーDNA)の松並勝 事業2部 開発5課(セキュリティビジネスグループ)課長(写真)は2011年12月15日、「スマートフォン&タブレット2011冬」の講演で、「ユーザーの情報を守るのはアプリ開発者の責務。セキュアコーディングのノウハウが必須」と強調。アプリ開発者に向けて、Androidアプリケーションをセキュアに開発するための考え方を紹介した。

 まず松並氏は、スマートフォンには、電話番号や電話帳、通話履歴、アカウント情報、写真などのメディアデータなど、ユーザーの個人・社会生活にかかわる多くの情報が集約されている事実を紹介。単に端末を利用するユーザーの情報だけでなく、電話帳やメールボックスなどを介して1ホップ先のユーザーの情報までも含まれている。またスマートフォンにインストールされたアプリケーションの中には、Javaのコードのバイナリーやバンドルしているデータなど、アプリメーカーが他に公開したくない情報も入っている。

 Androidでは、これらの情報のほとんどはOSではなく、アプリケーション自体が管理しているという。そのため松並氏は「アプリ開発者が情報を守ることを常に意識すべき」とする。

 アプリケーションは様々な経路から攻撃される可能性がある。例えばネットワークを経由して端末の情報を盗聴・改ざんしたり、悪意あるファイルがアプリケーションの脆弱性を突いて情報を入手したりするといった具合だ。

 Androidにはこれらの攻撃からアプリ内の情報を守るための機構として、サンドボックスという機能が標準で備わっている。アプリケーション内の情報を他のアプリから読み書き/実行させない機能だ。アプリケーションを普通に作ると、Androidでは自動的にサンドボックスで情報が守られる。

 ただしAndroidアプリでは、アプリをより魅力的にするために、他のアプリの情報や機能を参照できるアプリ間連携の機能が使われることが多い。松並氏は「アプリ間連携はサンドボックスに穴をあける行為。想定外の利用ができないように、絶妙な設計、コーディングが求められる」と注意を促す。

 とはいえアプリ開発者が、あらゆる攻撃を想定してコーディングを進めるのは至難の技だ。そこで松並氏は、スマートフォンの安全な利用と普及促進を目指す任意団体「日本スマートフォンセキュリティフォーラム」(JSSEC、関連記事)の中に、「セキュアコーディングタスクフォース」という組織を立ち上げたことを紹介。Androidアプリの設計・セキュアコーディングのTipsを集め、2012年3月末に初版を公開するよう作業を進めているという。

 最後に松並氏は、安全なソフトウエア開発の体制作りについても触れた。開発スピードを落とさないためにも、セキュリティ専門組織を作ることが重要と強調。また開発の初期段階からセキュリティ部門がかかわっていくことの必要性にも触れた。松並氏は過去に社内のセキュリティ部門として、ソフトのリリース直前に開発部門に対して脆弱性を指摘したことがあるという。すると開発部門は徹夜の作業を余儀なくされ、両者は険悪なムードになったという。こうした事態を避けるためにも、上流工程からセキュリティ部門がかかわっていくことの重要性を強調した。