■ [osiris]OSX用のおすすめ設定(WSMから本人投稿を再掲載 2004年2月)
前回までに設定したマシンmyclient01はOS標準の検知設定になっています。OSX用は以下のように表示されます。設定の書式はapacheと似ていてわかりやすいです。(とドキュメントに書いてある):-)
[code]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を使う
Include users ←ユーザの追加削除をチェック
Include groups ←グループの追加削除をチェック
Include kexts ←機能拡張の追加削除をチェック
Recursive no ←/ディレクトリだけを見ます
Include file( “mach_kernel” ) ←/mach_kernelのファイルだけを見ます
Recursive yes ←/private/var/rootディレクトリ以下もたどって見ます
Include executable ←実行形式のファイルだけを見ます(推測)
Include suid ←suidされたファイルだけを見ます(推測)
IncludeAll ←全ての項目をチェック
IncludeAll
IncludeAll
IncludeAll
IncludeAll
IncludeAll
IncludeAll
# EOF
——– end config file ——–[/code]
OSXではApplicationフォルダにファイルが追加されることが多いのでその設定を加えるためには、上記に以下の設定を追加すればOKです。
[code]
IncludeAll
[/code]
設定を追加する時には以下のようにします。
[code]osiris-3.0.4-current[myclient01]: edit-config ←編集コマンド(必ずホスト設定にいないといけないです)[/code]
こうするとviエディタの画面になり上記の設定が表示され編集できます。編集を終えてviを終了すると以下の表示が出て完了します。
[code]
config file changed, updating…
the config: (default.darwin) was succesfully updated.
[/code]
■ [osiris]Filterの設定
この状態でそのまま運用しても大きな問題はないんでしょうが、時々気になることが起きます。それは/usr/binや/usr/sbinのほとんどファイルでctimeが異なるという検知結果を送ってくることです。
これを出ないようにするためにはfilterの設定を行います。osirisではホスト設定にfilterがあるのではなく、osirisのマネージャ設定(mhost)側にfilterを書くのでちょっとわかりにくい感じがします。
filterは最初は何も登録されていないので、以下のコマンドから始めます。
[code]
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. ←無事追加されました
[/code]
こうして追加されたフィルタは上記で設定されたルールで各ホストに適用されます。
具体的には以下のような設定を持つホストの場合、
[code]
IncludeAll
本来であれば以下の項目全てがチェックされますが
[code]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[/code]
filterを設定したのでctimeだけはチェックされなくなるということです。逆に特定の項目だけチェックしたい場合は以下のようにします。(/Applicationに入るアプリの増減やアクセス権だけチェックしたいとか)
[code]> 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[/code]
これでOKです。
■ [osiris]管理コンソールの証明書の更新
1年前に設定してこれまで問題なく動作していたosirismdが急にこんなメールアラートが出て動作しなくなりました。
[code]Subject: failed to start scheduled scan [host: myhost]
Date: Tue, 12 Apr 2005 18:22:51 +0900
From: “Osiris IDS”
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.[/code]
何が起きたのか調べてみたところ、osirisをインストールした際に生成された証明書が1年で期限切れになっているらしいことがわかりました。この状態でosirisにログインしようとすると以下のようなエラーになります。
[code]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.[/code]
この問題に対処するためには以下の操作を行ないます。
[code]$ sudo mv /usr/local/osiris/certs/osirismd.crt /usr/local/osiris/certs/old_osirismd.crt
$ sudo SystemStarter restart “Osiris IDS”[/code]
このコマンドを入力すると以下のような表示が出ます。
[code]
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[/code]
これで新しい管理用証明書が作成されました。
■ [osiris]ログインユーザの証明書の更新
上記の操作をやった後にosirisのadminを操作しようとするユーザのホームディレクトリにある.osirisフォルダ内のosiris_root.pemファイルを削除する必要があります。
[code]$ rm -f 〜/.osiris/osiris_root.pem[/code]
これをやっておかないとosirisにadminでログインできません。更にもうひとつ/usr/local/osiris/にあるosiris_root.pemも削除しておきます。
[code]$ sudo rm -f /usr/local/osiris/osiris_root.pem[/code]
これらの作業をやった後にadminでログインするようにしてください。
■ [osiris]チェック対象マシンの各host毎の証明書の更新
これまでの設定だけではosirismdへのログインはできますがhost設定をしようとすると以下のエラーになり接続することができません。
[code]osiris-3.0.4-current: host RemoteServer
error: session key negotiation with remote host failed.
[/code]
これを回避するためにはhostで設定したRemoteServerにsshでログインして以下の操作をしてください。
[code]$ sudo mv /usr/local/osiris/osiris_root.pem /usr/local/osiris/old_osirisroot.pem
$ sudo SystemStarter restart “Osiris IDS”
[/code]
この操作をした上でosirismdにadminでログインして以下の操作をします。
[code]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 ←スキャン成功
[/code]
ここまでやって証明書の更新が完了になります。
※再掲載に当たって一部修正しています。