(57)【要約】【課題】更新履歴DBに対するレプリケーション装置以外からの更新履歴DBへの改竄の検知。【解決手段】マスタDBへのデータ更新をレプリケーション装置によってレプリカDBへ非同期に反映し、マスタDBおよびレプリカDBで発生した全ての更新処理をそれぞれの更新履歴DBに保持し、一定間隔で更新履歴DBの比較を行い、マスタDBとレプリカDBの整合性を検査するDBレプリケーションシステムにおいて、更新履歴DBに対してのアクセス履歴を監視し、改竄を検知する。【選択図】図１
2007317040.tif 000002
【特許請求の範囲】
【請求項１】
マスタDBへのデータ更新をレプリケーション装置によってレプリカDBへ非同期に反映し、マスタDBおよびレプリカDBで発生した全ての更新処理をそれぞれの更新履歴DBに保持し、一定間隔で更新履歴DBの比較を行い、マスタDBとレプリカDBの整合性を検査するDBレプリケーションシステムにおいて、更新履歴DBに対してのアクセス履歴を監視し、改竄を検知することを特徴とする更新履歴DB改竄検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタDBが存在する現用系サーバとレプリカDBが存在する待機系サーバ間において、マスタDBのデータへの更新内容を、レプリケーション装置によってネットワーク経由でレプリカDBへ非同期に反映し、現用系の障害発生時に待機系に切り替えて運用することを可能とするディザスタリカバリシステムに関する。
【背景技術】
【０００２】
特開２００５−２５０８１９号公報に記載のように、現用系障害時に待機系への円滑な系切り替えを実現するためにレプリカDBに対するクライアント接続を抑止しない場合、レプリカDBに対する更新処理が悪意のあるユーザによって、実行される恐れがある。
【０００３】
特開２００５−２５０８１９号では、マスタDBの存在するマスタサーバとレプリカDBが存在するレプリカサーバの双方に更新履歴DBを持ち、それぞれの更新履歴DBの差異を比較することで、マスタDBとレプリカDB間の整合性のチェック及びレプリカDBへの改竄を検知する方式が実現されている。
【０００４】
【特許文献１】特開２００５−２５０８１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特開２００５−２５０８１９号においては、マスタDB及びレプリカDBの更新履歴DBに対してのアクセスをチェックしていないため、更新履歴DBに対するレプリケーション装置以外からの更新履歴DBへの改竄を検知できず、マスタDBとレプリカDBの間の整合性が失われてしまう可能性がある点である。
【課題を解決するための手段】
【０００６】
本発明は、更新履歴DBアクセスチェック装置が、DBMSが出力するDBアクセス履歴情報を使用して、更新履歴DBへのアクセス履歴を監視し、レプリケーション装置以外からの改竄を検知することを特徴とする。
【発明の効果】
【０００７】
本発明により、更新履歴DBへの不正アクセスによる改竄があった場合の検知が可能となり、現状より更にセキュリティの高いレプリケーションシステムが実現可能となる。
【発明を実施するための最良の形態】
【０００８】
本発明に関るレプリケーションシステムの好適な実施形態について添付図面を参照して説明する。
【０００９】
図１は、本実施形態であるレプリケーションシステムを示すシステム構成図である。
【００１０】
このシステムは、レプリケーション装置５および６によるマスタDB２とレプリカDB４間のデータレプリケーション機能と、更新履歴比較装置９によるマスタDB２とレプリカDB４の整合性チェックおよびレプリカDB４への改竄チェック機能、そして更新履歴DBアクセスチェック装置１２および１３による更新履歴DB７または８への改竄チェック機能で構成される。
【００１１】
まずデータレプリケーション機能について、以下に説明する。オペレータがクライアント１６上の入力プログラム１８を操作してマスタDB２に対する更新指示を実行することにより、マスタサーバ１上のマスタDB２に対する更新処理が行われると、マスタDB２に対する更新情報がレプリケーション装置５によってネットワーク経由でレプリカサーバ３上のレプリケーション装置６に送信され、レプリケーション装置６がレプリカDB４に更新情報を反映することによりマスタDB２とレプリカDB４のデータ同期が行われる。
【００１２】
ただし、クライアント１７がレプリカDB４に対して直接更新した場合には、マスタDB２とレプリカDB４との間にデータ不整合が発生する恐れがある。そのため、レプリケーション装置はマスタDB２とレプリカDB４のデータ同期チェック機能およびレプリカDB４への改竄検知機能を備える。この機能について以下に説明する。
【００１３】
レプリケーション装置は、マスタDB２に対して行われた全ての更新処理について、更新履歴DB７に更新前と更新後の情報を格納する。また、レプリケーション装置５および６によってレプリカDB４に反映された全ての更新処理について、更新履歴DB８に更新前と更新後の情報を格納する。更新履歴比較装置９は、定期的に起動し、更新履歴DB７と更新履歴DB８の内容を比較する。双方に対応する履歴が存在する場合はそれぞれの該当レコードを削除する。更新履歴DB７と更新履歴DB８のレコードがともに０件の場合は、マスタDB２とレプリカDB４のデータ同期が取れていると判断する。もし、更新履歴DB７のみに更新履歴レコードが存在する場合は、レプリケーションの未反映分の履歴レコードと判断し、エラーとはならない。もし更新履歴DB８のみに更新履歴レコードが存在する場合は、レプリカDB４への改竄が発生したと判断して、エラーとする。
【００１４】
以上までは、特開２００５−２５０８１９号において既に実現されている内容であるが、この方式においては、クライアント１６、１７からの更新履歴DB７および更新履歴DB８に対するデータ更新を抑止しないため、クライアント１６、１７から更新履歴DB７および更新履歴DB８に改竄が行われた場合に検知はできず、更新履歴比較装置９によるチェックが正しく動作しなくなる可能性がある。この課題に対応するために、本発明では更新履歴DB７または更新履歴DB８への改竄チェック機能を備える。
【００１５】
以下に、更新履歴DBの改竄チェック機能の動作について図１〜図５を用いて説明する。事前にDB管理者がDBMS２０に対してDBアクセス履歴情報１０の出力項目設定および履歴取得開始指示が行われることにより、DBアクセス履歴情報１０の出力が開始される。図２に、本発明に係る実施形態におけるDBアクセス履歴情報１０の出力項目を示す。
【００１６】
また入力プログラム１８は、マスタDB２に対するSELECT、INSERT、UPDATE、DELETE操作を可能とする。
【００１７】
DBアクセス履歴情報１０の取得がDBMS２０にて開始されると、DBMS２０の管理しているDBに対するあらゆるSQL操作がDBアクセス履歴情報１０に記録される。図４にDBアクセス履歴情報１０の出力フローを示す。
【００１８】
そして、図５が示すように更新履歴DBアクセスチェック装置１２は、一定サイクルで起動し、DBアクセス履歴情報１０から条件１かつ条件２を満たすデータを抽出する。
【００１９】
以下に条件１と条件２を以下に具体的に示す。
条件１：DBアクセス履歴情報１０のタイムスタンプがチェック処理実行情報１４のチェック実行タイムスタンプより大きい。
条件２：更新履歴DB７に対するINSERT,UPDATE,DELETEのいずれかを実行している。
【００２０】
ここで、条件２に合致するか判断をどのようにして行うかについて説明する。
【００２１】
図２が示すように、更新履歴DBアクセスチェック装置１２は、DBアクセス履歴情報１０の実行SQL文の文字列を検索し、「INSERT…更新履歴DB」または「UPDATE…更新履歴DB」または「DELETE…更新履歴DB」というパターンの文字列が見つかった場合、更新履歴DB７に対する更新操作があると判断する。
【００２２】
また、チェック処理実行情報１４にて管理しているチェック処理実行タイムスタンプは、更新履歴DBアクセスチェック装置１２の処理実行が完了した時のタイムスタンプである。図３に、本発明に係る実施形態におけるチェック処理実行情報１４の出力項目を示す。
【００２３】
条件１と条件２によるデータ抽出後、更新履歴DBアクセスチェック装置１２は、抽出されたデータの内、以下の条件式３〜５のいずれかに合致するかを比較する。
条件３：DBアクセス履歴情報１０のOSユーザ≠レプリケーション装置のOSユーザ。
条件４：DBアクセス履歴情報１０のDBユーザ≠レプリケーション装置が使用しているDBユーザ。
条件５：DBアクセス履歴情報１０のアプリケーション名≠レプリケーション装置が使用しているアプリケーション名。
【００２４】
なお、レプリケーション装置５のOSユーザは「OS_USER_B」、レプリケーション装置５が使用しているDBユーザは「DB_USER_B」、レプリケーション装置５が使用しているアプリケーション名は「PGM_B」とする。
【００２５】
条件式３〜５のいずれかに合致した場合、更新履歴DBアクセスチェック装置１２は、レプリケーション装置５以外から更新履歴DBに対する改竄があったとみなし、レプリケーション装置５にエラーを通知してループを抜ける。
【００２６】
チェック終了時、チェック処理実行情報１４のチェック実行タイムスタンプを、現在のサーバ時刻にて更新し、処理を終了する。
【００２７】
なお、同様の仕組みをレプリカサーバ上にも備え、レプリカサーバ上においても、マスタサーバと同等の監視機能を実現する。
【００２８】
次に、具体的なチェック処理の例を図１、図６を使用して以下に説明する。
【００２９】
操作例として、クライアント１６から、以下の操作を実行する。
【００３０】
なお、操作１を行う前はマスタDB及びレプリカDBの内容は0件であるとする。
操作１：クライアント１６上の入力プログラム１８からマスタDBに対してレコードを
３件追加。
【００３１】
その後、レプリケーション装置５、６の動作により、レプリカDB４および更新履歴DB７、８への履歴が自動作成。
操作２：クライアント１６上のSQLツール２２から更新履歴DB７に直接INSERT文を一回実行。
操作３：レプリケーション装置５、６が動作する前に、クライアント１７上のSQLツール２３からレプリカDB４に対してINSERT文を一回実行。
※操作２で更新履歴DB７に行う更新内容はと操作３でレプリカDB４に対して行う更新内容と矛盾なく改竄するものとする。
【００３２】
操作の中で使用するOSユーザ 、DBユーザ、アプリケーション名を以下に示す。
【００３３】
入力プログラム１８を実行するOSユーザ…「OS_USER_A」
入力プログラム１８がDBMS２０にアクセスするDBユーザ…「DB_USER_A」
入力プログラム１８のアプリケーション名…「PGM_A」
レプリケーション装置５を実行するOSユーザ…「OS_USER_B」
レプリケーション装置５がDBMS２０にアクセスするDBユーザ…「DB_USER_B」
レプリケーション装置５のアプリケーション名…「PGM_B」
SQLツール２２を実行するOSユーザ…「OS_USER_C」
SQLツール２２がDBMS２０にアクセスするDBユーザ…「DB_USER_C」
SQLツール２２のアプリケーション名…「PGM_C」
操作１を行うと、クライアント１６上の入力プログラム１８からマスタDB２へデータが３件追加後、DBMS２０によってDBアクセス履歴情報１０へマスタDB２に追加した３件分の履歴が作成される。
【００３４】
その後、レプリケーション装置５によってマスタDB２への更新履歴３件が更新履歴DB７へ作成され、続いてDBMS２０によってDBアクセス履歴情報１０へ更新履歴DB７に追加された３件分の履歴が作成される。
【００３５】
そして、レプリケーション装置５、６によってレプリカサーバ３上のレプリカDB４へのデータ同期が取られ、DBMS２１によって、レプリカDB４への更新結果が更新履歴DB８に反映される。DBアクセス履歴情報１１には、レプリカDB４と更新履歴DB８に反映した分の６件の履歴が作成される。この時のデータ状態を表したものを図６に示す。
【００３６】
次に操作２を行うと、クライアント１６上のSQLツール２２から更新履歴DB７へデータが直接INSERTされた後、DBMSによってDBアクセス履歴情報１０に対して７件目の履歴が作成される。
【００３７】
そして操作３によって、クライアント１７上のSQLツール２３からレプリカDB４へデータが直接INSERTされると、レプリケーション製品６によって更新履歴DB８に対して４件目の履歴が作成される。DBアクセス履歴情報１０に対しては、DBMSによって７件目と８件目の履歴が作成される。
【００３８】
この時のデータ状態を表したものを図７に示す。
【００３９】
この状態で、更新履歴比較装置９が起動すると、DBアクセス履歴情報１０と１１の比較を行う。それぞれ４件登録されており、４件分のチェックではエラーが検知できず、DBアクセス履歴情報１０と１１はそれぞれ０件に削除される。
【００４０】
その後、更新履歴DBアクセスチェック装置１２が起動する。起動時のチェック処理実行情報１４、１５のチェック実行タイムスタンプは「2006/03/01  00:00:00.000」とし、操作１〜３で登録されたデータはチェック実行タイムスタンプ以降に登録されたものとする。条件１、２により、図６が示すDBアクセス履歴情報１０の４〜８件目の履歴が抽出され、続いて条件３〜５により、図６が示すDBアクセス履歴情報１０の７件目の履歴がエラーとして検知される。
【００４１】
以上より、従来のレプリケーションシステムの方式にDBアクセス履歴情報の監視機能が追加されたことにより、よりセキュリティ強度が向上したレプリケーションシステムを実現することが可能となる。
【図面の簡単な説明】
【００４２】
【図１】本発明に係る実施形態におけるシステム構成図。
【図２】本発明に係る実施形態におけるDBアクセス履歴情報のデータ構造図。
【図３】本発明に係る実施形態におけるチェック処理実行情報のデータ構造図。
【図４】本発明に係る実施形態におけるDBMSのDBアクセス履歴情報出力の動作フロー図。
【図５】本発明に係る実施形態における更新履歴DBの改竄チェック機能の動作フロー図。
【図６】本発明に係る実施形態における操作１後のデータ状態図。
【図７】本発明に係る実施形態における操作２、３後のデータ状態図。
【符号の説明】
【００４３】
１…マスタサーバ、２…マスタDB、３…レプリカサーバ、４…レプリカDB、５…レプリケーション装置、６…レプリケーション装置、７…更新履歴DB、８…更新履歴DB、９…更新履歴比較装置、１０…DBアクセス履歴情報、１１…DBアクセス履歴情報、１２…更新履歴DBアクセスチェック装置、１３…更新履歴DBアクセスチェック装置、１４…チェック処理実行情報、１５…チェック処理実行情報、１６…クライアント、１７…クライアント、１８…入力プログラム、１９…入力プログラム、２０…DBMS、２１…DBMS、２２…SQLツール、２３…SQLツール。
【図１】
2007317040.tif 000003
【図２】
2007317040.tif 000004
【図３】
2007317040.tif 000005
【図４】
2007317040.tif 000006
【図５】
2007317040.tif 000007
【図６】
2007317040.tif 000008
【図７】
2007317040.tif 000009