next up previous
次へ: LIDSのインストール 上へ: 5月勉強会発表レポート 戻る: 5月勉強会発表レポート

LIDSとは何か

Linux/Unixでは、rootアカウントは全ての権限を持っています。rootアカウントは、ファイルシステムの作成やネットワークカードの設定などを行い、ログの管理なども行います。このrootアカウントに権限が集中する事に付いての危険性は、既に誰もが認識している問題です。BufferOverfolowなどによりroot権限で悪意のプログラムなどを動作させられてしまうとシステム全体が危険に晒されてしまいます。 この危険性に対する一つの解として、LIDS(Linux Intruder Detection System)があります。これは、Kernelにパッチをあてる事により、rootアカウントにも制限を掛けて、必要なプログラムのみが必要なファイルにのみ触れるようにするものです。 LIDSを有効にしたカーネルで起動する事により、以下のような機能が使用できます。
  1. ポートスキャンの検出。これは、カーネルコンパイル時に指定するオプションですが、これを指定する事により、nmapなどからのポートスキャンをsyslogに残す事が出来ます。
  2. ファイルアクセス制限。各ファイルやディレクトリに対して、read/write/append/denyの制限を設ける事が出来ます。
  3. プロセス毎に出来る事の制限。これにより、「/usr/local/bin/httpdは、Port80のみをネットワークで使用できる」などの制限が出来ます。
  4. LKM(LinuxKernelModule)の読み込み制限。NICドライバや、ディスク、ファイルシステムなどのモジュール読み込みを、封印(seal)を行う事により制限する事が出来ます。これにより、Kernelモジュールとしてロードされてしまうタイプのトロイの木馬を防ぐ事が出来ます。
LIDSの機能の中で、ファイルアクセス制限は、カーネル起動後すぐに有効になります。プロセス毎の制限や、LKMの読み込み制限は、カーネルを封印(seal)することにより、有効になります。また、LIDSを有効にしたカーネルで起動している状態でも、lidsadm(後述)を使用して、端末をLIDSフリーセッションと呼ばれる、制限を受けない状態にすることができます。これにより、カーネルを何度も再起動する事無く、LIDSの設定を変更する事が出来ます。

Kazuki Omo 平成15年5月16日