前回は、Tripwireのテンプレートポリシーを基にポリシーを作成し、データベースの初期化までを行った。今回はその続きから説明する。
Tripwireのデータベースを初期化したら、整合性チェックを行う。Tripwireの整合性チェックは、tripwireコマンドに-m c(or --check)オプションを指定する。
# tripwire -m c
結果レポートは、ファイル(-r or --twrfile)やメール送信(-M)で出力できる。上記のように何も指定しない場合はファイルに保存される。ファイル名は、tw.cfg(twcfg.txt)のREPORTFILEで指定した内容が適用される。
REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
なお、過去に実行した整合性チェックの結果レポートを表示したい場合は、twprint -m r(or --print-report)を用いるとよい。
# twprint -m r -r /var/lib/tripwire/report/atmarkit.example.co.jp-20040708-082345.twr
出力されるレポートの内容は、例えばtripwire-report.txtのような形式で生成される。大きく分けてReport Summary、Rule Summary、Object Summary、Object Detail、Error Report の5つの項目からなる。
監査対象のファイルやディレクトリに何らかの変更があった場合、行頭に「*」や「Added object name:」、「Modified object name:」などがレポート内に明示される。
整合性チェック後、、監査対象ファイルやディレクトリの変更点をTripwireデータベースにマージするため、データベースの更新を行う。データベースの更新は、tripwireコマンドに-m u(or --update)を指定する。
# tripwire -m u -r レポートファイル
-r(or --twrfile)の引数には、先に実行した整合性チェックのレポートファイルを指定する。
# tripwire -m u -r /var/lib/tripwire/report/atmarkit.example.co.jp-20040708-082345.twr Please enter your local passphrase: ローカルキーのパスフレーズ
実行後、viなどのエディタ【注】が開き結果レポート(atmarkit.example.co.jp-20040708-082345.twr)が表示される。
ここで、見つかった新たなファイル(もしくはディレクトリ)や、何らかの変更があっ た監査対象のファイル(もしくはディレクトリ)に関する情報を、データベースに取り込むかどうかを指定する。
変更内容をデータベースに取り込みたい場合、対象ファイル(もしくはディレクトリ)に[x]というチェックを行う。逆に取り込みたくない場合は、xを削除([ ]のように)すればよい。
例えば、以下では/var/log/sa/sar07および/var/log/sa/sa08というファ イルが新たに見つかったことを示しているが、[x]を指定すると次にTripwireの監査を実行した際に比較情報としてデータベースに取り込むことになる。
-------------------------------------------------------- Rule Name: System boot changes (/var/log) Severity Level: 100 -------------------------------------------------------- Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Added: [x] "/var/log/sa/sar07" [x] "/var/log/sa/sa08"
エディタを終了するとローカルキーのパスワード入力を求められる。入力後、データベースが更新される。
Please enter your local passphrase: ローカルキーのパスフレーズ Wrote database file: /var/lib/tripwire/www.example.co.jp.twd
データベースの初期化直後に整合性チェックを実行すると、結果レポートに「No such file or directory」というエラーがたくさん出力されるだろう。このメッセージは、Tripwireで監査するファイルやディレクトリが存在しないことを表している。
例えば、/proc/rtcファイルが存在しなかった場合は、以下のようなエラーが出力される。
============================================================= Error Report: ============================================================= ------------------------------------------------------------- Section: Unix File System ------------------------------------------------------------- 1. File system error. Filename: /proc/rtc No such file or directory
実際の運用に入る前に、Error Reportに出力された「No suchi file or directory」などを取り除くのはもちろんのこと、それ以外にTripwireで監査したいファイルやディレクトリを追加し、既存システムに適合したポリシーを作成する必要がある。
Tripwireのポリシーファイルの内容は、@@の表記で始まるセクションによって分類される。また、分類された各セクションには、変数やルールといった各項目を定義する。基本的には、以下の1、2、3をセクションごとに繰り返すことになる。
ただし、ポリシーのテンプレート(twpol.txt)を見れば分かると思うが、これらの項目を1から書くのは正直骨が折れる。通常はソースやパッケージに付属のテンプレートを基に、自システムに合ったポリシーにカスタマイズするのがよいだろう。
それでは実際に例を交えながら、セクション、変数、ルールについて順に説明する。なお、各項目の詳細については、オンラインマニュアルのtwpolicy(man twpolicy)も参考にして欲しい。
Copyright © ITmedia, Inc. All Rights Reserved.