2006年3月20日に公開されたFedora Core 5には,大幅に機能刷新されたSELinuxが組み込まれた。本講座では,Fedora Core 5でのSELinuxの機能や使い方を,これまでSELinuxを使ったことがない人に向けて,分かりやすく解説していく。第2回は,SELinux関連の開発状況を紹介する。

 今回は,SELinuxの開発状況,特にFedora Core 5の公開に向けた開発に焦点を当てて紹介する。また,2006年3月初頭に米国で開催された「SELinux Symposium/Developer Summit」についても概要を報告する(末尾の囲み記事「ポリシー開発用のツールや技法が焦点に」を参照)。

Linuxに組み込まれて注目される

 最初に,SELinuxがどのような経緯で開発されてきたのかを紹介しよう。2000年12月22日に米NSA(National Security Agency=米国国家安全保障局, http://www.nsa.gov/selinux)により,GNU GPL(General Public License)で公開されたのが始まりだ*1

 この最初のバージョンは,NSAを中心に米Secure Computing社,米政府向けの調査研究に関する非営利団体MITREなどにより開発された。この時点で,既に基本機能は実装されていたものの,非常に使いにくいものだった。SELinuxを使うには,「カーネルの再コンパイルが必要」「アプリケーション・ソフトの修正が必要」「ポリシーがほとんど用意されていない」などの障害を乗り越えなければならなかったからだ。そのため,公開後しばらくは,NSAの開発者を含む数人がひっそりと開発していたような状況だった。ユーザーも研究者や一部のマニアに限られていたようだ。

 SELinuxが一躍脚光を浴びたのは,Linuxカーネル本体(当時は開発版のバージョン2.5)に取り込まれた2003年8月である。これをきっかけに,一気にLinuxディストリビューションでの採用が進んだ。

本体とポリシー別々にメンテナが存在

 現在,SELinuxの開発は,NSA,米Tresys Technology社(以下,Tresys),米RedHat社を中心に行われている(図1)。

図1●SELinuxの開発体制
図1●SELinuxの開発体制
[画像のクリックで拡大表示]

 オープンソース・ソフトの開発は一般に,「メンテナ」と呼ばれるソース・コードの管理人が,重要な存在になる。メンテナが新たに取り込む機能を決めることが多いためだ。

 SELinuxのソース・コードについては,「SELinuxのプログラム本体(以下,SELinux本体)」と「(設定ファイルの役割を担う)ポリシー・ファイル」が別々に管理されている*2。SELinux本体のメンテナは,NSAだ。一方,ポリシー・ファイルのメンテナは,Tresysである。

 Tresys*3は,NSAのすぐ近く(米国メリーランド州)にある企業で,従来からNSAと密接に連携しながらSELinuxを開発してきた。その功績もあり,2005年後半からポリシーの管理を担当している。

開発プロセスの詳細

 SELinuxの開発プロセスを,図1の(1)から(4)に沿って見ていこう。

 (1)開発活動の中心は,NSAのメーリング・リスト(http://www.nsa.gov/selinux)である。ほとんどの議論はこのメーリング・リストを通じて行われる。また,開発者は,パッチや新機能のコードをこのメーリング・リストに投稿する*4。SELinuxの最新動向を注視したい場合は,このメーリング・リストへの加入が不可欠だ。

 (2)メンテナは,メーリング・リストに投稿された新機能やパッチを取り込むか否かを決定する。取り込む場合は,投稿に対して返信がある。

 (3)SELinuxの実験台として使われているディストリビューションは,Fedora Coreである。RedHat社の開発者たちがFedora Coreに最新のSELinuxを取り込んで試験しているわけだ。アップデートは頻繁に行われており,Fedora Coreには,常に最新のSELinuxが取り込まれている。そのため,最新のFedora Coreを動かせば,最新のSELinuxを試せる。

 (4)Fedora Coreユーザーから,SELinuxコミュニティへのフィードバックとして利用されるのが,fedora-selinuxメーリング・リストだ*5。Fedora CoreのSELinuxに特化した議論や質問が投稿される。また,開発者達の情報交換,成果発表の場として,2005年から年に1回開催されているのが,
「SELinux Symposium(http://www.selinuxsymposium.org/)」である。

 さらに、SELinuxに関するニュースを集約することを目的に,サイト「SELINUX NEWS」(http://selinuxnews.org/)も設立されている。メーリング・リストを追いきれない場合はこちらを見るとよいだろう。

国内の開発動向

 これまで紹介してきたように,SELinuxの開発は米国企業を中心に行われている。日本企業は,全般的には,SELinuxそのものの開発よりも,ユーザー教育やシステム構築といったビジネス面に注力していることが多いようだ。とはいえ,「ツール」「侵入検知機能の拡張」「パフォーマンスの向上」のそれぞれに関しての開発は国内でも行われている。

●ツールの開発

 日立ソフトウェアエンジニアリング(以下,日立ソフト)は,SELinuxをより簡単に使えるよう,ツール類を開発して公開している。具体的には,「SELinux/Aid」および「SELinux Policy Editor」というツールを開発・公開した*6。現在は,SELinux Policy Editorの開発が継続中である。

 SELinux Policy Editorは,ポリシーの設定要素の数を減らすことで,ポリシーの複雑さを根本的に解消するツールである。SELinux Policy Editor Project*7というオープンなプロジェクトにて,筆者を中心に開発が進んでいる。

●侵入検知機能の拡張

 NTTデータは,SELinuxで侵入検知を行うための機能拡張に取り組んでおり,その成果を公開している*8

●パフォーマンスの向上

 NECは,複数CPU環境でのSELinuxの処理性能を向上するためのパッチを開発,既にSELinux本体に取り込まれている。

商用ディストリでの採用動向

 SELinuxは,フリーのディストリビューションであるFedora Coreベースで開発が進んでいるが,ビジネスでSELinuxを活用する場合は,商用ディストリビューションでのサポートが重要だ。

 商用ディストリビューションでのSELinuxの採用動向を表1に示す。いずれのディストリビューションも,Fedora Core 3に収録されているSELinuxをベースにしているが,次のように,それぞれ特徴がある。

表1●主な商用ディストリビューションでの対応状況
表1●主な商用ディストリビューションでの対応状況
[画像のクリックで拡大表示]

●Red Hat Enterprise Linuxの状況

 SELinuxは,Red Hat Enterprise Linux 4から組み込まれ,デフォルト(初期設定)で有効になっている。Red Hat Enterprise Linuxは,Fedora Coreが土台(ベース)になっており, SELinuxの主な開発者たちが関わっていることから,最もSELinux対応が進んでいる商用ディストリビューションといえる。そのポリシー・ファイルには, 設定が緩い「targetedポリシー」が使われている。

●SUSE Linuxの状況

 SELinuxは,SUSE Linuxには組み込まれていない。米Novell社は一時期,SELinuxを組み込もうとしていたが,結局は米Immunix社を買収し,同社のセキュアOS「AppArmor」をSUSE Linuxに取り込んでいる。

 AppArmorは,セキュリティの強度はSELinuxほどではないものの,使いやすいのが特徴だ(p.13のLinuxレポート「セキュア・ソフト『AppArmor』が無償化,SELinuxより設定が簡単」を参照)。AppArmorはオープンソース化され,openSUSE.orgのサイトで公開されている*9。SELinux陣営もAppArmorを意識しており,どちらが使えるかという,論争が始まりつつある。今後の動向が注目される。

●Turbolinuxの状況

 SELinuxは,Turbolinux10 Serverから組み込まれている。ただし,デフォルトは無効なので,コマンドを実行して有効にする必要がある*10。ポリシー・ファイルは,設定が厳しい「strictポリシー」が使われている。また,ターボリナックスは,日本高信頼システムと提携し,トレーニング・コースの提供も行っている*11

●MIRACLE LINUXの状況

 SELinuxは,MIRACLE LINUX 4.0から組み込まれている。デフォルトでは無効になっているが,「セキュリティレベルの設定ツール」を用いて有効にできる。また,「Developer CD」に設定ツールのSELinux Policy Editorを同こんしている。