(57)【要約】【課題】  アプリケーションがログを出力してからログ管理システムがログを収集するまでの間に改ざんがあった場合の改ざんの検知を可能にすることを目的とする。【解決手段】  ログファイルへのアクセスを監視して得たアクセス情報を監査ログとして記録し、この記憶された監査ログの内容を参照してログファイルの情報が改ざんされたか否か検証し、前記ログファイルの情報が改ざんされていないと判断された時に、ログファイルの情報に対するメッセージ認証コードを生成し、このメッセージ認証コードとログファイルの情報とをネットワークを介して接続されたログ管理サーバに送信する。【選択図】        図１
2008123247.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの動作結果が格納されたログファイルにアクセスして前記ログファイルの情報を収集するログ収集手段と、
前記ログ収集手段により前記ログファイルにアクセスしたアクセス情報と前記ログファイルにアクセスされたアクセス情報とにより構成された全アクセス情報を監査ログとして記録する監査手段と、
前記監査手段により記録された前記監査ログの内容を参照して前記ログファイルの情報が改ざんされたか否か検証する改ざん有無検証手段と、を備えたことを特徴とするログ管理方式。
【請求項２】
前記ログ収集手段は、前記改ざん有無検証手段により前記ログファイルの情報が改ざんされていないと判断された時に、前記ログファイルの情報を送信し、
前記ログ収集手段により送信された前記ログファイルの情報に対するメッセージ認証コードを生成する認証コード生成手段と、
前記検知コード生成手段により生成された前記メッセージ認証コードと前記ログ収集手段により収集された前記ログファイルの情報とをネットワークを介して接続されたログ管理サーバに送信するログ転送手段と、を備えたことを特徴とする請求項１記載のログ管理方式。
【請求項３】
前記監査手段は、前記監査ログを時系列に記録し、
前記改ざん有無検証手段は、前記監査ログの新しい情報から古い情報へ順次参照し、前記ログ収集手段により前記ログファイルにアクセスした最新のアクセス情報とこの一つ前の前記ログ収集手段により前記ログファイルにアクセスしたアクセス情報とを特定し、特定した範囲内のアクセス情報の中から改ざんの有無を検証することを特徴とする請求項１記載のログ管理方式。
【請求項４】
前記ログ収集手段は、前記ログファイルにアクセスして収集した前記ログファイルの情報をメモリに格納し、
前記改ざん有無検証手段は、前記ログ収集手段により前記ログファイルの情報が前記メモリに格納された時点で前記ログファイルの情報が改ざんされたか否か検証することを特徴とする請求項１記載のログ管理方式。
【請求項５】
前記改ざん有無検証手段は、前記監査手段により前記監査ログが記録された時点で前記ログファイルの情報が改ざんされたか否か検証することを特徴とする請求項１記載のログ管理方式。
【請求項６】
前記改ざん有無検証手段は、前記ログファイルの情報が改ざんされたと検証された場合に、この改ざんされたログファイルの情報へのアクセス情報を改ざん判定レコード情報としてメモリに格納し、
前記ログ収集手段は、前記改ざん有無検証手段により前記メモリに格納された前記改ざん判定レコード情報を参照し、前記ログファイルの情報が改ざんされているか否か判断することを特徴とする請求項１記載のログ管理方式。
【請求項７】
前記ログファイルの情報が改ざんされた改ざん情報を保存する中央サーバを備え、
前記ログ転送手段は、前記改ざん有無検証手段により前記ログファイルの情報が改ざんされたと判断された時に、前記中央サーバに前記改ざん情報を格納することを特徴とする請求項２記載のログ管理方式。
【請求項８】
前記ログ転送手段は、前記改ざん有無検証手段により前記ログファイルの情報が改ざんされたと判断された時に、指定された宛先に前記改ざん情報を格納することを特徴とする請求項２記載のログ管理方式。
【請求項９】
前記ログファイルへのアクセスを許可する複数のプログラム名を記録した第１のリストを備え、
前記改ざん有無検証手段は、前記第１のリストに記録された複数のプログラム名を参照して前記ログファイルの情報が改ざんされたか否か検証することを特徴とする請求項１記載のログ管理方式。
【請求項１０】
前記ログファイルの改ざんの有無を検証する複数のログファイルのファイル名を記録した第２のリストを備え、
前記改ざん有無検証手段は、前記第１のリストに記録された複数のログファイルのファイル名を参照して前記ログファイルの情報が改ざんされたか否か検証することを特徴とする請求項１記載のログ管理方式。
【請求項１１】
ログ管理サーバとネットワークを介して接続された端末によりログの改ざんを検知するログ管理方法であって、
アプリケーションプログラムの動作結果が格納されたログファイルにアクセスして前記ログファイルの情報を収集する収集ステップと、
前記収集ステップにより前記ログファイルにアクセスしたアクセス情報と前記ログファイルにアクセスされたアクセス情報とにより構成された全アクセス情報を監査ログとして記録する記録ステップと、
前記記録ステップにより記録された前記監査ログの内容を参照して前記ログファイルの情報が改ざんされたか否か検証する改ざん検証ステップと、を備えたことを特徴とするログ管理方法。
【請求項１２】
前記収集ステップは、前記改ざん検証ステップにより前記ログファイルの情報が改ざんされていないと判断された時に、前記ログファイルの情報を送信し、
前記収集ステップにより送信された前記ログファイルの情報に対するメッセージ認証コードを生成する認証コード生成ステップと、
前記認証コード生成ステップにより生成された前記メッセージ認証コードと前記収集ステップにより収集された前記ログファイルの情報とをネットワークを介して接続されたログ管理サーバに送信するログ転送ステップと、を備えたことを特徴とする請求項１１記載のログ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ログに対する不正な改ざんを検知するログ管理方式及びログ管理方法に関するものである。
【背景技術】
【０００２】
定期的に動作してアプリケーションのログを収集するログ管理システムにおいて、ログを収集した時点で改ざん有無を判断することは困難である。なぜならば、正当なアプリケーションも、悪意のある人物も、ログファイルへ書き込むことが可能なため、収集した時点のログが、どのように書き込まれたかを知ることができないためである。
このようなことから、従来、アプリケーションが出力するログを保護するためには、ログを出力するアプリケーション側で改ざんを防ぐ仕組みを用意することで対策を行なっていた。例えば、アプリケーションがログ出力時に改ざん対策のライブラリを呼び出す。これにより、アプリケーションのログの出力と同時にログの改ざんのための対策を行ない、ログが誰でもアクセスできるという状況を作らないようにしていた（例えば、特許文献１参照）。
【特許文献１】特開２００１−１４２７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
自社製アプリケーションやオープンソースのアプリケーションが出力するログを対象とする場合であれば、アプリケーションを改修して従来からの方式で対策が行なわれてきた。しかし、他社製アプリケーションのログを対象とした場合、従来の方式ではアプリケーションの改修が不可能な場合があり、これを利用することができなかった。
また、自社製やオープンソースのアプリケーションで改修可能な場合であっても、複数のアプリケーションが出力するログを管理の対象とする場合、全てのアプリケーションの改修を行なうことは改修のためのコストや時間がかかるという問題があった。
【０００４】
本発明は、上記のような課題を解決するためになされたもので、アプリケーションの改修を必要とせず、アプリケーションの動作に影響を与えることなく、アプリケーションがログを出力してからログ管理システムがログを収集するまでの間に改ざんがあった場合の改ざんの検知を可能にすることを目的としたものである。
【課題を解決するための手段】
【０００５】
この発明に係るログ管理方式は、アプリケーションプログラムの動作結果が格納されたログファイルにアクセスして前記ログファイルの情報を収集するログ収集手段と、
前記ログ収集手段により前記ログファイルにアクセスしたアクセス情報と前記ログファイルにアクセスされたアクセス情報とにより構成された全アクセス情報を監査ログとして記録する監査手段と、
前記監査手段により記録された前記監査ログの内容を参照して前記ログファイルの情報が改ざんされたか否か検証する改ざん有無検証手段と、を備えたものである。
【発明の効果】
【０００６】
この発明は、アプリケーションのプログラムの動作結果が格納されたログファイルへのアクセスを監視して得たアクセス情報を監査ログとして記録し、この記憶された監査ログの内容を参照して、ログファイルの情報が改ざんされたか否かを検証することにより、アプリケーションの改修を必要とせず、アプリケーションの動作に影響を与えることなく、アプリケーションがログを出力してからログ管理システムがログを収集するまでの間に発生したログの改ざん行為を検知することが可能となる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
図１は、本発明の実施の形態１のログ管理システムの構成図である。ログ管理システムは、複数の端末２００、２２０、２３０と１台のログ管理サーバ１００とがネットワークで接続されて構成される。
端末２００、２２０、２３０は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム２１０上でアプリケーション２０７とログ収集エージェント２０１が動作している。
アプリケーション２０７は、実行形式のプログラム２０９（例えば、プロセス名C:\LogOut.exe）として動作し、動作結果をログファイル２０８（例えば、ログファイル名C:\LogFile.txt）に出力する。
ログ収集エージェント２０１は、アプリケーション２０７のログファイル２０８の情報を定期的に収集し、改ざん検知可能な対策を行ない、ログ管理サーバ１００へ転送する。
ログ管理サーバ１００では、ログ収集サーバ１０２が動作し、複数の端末２００、２２０、２３０から収集したログファイル２０８の情報をログＤＢ１０１で管理する。
【０００８】
ログ収集エージェント２０１は、ログ収集機能２０２、検知コード生成機能２０５、ログ転送機能２０６で構成される。
ログ収集機能２０２は、ログ収集手段２０３と改ざん有無検証手段２０４とで構成される。
ログ収集手段２０３は、アプリケーション２０７のログファイル２０８の情報を定期的に収集する手段を有するプロセス（例えば、プロセス名C:\LogCollect.exe）である。
改ざん有無検証手段２０４は、ログ収集手段２０３が収集したログファイル２０８の情報に対し、改ざんの有無を検証する手段である。
【０００９】
検知コード生成機能２０５は、ログ管理サーバ１００のログＤＢ１０１へログファイル２０８の情報を格納した後に、改ざん有無の検知を可能とするために、ログに対するメッセージ認証コードを生成する認証コード生成手段である。メッセージ認証コードは、例えば、ＨＭＡＣ（Ｋｅｙｅｄ−Ｈａｓｈｉｎｇ  ｆｏｒ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ）などのアルゴリズムを用いて計算する。
ログ転送機能２０６は、収集したログファイル２０８の情報と生成したメッセージ認証コードの情報とを合わせて、ログ収集サーバ１０２へ転送するログ転送手段である。
【００１０】
端末２００のＷｉｎｄｏｗｓ（登録商標） オペレーティングシステム２１０の監査機能２１１は、端末２００上の指定したファイルへのアクセスを監視し、監視結果である監査ログをセキュリティログ２１２であるセキュリティログ格納手段へ出力する監査手段である。監査機能２１１は、ログファイル２０８への全てのアクセスをセキュリティログ２１２に出力するように設定する。これにより、監査機能２１１は、ログファイル２０８へのアクセスを検知するとセキュリティログ２１２へ情報を出力するように動作する。
【００１１】
図２は、監査機能２１１がセキュリティログ２１２へ出力する情報の一部を示した図である。図２において、セキュリティログ２１２は“日付時刻”、“イメージファイル名”、“オブジェクト名”、“プロセスＩＤ”、“ハンドルＩＤ”、“アクセス種別”などの情報で構成される。
ここで、“日付時刻”はログファイル２０８へのアクセスを検知した時刻、“イメージファイル名”はログファイル２０８へアクセスしたプロセスの名称、“プロセスＩＤ”はログファイル２０８へアクセスしたプロセスのプロセスＩＤ、“ハンドルＩＤ”はログファイル２０８へアクセスしたプロセスがファイルアクセスに使用したハンドルＩＤ、“アクセス種別”はログファイル２０８へのアクセスの種類（ＯＰＥＮ、ＲＥＡＤ、ＷＲＩＴＥ、ＣＬＯＳＥ、ＤＥＬＥＴＥなど）となる。
【００１２】
ログ収集サーバ１０２は、ログ受信機能１０４とログ投入機能１０３で構成される。
ログ受信機能１０４は、各端末２００、２２０、２３０のログ収集エージェント２０１が送信するログファイル２０８の情報とメッセージ認証コードを受信するログ受信手段である。
ログ投入機能１０３は、ログ受信機能１０４により受信されたログファイル２０８の情報とメッセージ認証コードをログＤＢ１０１へ格納するログ投入手段である。
【００１３】
本発明におけるログ管理システムは、”管理者権限”と”一般利用者権限”に権限を分離して端末２００、２２０、２３０を管理する。端末２００、２２０、２３０の通常の利用者は“一般利用者権限”で利用する。Ｗｉｎｄｏｗｓ（登録商標） オペレーティングシステム２１０の監査機能２１１の設定を行なうこと、ログ収集エージェント２０１のプログラムやその設定を変更すること、およびアプリケーション２０７のプログラム２０９やその設定を変更することの操作は、“管理者権限”がなければ行なうことはできない。なお、プログラム２０９は通常の利用者が使用できるように、“一般利用者権限”で動作を許可するように設定する。そのため、ログファイル２０８は“一般利用者権限”で書込みや削除できるように設定しなければならない。
【００１４】
次に、本実施の形態のログ管理システムの動作について説明する。この動作説明は、定常時の動作、および、ログ収集時の動作に分けて行なう。
はじめに、定常時のログ管理システムの動作について説明する。
図３は、定常時のログ管理システムの処理動作を示すフローチャートである。
まず、ステップＳ１１で、監査機能２１１がログファイル２０８へのアクセスを常時モニタしている（ステップＳ１１）。具体的には、「プログラム２０９によるログファイル２０８への書込みや削除アクセス」、「端末２００の通常の利用者による不正なアクセス」、「ログ収集エージェント２０１による収集動作」などの全アクセスをモニタしている。
【００１５】
次に、ステップＳ１２ａ、ステップＳ１２ｂ、ステップＳ１２ｃの何れかの事象が発生する。ステップＳ１２ａでは、プログラム２０９が動作してログファイル２０８に情報を出力する。
また、ステップＳ１２ｂでは、端末２００の通常の利用者が故意、又は不注意でログファイル２０８に情報を書込んだり、削除したり、といった行為を行なう。
更に、ステップＳ１２ｃでは、ログ収集エージェント２０１がログファイル２０８の情報を収集する。
最後に、ステップＳ１３で、監査機能２１１がログファイル２０８へのアクセスの内容をセキュリティログ２１２へ書き込む。その後、再度ステップＳ１１の状態に戻る。
【００１６】
次に、ログ収集時のログ管理システムの動作について説明する。
図４は、ログ収集時のログ管理システムの処理動作を示すフローチャートである。
まず、ステップＳ２１で、ログ収集機能２０２がログファイル２０８の情報を収集する（ログ収集機能２０２の動作については後述する）。
次に、ステップＳ２２で、検知コード生成機能２０５がログ収集機能２０２により収集されたログファイル２０８の情報に対するメッセージ認証コードを生成する。
続いて、ステップＳ２３で、ログ転送機能２０６がログファイル２０８の情報とメッセージ認証コードをログ収集サーバ１０２に転送する。
更に、ステップＳ２４で、ログ収集サーバ１０２のログ受信機能１０４がログファイル２０８の情報とメッセージ認証コードを受信する。
最後に、ステップＳ２５で、ログ投入機能１０３がログファイル２０８の情報とメッセージ認証コードをログＤＢ１０１へ格納する。
【００１７】
次に、ログ収集時のログ収集機能２０２の動作を図５、図６を用いて説明する。
図５は、ログ収集時のログ収集機能２０２の処理動作を示すフローチャートである。
図６は、セキュリティログ２１２に記録された情報の一部を示す図である。
まず、ステップＳ３１で、ログ収集手段２０３が指定時刻に動作し、ログファイル２０８の情報を収集する。収集した情報は内部のメモリへ格納する。なお、本動作により、定常時に監視している監査機能２１１が動作し、ログ収集手段２０３のアクセスがセキュリティログ２１２へ記録される。また、本時点でセキュリティログ２１２に記録されている情報の一部を図６に示す。
【００１８】
次に、ステップＳ３２で、ログ収集手段２０３が、改ざん有無検証手段２０４を実行する。
続いて、ステップＳ３３で、改ざん有無検証手段２０４が、セキュリティログ２１２を探索し、ログ収集手段２０３が今回ログファイル２０８へアクセスした時に出力されたセキュリティログ２１２のアクセス記録（レコード）を見つける。なお、探索時、改ざん有無検証手段２０４はセキュリティログ２１２のレコードを最新のものから古いものへ向かって探索し、ログ収集手段２０３のプロセス名（本実施の形態ではC:￥LogCollect.exe）を基にＯＰＥＮ−ＲＥＡＤ−ＣＬＯＳＥアクセスの最新の記録レコードを見つける。図６においては３０１で示すレコードとなる。
【００１９】
次に、ステップＳ３４で、改ざん有無検証手段２０４が、セキュリティログ２１２を探索し、ログ収集手段２０３が前回ログファイル２０８へアクセスした時に出力されたセキュリティログ２１２のレコードを見つける。なお、探索時、改ざん有無検証手段２０４はセキュリティログ２１２のレコードを（Ｓ３３）で見つけたレコード３０１を基点に古いものへ向かって探索し、ログ収集手段２０３のプロセス名（本実施の形態ではC:￥LogCollect.exe）を基にＯＰＥＮ−ＲＥＡＤ−ＣＬＯＳＥアクセスが最初に記録されたレコードを見つける。図６においては３０２で示すレコードとなる。
続いて、ステップＳ３５で、改ざん有無検証手段２０４が、指定範囲内（図６における３０２から３０１）のセキュリティログ２１２のレコードを検証し、改ざん行為の有無を検証する。
【００２０】
ここで、改ざん行為の有無をチェックするときの動作を図６、図７を用いて説明する。
図６は、セキュリティログ２１２に記録された情報の一部を示す図である。
図７は、改ざん有無検証手段２０４が改ざん行為の有無をチェックするときの処理動作を示すフローチャートである。
まず、ステップＳ４１で、検証を行なうレコードをレコードｉとする。指定範囲内の最古のレコード（図６における３０２の次のレコード）をレコードｉとする。
次に、ステップＳ４２で、レコードｉが存在するかどうかチェックする。レコードｉが存在しない場合、指定範囲内の全レコードを検証した結果、改ざん行為がなかったと判断し、ステップＳ４２のＹＥＳへ進み、改ざん無しの判定結果を持って処理を終了する。
一方、レコードｉが存在する場合、ステップＳ４２のＮＯへ進み、ステップＳ４３を実行する。
【００２１】
次に、ステップＳ４３で、レコードｉをチェックする。具体的には、「レコードｉのアクセス種別がＯＰＥＮであり」、「レコードｉのオブジェクト名がログファイル２０８の名称と同一であり」、「レコードｉのイメージファイル名がプログラム名２０９と同一でない」、の３つの条件を同時に満たす場合に、不正なプログラムによってログファイル２０８がＯＰＥＮされたと判断し、ステップＳ４３のＹＥＳへ進み、ステップＳ４４を実行する。
レコードｉが本条件を満たさない場合は、ステップＳ４３のＮＯ、ステップＳ４１０と進み、レコードｉの次のレコードを検証する。
【００２２】
次に、ステップＳ４４で、レコードｉの次のレコードを検証する。検証するレコードをレコードｊとする。
続いて、ステップＳ４５で、レコードｊが存在するかどうかチェックする。レコードｊが存在しない場合、レコードｉに関連するアクセスで改ざん行為が無かったと判断し、ステップＳ４５のＹＥＳ、ステップＳ４１０と進み、レコードｉの次のレコードを検証する。レコードｊが存在する場合、ステップＳ４５のＮＯへ進み、ステップＳ４６を実行する。
【００２３】
次に、ステップＳ４６〜ステップＳ４８で、レコードｊを検証する。
まず、ステップＳ４６で、レコードiとレコードｊのプロセスＩＤとハンドルＩＤを比較することで、レコードｉの一連のアクセスの情報であるか否かチェックする。ここで、レコードｊがレコードｉと無関連のアクセスの情報である場合は、ステップＳ４６のＮＯ、ステップＳ４９と進み、レコードｊの次のレコードをチェックする。レコードｊがレコードｉと関連したアクセスの情報である場合は、ステップＳ４６のＹＥＳに進み、ステップＳ４７を実行する。
【００２４】
続いてステップＳ４７で、レコードｊのアクセス種別をチェックする。ここで、アクセス種別がＣＬＯＳＥである場合、レコードｉに関連したアクセスで改ざん行為が無かったと判断し、ステップＳ４７のＹＥＳ、ステップＳ４１０と進み、レコードｉの次のレコードを検証する。アクセス種別がＣＬＯＳＥでない場合、ステップＳ４７のＮＯへ進み、ステップＳ４８を実行する。
【００２５】
最後にステップＳ４８で、レコードｊのアクセス種別を再度チェックする。アクセス種別がＷＲＩＴＥ、もしくはＤＥＬＥＴＥである場合は、レコードｉに関連するアクセスで改ざんが行なわれたと判断し、ステップＳ４８のＹＥＳ）へ進み、改ざん有りの判定結果を持って処理を終了する。アクセス種別がＷＲＩＴＥ、かつＤＥＬＥＴＥでない場合は、レコードｊの次のレコードを検証する。
以上のように、図７に示す動作手順で改ざん行為の有無をチェックすることができ、図６の３０３で示された改ざんを検知することができる。
【００２６】
再び、図５に戻り、ログ収集時のログ収集機能２０２の処理動作について説明する。
ステップＳ３５で、改ざん有無検証手段２０４により改ざん行為の有無が検証された後、ステップＳ３６で、改ざん有無検証手段２０４が検証結果をログ収集手段２０３へ返す。
最後に、ステップＳ３７で、ログ収集手段２０３が、改ざん有無検証手段２０４で改ざん行為の有無を検証した結果、改ざんされていないと判定された場合に、メモリに格納したログファイル２０８の情報を検知コード生成機能２０５に送信する。
【００２７】
この後、検知コード生成機能２０５が、ステップＳ３７で、ログ収集手段２０３により送信されたログファイル２０８の情報のログに対するメッセージ認証コードを生成し、ログ転送機能２０６がログファイル２０８の情報と検知コード生成機能２０５で生成したメッセージ認証コードの情報とを合わせて、ログ収集サーバ１０２へ転送する。
【００２８】
以上のように本実施の形態によれば、アプリケーションの改修を行なうことなく、アプリケーションがログを出力してからログ管理システムがログを収集するまでの間に発生した改ざん行為を検知することができる。
また、アプリケーションの改修が不要であるため、アプリケーションの改修が困難なアプリケーションに対しても適用が可能である。
更に、ログ収集機能が収集したログが改ざんされていない事を検証した上で、検知コード生成機能、ログ転送機能が動作するため、ログ管理サーバのログＤＢに格納されたログファイルの情報は全て改ざんされていない状態で管理することができる。
また、アプリケーションと異なるプロセスで動作するため、アプリケーションの動作に影響を与えることはなく、ログに対する不正な改ざんを検知することができる。
【００２９】
実施の形態２．
実施の形態１では、ログ収集手段２０３がログファイル２０８の情報を収集してメモリに格納した時点で改ざん有無検証手段２０４を実行し、収集したログファイル２０８の情報の改ざんの有無を検証する場合について説明したが、本実施の形態では、セキュリティログ２１２が出力された時点、即ち、監視機能２１１が監査結果である監査ログをセキュリティログ２１２に出力した時点で、改ざんの有無を検証する場合について説明する。
本実施の形態では、改ざん有無検証手段２０４の動作が実施の形態１と異なる以外は、構成および動作とも実施の形態１と同様であるため説明を省略する。
【００３０】
図８は、改ざん有無検証手段２０４の処理動作を示すフローチャートである。
本実施の形態では、改ざん有無検証手段２０４が常駐プロセスとして図８のフローチャートに従って動作する。
セキュリティログ２１２が出力された時点、即ち、監視機能２１１が監視結果をセキュリティログ２１２に出力する時点に次の動作が開始される。
まず、ステップＳ５１で、セキュリティログ２１２の中で、未検証のレコードの内、最古のレコードを検証対象とし、そのレコードをレコードｉとする。なお、検証対象のレコードが存在しない場合は、セキュリティログ２１２が書き込まれた時点でＷｉｎｄｏｗｓ（登録商標） オペレーティングシステム２１０からシグナルを受け取るように設定し、処理を待機する。具体的には、Ｗｉｎｄｏｗｓ（登録商標） オペレーティングシステム２１０が提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）であるＮｏｔｉｆｙＣｈａｎｇｅＥｖｅｎｔＬｏｇなどを利用することにより、セキュリティログ２１２が書き込まれたタイミングでシグナルを受け取ることが可能である。
【００３１】
次に、ステップＳ５２で、レコードｉの検証を行なう。検証は、図７のステップＳ４３と同様の手順で行なうため、ここではこの動作の説明は省略する。
ステップＳ５２で、レコードｉが条件を満たさない場合は、ステップＳ５２のＮＯへ進み、再度ステップＳ５１を実行する。レコードｉが条件を満たす場合は、ステップＳ５２のＹＥＳへ進み、ステップＳ５３を実行する。
続いて、ステップＳ５３で、レコードｉの次のレコードを検証する。ここで、検証するレコードをレコードｊとする。レコードｊが存在しない場合は、ステップＳ５１と同様の手順でセキュリティログ２１２が更新されるまで処理を待機する。
【００３２】
次に、ステップＳ５４〜ステップＳ５６で、レコードｊを検証する。この検証は、図７のステップＳ４６〜ステップＳ４８と同様の手順で行なうため、ここではこの動作の説明は省略する。
検証の結果、レコードｊの次のレコードを検証する必要がある場合（ステップＳ５４のＮＯ、ステップＳ５６のＮＯの場合）、ステップＳ５７で、レコードｊの次のレコードを取得し、ステップＳ５４に戻る。ステップＳ５７で、レコードｊの次のレコードが存在しない場合は、ステップＳ５１と同様の手段でセキュリティログの更新を待機する。
【００３３】
以上のように本実施の形態によれば、セキュリティログが出力されたタイミングでリアルタイムにログファイルの改ざんの有無を検証できるため、改ざんが発生した場合に素早く改ざんを検知することができる。
【００３４】
実施の形態３．
実施の形態１では、ログ収集手段２０３がログファイル２０８の情報を収集してメモリに格納した時点で、改ざん有無検証手段２０４を実行し、収集したログファイル２０８の情報の改ざんの有無を検証する場合について説明したが、本実施の形態では、セキュリティログ２１２が出力された時点で改ざん有無を検証すると共に、ログ収集手段２０３によるログ収集時に、本改ざん有無の検証結果を利用する場合について説明する。
本実施の形態では、改ざん有無検証手段２１２の動作が実施の形態１と異なる以外は、構成および動作は実施の形態１と同様であるため説明を省略する。
【００３５】
図９は、改ざん有無検証手段２０４の処理動作を示すフローチャートである。
図１０は、改ざん有無検証手段２０４の実行結果として得られる情報について示した図である。
本実施の形態では、改ざん有無検証手段２０４が常駐プロセスとして図９のフローチャートに従って動作する。
また、改ざん有無検証手段２０４の実行結果として得られる図１０の情報を、改ざん有無検証手段２０４が改ざん有無検証手段２０４の内部メモリに保存する。
図９において、ステップＳ６１〜ステップＳ６７の処理動作は、図８のステップＳ５１〜ステップＳ５７の処理動作と同様のため、ここでは説明を省略する。
【００３６】
本実施の形態では、ステップＳ６６で、改ざん有りと判断した場合（ステップＳ６６のＹＥＳ）、レコードｉの情報を改ざん判定レコード情報４０２として改ざん有無検証手段２０４が改ざん有無検証手段２０４の内部メモリへ追加書込み格納する。
【００３７】
図１１は、ログ収集時のログ収集機能２０２の処理動作を示すフローチャートである。
本実施の形態では、ログ収集時に図１１に従って動作する。
図１１において、ステップＳ７１〜ステップＳ７３は、図５のステップＳ３１〜ステップＳ３３の手順と同様のため説明を省略する。
次に、ステップＳ７４で、ログ収集手段２０３が今回ログファイル２０８へアクセスした時に出力されたセキュリティログ２１２のレコードの情報を、内部メモリのログ収集時レコード情報４０１に追加書込みする。
続いて、ステップＳ７５で、改ざん有無検証手段２０４が、ログ収集手段２０３が前回ログファイル２０８へアクセスした時から今回ログファイル２０８へアクセスした時までの間の改ざんの有無をチェックする。具体的には、内部メモリのログ収集時レコード情報４０１の最新の情報と１つ前の情報を基に、今回と前回のログ収集手段２０３のアクセスの間に出力されたセキュリティログ２１２のレコードの範囲を特定する。
次に、改ざん判定レコード情報４０２を参照し、特定した範囲内で改ざんの有無をチェックする。その後、ステップＳ７６、ステップＳ７７を実施する。なお、ステップＳ７６、ステップＳ７７は、図５のステップＳ３６、ステップＳ３７の手順と同様のため説明を省略する。
【００３８】
以上のように本実施の形態によれば、ログ収集時に改ざんの有無を検証する処理を簡略に行なうことができるため、ログ収集時にかかる改ざん有無の検証を高速に行なうことができる。
【００３９】
実施の形態４．
本実施の形態では、ログファイルが改ざんされていると判断した時点で、改ざんに関する情報を中央のサーバへ転送する場合について説明する。
【００４０】
本実施の形態は、実施の形態１、実施の形態２、実施の形態３のレコードの検証処理で改ざん有りと判定した場合に（図７のステップＳ４８のＹＥＳ、図８のステップＳ５６のＹＥＳ、図９のステップＳ６６のＹＥＳ）、ログ収集エージェント２０１のログ転送機能２０６が改ざんに関する情報を中央のサーバへ転送するように動作する。
ここで、改ざんに関する情報は、具体的に、改ざんを検知した端末２００のホスト名、ＩＰアドレス、ログインユーザ名、システム時刻、また、改ざんと検知したセキュリティログ２１２の情報（本情報には、改ざんに利用したプロセス名、ユーザ名などの情報が含まれる）などが含まれる。
【００４１】
以上のように本実施の形態によれば、ログの改ざんを検知した時に改ざんに関連する情報を中央のサーバへ転送するため、中央のサーバで改ざん行為に関する詳細な内容を取得することができる。
【００４２】
実施の形態５．
本実施の形態では、ログファイルが改ざんされていると判断した時点で、指定した宛先に改ざんに関する情報を転送する場合について説明する。
【００４３】
本実施の形態は、実施の形態１、実施の形態２、実施の形態３のレコードの検証処理で改ざん有りと判定した場合に（図７のステップＳ４８のＹＥＳ、図８のステップＳ５６のＹＥＳ、図９のステップＳ６６のＹＥＳ）、ログ収集エージェント２０１のログ転送機能２０６が改ざんに関する情報を指定の宛先に転送するように動作する。
ここで、改ざんに関する情報とは、実施の形態４に記載の情報と同様である。
【００４４】
以上のように本実施の形態によれば、ログの改ざんを検知した時に管理者などに情報を送信することができるため、改ざんを検知したタイミングで対策を行なうことができる。
【００４５】
実施の形態６．
本実施の形態では、ログファイルへアクセスを許可する複数のプログラム名を記録したリストを有し、改ざん有無の検証を行なう場合について説明する。
【００４６】
本実施の形態は、実施の形態１、実施の形態２、実施の形態３のレコードの検証処理（図７のステップＳ４３、図８のステップＳ５２、図９のステップＳ６２）において、イメージファイル名とアプリケーション２０７のプログラム２０９のプログラム名を比較する際に、改ざん有無検証手段２０４がアプリケーションのプログラム名を前記リストより取得することで複数のプログラム名で改ざんの有無を判定するように動作する。
【００４７】
以上のように本実施の形態によれば、ログファイルへ書込みを行なう複数のプロセスが存在するようなマルチプロセスで動作するアプリケーションのログファイルに対して、改ざん有無の検証を正しく行なうことができる。
【００４８】
実施の形態７．
本実施の形態では、改ざん有無の検証の対象とする複数のファイル名を記録したリストを有し、このリストに従って改ざんの有無の検証を行なう場合について説明する。
【００４９】
本実施の形態では、定常時の監査機能２１１のモニタ動作（図３のステップＳ１１）が、前記リストに記録された全てのファイルをモニタする。また、実施の形態１、実施の形態２、実施の形態３のレコードの検証処理（図７のステップＳ４３、図８のステップＳ５２、図９のステップＳ６２）において、オブジェクト名とログファイル２０８のファイル名を比較する際に、改ざん有無検証手段２０４がログファイル２０８のファイル名を前記リストより取得して複数のファイル名で判定するように動作する。
【００５０】
以上のように本実施の形態によれば、複数のファイルに書込みを行なうアプリケーションに対して、改ざんの有無の検証を正しく行なうことができる。
【図面の簡単な説明】
【００５１】
【図１】実施の形態１のログ管理システムの構成図。
【図２】実施の形態１において監査機能２１１がセキュリティログ２１２へ出力する情報を示した図。
【図３】実施の形態１における定常時のログ管理システムの処理動作を示すフローチャート。
【図４】実施の形態１におけるログ収集時のログ管理システムの処理動作を示すフローチャート。
【図５】実施の形態１におけるログ収集時のログ収集機能２０２の処理動作を示すフローチャート。
【図６】実施の形態１においてセキュリティログ２１２に記録された情報を示した図。
【図７】実施の形態１において改ざん有無検証手段２０４が改ざん行為の有無をチェックするときの処理動作を示すフローチャート。
【図８】実施の形態２における改ざん有無検証手段２０４の処理動作を示すフローチャート。
【図９】実施の形態３における改ざん有無検証手段２０４の処理動作を示すフローチャート。
【図１０】実施の形態３において改ざん有無検証手段２０４の実行結果として得られる情報を示した図。
【図１１】実施の形態３におけるログ収集時のログ収集機能２０２の処理動作を示すフローチャート。
【符号の説明】
【００５２】
１００  ログ管理サーバ、１０１  ログＤＢ、１０２  ログ収集サーバ、１０３  ログ投入機能、１０４  ログ受信機能、２００  端末、２０１  ログ収集エージェント、２０２  ログ収集機能、２０３  ログ収集手段、２０４  改ざん有無検証手段、２０５  検知コード生成機能、２０６  ログ転送機能、２０７  アプリケーション、２０８  ログファイル、２０９  プログラム、２１０  オペレーティングシステム、２１１  監査機能、２１２  セキュリティログ。
【図１】
2008123247.tif 000003
【図２】
2008123247.tif 000004
【図３】
2008123247.tif 000005
【図４】
2008123247.tif 000006
【図５】
2008123247.tif 000007
【図６】
2008123247.tif 000008
【図７】
2008123247.tif 000009
【図８】
2008123247.tif 000010
【図９】
2008123247.tif 000011
【図１０】
2008123247.tif 000012
【図１１】
2008123247.tif 000013