本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。
前回は、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つの項目からなる。
- Report Summary:使用したポリシーや設定ファイル、レポートの出力先が表示される
- Rule Summary:各ルール毎にAdd(追加)、Removed(削除)、Modified(変更)のあったファイルやディレクトリの数が表示される
- Object Summary:前回からの変更点を表示。新たに見つかったファイルや属性が変更したファイルが表示される
- Object Detail:Object Summaryで出力された各ファイルやディレクトリの詳細が表示される
- Error Report:監査の結果エラーとなった項目が表示される
監査対象のファイルやディレクトリに何らかの変更があった場合、行頭に「*」や「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をセクションごとに繰り返すことになる。
- セクションを定義する(ポリシーファイルを区分けする)
- セクション内の変数を定義する(Tripwire関連ファイルのパスや置換変数の定義)
- セクション内のルールを定義する(監査内容を決定する)
ただし、ポリシーのテンプレート(twpol.txt)を見れば分かると思うが、これらの項目を1から書くのは正直骨が折れる。通常はソースやパッケージに付属のテンプレートを基に、自システムに合ったポリシーにカスタマイズするのがよいだろう。
それでは実際に例を交えながら、セクション、変数、ルールについて順に説明する。なお、各項目の詳細については、オンラインマニュアルのtwpolicy(man twpolicy)も参考にして欲しい。
Copyright © ITmedia, Inc. All Rights Reserved.