前回までに設定したマシンmyclient01はOS標準の検知設定になっています。OSX用は以下のように表示されます。設定の書式はapacheと似ていてわかりやすいです。(とドキュメントに書いてある):-)
- osiris-3.0.4-current: host myclient01 ←osirisにログインしてhost xxxxとしてホスト設定に入る
- myclient01 is alive. ←該当ホストが有効になっていればaliveと表示される
- osiris-3.0.4-current[myclient01]: print-config ←print-configで現在の設定が表示される
- config name: default.darwin ←OSX用のデフォルト
- ID: 8850eba9
- status: valid
- errors: 0
- warnings: 0
- lines: 43
- --------begin config file --------
- Recursive no ←ディレクトリをたどっていかない
- FollowLinks no ←リンクをたどっていかない
- IncludeAll ←全ての項目をチェック
- Hash sha ←ハッシュにはshaを使う
- <System> ←システム項目に関する設定開始
- Include users ←ユーザの追加削除をチェック
- Include groups ←グループの追加削除をチェック
- Include kexts ←機能拡張の追加削除をチェック
- </System> ←システム項目の設定終了
- <Directory /> ←/ディレクトリに関する設定開始
- Recursive no ←/ディレクトリだけを見ます
- Include file( "mach_kernel" ) ←/mach_kernelのファイルだけを見ます
- </Directory>
- <Directory /private/var/root> ←/private/var/rootディレクトリに関する設定開始
- Recursive yes ←/private/var/rootディレクトリ以下もたどって見ます
- Include executable ←実行形式のファイルだけを見ます(推測)
- Include suid ←suidされたファイルだけを見ます(推測)
- </Directory>
- <Directory /bin>
- IncludeAll ←全ての項目をチェック
- </Directory>
- <Directory /usr/bin>
- IncludeAll
- </Directory>
- <Directory /usr/local/bin>
- IncludeAll
- </Directory>
- <Directory /sbin>
- IncludeAll
- </Directory>
- <Directory /usr/sbin>
- IncludeAll
- </Directory>
- <Directory /System/Library/StartupItems>
- IncludeAll
- </Directory>
- <Directory /System/Library/Extensions>
- IncludeAll
- </Directory>
- # EOF
- -------- end config file --------
OSXではApplicationフォルダにファイルが追加されることが多いのでその設定を加えるためには、上記に以下の設定を追加すればOKです。
- <Directory /Applications>
- IncludeAll
- </Directory>
設定を追加する時には以下のようにします。
- osiris-3.0.4-current[myclient01]: edit-config ←編集コマンド(必ずホスト設定にいないといけないです)
こうするとviエディタの画面になり上記の設定が表示され編集できます。編集を終えてviを終了すると以下の表示が出て完了します。
- config file changed, updating...
- the config: (default.darwin) was succesfully updated.
■ [osiris]Filterの設定
この状態でそのまま運用しても大きな問題はないんでしょうが、時々気になることが起きます。それは/usr/binや/usr/sbinのほとんどファイルでctimeが異なるという検知結果を送ってくることです。
これを出ないようにするためにはfilterの設定を行います。osirisではホスト設定にfilterがあるのではなく、osirisのマネージャ設定(mhost)側にfilterを書くのでちょっとわかりにくい感じがします。
filterは最初は何も登録されていないので、以下のコマンドから始めます。
- osiris-3.0.4-current: edit-filter ←フィルタ編集コマンド
- s) show current filters. ←現在のフィルタを表示するには「s」を入力
- a) add a new filter. ←フィルタを追加するには「a」を入力
- r) remove filter. ←フィルタを削除するには「r」を入力
- q) quit ←フィルタ設定を終了します
- > a ←追加なので「a」とします
- > host (*=all hosts): * ←どのホストに適用するフィルタかホスト名で指定します
- > path (*=any path): /Applications ←どのパスに適用するフィルタかフルパスで指定します
- 1) Include Only (monitor changes only to certain attributes) ←標準監視設定の一部だけを有効にしたい場合こちらを選択します
- 2) Exclude (ignore changes to certain attributes) ←標準監視設定の一部を無効にしたい場合こちらを選択します
- > filter type: [2] 2 ←今回は標準監視設定のctimeだけを無効にするのでこちらを選択します
- csum - checksum ←チェックサム
- device - device number ←デバイスナンバー(割り当てたネットワークカードが変わったりすると出ます)
- inode - inode number ←inodeナンバー(HD上の記録位置)
- perm - permissions (mode) ←アクセス権
- links - number of hard links ←ハードリンクの数
- uid - user ID ←ユーザID
- gid - group ID ←グループID
- mtime - last modification time ←最後に更新された時間
- atime - last access time ←最後にアクセスされた時間
- ctime - last change time ←最後に変化した時間???
- dtype - device type ←デバイスタイプ(よくわかりません)
- bytes - number of bytes ←ファイルの大きさ(バイト数)
- blocks - number of blocks ←ファイルの大きさ(ブロック数)
- bsize - block size ←ブロックのサイズ
- osid - owner SID ←オーナーのセキュリティ識別子
- gsid - group SID ←グループのセキュリティ識別子
- fileattr - windows file attributes ←Windowsのファイル情報
- new - not in trusted database ←新規に追加されたファイル
- missing - not present in latest scan ←削除されたファイル
- > attributes (comma separated): ctime ←今回はctimeだけ除外します(複数ある場合はカンマで区切って書きます)
- does this look correct:
- ==> host=*;path=/Applications;exclude: ctime ; (y/n)? y ←確認されるので良ければy
- filter added. ←無事追加されました
こうして追加されたフィルタは上記で設定されたルールで各ホストに適用されます。
具体的には以下のような設定を持つホストの場合、
- <Directory /Applications>
- IncludeAll
- </Directory>
本来であれば以下の項目全てがチェックされますが
- csum - checksum
- device - device number
- inode - inode number
- perm - permissions (mode)
- links - number of hard links
- uid - user ID
- gid - group ID
- mtime - last modification time
- atime - last access time
- ctime - last change time
- dtype - device type
- bytes - number of bytes
- blocks - number of blocks
- bsize - block size
- osid - owner SID
- gsid - group SID
- fileattr - windows file attributes
- new - not in trusted database
- missing - not present in latest scan
filterを設定したのでctimeだけはチェックされなくなるということです。逆に特定の項目だけチェックしたい場合は以下のようにします。(/Applicationに入るアプリの増減やアクセス権だけチェックしたいとか)
- > filter type: [2] 1
- > attributes (comma separated): new,missing,perm,uid,gid
- does this look correct:
- ==> host=*;path=/Applications;include: new,missing,perm,uid,gid ; (y/n)? y
これでOKです。
■ [osiris]管理コンソールの証明書の更新
1年前に設定してこれまで問題なく動作していたosirismdが急にこんなメールアラートが出て動作しなくなりました。
- Subject: failed to start scheduled scan [host: myhost]
- Date: Tue, 12 Apr 2005 18:22:51 +0900
- From: "Osiris IDS" <osirismd@myhost>
- To: mymailaddress
- host: myhost
- scheduled scan time: Tue Apr 12 15:00:03 2005
- The scheduler produced the following error message:
- session key negotiation failed.
何が起きたのか調べてみたところ、osirisをインストールした際に生成された証明書が1年で期限切れになっているらしいことがわかりました。この状態でosirisにログインしようとすると以下のようなエラーになります。
- Osiris command line management utility - version 3.0.4-current
- authenticating to (myhost)
- User: admin
- Password:
- WARNING : certificate authentication failed. The certificate
- presented by the mangaement host (localhost) was not signed by
- the root cert loaded from (/Users/username/.osiris/osiris_root.pem).
- [ presented certificate ]
- issuer = /C=US/CN=Osiris Managment Daemon/OU=Osiris IDS
- subject = /C=US/CN=Osiris Managment Daemon/OU=Osiris IDS
- untrusted MD5 fingerprint: 16:27:02:E6:4E:B9:36:EB:24:DA:C2:5B:F8:xx:xx:xx.
- If you trust this certificate, delete the root cert and start
- this application again.
この問題に対処するためには以下の操作を行ないます。
- $ sudo mv /usr/local/osiris/certs/osirismd.crt /usr/local/osiris/certs/old_osirismd.crt
- $ sudo SystemStarter restart "Osiris IDS"
このコマンドを入力すると以下のような表示が出ます。
- Welcome to Macintosh.
- Osiris Management daemon stopped.
- Osiris Scanning daemon stopped.
- Starting osiris management daemon.
- unable to load server certificate (/usr/local/osiris/certs/osirismd.crt)
- ==> creating one.
- Generating RSA key, 2048 bit long modulus.
- .........+++
- ..........................................Waiting for Osiris Host Intrusion Detection System
- ................................................................Waiting for Osiris Host Intrusion Detection System
- ..................+++
- Starting osiris scanning daemon.
- Startup complete.
- Hangup
これで新しい管理用証明書が作成されました。
■ [osiris]ログインユーザの証明書の更新
上記の操作をやった後にosirisのadminを操作しようとするユーザのホームディレクトリにある.osirisフォルダ内のosiris_root.pemファイルを削除する必要があります。
- $ rm -f 〜/.osiris/osiris_root.pem
これをやっておかないとosirisにadminでログインできません。更にもうひとつ/usr/local/osiris/にあるosiris_root.pemも削除しておきます。
- $ sudo rm -f /usr/local/osiris/osiris_root.pem
これらの作業をやった後にadminでログインするようにしてください。
■ [osiris]チェック対象マシンの各host毎の証明書の更新
これまでの設定だけではosirismdへのログインはできますがhost設定をしようとすると以下のエラーになり接続することができません。
- osiris-3.0.4-current: host RemoteServer
- error: session key negotiation with remote host failed.
これを回避するためにはhostで設定したRemoteServerにsshでログインして以下の操作をしてください。
- $ sudo mv /usr/local/osiris/osiris_root.pem /usr/local/osiris/old_osirisroot.pem
- $ sudo SystemStarter restart "Osiris IDS"
この操作をした上でosirismdにadminでログインして以下の操作をします。
- osiris-3.0.4-current: host RemoteServer
- RemoteServer is alive.
- osiris-3.0.4-current[RemoteServer]: status
- [ current status of host: RemoteServer ]
- current time: Thu Apr 14 13:59:49 2005
- up since: Thu Apr 14 13:59:07 2005
- daemon status: idle.
- config status: no config present. ←設定ファイルが消えているので注意
- osiris version: 3.0.4-current
- OS: Darwin 7.8.0
- osiris-3.0.4-current[RemoteServer]: push-config ←設定ファイルをPushする
- the config: (default.darwin) was succesfully pushed to host: RemoteServer
- osiris-3.0.4-current[RemoteServer]: status
- [ current status of host: RemoteServer ]
- current time: Thu Apr 14 14:00:47 2005
- up since: Thu Apr 14 13:59:07 2005
- last config push: Thu Apr 14 14:00:35 2005
- configuration id: cc4f6e68
- daemon status: idle.
- config status: current config is valid. ←設定ファイルが有効になった
- osiris version: 3.0.4-current
- OS: Darwin 7.8.0
- osiris-3.0.4-current[RemoteServer]: start-scan ←スキャンを実行
- scanning process was started on host: RemoteServer ←スキャン成功
ここまでやって証明書の更新が完了になります。
※再掲載に当たって一部修正しています。
Android携帯が盛り上がっているが、ウイルスやトロイに注意する必要がある。おサイフケータイを搭載して被害が重大になる可能性も?得体の知れないアプリはインストールしないように。携帯ではなくパソコンだという認識が広まるだろうか?(参考:http://ht.ly/3iyht)