2004年 4月 22日
■整合性チェックツールOsirisを使う (4.0.0-beta 対応版)
整合性チェックツールOsirisについてのドキュメントをアップしました。かつて某所にあった旧版に比べて、
- 4.0.0-betaベースでの記述
- UNIX系(Linux)でのインストール
などを追加しています。
1. ファイルシステム整合性チェックツール
ファイルシステム整合性チェックツールとは、ファイルシステム中のファイルへのアクセスや変更を記録し、その履歴を追跡可能にするツールである。
具体的には、ファイルシステム中のファイルから、
- ファイル作成・変更・アクセス時刻
- ファイルサイズ
- ハッシュ値
等の各種属性情報を取得、記録し、いったん記録した属性情報を基準として以降のファイルの変化を検出、記録及び報告するという動作をするツールである。
ファイルシステム整合性チェックツールと呼ばれるツールとしては、Tripwire(オープンソース/商用) や Samhain 等が有名である。これらのツールは、管理者がシステムに対して行われた変更を確実に確認することで、主にファイルシステムに対する第3者による不正な変更、すなわちシステム侵害行為を検知する目的で使用される。
2. ファイルシステム整合性チェックツール - Osiris
Osirisも Tripwire や Samhain と同様のファイルシステム整合性チェックツールである。オープンでクロスプラットホームなファイルシステム整合性チェックツールを目標として開発が進められている。
2004年4月現在、開発版が4.0.0-beta、安定版が2.4.5となっている。2.0.0-beta以降Windows 版も配布されており、最新の4.0.0-betaについてもバイナリ版が配布されており、Windows OSとUNIX系OSが混在する環境ではその他のツールより比較的容易に導入できる*1のが特徴の一つといえる。
ここでは、Osirisの構成及び機能を概観した上で、実際にOsirisを導入、運用する方法について解説する。
3. Osiris の構成と機能概要
Osiris は管理対象ホストをスキャンするスキャンデーモン osirisd、スキャンデーモンを集中管理する管理デーモン osirismd、管理デーモンへのコマンドラインクライアントである osiris の 3 つのコンポーネントから構成されている。
図1 Osirisの構成概観
- osiris: コマンドライン管理クライアント。管理者はコマンドラインツールosirisを使用してスキャン管理デーモンに接続し、osirisの各種コマンドによって監視対象ホストを管理する。
- osirismd: スキャン管理デーモン。監視対象ホストに展開されたスキャンデーモンを集中管理する。監視対象ホストのスキャンデーモンの設定、取得したファイル属性情報の基準データベースを一元的に保持し、各ホストにおけるスキャン情報の基準データベースとの比較、結果の記録・通知などを行う。
- osirisd: スキャンデーモン。監視対象ホストを実際にスキャンし、スキャン管理デーモンによって指定された設定・スケジュールでホスト上のファイルをスキャン。各種ファイル属性を取得してスキャン管理デーモンに送信する。
スキャンデーモン osirisd が管理対象ホストのファイルシステムを定期的にスキャンし、結果をスキャン管理デーモンに送信する。スキャン管理デーモンでは監視対象ホストごとにスキャンデータベースが作成され、ファイルシステムの整合性がチェックされる。システム管理者は管理クライアント osiris を使用して管理デーモンに接続し、管理対象ホストの設定やログを管理する。
スキャンデーモン、管理デーモン及び管理クライアント間の通信は SSL を使用して暗号化されるため、設定、スキャン結果やログ等の送受信はネットワーク経由でも安全に行うことが出来る。Osiris では、スキャンデーモンがスキャンした結果はすべて管理デーモンに送信され、管理対象ホストには結果データは残らない仕組みとなっているため、管理対象ホストが侵害された場合でも、過去のスキャン結果を改竄される恐れがないというのも一つの特徴といえる*2。
管理については将来は Web インターフェースからの管理を可能にする予定があるようであるが、現在は基準データベースの切り替えを行う機能のみが実装されている。したがって、ほとんどの管理作業はコマンドラインクライアントのosirisから実行することになる。
Osirisには4.0.0-betaからモジュールインターフェースが実装されており、モジュールにより機能拡張を行うことが出来るようになっている。4.0.0-betaではビルトインモジュールとして、存在するユーザアカウント、グループ、カーネルモジュール(あるいはサービス)の変化を監視するモジュールが組み込まれている*3。
以下に現在のOsiris(4.0.0-beta)に実装されている主な機能を簡単にまとめる。
- スキャンデーモンによるローカルファイルシステム(その他ユーザ、グループ、カーネルモジュールまたはサービス)のスキャン結果を、安全な方法でスキャン管理デーモン上のデータベースに記録する。
- スキャンデーモンによるスキャン結果を、スキャン管理デーモン上の基準データベースと比較し、ハッシュ値やファイルサイズ、その他のファイル属性の差分をログとして記録する。
- 記録されたログをメールにより通知する。
- コマンドラインツールによる安全なリモート管理。
- Webインターフェース経由での基準データベース切り替え。
- モジュールによる機能拡張。
4. インストール
4.1 Windows 編
Windows 版 Osiris のバイナリは、インストーラつきで配布されている。インストール自体は、インストーラをダウンロードして実行するだけで完了する。作業ステップは以下のわずか3ステップである。
- ライセンスの確認
- インストールコンポーネントの選択
- インストール完了の確認
図2 ライセンス確認画面
ライセンスを確認して、次に進むだけ。
図3 インストールコンポーネント確認画面
インストールするコンポーネントを選択する。
図4 インストール確認画面
インストールしたコンポーネントとそのインストール先を確認する。
インストールの際には、Osiris(管理クライアント)、Osirsmd(スキャン管理デーモン)、Osirisd(スキャンデーモン)のいずれをインストールするのかを選択する形になる。デフォルトでは全てのコンポーネントが選択されているが、可能であればそれぞれ別マシンにインストールするほうが良いだろう。ただし、Osirsmd(スキャン管理デーモン)をインストールする場合には、最初の設定をローカルで実行する必要があるので、Osiris(管理クライアント)を同時にインストールするのを忘れないよう注意する。また、Osirismd(スキャン管理デーモン)については、スキャン対象ホストの設定情報やスキャンデータベース本体が格納されるため、十分に安全な信頼できるホストとすることが求められる。
配布されているインストーラは、実行ファイルや設定ファイルを次の場所にインストールする。
- %SystemRoot%\osiris
- スキャン管理デーモンの設定や証明書、秘密鍵などが格納されるディレクトリ
- %SystemRoot%\osiris.exe
- コマンドライン管理クライアントのプログラム本体
- %SystemRoot%\system32\osirisd.exe
- スキャンデーモンのプログラム本体
- %SystemRoot%\system32\osirismd.exe
- スキャン管理デーモンのプログラム本体
- %SystemRoot%\system32\osimessage.dll
- メッセージ DLL
- %SystemRoot%\osiris\uninstall_osiris.exe
- アンインストーラ
インストールパスを指定することは出来ないので、この点には若干注意する必要がある。
インストールが完了するとインストール時に指定したオプションに基づき、osirisdまたはosirismd(あるいはその両方)がサービスとして登録され、起動されているので確認する。
スキャンデーモン osirisd 及び管理デーモン osirismd は、それぞれ管理デーモン及び管理クライアントからの接続を受け付けるポートとして、デフォルトで 2265/tcp(スキャンデーモン制御ポート)、2266/tcp(スキャン管理デーモン制御ポート)及び2267/tcp(Webインターフェース用httpsポート)を使用している。これらのポートをゲートウェイやホストベースのファイアウォールなどでフィルタしている場合には、実際に設定を始める前に接続を許可するように設定を変更しておかなければならない。全てのコンポーネントを同一ホストにインストールした場合についても、最低限ローカルホストからの接続は受け付けられるようになっていなければならない。
Osirisをアンインストールするには、スキャンデーモン及びスキャン管理デーモンのサービスを停止した後、上に挙げたosirisディレクトリ中のアンインストーラを実行すればよい。
4.2 Linux 編
UNIX系OSでのOsirisをインストールするには、ソースからビルドしてインストールする形をとる。ソースを展開したディレクトリで、configureを実行し、その後バイナリをmakeするという最も一般的な方法である。
$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
...
config.status: creating src/install/install.sh
config.status: creating config.h
config.status: executing depfiles commands
Osiris (c) 2000-2004 The Shmoo Group (TSG)
-----------------------------------------------------
==> Configuration Complete.
==> Osiris has been configured with the following options:
Host: i686-pc-linux-gnu
Compiler: gcc
Compiler flags: -Wall -g -O2
Preprocessor flags: -I/usr/local/include
Linker flags: -L/usr/local/lib
Libraries: -lpthread -lssl -lcrypto -lresolv
Privlege Separation: yes
SSL Location: /usr/local
Osiris Root Directory: /usr/local/osiris
Osiris user: osiris
======================================
Found Scan Agent Modules:
==> mod_groups
==> mod_kmods
==> mod_users
======================================
==> use one of the following targets:
all: make everything, agent, CLI and management console.
agent: create scan agent installer package.
console: create management console installer package.
install: run installation script.
clean: remove object files.
$
スキャンデーモン、スキャン管理デーモン、コマンドライン管理クライアントのすべてをビルドし、同じコンピュータ上にインストールする場合はmake all後、make installを実行すればよい。
$ make all ... Build Successful! To create management console install package: 'make console' To create scan agent install package: 'make agent' Documentation is also online at: http://osiris.shmoo.com make[2]: Leaving directory `/home/user/osiris-4.0.0-beta' make[1]: Leaving directory `/home/user/osiris-4.0.0-beta' $ make install
スキャンデーモンのみをビルドする場合はmake agentを、管理コンソールのみをビルドする場合はmake consoleを実行するとそれぞれのインストール用パッケージが作成される。
$ make agent
cd src/libosiris;make
make[1]: Entering directory `/home/user/src/osiris-4.0.0-beta/src/libosiris'
...
-------------------------------------------------------------------------
building release tarball:
src/install/osiris-agent-4.0.0-beta-unknown-Linux-2.4.18-17.tar
installer package contents:
total 152
-rwxr-xr-x 1 user user 2460 Apr 18 14:40 LICENSE
-rwxr-xr-- 1 user user 24703 Apr 18 14:40 install.sh
drwxr-xr-x 2 user user 4096 Apr 18 14:40 linux
-rwxr-xr-x 1 user user 107892 Apr 18 14:40 osirisd
-rw-r--r-- 1 user user 74 Apr 18 14:40 version.h
-------------------------------------------------------------------------
installer package created.
$ make console
make
make[1]: Entering directory `/home/user/src/osiris-4.0.0-beta'
make all-recursive
...
-------------------------------------------------------------------------
building release tarball:
src/install/osiris-console-4.0.0-beta-unknown-Linux-2.4.18-17.tar
installer package contents:
total 1740
-rwxr-xr-x 1 user user 2460 Apr 18 14:49 LICENSE
drwxr-xr-x 2 user user 4096 Apr 18 14:49 configs
-rwxr-xr-- 1 user user 24703 Apr 18 14:49 install.sh
drwxr-xr-x 2 user user 4096 Apr 18 14:49 linux
-rwxr-xr-x 1 user user 798452 Apr 18 14:49 osiris
-rwxr-xr-x 1 user user 107892 Apr 18 14:49 osirisd
-rwxr-xr-x 1 user user 814388 Apr 18 14:49 osirismd
-rw-r--r-- 1 user user 74 Apr 18 14:49 version.h
-------------------------------------------------------------------------
installer package created.
$
スキャンデーモンのみをインストールする場合には、作成されたインストールパッケージの中のインストールスクリプトを実行するだけでよい。スキャンデーモン実行用にosirisというユーザとグループが作成され、バイナリはデフォルトで/usr/local/sbinに、/usr/local/osirisにはスキャン管理デーモンとの通信で取得したSSL通信用証明書が格納される。また、自動起動に必要な起動スクリプトもインストールされる(Linuxの場合は/etc/init.d配下)。
ただし、同梱されているインストールスクリプトには若干の問題があるようで、そのまま実行すると手元の環境ではエラーが発生してインストールスクリプトがとまってしまう。これはユーザ追加の際に-cオプションに渡している文字列が空白を含んでいるためである。install.shスクリプトのuseraddの-cオプションの引数部分を、${SERVICE_DESC}から"${SERVICE_DESC}"とダブルクォーテーションに編集してから実行するか、またはosiris用ユーザをあらかじめ追加してから実行すればよい。
またスクリプト中でgrepの-oオプションを使用しているため、grepのバージョンが古い環境では展開先OSの識別が常にunknownになってしまう。インストールする起動スクリプトの選択に使用しているだけのようなので実害は無いが、気になる場合はスクリプトを修正しておけばよい。
スキャンデーモンのインストールスクリプト実行手順は次のとおりである。
$ tar zxvf osiris-agent-4.0.0-beta-unknown-Linux-2.4.18-17.tar.gz
...
$ cd osiris-agent-4.0.0-beta
$ sudo ./install.sh
Osiris Scanning Daemon Version
4.0.0-beta
"4.0.0-beta" for Linux 2.4.18-17
Copyright (c) 2004 The Shmoo Group. All Rights Reserved.
This installation was configured and built to run as osiris
user name: osiris
This installation was configured and built to use osiris
root directory: /usr/local/osiris
The username and directory will be created during the
installation process if they do not already exist.
By installing this product you agree that you have read the
LICENSE file and will comply with its terms.
---------------------------------------------------------------------
No Osiris user exists.
Linux Distribution: unknown
Continue with installation? (y/n) [y]
Installation directory for binaries: [/usr/local/sbin]
==> installed scan agent: /usr/local/sbin/osirisd
==> creating Osiris user and group with uid/gid .
==> osiris group added.
==> osiris user added.
==> installing rc startup for daemon(s).
==> change owner and permissions on /usr/local/sbin/osirisd
-rwxr-xr-x 1 root wheel 107892 Apr 18 15:30 /usr/local/sbin/osirisd
==================================================================
Osiris has been installed, but is not currently running. Startup
scripts have been installed so that the necessary services will
be started on boot.
Start scan agent now? (y/n) [y]
Documentation is included with this source and available online at:
http://osiris.shmoo.com/docs
(c) 2004 - The Shmoo Group
$
スキャンデーモンと共にスキャン管理デーモン、コマンドラインツールもインストールする場合は、osiris-console-*-.tar.gzパッケージをインストールする。
スキャン管理デーモンのインストールスクリプト実行手順は次のとおりである。
$ sudo ./install.sh
Osiris Scanning Daemon Version
4.0.0-beta
"4.0.0-beta" for Linux 2.4.18-17
Copyright (c) 2004 The Shmoo Group. All Rights Reserved.
This installation was configured and built to run as osiris
user name: osiris
This installation was configured and built to use osiris
root directory: /usr/local/osiris
The username and directory will be created during the
installation process if they do not already exist.
By installing this product you agree that you have read the
LICENSE file and will comply with its terms.
---------------------------------------------------------------------
No Osiris user exists.
Linux Distribution: unknown
Continue with installation? (y/n) [y]
Install management console? (y/n) [y]
Installation directory for binaries: [/usr/local/sbin]
Osiris root directory doesn't exist, creating.
==> installed osiris CLI: /usr/local/sbin/osiris
==> installed scan agent: /usr/local/sbin/osirisd
==> installed management console /usr/local/sbin/osirismd
==> installed default scan configs.
==> creating Osiris user and group with uid/gid .
==> osiris group added.
==> osiris user added.
==> installing rc startup for daemon(s).
==> change owner and permissions on /usr/local/sbin/osiris
-rwxr-xr-x 1 root wheel 789624 Apr 21 19:47 /usr/local/sbin/osiris
==> change owner and permissions on /usr/local/sbin/osirisd
-rwxr-xr-x 1 root wheel 106688 Apr 21 19:47 /usr/local/sbin/osirisd
==> change owner permissions on /usr/local/sbin/osirismd
-rwsr-xr-x 1 osiris osiris 809600 Apr 21 19:47 /usr/local/sbin/osirismd
==================================================================
Osiris has been installed, but is not currently running. Startup
scripts have been installed so that the necessary services will
be started on boot.
Start management console now? (y/n) [y]
osirismd: missing configuration file,
==> created default in: /usr/local/osiris/osirismd.conf.
unable to load server certificate (/usr/local/osiris/certs/osirismd.crt)
==> creating one.
Generating RSA key, 2048 bit long modulus.
..+++
....................+++
Start scan agent now? (y/n) [y]
Documentation is included with this source and available online at:
http://osiris.shmoo.com/docs
(c) 2004 - The Shmoo Group
コマンドラインツールやスキャン管理デーモンだけをそれぞれ単独でインストールするパッケージはないようなので、osiris-console-*-.tar.gzパッケージをインストール後に不要なものを削除するか、あるいはビルド後に生成されたバイナリを、手動でコピーする必要がある。
5. 設定
Osiris をインストールした後、実際に機能させるために実行しなければならない設定作業は次のとおりである。
- 管理クライアントからのスキャン管理デーモンへの接続
- 管理アカウントへのパスワード設定
- スキャン管理デーモンの設定
- 監視対象ホストの登録と初期化
- 監視対象ホストに対するスキャン設定
以下に順を追って説明する。
5.1 管理クライアントから管理デーモンへの接続
管理デーモンは、初期状態ではローカルホストからの接続のみを受け付ける設定となっている。そこでまずインストールしたホスト上で、コマンドプロンプトを起動し、管理クライアント osiris を起動する。osiris はデフォルトでローカルの管理サーバに接続するようになっているので、引数なしでコマンドを起動すればよい。
C:\>osiris
Osiris command line management utility - version 4.0.0-beta
unable to load root cert for management host:
(C:\Documents and Settings\a-ryowa\Application Data\.osiris\osiris_root.pem)
fetching root certificate from management host (localhost).
The authenticity of host 'localhost' can't be established.
[ server certificate ]
subject = /C=US/CN=Osiris Managment Console/OU=Osiris Host Integrity System
issuer = /C=US/CN=Osiris Managment Console/OU=Osiris Host Integrity System
key size: 2048 bit
MD5 fingerprint: C5:D8:A5:6E:4D:EA:07:28:F0:48:E3:83:59:AC:00:8E
Verify the fingerprint specified above.
Are you sure you want to continue connecting (yes/no)? yes
最初の接続では、まず管理デーモンのサーバ証明書の確認が求められる。これは管理クライアントと管理デーモンの間の通信が、SSL による暗号化通信となっているためである。管理デーモンへの最初の接続はローカルでの通信であるため、この証明書を受け入れて問題ない。証明書のフィンガープリント値は、後でリモート接続する場合に備えて安全なところに記録しておく。最初にリモート接続する際には、ここで記録したフィンガープリント値と表示されるフィンガープリント値を比較し、正当な管理サーバに接続していることを確認する必要がある。
"yes" を入力して証明書を受け入れると、管理サーバの証明書は表示されたパス(通常は %HOMEPATH%\Application Data\.osiris\osiris_root.pem)に格納される。証明書ファイルは改竄されないように読み取りのみのアクセス権を設定しておこう。
authenticating to (localhost) User: admin Password:
初期状態では、管理者のユーザ名は admin、パスワードはなしになっている。接続が成功すると次のようなバナーとプロンプトが現れる。
connected to management console, code version (4.0.0-beta). hello. osiris-4.0.0-beta:
5.2 管理アカウントへのパスワード設定
初期状態では管理アカウントに対するパスワードがなしのままであるため、このままリモート管理を可能にしてしまうと非常に危険である。まずは、管理アカウントに対して適切なパスワードを付与しなければならない。パスワード変更は passwd コマンドによって行う。引数にはユーザ名を指定する。
具体的には次のとおりである。
osiris-4.0.0-beta: passwd User: admin Password: ******** user: (admin) updated. osiris-4.0.0-beta:
なおhelpコマンドを使用すると、osiris管理クライアントで使用可能なコマンドの一覧を参照することが出来る。
osiris-4.0.0-beta: help
[ Managment Commands ]
mhost host new-user edit-filters
edit-mhost edit-host edit-user print-filters
print-mhost-config list-hosts list-users
test-notify new-host delete-user
[ Host commands ]
status list-configs start-scan list-db
watch-host import-config stop-scan base-db
disable-host push-config set-base-db
host-details edit-config list-logs print-db
print-host-config print-config print-log print-db-errors
rm-host rm-config print-db-header
drop-config rm-db
verify-config
new-config
[ Misc commands ]
help version quit ssl
For help with a specific command, try: help
osiris-4.0.0-beta:
5.3 管理デーモンの設定
スキャン設定を行う前に、まず管理デーモンの動作設定をしておくほうがよい。管理デーモンの動作設定は、edit-mhostコマンドを使用して行う。edit-mhostコマンドを実行すると、対話型の設定インターフェースに移行するので、ここから設定を実施する。
osiris-4.0.0-beta: edit-mhost [ edit management host (localhost) ] > syslog facility [DAEMON]:
上記はスキャン管理デーモンのログをsyslogに出力する際のファシリティを指定する設定である。Windowsの場合は、アプリケーションイベントログに記録されるので、この設定は意味を成さない。ここは単にEnterを入力し、デフォルトのまま進めておけばよい。UNIX系のOSの場合には、使用したいファシリティを入力する。
> control port [2266]: > http host name (uses system name by default) []: monolith.7th-angel.net > http control port [2267]:
次の設定は、スキャン管理デーモンへの接続を行うTCPポートの設定である。control port はコマンドラインツールにより接続するポートである。現状では、コマンドラインツールに接続先を指定するオプションが無いため、control portは変更しないでデフォルトのまま使用するほうが良いだろう。
http host name及びhttp portはブラウザから基準データベースの切り替えコマンドを実行する際に使用するホスト名及びポートである。この後の設定でメール通知を有効にすると、スキャン結果をメールで通知することが出来るが、このメールにはデータベース切り替えコマンドを送信するためのURLが記述されている。スキャン結果ログを確認後、指定URLにアクセスして管理者として認証されると、基準データベースの切り替えが実行される。
これらのポートへの接続は、このあとに設定するauthorized hostsにて許可されたホストからのみに制限される。
> notification email []: admin@7th-angel.net > notification smtp host [127.0.0.1]: 10.47.133.151 > notification smtp port [25]:
次の設定は、スキャン結果をメールで通知する際に使用する、通知先メールアドレス、メールサーバホスト及びSMTPポートを指定するための設定である。ここで指定したメールアドレスとメールサーバを使用して、スキャン結果がメール通知される。メールアドレスを空に設定しておくと、メール通知は無効になる。
> authorized hosts:
127.0.0.1
Modify authorization list (y/n)? [n] y
s) show current listing.
a) add a new authorized host.
r) remove authorized host.
q) quit
> a
> authorized hostname/IP (*=wildcard): *
s) show current listing.
a) add a new authorized host.
r) remove authorized host.
q) quit
> q
次の設定は、管理ポートへの接続を許可するホストを登録する設定である。承認リストの変更を行うか否かの質問に "y" と答えることで、ホストの追加・削除を行うメニューに移行する。管理デーモンはデフォルトではローカルホストからの接続のみを受け付ける設定になっている。常に管理デーモン上でオペレーションを行う場合はこのままで問題はないが、リモートから管理したい場合にはアクセス制限を変更し、リモート接続を許可する必要がある。a) add a new authorized host. を選択し、追加で許可したいホストのホスト名またはIPアドレスを登録する。なお、ホスト指定には "*" をワイルドカードとして使用することが出来るとされているが、現在は全ホスト指定にしか使用できないようである。つまり、10.10.0.* や *.example.com といった指定は使えないので、注意が必要である。
[ management config (localhost) ] syslog_facility = DAEMON control_port = 2266 http_port = 2267 http_host = monolith.7th-angel.net notify_email = admin@7th-angel.net notify_smtp_host = mail.example.com notify_smtp_port = 25 hosts_directory = allow = 127.0.0.1 allow = 10.10.10.100 Is this correct (y/n)? y management host config sucessfully saved. osiris-4.0.0-beta:
すべての項目の指定が終わると、設定が正しいか否かの確認を求められる。正しければ "y" を返答することで管理デーモンへ設定が反映される。訂正したい場合には、"n"を返答することで指定をやり直すことが出来る。
5.4 スキャン対象ホストの登録と初期化
管理デーモンの設定がすんだら、実際に監視対象ホストのファイルシステムをスキャンするスキャンデーモンの設定作業を行う。スキャンデーモンに実際にスキャンを実行させるには、new-hostコマンドで対象ホストの追加と基準データベースの初期化を実行する必要がある。new-hostコマンドを実行すると、必要な設定項目の指定を対話的に要求される。以下に個々の設定項目を順を追って説明する。
osiris-4.0.0-beta: new-host [ new host ] > name this host []: localhost
この項目は新しい監視対象ホストの登録名称である。他のコマンドで監視対象を選択する際などに使用するので、分かりやすい簡潔な名前を指定するのがよい。
> hostname/IP address []: 127.0.0.1
この項目は、監視対象のホスト名または IP アドレスである。
> description []: Management localhost
この項目は、監視対象ホストに関する説明記述である。list-hosts コマンドなどを使用した際などに表示される。
> enable scan logging for this host? (yes/no) [no]: yes
監視対象ホストのログ記録を有効にするかどうかを指定する項目である。監視ログにはデータベース比較結果が記録される。比較結果に変化がない場合でも、ログは記録される。
> archive scan databases for this host? (yes/no) [no]:
スキャンデータベースをアーカイブするか否かを指定する。この項目を"yes"に設定すると、スキャンが実行されるごとに新しいデータベースが作成されるようになる。スキャン結果をすべて保持しておきたい場合には有効だが、データベースが保持されるディレクトリのサイズが大きくなるので注意が必要である。"no"になっている場合は、信頼済みデータベースと最新のスキャン結果データベースのみが保持される。
Notifications:
=> enable admin email notification for this host? (yes/no) [yes]:
この監視対象ホストに関するメール通知を有効にするか否かを指定する。"yes"を指定することでその監視対象ホストのスキャンログとスケジュールエラーがメールで通知されるようになる。"no"を指定すると、そのホストは通知対象からは外される。
=> send notification on scheduled scans failures? (yes/no) [no]: yes
スケジュールされたスキャンが失敗した場合にもメールを送信するか否かを指定する。"yes"を指定するとスケジュールされたスキャンが失敗した場合に通知メールが送信される。
=> send scan notification, even when no changes detected (yes/no) [no]: yes
スキャンの結果、変化が検出されなかった場合でも通知メールを送信するか否かを指定する。"yes"を指定した場合、変化が無かった場合でもスキャン毎に通知メールが送信される。
=> send notification when agent has lost session key (yes/no) [no]: yes
スキャンデーモンがセッションキーを失った場合に通知メールを送信するか否かを指定する。"yes"を指定した場合、スキャンデーモンがスキャン時にセッションキーを失った際に通知メールが送信される。
=> notification email (default uses mhost address) []:
通知メールの宛先を指定する。デフォルトではスキャン管理デーモンの設定で指定した宛先が使用される。監視ホストによってメール送信宛先を変更したい場合、ここにアドレスを指定することで監視対象ホストごとに異なる宛先に通知メールを送信することが出来る。
> configure scan scheduling information? (yes/no) [no]: yes
スキャン実行のスケジュール指定を行う場合、"yes"を選択する。
[ scheduling information for localhost ]
Scheduling information consists of a start time and a frequency value.
The frequency is a specified number of minutes between each scan, starting
from the start time. The default is the current time. Specify the start
time in the following format: mm/dd/yyyy HH:MM
enter the start date and time
using 'MM/DD/YYYY hh:mm' format: [Sat Apr 17 20:34:18 2004] 04/18/2004 00:00
does this look correct ==> (Sun Apr 18 00:00:00 2004) ? (y/n) y
enter scan frequency in minutes: [daily (1440)]
スキャンスケジュールは、開始日時とインターバル時間を指定する方法で指定する。開始日時の指定フォーマットは、mm/dd/yyyy HH:MM である。インターバル時間は分を正の整数で指定すればよい。デフォルトでは、開始日時はコマンド実行時の現在時刻であり、インターバル時間は 1440 分( 1 日)となっている。
> activate this host? (yes/no) [no]: yes
この監視対象ホストのスキャンスケジュールを有効にするか否かを指定する。この指定が "no" になっている場合は、スケジュールされたスキャンは実行されない。start-scan コマンドを使用して手動でスキャンを実行することは可能である。
host => localhost hostname/IP address => 127.0.0.1 description => Management localhost host type => generic log enabled => yes archive scans => no notifications enabled => yes notifications always => yes notify on rekey => yes notify on scan fail => yes notify email => (managment config) scans starting on => Sun Apr 18 00:00:00 2004 scan frequency => daily (every 1440 minutes). enabled => yes Is this correct (y/n)? y
すべての項目の指定が終わると、設定が正しいか否かの確認を求められる。正しければ "y" を返答することで新しい監視対象ホストの登録が完了する。訂正したい場合には、"n" を返答することで指定をやり直すことが出来る。新しい監視対象ホストの登録後には、登録したホストの初期化を実行する。
the new host (localhost) was sucessfully created. initialize this host? (yes/no): yes Initializing a host will push over a config, start a scan, and set the created database to be the trusted database. Are you sure you want to initialize this host (yes/no): OS Name: Windows2000 OS Version: (unknown) use the default config for this OS? (yes/no): yes The config: default.windows2000 has been pushed. perform an initial scan and database for this host? (yes/no): yes osiris-4.0.0-beta:
初期化の際には、監視対象ホストのOSが検出され、確認を求められる。正しければ"yes"と答えることで、該当OS用のデフォルトスキャン設定が選択、適用される。各プラットホーム用のデフォルト設定はWindows版の場合は%SystemRoot%\osiris\configs\default.*として格納されている。"no"を選択した場合には、使用するスキャン設定ファイルの指定を要求されるので、インポートする設定ファイルを指定すればよい。最後に初期化スキャンを実行するか否かを確認されるので、"yes"を指定するとインポートしたスキャン設定に基づいて、基準データベースを作成するための最初のスキャンが実行される。
5.5 監視対象ホストに対するスキャン設定
スキャンデーモンは、管理デーモンから指定された設定に基づき、ローカルのファイルシステムをスキャンし、ファイルのハッシュ値やサイズ、その他の様々な属性情報を抽出する。そして管理デーモンはスキャンデーモンによって抽出された情報を受け取り、スキャンデータベースを生成する。まず、初期化段階で作成されたスキャンデータベースが基準データベースとなり、それ以降はスキャンデーモンによる定期的なスキャンの結果が新しいデータベースに記録される。この新しいスキャンデータベースが管理デーモンにより基準データベースと比較され、比較の結果、差分が検出されると管理デーモンはその結果をログとして記録し、オプションが指定されている場合にはメールによる管理者への通知を実行する。
スキャンデーモンが監視対象ホストのどのディレクトリをどのようにスキャンするかは、個々の監視対象ホストへのスキャン設定に依存する。監視対象ホストの初期設定は、デフォルトでは初期化時に検出されたプラットホームに基づいて自動的に選択される。個々のホスト毎に設定内容をカスタマイズしたい場合は、edit-config コマンドによって監視対象毎に設定を編集することが出来る。edit-config コマンドを実行すると設定がダウンロードされ、管理クライアントを実行しているホスト上のエディタが起動する。
osiris-4.0.0-beta: host localhost localhost is alive. osiris-4.0.0-beta[localhost]: edit-config
Windows 2000 の場合のデフォルト設定は次のとおりである。
Recursive no
FollowLinks no
IncludeAll
Hash md5
<System>
Include mod_users
Include mod_groups
Include mod_kmods
</System>
<Directory c:\winnt>
Recursive yes
NoEntry temp
NoEntry system32\cache
NoEntry system32\dllcache
Include suffix("exe")
Include suffix("dll")
Include suffix("com")
Include suffix("conf")
Include suffix("sys")
Include suffix("pif")
Include suffix("inf")
Include suffix("dev")
Include suffix("ocr")
Include suffix("ocx")
ExcludeAll
</Directory>
<Directory C:\Program Files>
Recursive yes
Include suffix("exe")
Include suffix("dll")
Include suffix("com")
Include suffix("conf")
Include suffix("ini")
Include suffix("sys")
Include suffix("pif")
Include suffix("inf")
Include suffix("pnf")
ExcludeAll
</Directory>
# EOF
この設定では、次のようなスキャンが実行される。
- 全体では、再帰検索やシンボリックリンクの追跡は行わない。
- ファイルハッシュ値を算出するアルゴリズムには MD5 を使用する。
- モジュールmod_users、mod_groups及びmod_kmodsを使用する。
- ディレクトリ c:\winnt については再帰検索を有効にし、拡張子exe/dll/com/conf/sys/pif/inf/dev/ocr/ocxのファイルをスキャン対象とする。ただし、サブディレクトリtemp、system32\cache、system32\dllcacheを除く。
- ディレクトリ C:\Program Files については再帰検索を有効にし、拡張子exe/dll/com/conf/ini/sys/pif/inf/pnfのファイルをスキャン対象とする。
スキャン設定には、ルールやフィルタを設定することができ、監視対象ディレクトリやファイルを絞り込んでおくことが出来る。スキャン設定の詳細な指定方法については、UsersGuideを参照のこと。なお4.0.0-beta では、ファイルやディレクトリの名称が日本語であっても基本的には問題なく動作するようである。
Windows版では日本語255文字フルパス名を持つファイル*4は検知されないので、この点には注意しなければならない。
エディタで設定を編集して保存すると、編集した設定がスキャン管理デーモンに転送される。設定を編集した後はpush-configコマンドを使用して、スキャン管理デーモンからスキャンデーモンに対して編集したスキャン設定を反映させる。
osiris-4.0.0-beta[localhost]: edit-config config file changed, updating... the config: (default.windows2000) was succesfully updated. osiris-4.0.0-beta[localhost]: push-config the config: (default.windows2000) was succesfully pushed to host: localhost osiris-4.0.0-beta[localhost]:
これにより、スキャン設定で指定した内容にしたがって、定期的に監視対象ホストのファイルシステムがスキャンされるようになる。
6. 運用
6.1 スキャン結果の確認
管理デーモン及びスキャンデーモンの設定が完了し、実際の運用状態に入ると、スキャンデーモンは指定された設定内容にしたがって、監視対象ホストのファイルシステムをスキャンし、結果のレポートをはじめる。管理者はこのスキャン結果を確認し、ファイルシステムに対して不正な変更が施されていないかどうかを確認していくことになる。
管理者がスキャン結果を確認するには、以下の方法がある。
- syslog (UNIX) あるいはアプリケーションイベントログ (Windows) を確認する。
- コマンドライン管理クライアントの print-log コマンドを使用する。
- 通知メールで送信されるログを確認する。
コマンドライン管理クライアントでログを確認する方法は、次のとおりである。
まずhostコマンドでログを確認したい監視対象ホストを選択し、list-logsコマンドを実行する。すると過去のスキャンのログ一覧を確認することが出来る。
osiris-4.0.0-beta: host localhost
localhost is alive.
osiris-4.0.0-beta[localhost]: list-logs
This may take a while...
[ name ] [ date ]
1 Sat Apr 17 20:58:44
2 Sat Apr 17 21:16:56
3 Sat Apr 17 22:00:46
4 Sun Apr 18 00:07:36
total: 4
osiris-4.0.0-beta[localhost]:
個々のログの内容を確認するには、print-log コマンドの引数にログの番号を指定して実行する。
osiris-4.0.0-beta[localhost]: print-log 4
-------- begin log file --------
compare time: Sun Apr 18 00:07:35 2004
host: localhost
scan config: default.windows2000 (7176f20a)
log file: 4
base db: 3
compare db: 4
[204][localhost][cmp][C:\Program Files\IfranView32\i_view32.ini]
[checksum][f2813f20fcec4671e2ac86dfb27bbc11,316dd377f269f89a08c33b43eac4ada5]
[215][localhost][cmp][C:\Program Files\IfranView32\i_view32.ini]
[bytes][1973,1972]
[211][localhost][cmp][C:\Program Files\IfranView32\i_view32.ini]
[mtime][Fri Apr 16 05:20:09 2004,Sat Apr 17 23:18:35 2004]
[204][localhost][cmp][c:\winnt\osiris\hosts\localhost\host.conf]
[checksum][97487d9b872446477d9957f1f4fc9983,0b2d28d6900c4dfa9f39a6a96eda49f2]
[211][localhost][cmp][c:\winnt\osiris\hosts\localhost\host.conf]
[mtime][Sat Apr 17 21:01:05 2004,Sat Apr 17 21:53:57 2004]
Change Statistics:
----------------------------------
checksums: 2
SUID files: 0
root-owned files: 0
file permissions: 0
new: 0
missing: 0
total differences: 5
-------- end log file --------
osiris-4.0.0-beta[localhost]:
個々のログエントリーは次のようなフォーマットで記述されている。
[ログID][host][type] メッセージ
type に記録される文字列の意味は次のとおりである。
- info - 情報提供のためのメッセージ
- err - エラーメッセージ
- warning - 注意する必要があるイベントを示すメッセージ
- cmp - 比較処理に関するログ
ログIDはログの種類ごとに与えられているIDである*5。
比較ログの場合にメッセージフィールドに記録される文字列は、次のようなフォーマットになっている。
[path][attribute][trusted,current]
path は対象ファイルのフルパスを示している。attribute は、変更された属性(inode、mtime や checksum)を示している。また、3つ目のフィールドには、基準データベースに記録されている値とスキャンの結果得られた値が、カンマ区切りで記録される。
6.2 基準データベースの切り替え
ログ確認の結果、ファイル変更が適切なオペレーションの結果であると判断できた場合には、基準データベースを変更し、正当な変更に対する検出が以後も引き続いて行われるのを避けるべきである。
Osirisにおける基準データベースの変更は、データベースの内容そのものを書き換えるのではなく、最新のスキャン結果を新たな基準データベースにするという方法をとる。古い基準データベースの内容を変更することなくそのまま取っておくこの動作仕様は、過去のファイルシステム状態の変更履歴を後で調査する際の作業を容易にしている。
管理者が変更を確認した後に基準を変更するには、ブラウザまたは管理クライアントを使用して、Osiris の基準データベースを現在の最新のスキャンデータベースに差し替えるという方法をとる。基準データベースの差し替えは、通知メールに含まれるデータベース切り替え用URLに接続して、認証を経てコマンドを実行するか、コマンドライン管理ツールからset-base-dbコマンドを使用して切り替える方法をとる。
通知メールに含まれるURLの例:
https://monolith.7th-angel.net:2267?action=v&host=localhost&base_db=4&log=4
set-base-db コマンドによる切り替え例:
osiris-4.0.0-beta[localhost]: set-base-db
This may take a while...
[ name ] [ created ]
1 Sat Apr 17 20:42:05
2 Sat Apr 17 20:51:46
* 3 Sat Apr 17 21:10:58
4 Sun Apr 18 00:00:29
total: 4
(*) denotes the base database for this host.
enter database name: 4
database: 4 is now base db for host: localhost
osiris-4.0.0-beta[localhost]:
このように運用開始後は、逐次監視対象ホストのスキャン結果を確認し、必要に応じて基準データベースを切り替えていくという作業の繰り返しが運用の中心となる。また、監視対象ホストの構成変更に応じて、個々のスキャン設定はその都度適応させていかなければならない。
- 注1:クロスプラットホーム環境に対応するには、Tripwireでは商用版が必要となる。Samhainの場合にはCygwinの導入が必要である。「Host Integrity Monitoring: Best Practices for Deployment」という整合性チェックツールの展開を取り扱った記事において、主な整合性チェックの特徴の比較を参照することが出来るので、興味がある方はそちらも参考にされたい。
- 注2:もちろんスキャン管理デーモンが物理的にも安全な場所に設置され、監視対象ホストを経由して侵害を受けにくいように構成されたネットワークに接続されていることが大前提になる。
- 注3:モジュールに関しての詳細はhttp://osiris.shmoo.com/modules/index.htmlを参照されたい
- 注4:ファイルシステムの仕様と使用されているAPIの対応に原因がある。lfnutilsなどを参照。
- 注5:詳細はhttp://osiris.shmoo.com/logs/index.htmlを参照のこと
このWeblog中の関連記事: 整合性チェックツールOsirisを使う (4.0.0-beta 対応版)
<関連する記事は見当たりません>Google検索: 整合性チェックツールOsirisを使う (4.0.0beta 対応版)
<関連する記事は見当たりません>Amazon検索: 整合性チェックツールOsirisを使う (4.0.0-beta 対応版)
You do nothing will cost.
Take a good deed.
Thanks in advance.
Children's House 125. Russia.
You do nothing will cost.
Take a good deed.
Thanks in advance.
Children's House 125. Russia.
generic xanax,xanax online overnight shipping,buy xanax,where can i buy xanax online without prescription,cheap xanax online,
cheap xanax,xanax bars,cheap xanax site%3,xanax side effects,xanax withdrawal,cheap xanax overnight delivery,side effects of xanax,
xanax dosage,xanax without prescription,free xanax,xanax effect,xanax no prescription,xanax addiction,xanax overdose,buy xanax cheap medication inurl:chape,
xanax online,what is xanax used for,order xanax online,2mg xanax order,buy xanax cheap medic,xanax mexico,online xanax sales,
2mg yellow xanax,buy xanax without a prescription or membership,xanax side effects withdrawal,buy xanax cheap,order xanax,
order xanax online from mexico,xanax overnighted,xanax withdrawal symptoms,xanax without a prescription,order xanax no prescription,side effects of drug xanax,
xanax abuse,cod pharmacies xanax,xanax without prescription in the us,xanax withdrawal how long,no rx xanax,buy xanax cheap medication inurl,
buy xanax online without a prescription,xanax 5mg,xanax with next day delivery,xanax no prescription needed,xanax price,
xanax without prescription from mexico,what does xanax look like,how long does xanax stay in your system,xanax without prescription cheap,what does xanax treat,
what is xanax,how can i obtain xanax without a prescription,what color is generic xanax,buy xanax cheap medication inur,free xanax meds online,
xanax valium,xanax dosage forms,generic xanax without a prescription,xanax cod,facts about xanax,injecting xanax,xanax xr,
signs xanax withdrawal,snorting xanax,switching directly from xanax to klonopin,xanax without rx,opiate withdraw xanax,
of xanax withdrawal,xanax consultation us doctor,xanax suicide,buy xanax c,yellow xanax bars,no prescription xanax,where to order xanax,
xanax bars come in yellow,how to get off xanax,xanax forum,xanax us pharmacy consultation,canadian pharmacy no prescription xanax,how does xanax work,
lethal dosage of xanax,lexapro and xanax,upjohn xanax,xanax available without a prescription,xanax detox,xanax online sales,cheap xanax without a prescription,
effects of taking xanax during pregnancy,how long does xanax withdrawal last,no perscription needed xanax,




