カテゴリー
Linux

★3★ レポートの読み方【Tripwire】yum なら自動で動く。わたくしだって WordPress サーバの改ざん検知したい!【CentOS】

前回、Tripwire をインストールして、日々の運用を開始する直前までの設定を行いました。

これから運用を開始します!と思っていたのですが、rpm インストールすると、cron に自動的に日々の改ざんチェックを登録していると読んだ記憶があります。

yum ではどうでしょうか?Tripwire を yum インストールしただけで cron に登録されるのでしょうか?

また、自動で改ざんチェックがあれば、レポートも気になります!レポートの読み方もチェックしたいと思います。

cron への Tripwire 登録を確認します♪

ありました!結論から申しますと、日々の cron 実行である、cron.daily に登録されておりました♪

[root@oki2a24 ~]# ll /etc/cron.daily/
合計 24
lrwxrwxrwx 1 root root  39  6月 10 12:20 0logwatch -> /usr/share/logwatch/scripts/logwatch.pl
-rwxr-xr-x 1 root root 180  6月  4  2012 logrotate
-rwxr-xr-x 1 root root 418  5月 30  2012 makewhatis.cron
-rw-r--r-- 1 root root 137  9月  4  2009 mlocate.cron
-rwxr-xr-x 1 root root 296  2月 25 19:06 rpm
-rwxr-xr-x 1 root root 354  8月 11  2010 tmpwatch
-rwxr-xr-x 1 root root 315 12月 17  2008 tripwire-check
[root@oki2a24 ~]#

他の「cron.d」「cron.hourly」「cron.monthly」「cron.weekly」には無さそうでした。そしてコマンド「crontab -e」でも確認しましたが、やはりありません。

cron.daily に登録された Tripwire の内容を確認します!

ファイル「/etc/cron.daily/tripwire-check」の中身です。

#!/bin/sh
HOST_NAME=`uname -n`
if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ] ; then
	echo "****    Error: Tripwire database for ${HOST_NAME} not found.    ****"
	echo "**** Run "/etc/tripwire/twinstall.sh" and/or "tripwire --init". ****"
else
        test -f /etc/tripwire/tw.cfg &&  /usr/sbin/tripwire --check
fi

はい。。。意味がわかりません。

2 行目の「uname -n」は「print the network node hostname」とのことです。ネットワーク・ノード・ホストネームを表示、ということでしょうか。man で調べてみました。

3 行目で、ホストネームの twd ファイル、つまりベースラインデータベースが存在するかどうかを確認し、ありましたら 7 行目を実行します。

7 行目の「test -f ファイル」は「check file types and compare values. -f FILE exists and is a regular file」とのことです。ファイルタイプを確認して値を比較、-f はファイルが存在することそして通常ファイルであることを確認、ということでしょうか。こちらも man で調べました。

そして「&&」でつなげておりますが、これは論理積でしょう。うまくイメージ出来ないのですけれども、「test -f ファイル」でファイルが存在すれば、「&&」の右側の改ざんチェックをする、という理解でよいのかと思います。

「/usr/sbin/tripwire –check」は Tripwire の改ざんチェックの実行ですね。ここでようやくチェックが行われます。

Tripwire レポートの読み方!

日々の cron に登録されていることがわかりました。

そして翌日。

無事レポートが出力されていることを確認いたしました。中を見てみましたら、多くのファイルが改ざんチェックに引っかかっておりました><。

[root@oki2a24 ~]# twprint -m r -c /etc/tripwire/tw.cfg -r /var/lib/tripwire/report/oki2a24.com-20130728-020035.twr

まずは引っかかった内容をチェックしまして、問題無さそうでしたので、そのままレポートの読み方のお勉強といたしました♪

まずは、Tripwire レポートの全体構成♪

  1. Report Summary → 改ざんチェックの条件、使ったベースラインデータベースなどが記されている。
  2. Rule Summary → 改ざんチェックの結果概要で、追加、削除、編集されたファイル数を一覧
  3. Object Summary → 改ざんチェックに引っかかったファイル一覧を追加、削除、編集ごとに表示
  4. Object Detail → 改ざんチェックに引っかかった個々のファイルの結果詳細を表示

実際にレポートを読んで考えたこと!

1番目の Report Summary は改ざんチェックする時の前提条件みたいなものですので、軽く見るくらいにとどめました。

2番目の Rule Summary で、行頭に「*」が付いているルールがチェックに引っかかっています。

  Rule Name                       Severity Level    Added    Removed  Modified
  ---------                       --------------    -----    -------  --------
…略…
* Tripwire Data Files             100               1        0        0       
…略…
* System boot changes             100               2        2        65      
…略…

Total objects scanned:  12599
Total violations found:  70

3番目の Object Summary で、変更のあったファイルを確認します。

最初の Rule Name: Tripwire Data Files (/var/lib/tripwire) について見てみますと、”/var/lib/tripwire/oki2a24.com.twd”  が追加されました!と、あります。

これは、ベースラインデータベースを初期化した際に追加されたファイルです。つまり、不正ログインで改ざんされたファイルではなく、問題ありません。

次の System boot changes (/var/log) ですが、これはログが追加・削除・変更されたよ、ということのようです。

ログは毎日更新されますし、改ざん検知されたファイル一覧を眺めてみても、攻撃を受けたわけでは無さそうで、問題無しとします。

===============================================================================
Object Summary:
===============================================================================

-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire)
Severity Level: 100
-------------------------------------------------------------------------------

Added:
"/var/lib/tripwire/oki2a24.com.twd"

-------------------------------------------------------------------------------
Rule Name: System boot changes (/var/log)
Severity Level: 100
-------------------------------------------------------------------------------

Added:
"/var/log/sa/sar27"
"/var/log/sa/sa28"

Removed:
"/var/log/sa/sa19"
"/var/log/sa/sar18"

Modified:
"/var/log/boot.log"
"/var/log/boot.log.1"
"/var/log/boot.log.2"
…略…

4番目の Object Detail で、改ざんチェックに引っかかったファイルひとつひとつについて、詳細レポートです。3番目の★で、問題なしと大体のところの結論を出しておりますが、こちらもざっと眺めます。

たとえば次のような表示となります。やはり、変更のあった部分の行頭に「*」が付きます。わかりやすいです♪

この場合、ログファイルのローテートが起こったことでファイルのリネームが発生し、結果ファイルのノード番号がずれたのだと思います。

Modified object name:  /var/log/cron

  Property:            Expected                    Observed                   
  -------------        -----------                 -----------                
  Object Type          Regular File                Regular File               
  Device Number        83                          83                         
* Inode Number         191538555                   191538557                  
  Mode                 -rw-r--r--                  -rw-r--r--                 
  Num Links            1                           1                          
  UID                  root (0)                    root (0)                   
  GID                  root (0)                    root (0)

おわりに

ここまでで、日々改ざんチェックがされることがわかりました。ですけれども、これで終わりではございません。

ベースラインデータベースの更新は自動では行われませんので、Tripwire 改ざんチェックに使うベースラインデータベースのアップデート方法を知る必要があります。

そして結果を見るために、毎回 SSH にログインするのも嫌ですので、Tripwire 改ざんチェック結果をメール送信するようにしたいです。

以上です。

「★3★ レポートの読み方【Tripwire】yum なら自動で動く。わたくしだって WordPress サーバの改ざん検知したい!【CentOS】」への1件の返信

コメントを残す