tripwire-2.3 インストールメモ #--------------------------------------------------------------------------------------------- # tripwire 概要 #--------------------------------------------------------------------------------------------- tripwire はフリーのホスト型侵入検知処理を行うプログラムです。ホストにインストールされている様々なファイルの改ざんチェックを定期的に行う場合に有効です。今回は、Fedora Core2 にtripwire をインストールし、運用するまでの流れを説明します。 tripwire では、次のような特徴があります。 ● 複数の手法による整合性チェック ハッシュ関数(CDC32、MD5、SHA、HAVAL)を用いた整合性チェック ファイルの属性チェック(アクセス権限、タイムスタンプ) ● 監視対象ファイルの細かな制御 整合性チェックを行う監視対象ファイルを細かに指定可能 ● 結果レポートのメール送信機能 結果レポートをメールで自動送信可能。また、レポート内容の報告レベルを調整できる ● 各種設定ファイルの暗号化 設定・ポリシー・結果レポートファイルなど、Tripwire自身で利用するファイルを暗号化・署名し、セキュリティの保全を行っている #--------------------------------------------------------------------------------------------- # tripwire-2.3 のインストール方法 #--------------------------------------------------------------------------------------------- tripwire-2.3 のソースをインターネットよりダウンロード後、ソースを解凍します。Fedora Core2 ではtar ボールでのインストールはできますが、設定しようとするとエラーとなる現象があります。そこで、Fedora Core2 用のRPM ファイルよりtripwire をインストールします。 # su root # cd /usr/local/src/ # wget tripwire-2.3.1-20.fdr.1.2.i386.rpm # rpm -Uvh ./tripwire-2.3.1-20.fdr.1.2.i386.rpm 通常、tripwire では次の作業を行う必要があるのですが、RPM 版では下記の工程のうち、1 〜 3 を自動で作成します。 1. 暗号化・署名鍵の生成 2. 設定ファイルの生成 3. ポリシーファイルの生成 4. データベースの新規作成 インストール作業が終了すると、tripwire が必要とするファイルは次の場所にインストールされます。 TWBIN : /usr/sbin TWMAN : /usr/man TWPOLICY : /etc/tripwire TWREPORT : /var/lib/tripwire/report TWDB : /var/lib/tripwire TWSITEKEYDIR : /etc/tripwire TWLOCALKEYDIR: /etc/tripwire tripwire では、設定ファイルやデータベース保護などのために、暗号キーを作成する必要があります。暗号キーの目的は次の通りです。 サイト暗号キー | 設定ファイル、ポリシーファイルの暗号化、署名に使用する ローカル暗号キー | データベースアクセス、レポートファイルアクセスする際に使用する 次のコマンドで暗号キーを作成します。作成時、各暗号キーにアクセスするパスフレーズを入力してください。また、下記コマンドでは、同時に設定ファイル、ポリシーファイルのテンプレートも作成するので、サイト暗号キー、ローカル暗号キーを入力します。 # tripwire-setup-keyfiles ● サイト暗号キー、ローカル暗号キーの手動作成方法 RPM 版tripwire では、サイト暗号キー、ローカル暗号キーはtripwire-setup-keyfiles コマンドにて作成されますが、これを手動で作成するコマンドも用意されています。いずれの暗号キーもディフォルトで/etc/tripwire ディレクトリ配下に-S オプションで指定したファイル名で作成されます。 サイト暗号キーを手動で作成する # twadmin -m G -S site.key ローカル暗号キーを手動で作成する # twadmin -m G -L spicy-islands.com-local.key #--------------------------------------------------------------------------------------------- # tripwire 設定ファイルの作成 #--------------------------------------------------------------------------------------------- tripwire のグローバールな設定はインストール時にはtwcfg.txt に記憶されています。設定ファイルを必要に応じて編集し、先に生成したサイトキーを用いて、設定ファイルの暗号化と署名を行います。ここでは、必要最低限の設定を紹介します。 キー | 説明 ------------------------------------------------------------ ROOT | tripwire プログラムの格納先 POLFILE | 暗号化・署名されたポリシーファイルの格納先 DBFILE | tripwire データベースの格納先 REPORTFILE | レポートファイルの格納先 SITEKEYFILE | サイト暗号キーの格納先 LOCALKEYFILE | ローカルキーの格納先 EDITOR | インタラクティブモードで使用するエディタを指定 LOOSEDIRECTORYCHECKING | ディレクトリ内のファイルが追加・削除された場合、追加・削除されたファ イルのみならずディレクトリの変更も報告するかを指定 SYSLOGREPORTING | tripwireで発生するイベントをsyslogに出力するかどうか。 MAILNOVIOLATIONS | 整合性チェックの結果、違反がない場合でもメールを送信するかどうか 上記で設定したtwcfg.txt はクリアファイルなので、これをサイト暗号キーを使って暗号化します。暗号化後の設定ファイルはディフォルトで/etc/tripwire ディレクトリ配下に-c オプションで指定したファイル名で作成されます。 # twadmin -m F -c tw.cfg -S site.key twcfg.txt #--------------------------------------------------------------------------------------------- # ポリシーファイルの作成 #--------------------------------------------------------------------------------------------- ポリシーファイルは、tripwire が監査を行う上で必要となる条件や、整合性チェックの対象となるファイルのパスを指定します。インストール時にはtwpol.txt として作成されています。ポリシーファイルを必要に応じて編集し、先に生成したサイトキーを用いて、ポリシーファイルの暗号化と署名を行います。 詳しい設定内容は次のURL より確認して下ださい。 → http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec12/unix_sec02.html 上記で設定したtwpol.txt はクリアファイルなので、これをサイト暗号キーを使って暗号化します。暗号化後のポリシーファイルはディフォルトで/etc/tripwire ディレクトリ配下に-p オプションで指定したファイル名で作成されます。 # twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt #--------------------------------------------------------------------------------------------- # 整合性チェックを行う #--------------------------------------------------------------------------------------------- ● 整合性チェック用のデータベースを初期化する ポリシーが決まったら、ホストの整合性チェックを行いますが、まずは整合性チェック用のデータベースを初期化します。 # tripwire -m i 整合性チェック用のデータベースの更新が終了すると、ディフォルトでは/var/lib/tripwire/spicy-islands.com.twd というデータベースファイルが作成されます。 ※ 注意 ) ディフォルトのポリシーでは存在しないファイルもチェック対象となっているため、かなりのエラーが発生します。このような状態では運用できないので、後ほどポリシーファイルを更新してデータベースを更新する必要があります。 ● 整合性チェック用のデータベースを更新する ポリシーに沿ったファイル構成になっているかをCRON にて定期的にチェックする必要があります。 0 1 * * * /usr/sbin/tripwire -m c -M -M オプションを付けることで、ポリシーファイルのemailto 属性で指定したあて先にメール送信されます。 整合性チェックを行った結果はレポートファイルとして、ディフォルトで/var/lib/tripwire/report/ 配下に作成されます。 レポートファイルは下記コマンドで確認することができます。 # twprint -m r -r レポートファイル ● データベースのメンテナンス 実際の運用では、自社ポリシーに沿ったポリシーファイルを作成し、整合性チェック用のデータベースに反映した状態で定期的にホストの整合性チェックを行います。ポリシーファイルを更新した場合は、次のコマンドにてポリシーファイルの暗号化、および整合性チェックのデータベースを初期化する必要があります。 # twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt # tripwire -m i また、ホストの運用上、設定ファイルを意図的に変更するケースは多数あると思います。この場合、tripwire にて整合性違反として報告されますが、変更分の有効性をチェックした上で、レポートファイルからデータベースに反映することができます。 # tripwire -m u -r レポートファイル #--------------------------------------------------------------------------------------------- # 運用上の注意点 #--------------------------------------------------------------------------------------------- 設定ファイル、ポリシーファイルは通常暗号化して利用する。暗号化された設定ファイル、ポリシーファイルを作成するために用いたクリアファイルは削除すべきです。 そして、以降、設定ファイル、ポリシーファイルの修正を行う場合は、暗号化した設定ファイル、ポリシーファイルから、クリアファイルを作成します。 暗号化設定ファイルよりクリアファイルを作成する # twadmin -m f > twcfg.txt 暗号化ポリシーファイルよりクリアファイルを作成する # twadmin -m p > twpol.txt