ニュース
2004/04/14 09:09 更新


サンドボックスの仕組みをあらゆるソフトに適用する「SoftwarePot」

第1回セキュアOSカンファレンスに、筑波大学大学院の加藤和彦氏が登場し、ソフトウェアの安全な実行と流通を支援する「SoftwarePot」について説明した。

 4月9日に行われた「第1回セキュアOSカンファレンス」に、筑波大学大学院の加藤和彦氏(システム情報工学研究科 助教授)が登場。強制アクセス制御(MAC)によってセキュリティの確保を図るセキュアOSとは若干異なるアプローチで、ソフトウェアの安全な実行と流通を支援しようと図る「SoftwarePot」について説明した。

 OSなどの基盤ソフトウェアは、長らく、限られたユーザーのみが利用する閉じた環境での利用を想定してきた。それゆえ「内部由来のソフトウェアと外部由来のソフトウェアとを区別することができない」ことが問題だと加藤氏は言う。つまり、内部由来のソフトウェア用に用意された権限を、外部由来のソフトウェアにも許してしまうことがセキュリティ問題の原因になっているというわけだ。

 ここで言う外部由来ソフトウェアとしては、一般に流通しているシェアウェアやフリーウェア、プラグインソフトウェアなどが含まれる。これらソフトウェアが正しいものかどうかを判断する一助として、電子書名の仕組みがあるが、最終的にはウィンドウ表示を頼りに「人間、それもエンドユーザーがインストールするかどうかを判断し、信頼して実行するしかない」(加藤氏)。

 これはちょうど「署名入りの封筒に入った薬が送られてくるようなものだ。ユーザーは、これを飲めば症状が治ると信じて、中身を飲み下す」(加藤氏)。だが万一、この薬が悪意あるもの――ウイルスなどの悪意あるコードだった場合、悲惨な結果が待ち受けることになる。また、たとえ悪意がないとしても、バグなどのトラブルを避けることはできない。

 SoftwarePotはこういった状況を改善するために開発されたものだ。加藤氏は、「花を鉢植え(ポット)に入れて流通させるのと同じように、ソフトウェアもポットに入れて流通させよう、というアイデアだ」と表現している。

 この仕組みでは、ソフトウェアは「ポット」と呼ばれる仮想実行環境/仮想ファイルシステムの中にパッケージングされた形で配布される。ポットの中には、バイナリコードだけでなくインタープリタを含めることも可能だ。

 万一ポットの中に悪意あるコードが含まれていたとしても、その実行は仮想ファイルシステムの中に封じ込められ、ローカルシステムにまで被害を及ぼすことはない。逆に言えば、ポット内のアプリケーションからは、ポット内の仮想的な世界がすべてであって、そこから外のローカルシステムに出ることはできない。ポット内のアプリケーションやプロセスがカーネルに直接アクセスすることはなく、いったんチェックを受けた上で実行されることになる。

 これはちょうど、Javaにおけるサンドボックスの仕組みとよく似ていると言えるだろう。ただSoftwarePotの場合は、受け手/実行者側に用意されたポリシーファイルとモニタを用いて、ポット内で実行されるアプリケーションの挙動を監視し、ポリシーに違反しない範囲でローカルリソース(内部資源)へのマッピングを行う点に特徴がある。実行を隔離するだけでなく、ポリシーの制御つきで資源の共有を可能にしていること、挙動のカスタマイズが可能なことなどが特徴と言えそうだ。

 SoftwarePotは既に、文部科学省の科学研究補助金特定領域研究の成果の1つであるAnZenMailで、添付ファイルを安全に実行する、つまりクリックしてもウイルスに感染しないような仮想実行環境としても実装されている。加藤氏はさらに、グリッドによる分散計算やホスティング、PDAといったさまざまな環境での応用を検討しているという。

 SoftwarePotは実際には、SolarisやRedHat Linuxで動作するミドルウェアの形で提供される。利用に当たって、OSやアプリケーションに変更を加える必要はないということだ。加藤氏は近日中に、Web上でSoftwarePotを公開する予定だとした。

関連記事
▼MS、国内6大学に対しセキュリティ研究目的のソースコード開示へ

関連リンク
▼日本高信頼システム研究所
▼SoftwarePot

[高橋睦美,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.