第1回 SELinuxの出自とキソのキソ

古田 真己
サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
2005/11/25

 SELinuxのアクセス制御の基礎

 現在のSELinuxは、2.6カーネルのLSM(Linux Security Module)をベースにしたカーネルに対する拡張で、以下のような特徴があります。

  • 柔軟なセキュリティ定義
  • カーネルに統合された強固なセキュリティ
  • プログラムを修正なしで動作可能

 SELinuxの機能は、LSMを通じた各システムコールに対するフックとなっており、通常のLinuxのパーミッション処理に追加してSELinuxのアクセス制御機能が機能します。

 SELinuxでは、セキュリティコンテキストと呼ばれるラベルを、プロセス(サブジェクト:実行イメージ)とリソース(オブジェクト:アクセス対象)に対してそれぞれ付与し、その組み合わせでアクセスの可否を判断します。その結果が許可されていればアクセス可能に、そうでなければ拒否されることになります。

 Type Enforcement(TE)とは

 SELinuxのセキュリティコンテキストは次のような3つの識別子を組み合わせたものになっています。

●ユーザー識別子

 図ではrootとなっており、Linuxのユーザー(uid)に対応しているかのように見えますが、SELinux独自の定義によって【注2】、セキュリティポリシー上で定義されています。

【注2】
ちなみにFedoraのStrictポリシーでは、一般ユーザーは「user_u」というユーザー識別子となります

 Linuxシステム上のuidとのひも付けは、/bin/loginや/usr/sbin/sshd、/usr/sbin/telnetdなどを通じたシステムへのログイン時に行われます。

●ロール識別子

 後述のRBACで使用する、root(特権)権限の最小化で効果を発揮する識別子です。

●タイプ識別子

 SELinuxで最も重要な位置を占める識別子です。すべてのアクセス制御は、このType識別子の組み合わせがセキュリティポリシーで定義されているかどうかを基に決定されます。

 タイプ識別子は、オブジェクト(ファイル、ソケット、メモリ、ポートなど)においてはそのまま「タイプ」としてLinux上の拡張属性という位置付けになりますが、サブジェクト(プロセス)においては「ドメイン」と呼ばれています。

 ドメインとは、多少乱暴に表現すると、そのプロセスが持つ権限範囲ということができます。権限範囲に目的のオブジェクトのタイプが含まれるかどうかでアクセスが決定されることになります。

 また、SELinux上の各ドメインはお互いにコンパートメント化されており、ほかのドメインからの不正なアクセスを許可しないように定義されています。

2/3

Index
SELinuxの出自とキソのキソ
  Page1
SELinuxが生まれるまで
SELinuxの現在
Page2
SELinuxのアクセス制御の基礎
Type Enforcement(TE)とは
  Page3
ドメインとアクセス制御
Role Based Access Control(RBAC)とは
SELinuxを使用するメリット

Security&Trust記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間