SELinux:使いやすさを犠牲にセキュリティを強化Linux Hacks(2/2 ページ)

» 2006年12月15日 08時00分 公開
[Mayank-Sharma,Open Tech Press]
SourceForge.JP Magazine
前のページへ 1|2       

TE(Type Enforcement)

 少し踏み込んで説明をすると、SELinuxのポリシーは実際にはTE(Type Enforcement)と呼ばれるアクセス制御方式に基づいている。TEでは"セキュリティコンテキスト"属性を使ってアクセスが決定される。SELinuxでは、ユーザー、ロール、タイプの3種類のセキュリティコンテキストが使われる。

 現在、TEでは情報開示に関する規則を含むアクセスマトリクスが使われる。これらは、異なるユーザーやプログラム(サブジェクトと呼ばれる)に、ファイル、ソケット、ネットワークホスト(オブジェクトと呼ばれる)に対する権限を各自のセキュリティコンテキストに従って許可する規則だ。例えば、Xというアプリケーション(サブジェクト)にYというファイル(オブジェクト)への書き込み(アクション)を許可するかどうかがTEで決定されるという具合だ。

 SELinuxを使用すると、一般的なシステムユーティリティの一部が変更され、-Zオプションを使ってオブジェクトやサブジェクトのセキュリティコンテキストを表示できるようになる。例えば、ls -Zでは、現在のディレクトリにあるファイルシステムオブジェクトのセキュリティコンテキストが表示され、id -Zでは、ユーザーのセキュリティコンテキストが表示される。ps -Zの表示には、現在のプロセスのセキュリティコンテキストが追加される。

 これらはポリシーファイルにどのように定義されるのだろうか。targetedポリシーの規則は次のようなものだ。


allow user_t bin_t : file {read execute getattr};

 この例では、user_tタイプのアプリケーション(サブジェクト)は、セキュリティコンテキストがbin_tタイプであるすべてのクラスファイルのオブジェクトに対して読み取り、実行、取得の属性を持つ。

 この規則は、タイプがbin_tであるファイルオブジェクトのみに適用される。タイプはbin_tだがファイルクラスではないオブジェクトや、タイプがbin_tではないファイルオブジェクトには適用されない。ややこしいかもしれないが、これによりSELinuxで使用できる制御のレベルが高くなる。

SELinuxをもっと扱いやすく

 SELinuxの紹介記事を前にも書いたが、基本は今も変わらない。ただし、ポリシーはタイヤが路面に接する場所なので、リリースのたびに少しずつ改良されている。現在のFedora Coreには、すべての主要なネットワークサービスをカバーするtargetedポリシーが付属する。さらにFC6のSELinuxでは、MLS(Multilevel Security)アクセス制御メカニズムに基づく新しいMCS(Multi-Category Security)ポリシーもサポートされた。ファイルにセキュリティラベルをつけて、機密レベルに応じてファイルを分類できる機能である。

The setroubleshoot utility setroubleshootユーティリティ

 SELinux の監査機能も改善されている。AVC(Access Vector Cache)メッセージは、アクセスが拒否されたときに生成される監査メッセージだが、FC2/FC3ではシステムログにあふれる大量の"avc: denied"メッセージの解読に多くの管理者が悩まされた。現在は、SELinux監査メッセージの解釈に役立つツールが幾つもある。

 米Tresysは、数種類のポリシー用、監査メッセージ分析用のグラフィカルツールとコマンドラインツールをSEToolsパッケージにバンドルした。また、FC6で導入されたSELinux Troubleshooterも便利なツールだ(関連記事参照)。監査ログを検索してAVCメッセージを取得する機能があり、AVCメッセージが見つかると、拒否された理由を簡潔で分かりやすい説明文にまとめ、修正方法に関するヒントと併せて通知してくれる。

 とはいえ、SELinuxのポリシーを理解し、独自のポリシーを作成するのは容易ではない。そこで、簡単に使用できて、新しいポリシーの書き方を習得する土台ともなる標準的なポリシーとして設計されたのが、referenceポリシーである。FC5では、この方式に基づくポリシーが使用される。また、SLIDEという、Eclipse SDKにプラグインされる統合開発環境(IDE)を使うと、referenceポリシーに基づいてポリシーを簡単に作成できる。

 SELinuxは、成熟した製品である。2000年12月にオープンソースコミュニティーに解放される前に、NSAは開発に数年間を費やした。いまなお、多数の個人や企業が開発に参加している。アプリケーションとデータのセキュリティに責任を負う人々は、ゼロデイアタックや粗雑に設計されたアプリケーションを相手にするときにSELinuxの堅牢性に感謝するだろう。見たところ、Red HatとTresysは、SELinuxを使いやすく、管理しやすくしようと熱心だ。RHELやFedora Coreだけでなく、Gentoo、Debian、UbuntuのユーザーもSELinuxの恩恵を受けられる。

 デスクトップコンピュータやエンタープライズコンピュータのセキュリティに関心がある人々は当然として、オペレーティングシステムのセキュリティを学習テーマとする学生にもSELinuxはうってつけだ。馴れるまでに時間はかかるが、腰を据えて取り組みむ価値がある。

 SELinuxは壮大なトピックであり、この記事はSELinuxアクセス制御の概要を説明し、サポートされる制御のレベルを明らかにすることに狙いをしぼった。さらに詳しくSELinuxを知るには、SELinux FAQを参照するか、SELinuxについて書かれた専門書に目を通すことをお奨めする。

前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ