Security-Enhanced Linux (SELinux)
Security-Enhanced
Linux(SE
Linux)は、
アメリカ国家安全保障局(NSA)によって開発された、
Linuxカーネルに強制アクセス制御(Mandatory Access Control、MAC)機能を追加するための
モジュールです。しばしば
Linuxディストリビューションの一つと誤解されることがありますが、実際にはそれとは異なります。
概要
SE
Linuxは
1992年に、NSAがFlukeという
オペレーティングシステム上でMAC機能の研究を行う過程で開発されました。この技術は、特にMulti Level Security(MLS)を用いて、セキュリティが高い
オペレーティングシステムを実現することを目的としています。MLSでは、すべてのアクセス対象(サブジェクト)に対して階層化された権限を設定し、アクセスされる対象(オブジェクト)には重要度に応じたラベルを付与することでアクセス制御を行います。ただし、柔軟な実装が求められる分、設定が複雑になってしまうというデメリットもあります。
SE
Linuxはこの課題に対処するために、Flaskというアーキテクチャを基盤に開発され、特定のセキュリティモデルに依存しない柔軟なセキュリティポリシー言語を採用しています。これにより、セキュリティポリシーと言語、そして
セキュリティチェックのメカニズムが独立して動作し、様々なニーズに適応することができるのです。SE
Linuxは
2000年12月22日に一般公開され、
2003年8月13日には
Linuxカーネル2.6の
Linux Security Modules(LSM)として統合されました。
内容
従来の
Linuxおよび
UNIX系システムにおいて、ファイルやディレクトリへのアクセス制限は、それぞれのパーミッションによって管理されていました。これらのパーミッションは、「オーナー」・「グループ」・「その他ユーザ」に対し、「読み込み」・「書き込み」・「実行」の権限を設定するものでした。しかし、これに加え、root(
スーパーユーザー)はすべての権限を持つため、一度rootのパスワードが漏れれば、システム全体が危険にさらされる事態が生じます。
SE
Linuxはこの状況を改め、各
プロセスに特定のアクセス制限を適用するType Enforcement(TE)や、rootを含む全ユーザに制約を設けるロールベースアクセス制御(RBAC)によって、権限の集中を防いでいます。
Type Enforcement (TE)
TEでは、全
プロセスに「ドメイン」というラベルを付与し、リソースには「タイプ」というラベルを与えます。このリソースには、行える操作の種類を示す「アクセス・ベクタ」も設定されます。これにより、各ドメインとタイプに対して許可された操作が、セキュリティポリシーとして規定可能となります。
ロールベースアクセス制御 (RBAC)
RBACは、いくつかのドメインを「ロール」として束ね、それをユーザに割り振る仕組みです。このロールに基づきユーザは限定されたドメインの権限のみでリソースにアクセスできるため、より細かな権限設定が可能になります。例えば、Web管理者にはWeb管理に必要なファイルのみにアクセスできる権限を付与するといったことが可能で、これにより仮にユーザパスワードが漏洩しても影響は最小限に留まるのです。
日本における普及状況
日本では、セキュリティへの関心は高まっているものの、SE
Linuxの導入実績は数少ないのが現状です。多くのシステムインテグレーターやプロバイダーは、OSインストール直後にSE
Linuxを無効にする傾向があり、そのため標準的な対応が欠如しています。これにより、
IPv6技術と同様に、SE
Linuxの専門技術者の育成が急務となっています。
関連項目
外部リンク