セキュアOS(SELinux入門,LIDS入門) 目次

 セキュアOSとは,「セキュリティに関する機能を強化したOS」を指す。主な強化点は次の2点である。

 一つは,アクセス制御機能。セキュアOSでは,Linuxのパーミッション・チェックの仕組みを大幅に強化するなどして,ユーザーやプロセスごとに必要最小限の権限のみを与えられるようになっている。この権限の細分化により,ある権限が乗っ取られた場合のリスクを大幅に低くできる。

 もう一つは,root権限(ルート権限,管理者権限)の撤廃。セキュアOSでは,そもそもroot権限が存在しない,SUIDプログラムによる権限昇格が行えない,任意アクセス制御が行えないというように,パーミッション・チェック以外の「Linux OSの弱点」も解消されている。

 こうしたことから,「強制アクセス制御」と「最小特権」の二つの機能を装備することが,セキュアOSの必須条件とされる。

 ここでは,Linuxで利用できる,代表的なフリーのセキュアOS「SELinux」と「LIDS」を解説する。

セキュアOS SELinux入門
【セキュアOS SELinux入門】第1回 セキュアOSが必要な理由 [2004/04/26]
 ウイルスのまん延や企業情報の漏えいなど,サーバー・システムへの不正侵入はすでに社会問題になっている。こうした不正侵入に対処する手段として,セキュアOSが注目を集めている。特に,オープンソースで開発・提供されている「SELinux」は,主要ディストリビューションで標準採用されつつあることなどから,今後の急速な普及が見込まれる。本連載では,SELinuxの機能と,Fedora Core 2でSELinuxを使う方法を順次紹介していく。
【セキュアOS SELinux入門】第2回 ユーザーやプロセスの権限を厳格に管理 [2004/05/17]
 SELinuxは,米国家安全保障局(NSA)がGNU GPLで配布している,オープンソースのセキュアOSである。Linuxディストリビューションの「Fedora Core 2」にはSELinuxが取り込まれているため,Fedora Core 2を使えば簡単にSELinuxを使用できる。しかし,SELinuxの機能をきちんと理解し,正しい設定を施してから使用しないと,SELinuxの機能が無駄になりかねない。今回は,MAC(アクセス制御の徹底),TE(プロセスに最小限の権限を付与),ドメイン遷移(権限の付与と昇格防止),RBAC(ユーザーに最小限の権限を付与)など,SELinuxの機能を解説する。
【セキュアOS SELinux入門】第3回 Fedora Core 2をインストールしてSELinuxを利用する [2004/06/01]
 今回から,最新ディストリビューション「Fedora Core 2」でのSELinuxの使い方を解説していく。Fedora Core 2では,SELinuxが標準で組み込まれた上,SELinuxの動作を管理するポリシー・ファイルも整備されており,比較的簡単にSELinuxの機能が利用できるようになった。  Fedora Core 2では,カーネル2.6が採用されたと同時に,LSM(Linux Security Modules)に対応したSELinuxのカーネル・モジュールやポリシー・ファイルが組み込まれた。そのため,次に紹介する手順でFedora Core 2を有効にするだけでSELinuxの機能が利用できる。
【セキュアOS SELinux入門】第4回 SELinuxの基本操作方法をマスターする [2004/06/15]
 SELinuxの初回起動時には,ファイルのタイプがうまく付与されておらず,X Window Systemが起動しないなどの不具合が生じる場合がある。そのため,前回の手順でSELinuxを有効にした後,ファイルのタイプを付与し直す必要がある。Fedora Core 2でSELinuxを有効にすると,通常のパーミッション・チェックに加えて,SELinux独自のアクセス制御機能が動作する。具体的には,プロセスに最小限の権限を割り当てるための機能「TE」と,ユーザーに最小限の権限を割り当てるための機能「RBAC」が動作する。SELinuxが有効になったシステムでは,これらの機能を反映して,ログイン方法などが通常のシステムと多少異なる。今回はSELinuxの基本操作方法を解説する。
【セキュアOS SELinux入門】第5回 設定に関する基礎知識をマスターする [2004/06/29]
 高機能なセキュアOSを使用していても,その設定が不十分だったら意味がない。セキュリティ管理者にとっては,きちんとした設定を施すことがシステムの安全性を確保するための第一歩となる。SELinuxを導入したシステムのTEやRBACの動作は,「ポリシー・ファイル」と呼ばれる設定ファイル群の内容で決まるため,ポリシー・ファイルの作成が設定のカギを握る。今回は,SELinuxを設定するときに必要な基礎知識を説明する。
【セキュアOS SELinux入門】第6回 最も簡単な設定方法 [2004/07/13]
 Fedora Core 2のSELinuxでは,主要なサーバー・アプリケーションに関する設定があらかじめ用意されているものの,デフォルト(初期設定)では権限の設定が不十分なことから,きちんと動作しないアプリケーションがある。これに対処するには,ユーザーが設定を追加する必要がある。今回は,初期設定が不十分なアプリケーションを動作させるための,最も簡単な設定追加方法を紹介する。
【セキュアOS SELinux入門】第7回 SELinuxの限界と留意点 [2004/07/27]
 SELinuxを使うことによりシステムを格段に安全に運用できるものの,100%の安全性を確保できるわけではない。セキュリティ担当者は,SELinuxの限界をきちんと把握した上で,システム全体の堅ろう性を確立する必要がある。今回は,SELinuxの限界を踏まえた上で,これまで紹介した方法よりも安全に設定できる方法を紹介する。
【セキュアOS SELinux入門】最終回 SELinuxとLIDSの機能・性能を比較する [2004/08/17]
 今回は,ITProオープンソース・サイト(当サイト)で紹介している2種類のセキュアOS「SELinux」と「LIDS」の機能・性能の違いを解説する。「Linuxシステムのアクセス制御機能を強化する」という目的は同じだが,アクセス制御のきめ細かさや設定の簡単さなどでは大きな違いがある。システムに適したセキュアOSを導入するために,両セキュアOSの違いを的確に把握しておこう。


セキュアOS LIDS入門
【セキュアOS LIDS入門】 第1回 ワームや侵入者を強制アクセス制御で封じ込める [2004/05/10]
 オープンソースのセキュアOS「LIDS(Linux Intruder Detection System)」の活用方法を解説する。LIDSは,比較的簡単な設定作業によりきめ細かなアクセス制御を実現できることから,セキュアOSに不慣れなユーザーにも使いやすいという特徴を持つ。連載では,LIDSの機能やWebサーバー構築を例にした具体的な設定方法を解説する。
【セキュアOS LIDS入門】 第2回 「アクセス制御リスト」で動作をきめ細かく制限 [2004/05/24]
 LIDSでは,通常のLinuxに比べ,格段にきめ細かなアクセス制御が行える。これは,「アクセス制御リスト(ACL=Access Control List)」と呼ぶ仕組みを用いて実現されている。 LIDSのアクセス制御リストは,(1)ファイルに対するアクセス権限と,(2)プロセスに対する動作権限を,リスト形式で設定したものである。ACLを設定する際は,システム全体に大まかな「デフォルト・ポリシー」を適用し,それから特定のプロセスやファイルごとのポリシーを適用するという手順になる。
【セキュアOS LIDS入門】第3回 動作状態に応じてアクセス制御の厳密さを調節 [2004/06/08]
 カーネル2.6用に開発・提供されているLIDS 2系列では,システムが起動してから停止するまでを3つの状態(ステート)に分け,ステートごとにACLの設定が行える。これが「ステートフルACL」である。システムが起動中の「BOOTステート」,稼働中の「POSTBOOTステート」,停止中の「SHUTDOWNステート」ごとにACLの設定が行える。このようにLIDS 2系列では,システムの動作状態に適したACLを柔軟に設定できるようになった。
【セキュアOS LIDS入門】第4回 Fedora Core 2にLIDSをインストールする [2004/06/22]
 最新ディストリビューション「Fedora Core 2」で動作しているシステムに,LIDSをインストールする方法を紹介する。この例では,サーバー用途のシステムにLIDSを導入するものとする。具体的には,Linuxカーネルを提供しているFTPサイトから入手したカーネルでシステムが立ち上がるようにしておき,その後でLIDSのパッチを適用する。
【セキュアOS LIDS入門】第5回 Apacheを導入しながらLIDSの設定作業を理解する [2004/07/06]
 今回は,LIDSの設定作業の全体像を把握するために,設定関連の基礎知識と,Apache HTTP Server(以下,Apache)を動作させるときの簡単な設定手順を紹介する。ここではSSHとsyslogdの設定を済ませてから,言い換えれば安全に設定作業が行えるようにしてから,Apacheを設定する。アクセス・コントロール・リスト(ACL)の作成は著者が用意したスクリプトを用いて行う。
【セキュアOS LIDS入門】第6回 lidsadmコマンドとlidsconfコマンドの使い方 [2004/07/20]
 前回は設定関連の基礎知識と,SSHやsyslogd,Apache HTTP Server(以下,Apache)をLIDSに対応させて動作させるときの簡単な設定手順を紹介した。今回は,前回の設定内容と設定用スクリプトを参照しながら,LIDSを管理するための「lidsadm」コマンドと,アクセス・コントロール・リスト(以下,ACL)を設定するための「lidsconf」コマンドの使い方を解説する。
【セキュアOS LIDS入門】第7回 アクセス制御リスト(ACL)の実体と設定方法 [2004/08/03]
 LIDSで実現できるきめ細かなアクセス制御のカギを握るのが,「アクセス制御リスト(ACL=Access Control List)」である。ACLは,アクセス制御対象となるファイルやケーパビリティ(これらを「Object」と呼ぶ)や,制限されたObjectに対してアクセスしようとするプログラム(これを「Subject」と呼ぶ)の関係を定義したものだ。今回は,ACLの設定方法を具体的に説明する。
【セキュアOS LIDS入門】最終回 アクセス制御リストの継承の仕組みとより簡単な設定方法 [2004/08/24]
 今回は,アクセス制御リスト(以下,ACL)が子プロセスに継承される仕組みと,ACLをより簡単に設定できるACL_DISCOVERY機能について解説する。 プログラムの動作では,プロセス(親プロセス)が異なるプロセス(子プロセス)を生成して処理する場合がある。LIDSは,こうしたプロセスのアクセス権限を管理するために,ACLの継承機能を備える。