Security-Enhanced Linux(SELinux):Linuxシステムの強制アクセス制御
SELinuxは、LinuxなどのUnix系システムでラベルベースの強制アクセス制御(MAC)を実装するカーネルおよびユーザー空間の拡張機能群であり、プログラムの隔離とリソース保護に用いられる。
概要
Security-Enhanced Linux(SELinux)は、システムにきめ細かなラベルベースのアクセス制御を加える、カーネルの変更とユーザー空間ツールの集合である。従来の裁量的なアクセス許可だけに依存するのではなく、SELinuxは強制アクセス制御(MAC)の規則を適用し、プロセスが実行できる操作や、アクセスできるファイル、ソケット、その他のオブジェクトを制限する。SELinuxはLinux Security Modulesフレームワークを通じてLinux カーネルに統合されており、LSMインターフェースを採用する多くのUnix系オペレーティングシステムで利用できる。これはLinuxディストリビューションそのものではなく、選択肢または構成要素である。
画像ギャラリー
3 画像主な特性
SELinuxは、主体であるプロセスと、ファイル、ポート、IPCなどの客体にセキュリティコンテキスト(ラベル)を割り当てる。ポリシーは、どのコンテキスト同士が、どの操作の下で相互作用できるかを定義する。主な概念は次のとおりである。
- タイプ:プロセスとリソース間のアクセスを許可または拒否するための主要な仕組み。
- ロールとユーザー:権限をグループ化し、ログインまたはロールが利用できるタイプを制限する上位レベルの構成要素。
- モード:enforcing(許可されない操作を拒否)、permissive(違反を記録するが許可)、disabled。
- ブール値とモジュール:ポリシー全体を再コンパイルせずに動作を調整する、実行時の切り替え設定とロード可能なポリシー部品。
実際の動作
管理者はファイルなどのオブジェクトにラベルを付け、許可する相互作用を記述したポリシーを読み込む。プロセスが操作を行うと、LSMフックが要求をポリシーに照らして評価し、許可または遮断する。設定やトラブルシューティングには一般的なツールが役立つ。setenforceはモードの変更に、semanageとsemoduleはポリシー管理に使用される。また、拒否の診断には監査ログが用いられ、多くの場合auditdがこれを処理する。
歴史と開発
SELinuxはLinuxに強制アクセス制御を導入するプロジェクトとして始まり、複数の組織からの貢献を得て開発された。ポリシーを多数のカーネルフックで適用できるよう、LSMインフラストラクチャを介してメインラインカーネルに統合された。時を経て、ディストリビューションやベンダーは管理を容易にするポリシー集とユーザー空間ユーティリティを開発し、一般的なサーバープログラム向けに整理された対象限定のポリシーを提供してきた。
用途、例、重要性
SELinuxは、ネットワークに公開されるサービス(Webサーバー、データベース、メールデーモン)の隔離、バックグラウンドジョブの権限制限、脆弱性の影響軽減に一般的に使用される。また、コンテナ化されたプロセスがアクセスできる対象を制限することで、コンテナおよび仮想化のセキュリティにも役割を果たす。侵害されたサービスが無関係なシステム領域へアクセスすることを防げるため、管理者は強化やコンプライアンスの要件を満たす目的で有効にすることが多い。
相違点と実用上の注意
パスベースのシステムとは異なり、SELinuxはオブジェクトラベルを使用する。このため、ファイル名の変更や、特定の種類の競合状態に対しても、ポリシー判断は堅牢である。これは、ファイルシステムのパスを使用する場合がある他のLinuxアクセス制御システムとは対照的である。SELinuxを学ぶには、ポリシーの構造を理解し、一般的なトラブルシューティング手順を実践する必要がある。稼働中のシステムにポリシーを適応させる際には、permissiveモードと監査ログが不可欠である。
実装と管理については、Linuxのツールチェーンとの連携を説明する文書、強制アクセス制御(MAC)の詳細、およびLinux Security Modulesフレームワークのガイドを参照できる。カーネルとの統合や、さまざまなUnix系オペレーティングシステムでのSELinux利用に関するコミュニティおよびベンダーの資料も広く提供されている。ポリシーのパッケージ化はディストリビューションごとに異なり、単一のディストリビューションに結び付くものではない点に注意が必要である。
関連項目
著者
AlegsaOnline.com Security-Enhanced Linux(SELinux):Linuxシステムの強制アクセス制御 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/88499