[Linux]-[secure] Tripwire

  • 投稿日:
  • by
  • カテゴリ:

本来、改竄を発見する物なので他のメディア(MOなど)に
インストールやデータベースを置き運用するのが一番良い。
ASR版はログなどを一切残さないため、結果をリダイレクトでファイルに残したり、
メールで送信などする必要がある。


インストールをデフォルトで行ったため、
以下の所にインストール、または、運用する。


実行ファイル
 /usr/local/bin/tw/tripwire

設定ファイル(どのファイルorディレクトリをDB化するか記述)
 /usr/local/bin/tw/tw.config

データベースファイル
 /var/tripwire/tw.db_hostname (hostnameの部分にはホスト名が入る)


1.設定を行う(tw.config)
  デフォルトのデータベースがインストールされていますので、
  必要に合わせて編集などを行います。

# vi /usr/local/bin/tw/tw.config


   "#"     :コメントアウト、または、"#"以降の行を無効

   "R"オプション:読み込みしかしないファイルに使用
   "L"オプション:ログファイルに使用。

   その他オプションは別途ファイルに記載してあります。

------------例------------

#apacheのコンフィグディレクトリを監視
  /usr/local/apache2/conf R # Apach2 config

  #apacheのコンフィグファイルを監視
/usr/local/apache2/conf/httpd.conf R # apache2 httpd.conf
/usr/local/apache2/conf/ssl.conf R # apache2 httpd.conf

--------例ここまで--------


2.設定を元にデータベースを作成(初期化)する。

# /usr/local/bin/tw/tripwire -initialize

 ※/usr/local/bin/tw/tw.configに記述されているファイルが
  無い場合はエラーが発生します。

  ------------例-------------------

  Tripwire(tm) ASR (Academic Source Release) 1.3.1
  File Integrity Assessment Software
  (c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire
  Security Systems, Inc. All Rights Reserved. Use Restricted to
  Authorized Licensees.
  ### Phase 1: Reading configuration file
  ### Phase 2: Generating file list
  /usr/local/bin/tw/tripwire: /.rhosts: No such file or directory
  /usr/local/bin/tw/tripwire: /.cshrc: No such file or directory
  /usr/local/bin/tw/tripwire: /.login: No such file or directory
  ・
  ・
  ・
  ・
  /usr/local/bin/tw/tripwire: /usr/bin/uustat: No such file or directory
  /usr/local/bin/tw/tripwire: /usr/bin/uux: No such file or directory
  /usr/local/bin/tw/tripwire: /usr/bin/ksrvtgt: No such file or directory
  ### Phase 3: Creating file information database
  ###
  ### Warning: Database file placed in ./databases/tw.db_mouse.
  ###
  ### Make sure to move this file and the configuration
  ### to secure media!
  ###
  ### (Tripwire expects to find it in '/var/tripwire'.)

  ------------例ここまで-----------

3.データベースを設置する。
  2で行ったDB初期化の際、コマンドを実行したカレントディレクトリに
  データベースファイルが作成される(tw.db_hostname)

  ※カレントディレクトリのdatabasesディレクトリの中の可能性有り。


# mv tw.db_hostname /var/tripwire/

4.データベースとの照合
  コマンドを実行することにより、先ほど作成されたDBとの照合が行われる。


# /usr/local/bin/tw/tripwire

-----------変更が無い場合----------

Tripwire(tm) ASR (Academic Source Release) 1.3.1
File Integrity Assessment Software
(c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire
Security Systems, Inc. All Rights Reserved. Use Restricted to
Authorized Licensees.
### Phase 1: Reading configuration file
### Phase 2: Generating file list
### Phase 3: Creating file information database
### Phase 4: Searching for inconsistencies
###
### All files match Tripwire database. Looks okay!

-------変更が無い場合ここまで------

-----------変更が有る場合----------

### Phase 4: Searching for inconsistencies
###
### Total files scanned: 9025
### Files added: 0
### Files deleted: 0
### Files changed: 1
###
### Total file violations: 1
###
changed: -r--r--r-- root 549 Jul 1 17:42:00 2002 /etc/inet/hosts
### Phase 5: Generating observed/expected pairs for changed files
###
### Attr Observed (what it is) Expected (what it should be)
### =========== ============================= =============================
/etc/inet/hosts
st_size: 549 531
st_mtime: Mon Jul 1 17:42:00 2002 Tue Jun 4 18:16:05 2002
st_ctime: Mon Jul 1 17:42:00 2002 Tue Jun 4 18:16:05 2002
md5 (sig1): 1qDof9YzBljdGFgEHNs3gx 2sNiz5CBETy86gcaX1fsuV
snefru (sig2): 2032Oxw73hptiE1TJrSdr1 1vvsXhDKPFnWaaXivqVjlp

-------変更が有る場合ここまで------

5.データベースの更新
  監視しているファイルを変更した時や、
  4の照合で「変更されている」と出て問題ないと判断した時に
  行います。

  ※照合時に問題ない場合は必要はありません。


  # /usr/local/bin/tw/tripwire -interactive

  コマンドを実行したカレントディレクトリに作成されるので、
  3で行ったように移動します


# mv tw.db_hostname /var/tripwire/

6.項目4と同じように照合を行い問題ないかテストする。

-------------------------------------------
属性については、チェックする項目を指定できるようになっていて、 すごく沢山あるんだけど、だいたいは下記のように。 ちなみに、デフォルトは"R"。
+/- +で属性の追加、-で削除(これはスイッチか...)
0-9 ファイルの内容に対する、 いろいろなハッシュ、CRC等のチェック アルゴリズム
p パーミッションとモードビット
i iノード番号
n iノードの参照数。リンクの数
u オーナーのユーザid
g オーナーのグループid
s ファイルサイズ
a 最終アクセス時間
m 最終更新時間
c 作成、変更時間
R 読み込み用。(+pinugsm12-ac3456789)と同じ
L ログファイル用 (+pinug-sacm123456789)と同じ
N すべて非許可(+pinusgsamc123456789)と同じ
E すべて許可(-pinusgsamc123456789)と同じ
> 増加するファイル (+pinug>-samc1233456789)と同じ

# Format: [!|=] entry [ignore-flags]
#
# where: '!' signifies the entry is to be pruned (inclusive) from
# the list of files to be scanned.
# '=' signifies the entry is to be added, but if it is
# a directory, then all its contents are pruned
# (useful for /tmp).
#
# where: entry is the absolute pathname of a file or a directory
#
# where ignore-flags are in the format:
# [template][ [+|-][pinugsam12] ... ]
#
# - : ignore the following atributes
# + : do not ignore the following attributes
#
# p : permission and file mode bits a: access timestamp
# i : inode number m: modification timestamp
# n : number of links (ref count) c: inode creation timestamp
# u : user id of owner 1: signature 1
# g : group id of owner 2: signature 2
# s : size of file
#
#
# Ex: The following entry will scan all the files in /etc, and report
# any changes in mode bits, inode number, reference count, uid,
# gid, modification and creation timestamp, and the signatures.
# However, it will ignore any changes in the access timestamp.
#
# /etc +pinugsm12-a
#
# The following templates have been pre-defined to make these long ignore
# mask descriptions unecessary.
#
# Templates: (default) R : [R]ead-only (+pinugsm12-a)
# L : [L]og file (+pinug-sam12)
# N : ignore [N]othing (+pinusgsamc12)
# E : ignore [E]verything (-pinusgsamc12)