LIDS ACL DISCOVERY MODE FAQ version 0.2 on Auguest 5, 2003 by Huagang XIE(xie [at] www.lids.org). 1. LIDS ACL DISCOVERY MODE とは、なんですか? A: このモードでは、 LIDS は何もブロックせず、設定されているルールに 違反したアクションをレポートします。また、LIDS が通常の保護モード のときに、この違反したアクションを許可するための_RULE_ を示して くれます。 2. このモードでは、システムは保護されていますか? A: いいえ。このモードでは、"#lidsadm -S -- -LIDS" などを実行できますが、 LIDS はACL ディスカバリマシーンのように動いていて、どのような保護機能も生 成されていません。 3. ACL ディスカバリモードをオンにするには、どうすれば良いのですか? A. /etc/lids/lids.ini ファイルを編集して、"ACL_DISCOVERY=1" と設定すれば、 LIDS が起動したときにACL ディスカバリモードになります。推奨する方法 としては、LIDS をモジュールとしてでなく、カーネルに組み込んで コンパイルすれば、LIDS が"ACL ディスカバリモード" としてスタートします。 あるいは、通常のプロテクトモードのときに、ACL ディスカバリモードをオンに したいときは、lidsadm を使って"#lidsadm -S -- +ACL DISCOVERY" とすること により、ACL ディスカバリモードをオンに出来ます。 4. ACL ディスカバリモードをオフにするには、どうすれば良いのですか? A. ACL ディスカバリモードをオフにする通常の方法は、"/etc/lids/lids.ini" を 編集して"ACL DISCOVERY=0" とすることです。 通常のプロテクトモードのときに、ACL ディスカバリモードをオフにしたいとき には、lidsadm を用いて"#lidsadm -S -- -ACL DISCOVERY" とすれば、 ACL ディスカバリモードをオフにすることが出来ます。 5. ACL ディスカバリモードにいるかどうかは、どのようにして知ることが出来ます か? A. LIDS がスタートしたとき、表示されるメッセージによってLIDS ACL ディスカバリモードが"on" か "off" かがわかります。ちょうど、次の メッセージの様にです; LIDS_INFO: Learning mode on 6. ACL ディスカバリモードでは、何が起こるのですか? A. 違反行為が起きたときに、アラートメッセージが表示されて、さらに 後ほど使用できる"ルール" も表示されます。例えば LIDS: login (dev 3:2 inode 177942) pid 548 ppid 1 uid/gid (0/0) on (tty1) : attempt to open lastlog for writing - logging disabled for 60s LIDS_ACL_DISCOVERY:[state 1]177942:770:login:7:0:16066:773:lastlog:0-0 上のメッセージにより、login がlastlog を書き込むためにオープン したことがわかり、さらにアラートメッセージに続いて、これを許可する ためのrule が示されます。 7. ACL ディスカバリモードが示してくれるルールは、無条件に信頼しても良 いのですか? A. いえ、だめです! LIDS が違反したアクションに対する簡単なルールを生成 してくれたときには、全てのrule を再度見直して、このルールが セキュリティの脆弱性をもたらさないかどうかをチェックする必要があり ます。例えば; LIDS_ACL_DISCOVERY:[state 1]177752:770:mv:7:0:16065:773:log:0-0 このルールは、[state 1] 、つまり"BOOT" 状態で生成され、"mv" が"log" ディレクトリに"WRITE" を出来るようにしています。しかし、"mv" が"log" ディレクトリに書き込みが出来るようにするのは、とてもリスキーだと言う ことは、明白です..:-(.. したがって、このようなルールは各自の状況に あわせてチューンしてあげる必要があります。とくに、これらの"subject" が"bash" や"mv" などのときには、気をつけて下さい。 8. この生成されたacl を自動的にconf ファイルに取り込むには、どうすれば 良いのでしょうか? A. LIDS ではこの"lidstools/learning" モードでのツールとして "lids_acl_discovery.pl" を提供しています。新しい"lidstools" をインストール すると、デフォルトでACL ディスカバリモードがオンになっています。 システムをACL ディスカバリモードでリブートして、"lidsadm -I" でカーネルを "封印" すると、全ての通常の操作が出来ます。そして、 "lidsadm -S -- +SHUTDOWN" でシャットダウン状態にして、システムを LIDS が有効になっていないカーネルでリブートし、以下のコマンドを 実行します。 # perl lids_acl_discovery.pl 3 つのACL ファイル、lids.boot.conf、 lids.postboot.conf、 lids.shutdown.conf が生成されます。このconf ファイルを、全てがうま くいくようにチューンアップしてあげる必要があります。 9. ACL ディスカバリモードのACL がsubject とobject に対して"full path" を 表示してくれないのは、なぜでしょうか? A. カーネルでは、ファイルとしてはinode を参照しており、inode を求める のは簡単なのですが、inode からfull path を求めるのは難しくなって います。これについてなにか良い方法があったら、教えて下さい。 10. なぜ、ACL ディスカバリモードが必要なのですか? A. 良い質問です。簡単な答えとしては、皆が必要としたからです。あなたも これが好きになることを願います。 11. このアイデアは、誰が提供したのですか? A. Sander Klein がこのアイデアを出し、私が実装しました。 12. これを使う必要がありますか? A. とくに必要ではないですが、これはACL をチューンしていく上でとても 助けになります。