Solaris Fingerprint DataBase (sfpDB) の使い方
Solaris Fingerprint DataBase (sfpDB) とは、Sun が提供している MD5 による Solaris
システムファイルのハッシュ値データベースです。このデータベースと照合することでシステムファイルが(特にコマンド等が不正侵入者によって)書き換えら
れていないかを検証することができます。
使い方は以下のように2通りあります。
◆ ブラウザを使用し、GUI で行う。
以下のサイトで MD5 ハッシュ値を貼り付けることでチェックできます。
→
Solaris Fingerprint
DataBase
この方法はちょっとしたファイルを検査するときに便利です。
◆
sfpC.pl や
sidekick.sh スクリプトを使用して、コマンドラインから
sfpDB を参照しに行くプログラムを走らせることができます。
この方法は多くのファイルをまとめてチェックするときに便利です。
上記スクリプトは以下のサイトから入手できます。
→
Sun BluePrints OnLine -
Scripts and Tools
ページ下の方の sfpc-1.2.tar.Z and sidekick.sh.Z というリンクからダウンロードできます。
ここでは自由度の高いスクリプトを使用して sfpDB を利用する方法を紹介します。
まず、上記のサイトからスクリプトをダウンロードして適当なディレクトリに展開します。
bash-3.00# pwd
/var/tmp/sfpDB
bash-3.00# ls
sfpC-1.2.tar.Z sidekick.sh.Z
bash-3.00# uncompress *
bash-3.00# ls
sfpC-1.2.tar sidekick.sh
bash-3.00# tar xvf sfpC-1.2.tar
x sfpC-1.2, 0 bytes, 0 テープブロック
x sfpC-1.2/sfpC.pl, 6172 bytes, 13
テープブロック
x sfpC-1.2/README.sfpC, 8754 bytes,
18 テープブロック
bash-3.00#
ここでチェックしたいファイルの md5 ハッシュ値を求めます。
Solaris 10 であれば、標準で入っている
digest
コマンドを使ってもよいですが、
sfpC.pl も
sidekick.sh も md5
コマンドを使用するように設計されているようですので、md5 コマンドのバイナリをダウンロードします。
→
md5 コマンドのダウンロード
ダウンロードした md5 コマンドのバイナリを以下のようにセットアップします。
bash-3.00# pwd
/var/tmp/sfpDB
bash-3.00# ls
md5.tar.Z
sfpC-1.2 sfpC-1.2.tar sidekick.sh
bash-3.00# uncompress md5.tar.Z
bash-3.00# tar xvf md5.tar
x md5, 0 bytes, 0 テープブロック
x md5/md5-x86, 23452 bytes, 46
テープブロック
x md5/md5-sparc, 23892 bytes, 47
テープブロック
bash-3.00# cp md5/md5-sparc /usr/sbin/md5
bash-3.00# chmod 700 /usr/sbin/md5
bash-3.00# ls -l /usr/sbin/md5
-rwx------ 1
root root
23892 8月 16日 13:17 /usr/sbin/md5
bash-3.00#
使用方法は簡単で以下のように実行するだけです。
bash-3.00# md5 /usr/bin/ls
MD5 (/usr/bin/ls) =
ae08d6328d118dfc6ee87cd42436972e
ちなみに同じ出力を Solaris 10 標準の
digest
コマンドで得る場合は、以下のように実行します。一見複雑に見えますが、多機能なためアルゴリズム指定などが入っているだけです。またパイプ(|)の右側
は小文字で出力される md5 を 大文字の MD5 に変換しているだけです。
(注意:sfpDB では大文字で MD5 と記述する必要があります。)
bash-3.00# digest -a md5 -v /usr/bin/ls | sed
's/md5/MD5/'
MD5 (/usr/bin/ls) =
ae08d6328d118dfc6ee87cd42436972e
【
sfpC.pl スクリプトの実行】
準備ができたら sfpC.pl スクリプトのある場所まで移動します。
bash-3.00# pwd
/var/tmp/sfpDB
bash-3.00# cd sfpC-1.2
bash-3.00# ls
README.sfpC sfpC.pl
この記事を書いている 2007年8月16日時点にダウンロードした
sfpC.pl
では上記スクリプトにある sfpDB の URL は古いものになっています。
sfpC.pl をエディタで開いて 137
行目付近の以下のエントリを書き換えてください。
変更前:
my $req = POST
'http://sunsolve.Sun.COM/pub-cgi/fileFingerprints.pl',
↓
変更後:
my $req = POST
'http://jp.sunsolve.sun.com/fileFingerprints.do',
そして、先ほどの md5 コマンドを使用してチェックしたいファイルの MD5 ハッシュをファイルに落とします。ここでは
/usr/bin/ls コマンドを調べると仮定します。
bash-3.00# md5 /usr/bin/ls > md5.out
bash-3.00# cat md5.out
MD5 (/usr/bin/ls) =
ae08d6328d118dfc6ee87cd42436972e
後は、カレントディレクトリにある
sfpC.pl
スクリプトを以下のように実行するだけです。
※注意: Solaris 標準の perl
では必要なモジュールが見つからず、失敗することがあります。README.sfpC ファイルを見て、perl
に必要なモジュールを組み込むか、別途 perl パッケージをインストールして sfpC.pl 内の perl
のパスを変更するなど修正が必要です。
bash-3.00# ./sfpC.pl md5.out
ae08d6328d118dfc6ee87cd42436972e - - 1 match(es)
canonical-path: /usr/bin/ls
package: SUNWcsu
version: 11.10.0,REV=2005.01.21.15.53
architecture: sparc
source: Solaris 10/SPARC
patch: 118855-36RS
【
sidekick.sh スクリプトの実行】
まず
sidekick.sh
スクリプトの以下の部分をシステムの構成に合わせて編集し、スクリプトに実行権をつけます。
bash-3.00# vi sidekick.sh
----------------------------
...
SIDEKICK_MD5=/usr/sbin/md5
...
SIDEKICK_PERL=/usr/local/bin/perl
...
SIDEKICK_SFPC=/var/tmp/sfpDB/sfpC-1.2/sfpC.pl
-----------------------------------
bash-3.00# chmod 744 sidekick.sh
bash-3.00# ls -l sidekick.sh
-rwxr--r-- 1
root root
10711 Aug 16 13:03 sidekick.sh
以下のように実行すると簡単な使用方法が出力されます。
bash-3.00# ./sidekick.sh -h
./sidekick.sh
-R
new-root-dir Specify an alternate root directory.
-r
Find files commonly found in root kits.
-u
Find files with the set-uid bit set.
-g
Find files with the set-gid bit set.
-s
Find files with the sticky bit set.
-U
Find files with no valid user.
-G
Find files with no valid group.
-a
Find all files. warning: slow and many false
positives will ocure
-S
Standalone mode. sfpC will not be executed.
-h
Display this message.
例えば、rootkit などの検出に使用するときには以下のように実行します。これは rootkit
によって置き換えられそうなコマンドがあらかじめスクリプト内に登録されており、1つ1つに対して前述の sfpC.pl
スクリプトが実行されているだけです。
bash-3.00# ./sidekick.sh -r
Searching for files commonly found
in rootkits.
The output has been saved to
rootkitfiles-md5.20070817110238.
Using sfpC to process MD5
signatures from file, rootkitfiles-md5.20070817110238.
00a7737d352eca7e4e7e7a7434bdc9d5 - - 1 match(es)
canonical-path: /usr/bin/date
package: SUNWcsu
version: 11.10.0,REV=2005.01.21.15.53
architecture: sparc
source: Solaris 10/SPARC
patch: 107551-01
...
(以下省略)
上記結果のように sfpDB にマッチ (match) していれば安全です。1つでも 0 match
などの表記が見つかったら、不正に置き換えられていることを示しますので注意が必要です。
オラクルユニバーシティSolaris系技術トレーニング一覧
Solarisお勧め書籍
Solaris 11.2 システムハンドブック
|
Oracle Solaris 11 試験対策本(OCA)
|