Tripwire

Tripwire最新バージョン
2004/12/10
Tripwire 2.3-47
TripwireRPM 2.3.1-20.fdr.1.2

目次

インストール

ソースから入れようと思ったのだが、FC3等の最新OSではCライブラリが対応できないらしく導入が難しい。 ということでRPMで配られているものを使うことにした。 まず、TripwireのRPMを入手し、インストール。

wget http://download.fedora.us/fedora/fedora/2/i386/RPMS.testing/tripwire-2.3.1-20.fdr.1.2.i386.rpm
rpm -ihv compat-libstdc++-8-3.3.4.2.i386.rpm
rpm -ihv tripwire-2.3.1-20.fdr.1.2.i386.rpm

これでインストール完了。 楽チンでいいね!

SourceForgeでTripwireが入手できるようになっており、現OSでもコンパイルができるようになっていました。 これを使ってもいいですね。

wget http://jaist.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.0.1-src.tar.bz2
bunzip2 tripwire-2.4.0.1-src.tar.bz2
tar xvf tripwire-2.4.0.1-src.tar
cd tar tripwire-2.4.0.1
./configure
make
make install 

これでインストール完了・・・と行きたかったんですけどなぜかエラー! 「install.sh」が見つからないと文句を言われる。

in -s contrib install
make install

とりあえずこれでインストール完了できる。 インストールの最中にsiteキーとlocalキーのパスフレーズを聞かれるので、別々のパスワードを登録しましょう。
また、Tripwireのコンパイル・インストールはrootで行わなければならないようである。
suするのではなく、はじめからrootでログインしてコンパイルしましょう。

RPMでインストールした場合、設定ファイルは"/etc/tripwire"に格納される。
ソースからコンパイルした場合、設定ファイルは"/usr/local/etc"に格納される

ファイル名解説
"hostname"-local.keyホストキー レポートを閲覧する際に使う
site.keyサイトキー コンフィグファイルやポリシーファイルの署名の際に使う
twcfg.txtTripwireのコンフィグファイル
twpol.txtTripwireのポリシーファイル
tw.cfg署名されたTripwireのコンフィグファイル
tw.pol署名されたTripwireのポリシーファイル

コンフィグファイルの作成

twcfg.txtの編集

項目解説
ROOT/usr/sbin全部よくわかっていないので後で調べます
POLFILE/etc/tripwire/tw.pol
DBFILE/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE/etc/tripwire/site.key
LOCALKEYFILE/etc/tripwire/"hostname"-local.key
EDITOR/bin/vi
LATEPROMPTINGfalse
LOOSEDIRECTORYCHECKINGfalse
MAILNOVIOLATIONStrue
EMAILREPORTLEVEL3
REPORTLEVEL3
MAILMETHODSENDMAIL
SYSLOGREPORTINGfalse
MAILPROGRAM/usr/lib/sendmail -oi -t

コンフィグファイルへの署名

/usr/sbin/twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt

ポリシーファイルの作成

twpol.txtの編集

@@section GLOBAL
TWDOCS="/usr/doc/tripwire";
TWBIN="/usr/sbin";
TWPOL="/etc/tripwire";
TWDB="/var/lib/tripwire";
TWSKEY="/etc/tripwire";
TWLKEY="/etc/tripwire";
TWREPORT="/var/lib/tripwire/report";
HOSTNAME="hostname";
@@section FS
SEC_CRIT      = $(IgnoreNone)-SHa ;  # Critical files that cannot change
SEC_SUID      = $(IgnoreNone)-SHa ;  # Binaries with the SUID or SGID flags set
SEC_BIN       = $(ReadOnly) ;        # Binaries that should not change
SEC_CONFIG    = $(Dynamic) ;         # Config files that are changed infrequently but accessed often
SEC_LOG       = $(Growing) ;         # Files that grow, but that should never change ownership
SEC_INVARIANT = +tpug ;              # Directories that should never change permission or ownership
SIG_LOW       = 33 ;                 # Non-critical files that are of minimal security impact
SIG_MED       = 66 ;                 # Non-critical files that are of significant security impact
SIG_HI        = 100 ;                # Critical files that are significant points of vulnerability
# Tripwire Binaries
(
  rulename = "Tripwire Binaries",
  severity = $(SIG_HI)
)
{
  $(TWBIN)/siggen                      -> $(SEC_BIN) ;
  $(TWBIN)/tripwire                    -> $(SEC_BIN) ;
  $(TWBIN)/twadmin                     -> $(SEC_BIN) ;
  $(TWBIN)/twprint                     -> $(SEC_BIN) ;
}

ポリシーファイルへの署名

/usr/sbin/twadmin -m P -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

整合性チェック

ポリシーデータベースの作成

整合性チェックの前にポリシーデータベースの作成する。 つまり、正常値を保存しておくということである。 Tripwireでは正常値と整合性チェックとの比較を行い、違いを検出する。

/usr/sbin/tripwire -m i -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol

アップデート

コンフィグのアップデート(もう一度コンフィグファイルを作り直す)

/usr/sbin/twadmin  -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt

ポリシーのアップデート

/usr/sbin/tripwire -m P -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

ポリシーデータベースのアップデート

/usr/sbin/tripwire -m u

整合性チェック

ポリシーデータベースが作成できたらいよいよ整合性チェックを行う。

/usr/sbin/tripwire -m c

結果はディスプレイに表示されるが、"/var/lib/tripwire/report"ディレクトリにも保存される。

レポートの閲覧

保存されたレポートは暗号化されているため普通に見ることは出来ない。 以下のコマンドを使用してファイルを診ることが出来る。

/usr/sbin/twprint -m r -c tw.cfg -r "レポートファイル名" -L /etc/tripwire "hostname"-local.key

よりセキュアな運用

Tripwireでのファイル指定・コマンド指定をすべて絶対パスで記述していうることに気づいただろうか? 指定しなかった場合、誤ってカレントディレクトリのコマンドやファイルが指定されてしまうことがあるかもしれない。 セキュリティ関連ソフトを扱う場合には、このように最新の注意を払ったほうがよい。

すべての処理が正常に行えて、エラーが出なくなったようであれば、テキスト形式で保存されているコンフィグファイルやポリシーファイルは削除したほうがよい。 どのようなコンフィグが書かれていて、どのファイルに対してチェックを行っているかがわかってしまうからである。 もし、コンフィグファイルやポリシーファイルに対して変更を加えたい場合は、署名したファイルから元のファイルを復元すればよい。
コンフィグファイルの復元

/usr/sbin/twadmin -m f > twcfg.txt

ポリシーファイルの復元

/usr/sbin/twadmin -m p > twpol.txt

ファイルへの編集が終わったら、再びファイルへ署名し、データをアップデートすればよい。

レポートをメールで受け取る

twpol.txtに以下の内容を記述

(
   rulename = "Test Policy1"
   emailto  = test@test.jp
)

ここに記述されたメールアドレスにレポートが送信される。 後はTripwireの実行オプションに"--email-report"を付け加えればよい。

cronを用いた自動処理

基本的にRPMで導入した場合には自動的に動いてチェックをしてくれます。 cron.dailyにセットされるので、毎日チェックします。 かなりの負荷がかかるので、それほど重要でない場合にはcron.weeklyにでも移しましょう

crontab -e
----------------------------------------------------
0 5 * * 0 /usr/sbin/tripwire --check --email-report
----------------------------------------------------

これで毎週日曜日の午前5時に実行されることになる。(と思う)

参考リンク

Tripwire.org

SourceForge Tripwire


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-01 (日) 21:00:14 (1050d)