PR

 著者は昨年春ごろまで,自宅にLinuxサーバーを設置してWebサイトを公開していた。たいしたコンテンツを公開していたわけではなかったが,会社からアクセスできたこともあり,記事内容の動作検証などでそれなりに重宝していた。

 その際に驚いたのが,自宅のLinuxサーバーに不正アクセス/侵入しようとした痕跡の多さである。例えば,ある時期には,「Code Red」ワームやらその変種やらによるアクセスのログ(履歴)が頻繁に記録され,Linuxサーバーのハード・ディスク装置が常時カラカラと音を立てて,自宅にいる夜間にはかなりうるさく感じたことを覚えている。

 著者はLinuxサーバーをインターネットに公開する以上,Webサイトに掲載されるセキュリティ関連情報に注意し,セキュリティ・パッチの適用などを実行していた。しかし,あまりに頻繁にセキュリティ情報やパッチが公開され,その都度対応を迫られることに耐え切れなくなって,Linuxサーバーの公開を止めてしまった。

 以上は,恥ずかしながら,「Linuxサーバーをちょっとインターネットに公開してみました」という体験に過ぎないが,運用管理の大変さの一端を知ることができたと感じている。さらに,「常にセキュリティ関連情報に気を配り,パッチなどが公開されたら直ちに検証し,適用する」ことを日常的に実施するのは相当難しいのではないかとも強く感じた。

セキュアOSの導入によりウイルスなどの不正侵入の被害を軽減できる

 サーバー・システムなどの運用管理の大変さを軽減できそうな技術として著者が注目しているのが,セキュアOSである。セキュアOSには,商用ソフトやフリーソフトなど多くの種類がある。特に期待しているのが,LinuxベースのフリーのセキュアOS「Security-Enhanced Linux(SELinux)」だ。

 セキュアOSの特徴は,それを用いたシステムを“完全に”乗っ取られることを回避できること。たとえ不正侵入された場合でも,システムの一部しか被害を受けずに済み,システム全体の安全性を高められる。これを実現するためにセキュアOSは,ユーザー自身やユーザーなどによって起動されるプログラムの権限(ファイルなどに対するアクセス権限や実行権限など)を非常に細かく制限あるいは分散できる仕組みを備える。

 例えば,外部に公開するサービス・プログラムの権限を制限しておくことで,万が一,不正侵入された場合の被害をそのプログラムの権限の範囲内に限定できる。言い換えれば,プログラムの権限設定時に想定した範囲内に被害をくい止められる。これにより,「プログラムの不具合を突かれて不正侵入される」→「不正侵入と同時あるいは不正侵入後にroot権限(管理者権限)を乗っ取られる」→「好き勝手にサーバー・システムを操作される」という最悪の事態が防げるわけだ。

未知の不具合への耐性が高く,パッチの適用をより慎重に行える

 セキュアOSを導入すれば,プログラムに存在し得る未知の不具合(セキュリティ・ホール)を突かれたときでも,サーバー・システムの被害を限定できる可能性が高い。

 現状では,アップデート・プログラムの適用やウイルス・チェック,ファイアウオールの設置,通信内容やログの監視,運用管理体制の強化を行うことで,不正侵入に対処することが多い。しかし,これらは主に,すでに不具合が発見されたプログラムへの対処であり,潜在的なプログラムの不具合に対しては基本的に役に立たない。そのため,プログラムの不具合が見つかるたびに,パッチの適用やウイルス定義ファイルの更新などが必要になる。

 セキュアOSを導入すれば,あるプログラムの不具合を不意に突かれて不正侵入された場合でも,そのプログラムに与えた権限の範囲内にしか被害が及ばない。管理者は,セキュアOSを導入していないときよりもシステム全体の安全性を高く保てる(重大な危険性を回避できる)ため,パッチなどを適用するまでの時間を従来よりも長く確保しやすい。その分,パッチの動作検証などをより慎重に行えるわけだ。

フリーで高機能なものの導入設定作業が煩雑なSELinux

 こうしたメリットが期待できるセキュアOSのなかでも,米国家安全保障局(NSA)が中心になって開発し,公開しているSELinuxは,フリーで使えることと,十分な機能を備えることから,Linuxの普及と相まって,これまでもそれなりに注目されていた。

 しかし,広く使われることを前提にみてみると,SELinuxには大きく分けて2つの弱点が存在する。1つは,インストールが難しいこと。SELinuxをインストールするには,LinuxカーネルにSELinux用のパッチを適用して再コンパイルする必要がある()。

注:SELinux for Japanese Usersプロジェクトがインストール作業の自動化を目的に,開発・提供しているソフトウエア・パッケージを用いれば,シェル・スクリプトを起動して質問に答えていくことにより,比較的簡単にSELinuxのインストールが行える。ただし,このソフトウエア・パッケージが対応しているLinuxディストリビューションは限られる。

 もう1つは,インストール後の設定作業が煩雑であること。SELinuxでは管理者が,非常に細かく権限を設定できる半面,数多くのテキスト・ファイルに分散した設定項目をエディタを使っていちいち編集しなければならない。導入時の設定作業が大変であると同時に,運用管理時の設定変更作業も煩雑になりがちだ。

 こうしたことからSELinuxは,ごく少数の専門家のためのセキュアOSとして捉えられがちだった。

主要ディストリビューションでの採用や支援ソフトの登場で弱点が解消へ

 扱いにくいというSELinuxの弱点は,最新のLinuxディストリビューションでの標準採用や,SELinux用の構築運用支援ソフトの登場により,解消されつつある。

 Red Hat Linuxの事実上の後継となるLinuxディストリビューション「Fedora Core」は,2004年5月3日に公開予定の最新版「Fedora Core 2」において,SELinuxを標準採用する予定だ。標準採用により,Fedora Core 2を普通にインストールするだけでSELinuxも同時にシステムに組み込まれるので,これまでのように面倒なカーネル・コンパイルを実施しなくて済む。また,米RedHat社は,2005年中に発売を予定しているLinuxディストリビューション「Red Hat Enterprise Linux」の新版で,SELinuxを標準採用する計画である。Fedora Core 2と同様に,カーネル・コンパイルを行わずにSELinuxが利用できるようになる見込みだ。

 設定作業の煩雑さを解消するために開発されたのが,SELinux用の構築運用支援ソフト「SELinux/Aid」である。SELinux/Aidは,独立行政法人情報処理推進機構(IPA)の「電子政府行政情報化事業」の委託開発として,日立ソフトウェアエンジニアリング(以下,日立ソフト)が作成し,2004年2月3日に公開したものだ。GNU GPL(General Public License)に基づいて公開されており,日立ソフトのサイトから入手できる。

 SELinux/Aidでは,グラフィカルなユーザー・インタフェースを用いてこれまでよりも容易に設定作業が行える。サーバー・システムの構築時に使えるだけでなく,サイトの運用時のログの解析などをグラフィカルな画面上で行える。テキスト・ファイル内の設定項目をエディタを使って編集していくのと比べれば,設定作業が格段に行いやすい。

扱いやすくなりつつあるSELinuxで,セキュアOSの認知が拡がることを期待

 こうした動きからSELinuxの位置付けは,「専門家のためのセキュアOS」から,「Linuxサーバー管理者のためのセキュアOS」に変わりつつあると言えるのではないか。また,Linuxに限定しなくても,サーバー管理者がセキュアOSの役割や機能を理解するための教材としてSELinuxを活用することもできるだろう。

 著者のような個人ユーザーであれば,管理が面倒になったらサーバーの公開を停止すればよい。しかし,当然ながら業務用のサーバーではそういうわけにはいかず,日々の運用管理は不可避である。扱いやすくなりつつあるSELinuxにより,これまでのセキュリティ対策と併用されながらセキュアOSの認知や導入が進み,冒頭で触れたような運用管理の大変さが少しでも軽減されたらと期待している。

 こうした思いから,「SELinux徹底ガイド」という書籍の発行に携わった。著者の方々に,セキュアOSやSELinuxの機能,具体的な効果や限界といった仕組みの説明から,構築・運用するための実践的なノウハウ,構築運用支援ソフトの利用法までを詳述していただいた。興味を持たれた方はここから詳しい内容を参照してください。

(田島 篤=日経Linux)