[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139:00145] SQL Server 7.0 Master デー タベースのシステムテーブル を Integyrity Check.



こんにちは、Port139 伊原です。

SQLサーバーユーザーグループ(http://www.sqlpassj.org)で議論された内容を
簡単にまとめてみました。

■SQL Server 7.0 Master データベースのシステムテーブルを Integyrity Check.

SQL Server には BCP ユーティリティが提供されており、このツールを利用する
ことで、テーブルの内容をテキストファイルに出力することができます。

例)sysxlogins テーブルの内容を sysxlogins.txt に出力する
bcp "master..sysxlogins" out sysxlogins.txt -c -q -U sa -P "password"

そこで、BCP ユーティリティを利用して、Master データベースのシステムテーブ
ルの内容をテキストファイルに出力し、これらのファイルのハッシュ値を監視す
ることで、テーブルに対して Integrity check を行うことができます。

■Master データベースのテーブル内容を出力

試しに作成した bcpmaster.bat では Master データベース内にあるシステムテー
ブルの内容を、"テーブル名.txt"の形で bcp を実行したフォルダに作成します。

http://www.port139.co.jp/SQL/bcpmaster.bat

なお、"SYSREMOTE_ほげ"という形式のテーブルについては除外してあります。

■Tripwireを利用した場合のルール

md5sum などのツールを利用し、ひとつづつファイルのハッシュをチェックする方
法も取れますが、Tripwire(www.tripwire.com) がある場合には以下のルールで
各ファイルのハッシュ値をチェックさせることができます。
(ファイルのパスは適宜変更する必要あり)

http://www.port139.co.jp/SQL/rule.txt

ルールでは、プロパティマスクとして $(ReadOnly) -&create -&access -&write;
を指定しているので、ファイルの作成日時、アクセス時刻、最終書き込み時間は
無視されますが、ファイルの CRC32、MD5 ハッシュ値、ファイルサイズなどが
チェック対象になります。(その他 ACL なども自動的にチェックされます)

■チェック対象から除外するテーブル

以下のテーブルは、bcp ユーティリティを実行するたびにハッシュ値が変化する
為、チェック対象に含めてもあまり意味がありません。

syscacheobjects
sysperfinfo
sysprocesses

■実際に Tripwire を利用して Integrity check を実行した場合

1)ユーザーのパスワードが変更された場合、以下のファイルでハッシュ値が異な
ります。

sysxlogins.txt

2)ユーザーが削除された場合、以下のファイルでハッシュ値が異なります。

sysindexes.txt
syslockinfo.txt
syslocks.txt
sysxlogins.txt

3)Master に対してユーザーの権限が変更された場合以下のファイルでハッシュ値
が異なります。

sysindexes.txt
syslockinfo.txt
syslocks.txt
syspermissions.txt
sysprotects.txt

4)システムが再起動された場合、以下のファイルのハッシュ値が異なります。

syscurconfigs.txt
sysdatabases.txt
sysindexes.txt
syslockinfo.txt
syslocks.txt

■変更内容を特定するには

ハッシュ値からでは、どこが変更されたかの特定が難しい為、bcp で出力した各
ファイルは、一括して圧縮保存しておくなどの対応が必要です。
ハッシュ値が全体の値と異なった場合には、現在のファイルと保存してあるファ
イルの内容を比較することで、変更箇所の特定が行えるようになりますが、詳細
な内容については別途ログなどを確保する必要があります。

■その他

同様の手法で、他のデータベースのシステムテーブルをチェックすることも可能
です。


---
WinSyslog,EventReporter 販売中: http://adiscon.port139.co.jp/

Hideaki Ihara <hideaki@port139.co.jp>
Port139 URL: http://www.port139.co.jp/
PGP PUBLIC KEY: http://www.port139.co.jp/pgp/