TripWire とは、侵入されファイルが改変されたら、それを通知する仕組みです。
Tripwireは、導入時のファイル状態をデータベース化し、そのデータベースとファイルの現状を比較することにより、ファイルの追加/変更/削除を検知するため、Linuxインストール後の初期の段階で導入しておくのが望ましい。
http://fedorasrv.com/tripwire.shtml
TripWire っていろいろな機能があるけど、改ざん検出に絞れば、md5sum してれば、同じこと出来るじゃん。
/etc の改変があったら検出する。
目的を達するために、最短距離を考える。
たとえば、1分ごとのファイル検出をするなら、次で充分
while (1) ; do last_state=$(date -d " -1 minute" +"%Y-%m-%d#%H_%M").md5sum current_state=$(date +"%Y-%m-%d#%H_%M").md5sum find /etc/ -type f -exec md5sum {} \; > $current_state str=$(diff -urN $last_state $current_state) if[ -z $str] ; do echo $str | mail -s "変更検知" "takuya@example.com" fi; sleep 60; done
昔から思ってること
ファイル検出って◯◯システム入れるって感じでテンプレ作るのは「お仕事」として正しいんだけど
ファイル検出の根本原理を知らないまま、インストールしてJ-SOX対応したよ、とか監査基準がとか言ってほしくない。とくに監査法人は何も知らなさすぎて、「指定ソフト」を「入れて」いれば「OK」とかになりかねない。インストール・チェックだけがテンプレ仕事なら、それね、コンピュータにやらしたほうがすげー正確だよ。TripWireの「設定をテスト」するファイルを書く「お仕事」とかなら有りだと思うんですよね。
パスワードのハッシュ一致もせずに、生パスワードの「ゆうちょ銀行」や「発車オーライ」があって、その他にも、J-SOX対応(?)して個人情報保護法をクリア(??)して、誤安心のPマーク取得してさ、基準クリアするだけの簡単なお仕事?? あれで平気で仕事してるんだから困ったもんだ。
誰が見てんのさ。
情報セキュリティの試験で、IDSとかWAFをインストールとか出てくるんだけど、そういうのもうクラウド化されて、Herokuでいいじゃんね。
TripWire より chef とか、puppet使うべき
大事なのは「検出」より「復旧」です。
書き換えられても「とっとと元通り」にしちゃえばいいわけで。puppet でファイルを監視して、更新があったら通知しつつ、ファイル書き戻しちゃえば良いと思いますよ。
検出&バックアップを兼ねたソリューション
rsync しておくも確実じゃないですかね
rsync -a /shuld/be/etc/ /etc
上で同期しつつ、変更がないか調べてみる
-n オプションで変更があれば転送候補として出てくる。
rsync -na /etc /shuld/be/etc/ /etc
rsync ならパーミッションもチェックしてくれるので安心ですね。
ヒューリスティックな解法大好き。
etcのバージョン管理
etckeeper 入れてばgit でバージョン残るから確実です。