サンプルポリシーファイルを参考にポリシーを作成する

 次にサンプルポリシーファイルを開き、その中身を簡単に見ていこう。

 冒頭部分は命令が記述されている。@@section GLOBALにはポリシーファイル全体への各変数の定義が記述されている。たとえば、グローバルセクションの中で「TWSKEY="/etc/tripwire";」とパスが記述されているが、これはつまり、以下のルールに出てくる「$(TWSKEY)」は「/etc/tripwire」であるということを定義している。

@@section GLOBAL
TWROOT=/usr/sbin;
TWBIN=/usr/sbin;
TWPOL="/etc/tripwire";
TWDB="/var/lib/tripwire";
TWSKEY="/etc/tripwire";
TWLKEY="/etc/tripwire";
TWREPORT="/var/lib/tripwire/report";
HOSTNAME=localhost;

 @@sectionの「FS」はUNIXシステムで利用できるもので、Windows用のポリシーと区別するために用意されている。@@section FSにも同様に変数が定義されている。

@@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
SIG_LOW    = 33 ;         # Non-critical files that are of minimal se
curity impact
SIG_MED    = 66 ;         # Non-critical files that are of significan
t security impact
SIG_HI    = 100 ;        # Critical files that are significant point
s of vulnerability

 このほかにも命令として@@ifhostや@@printなどがある。

例)サーバ名がhogeであれば、/tmp/test1.txt -> $(ReadOnly);を実行し、ほかのサーバ名の場合は/tmp/test2.txt -> $(ReadOnly);を実行する。

@@ifhost hoge
/tmp/test1.txt -> $(ReadOnly);
@@else
/tmp/test2.txt -> $(ReadOnly);
@@endif

 はじめのルールとして、Tripwire Binariesのルールが出てくるが、@@sectionで定義された変数と、これまでの解説を参考にすれば、ルールがどのような内容になっているかが、なんとなくは理解できるだろう。

# Tripwire Binaries
(
 rulename = "Tripwire Binaries",
 severity = $(SIG_HI)
)
{
 $(TWBIN)/siggen -> $(SEC_BIN) ;
 $(TWBIN)/tripwire -> $(SEC_BIN) ;
 $(TWBIN)/twadmin -> $(SEC_BIN) ;
 $(TWBIN)/twprint -> $(SEC_BIN) ;
}

変数に定義されたものを代入すれば下記のようになる

(
 rulename = "Tripwire Binaries",
 severity = 100
)
{
 /user/sbin/siggen -> $(ReadOnly) ;
 /user/sbin/tripwire -> $(ReadOnly) ;
 /user/sbin/twadmin -> $(ReadOnly) ;
 /user/sbin/twprint -> $(ReadOnly) ;
}

ポリシーファイルの作成・編集まとめ

 あとは、サンプルポリシーファイルを参考にシステム環境にあわせて、必要なポリシーファイルを作成、編集していく。足りないと思われるものは付け足すなどして、ルールの追加、編集、削除を行っていこう。次回はレポートの閲覧やコマンドのオプションなどについて解説していく予定だ。

[TTS,ITmedia]

PREV 3/3