TOP比較データ> LIDSとは
個人情報保護法から見るセキュアOSの必要性
個人情報保護法から見るセキュアOSの必要性

第3回:セキュアOS紹介(1)
〜 MIRACLE HiZARDとLIDS
著者: ミラクル・リナックス  遠藤 洋輔
日本SELinuxユーザ会 LIDS支部  面 和毅   2005/3/9
前のページ  1  2  3   4  次のページ
LIDSとは

   次に、LIDS(Linux Intrusion Detection System)の紹介を行います。LIDSは、Linux上でのroot権限に制限を加える、フリーのセキュアOSの一種です。

   LIDSは、1999年にLinux Kernel 2.2用のものが、Huagang Xie氏とPhilippe Biondi氏によってリリースされ、その後、Xie氏を中心にコミュニティベースで開発が進められています。
LIDSの特徴

   LIDSの特徴を説明するのであれば、次の一言に尽きるでしょう。

   
「とにかく、設定が直感的である」

   その理由は、LIDSとその他のセキュアOSとの違いにも繋がっています。

   LIDSでは、他のセキュアOS製品のように「ロール」を用いたユーザごとの権限付与などを考慮していません。これは、LIDSがもともと「rootの強大な権限を分割して削減していこう」ということを主目的に生まれたものだからです。

   そのため、LIDSでは「/etcディレクトリ以下はシステム全体で書き込み禁止である」というように権限を与えていきます。つまり、rootを含むユーザすべてに対して、ファイル・ディレクトリへの絶対的な制限をかけていくことになります。

   LIDSで与えられたアクセス権は、Linuxの伝統的なrwxアクセス権の次に参照されます。つまり、LIDSを導入したシステム上でファイル・ディレクトリにアクセスを行った際には、通常のrwxでのアクセス権チェックをへて、そこで承認されたもののみが、LIDSでのアクセス権をチェックされることになります。

   また、LIDSでは「あるプロセスには、このような権限のみを与える」という最小特権の付与を行い、プロセスに対して制限をかけていきます。この設定方法も非常に直感的になっています。


ファイルに対するアクセス権

   LIDSではファイル・ディレクトリに対して、以下の4つのアクセス権を付与することができます。

  • DENY(拒否)
  • READONLY(読み込みのみ)
  • APPEND(追記可能)
  • WRITE(書き込み可能)

   「DENY(拒否)」というアクセス権を与えられたファイル・ディレクトリにはアクセスすることができなくなります。lsコマンドでディレクトリの中を見ようとしても、「アクセス不可」である旨のログが表示されるだけになります。

   「READONLY(読み込みのみ)」のアクセス権を与えられたファイル・ディレクトリに関しては、読み込みのみが許可されます。

   「APPEND(追記可能)」のアクセス権を与えられたファイル・ディレクトリに関しては、読み込みと追記のみが許可されます。ファイルの変更などは許可されません。

   「WRITE(書き込み可能)」のアクセス権を与えられたファイル・ディレクトリに関しては、読み込みと追記、及び書き込みが許可されます。この場合は、LIDSで制限をかけていない場合と同じになります。


プロセスに対するケーパビリティ

   プロセスに対しての特権の制御に関しては、LIDSではLinuxケーパビリティ(Linux capability)を用いています。Linuxケーパビリティとは、通常のLinux上の特権を29種類に細分割したものになります。このケーパビリティという考え方は、LinuxではKernel 2.4から標準で組み込まれていたものですが、LIDSでは標準のLinuxの場合よりも使いやすい形で、プロセスのケーパビリティをコントロールすることができます。

   例えばLIDS導入以前の通常のLinuxでは、1024番以下のポートをプロセスに使用させるためには特権を付与しなくてはなりませんでした。そのため、システム時間の変更やネットワーク操作などのその他の特権も含めて、すべての権限をそのプロセスに付与していた形になっていました。したがって、そのプロセスの脆弱性を突かれた場合には、それらの特権が悪用されてしまいます。

   しかし、LIDSではCAP_NET_BIND_SERVICEというケーパビリティのみをそのプロセスに与えることにより、1024番以下のポートを使用させて、その他の権限を与えないということが可能になりました。そのため攻撃者がそのプロセスの脆弱性を突いたとしても、CAP_NET_BIND_SERVICEというケーパビリティしか持っていないため、ネットワーク設定などその他の特権を悪用することができなくなっています。


ACLの設定方法

   LIDSでは、すべてのACL(Access Control List)を「lidsconf」というコマンドを用いて設定します。構文は次のようになります。

lidsconf -A -s 「Subject」 -o 「Object」 -j 「権限」

   「Subject」はそのままの意味で主語のこと、「Object」とは目的語の意味になり、「"Subject"は、"Object"に対して、"権限"ができる」という意味になります。

   実際に設定をする場合、「Subject」にはプログラムが入り、「Object」には通常、ファイル・ディレクトリやケーパビリティが入ります。「Subject」を省略した場合には、そのファイル・ディレクトリに対するデフォルトの権限が設定されます。

前のページ  1  2  3   4  次のページ


ミラクル・リナックス
著者プロフィール
ミラクル・リナックス株式会社  遠藤 洋輔
某SIベンダーにて、Linuxやネットワーク、セキュリティ関連の構築・運用を担当後、2003年よりミラクル・リナックス社に在席。現在、MIRACLE HiZARDの検証からサポート、営業支援などを担当。


日本SELinuxユーザ会
著者プロフィール
日本SELinuxユーザ会 LIDS支部  面 和毅
1997年よりサーバ構築及びセキュリティ全般を扱う仕事に従事し、Linuxを触り始める。現在LIDSの布教活動に力を入れており、SELinuxユーザ会内でLIDS支部を立ち上げている。活動として、LIDS関連文書の日本語化と、LIDSを用いたシステム構築の紹介を行っている。


INDEX
第3回:セキュアOS紹介(1)〜 MIRACLE HiZARDとLIDS
  はじめに
  役割ベースのアクセス制御
LIDSとは
  ファイルに対するアクセス権