|
||||||||||
| 前のページ 1 2 3 | ||||||||||
| ケーパビリティを設定する場合 | ||||||||||
|
ケーパビリティはlinuxカーネル2.4から採用されました。一般的な「特権(uid=0)」を約30種類の「ケーパビリティ」と呼ばれるものに分割し、それぞれをプロセスに割り当てられるようにすることで、プロセスが不要な権限を持たないようにする考え方です。 カーネル2.6では以下の表9のように分割されています。
CAP_CHOWN
CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_FSETID CAP_KILL CAP_SETGID CAP_SETUID CAP_SETPCAP CAP_LINUX_IMMUTABLE CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_ADMIN CAP_NET_RAW CAP_IPC_LOCK CAP_IPC_OWNER CAP_SYS_MODULE CAP_SYS_RAWIO CAP_SYS_CHROOT CAP_SYS_PTRACE CAP_SYS_PACCT CAP_SYS_ADMIN CAP_SYS_BOOT CAP_SYS_NICE CAP_SYS_RESOURCE CAP_SYS_TIME CAP_SYS_TTY_CONFIG CAP_MKNOD CAP_LEASE CAP_AUDIT_WRITE CAP_AUDIT_CONTROL 表9:カーネル2.6でのケーパビリティの状況 例えばhttpdにPort80番を使用させたい場合には、今までは特権ポート(1023番以下のポート)を使用するためにuid=0で動作させる必要がありました。しかしケーパビリティを活用することで、図2のように「CAP_NET_BIND_SERVICE」というケーパビリティを与えるだけでよくなります。 ![]() 図2:ケーパビリティを付与した例 このようにプログラムにケーパビリティを設定する場合、通常のLinuxではlibcapパッケージに含まれる「getpcap/setpcap」コマンドを使用します。しかしこのコマンドは使用方法が意外に面倒なことがあります。それに比べてLIDSでは以下のコマンドを実行するだけで済むため、非常に直観的にプロセスにケーパビリティを割り当てることができます。
lidsconf -A -s /usr/sbin/httpd -o CAP_NET_BIND_SERVICE 80 -j GRANT
|
||||||||||
| 最新の動向/開発状況と将来像 | ||||||||||
|
最初の「特徴」部分でも述べましたが、LIDSは昨年から一時開発が停滞し(LIDSは死んだという話も出たぐらい)、開発/活動が活発でないコミュニティとみられていました。 2006年の「LSM不要論」の際には「LSMを用いて実装しているので、LIDSをカーネルのメインラインに統合しよう」という動きも出ていたくらいだったのですが、停滞のために初期(1999年頃)からLIDSを使用していたユーザも、離れていってしまいました。 しかし、今年の5月に入って最新のカーネル2.6.21に対応したバージョンが公開され、開発が再開されています。なお今回のバージョンでは、筆者自身がメインで開発を行っています。 最新バージョンでは以下のような変更・追加を行っています。
表10:最新バージョンでの変更・追加点 これによって、最新のカーネルでも旧来のLIDSの機能を使用できるようになりました。 また、今後はTDE/TPE/SandboxingやNF_MARKなど、ネットワークまわりの機能をLIDS-2系列に実装し、年内にlids-2.2.3をリリースしたいと考えています。このなかでもNF_MARKのアイデアは面白く、これを使用することによって同じポート番号を使用するプログラムでも異なったroutingを書けるようになります。 図3はネットワークの負荷分散のために、MF_MARKを使ってPort80宛にアクセスするFireFoxと、パッケージ管理ツールのaptコマンドで、それぞれで違うルータを経由する例を解説したものです。 ![]() 図3:MF_MARKの利用例 また、以前のバージョンで実装していた、プロセス間通信やメモリまわりの制御も再実装していこうと考えています。 このように、LIDSは「単なるセキュアOS」というよりも、「他のツール類(iptablesなど)と連係する、セキュリティツール」というスタンスをとっています。ここで紹介した以外にもいろいろアイデアをだし、それを実装するといった形で開発が進められています。 皆様もLIDSを使用してみて、コミュニティに「このような実装は面白いよね」とアイデアをだしていただければ幸いです。 |
||||||||||
|
前のページ 1 2 3 |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||



