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


日立ソフトの中村氏が語る、SELinuxのメリットと限界

「第1回セキュアOSカンファレンス」に日立ソフトウェアエンジニアリングの中村雄一氏が登場。オープンソースのセキュアOS「SELinux」のメリットと限界について語った。

 ファイアウォールや不正侵入検知システムをはじめとするこれまでのセキュリティ対策の多くは、侵入を防ぎ、攻撃をブロックすることに力が入れられていた。だがそういった策を講じても、セキュリティ侵害を完全になくすことは不可能だ。そこで、ある程度侵入を受けることを踏まえ、それ以上の悪用や被害拡大を防ぐとともに、証拠を残して後々の捜査に役立てることを目的にしたアプローチが登場してきた。いわゆるセキュアOSもその一種だ。

 4月9日、セキュアOSとさまざまな実装について紹介する「第1回セキュアOSカンファレンス」が都内で開催された。この中に、日立ソフトウェアエンジニアリング 技術開発本部研究部の中村雄一氏が登場。オープンソースのセキュアOSであるSELinux(Security-Enhanced Linux)について講演し、SELinuxのメリットと限界について語った。

権限を分割して制御

 SELinuxは、Linuxカーネルに高いセキュリティ機能を追加する拡張モジュールの総称だ。米NSA主導のプロジェクトによって開発が進められており、カンファレンスの直前にも最新バージョンがリリースされたばかりだ。SELinuxはまた、昨年12月にリリースされたLinuxの2.6カーネルにマージされたほか、Fedora Core 2にも取り込まれている。

 セキュアOSには他にもいくつか選択肢はある。だが中村氏は、「オープンソースであることを重視するならば、(SELinuxが)ほぼ唯一の選択肢」だという。

 SELinuxは、やはりLinuxカーネルのセキュリティ機能拡張モジュールであるLSM(Linux Security Module)と連携しながら、強固なセキュリティ機能を実現する。そのキモを一言で言い表せば、「分割して統治する」ことにあるだろう。

 一般のOSでは、ひとたびroot権限を取得すればどんな操作でも行えるが、SELinux(およびセキュアOS全般)ではプロセスごと、ユーザーごとに行える操作を強制的に制御。あらかじめ定められたセキュリティポリシーに沿ってチェックを行い、これに違反する操作は実行できないようになっている。

 中村氏はこういったセキュリティ制御を実現する具体的な仕組みについて説明した。1つは、セキュアOS全般に共通する強制アクセス制御(Mandatory Access Control:MAC)である。これにより、ユーザーが自分で勝手に設定を変更し、セキュリティチェックを回避するといった事態を不可能にする。

 2つめはプロセスごとのアクセス制御を実現するType Enforcement(TE)である。これにより、プロセスごとに利用可能なリソースを定め、それ以外の重要なファイル――システムファイルなど――へのアクセスを行えないようにする。しかもこの設定は、「デフォルトではすべて拒否」となっており、明示的に許可しない限り権限は得られない。

 さらに、「ロールベースのアクセス制御」(RBAC)によって、管理者権限を分割。root権限が設定されている場合、ひとたび奪取されるとシステム全体が乗っ取られる恐れがあるが、RBACにおいてはWebの管理、メーリングリストの管理など、用途ごとに管理権限を分割し、万一悪用された場合の被害を最小限に抑える。また攻撃手法の中には、まず一般ユーザーとしてターゲットに入り込み、そこから権限昇格を狙うやり方があるが、SELinuxではあらかじめ権限変化(ドメイン遷移)の道筋を定めておき、それから外れた余計な権限昇格は許可しない仕組みになっている。

 また、それでもなお、ユーザーが何とかして重要なリソースへのアクセスや権限外の操作を試みようとした場合は、ログにその足跡が残される。これにより、一般ユーザーや攻撃者はもちろん、管理者についてもその行動を逐一記録、監査できる。

 SELinuxでは、こういったさまざまな機能を組み合わせることにより、たとえ侵入を受けたとしても、被害を最小限に封じ込めることが可能だという。Apache OpenSSLモジュールを狙ったSlapperワームにしても、SELinuxの場合、SSL処理のプロセスにはシェル起動やワームが送り込んだプログラムのコンパイル実行権限が与えられないため、被害はそれ以上拡大しない。

 中村氏によると、SELinux上で動作する、セキュリティホールのある10種類のアプリケーションに対し攻撃を仕掛けるといった実験の結果、「悪くてサービス停止に追い込まれる程度で、ほとんど被害はない。侵入に対して非常に強くなると言える」と述べている。

既存のセキュリティ対策との併用を

 ただ、だからといってSELinuxが万能というわけではないとも中村氏は言う。

 サービス妨害(DoS)攻撃やメールの不正中継といった、不正侵入以外の攻撃ではパケットフィルタリングを併用するしかない。また、Webアプリケーションの脆弱性を狙った攻撃など、限定された権限の中で悪用が行われた場合も防ぎがたいという。もちろん、OS(カーネル)自体の脆弱性を突かれた場合も、攻撃の難易度こそ高まるものの、完全な対処は難しくなる。結局は、パッチの適用、ファイアウォールの適切な運用など、従来からのセキュリティ対策との併用が必要だ。

 運用を視野に入れると、他の問題も気になってくる。1つは、セキュリティチェックの負荷によるパフォーマンスへの影響だ。ただ中村氏がテストしたところによると、パフォーマンスの低下は数%〜10%程度といい、「オーバヘッドは実用上問題ないレベル」という。

 また、SELinuxではきめ細かく設定を行えるがゆえに、セキュリティポリシーの設定が面倒になりがちだ。この部分も、今後の整備が待たれるところだ。なお日立ソフトウェアエンジニアリングでは今年2月に、SELinuxのセキュリティポリシー設定・監査などを行えるツール「SELinux/Aid」を公開。この問題の支援を図っているという。

関連記事
▼日立ソフトのシングルサインオンソフト「SRGate」がSELinuxに対応
▼基幹インフラ制御システムに導入されるLinux
▼世界制覇を目指すセキュアなLinux OS
▼P2Pネットワークを構築する新手のLinuxワーム

関連リンク
▼日本高信頼システム研究所
▼日立ソフトウェアエンジニアリング

[高橋睦美,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.