[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/