説明

ソフトウェアのログ管理システムおよびその制御方法、並びにプログラム

【課題】 ソフトウェアの動作ログの情報を欠落させることなく、ログにユーザー環境特有の情報が混入することを防ぐログ管理システムを提供することを目的とする。
【解決手段】 ログ管理システムにおいて、ログ出力設定108に基づきログへのユーザーデータ出力の可否を判定し、出力不可だった場合、ユーザーデータの値を所定のIDに変換してログを出力する。ユーザーデータとIDの紐付けは、ユーザーデータログとして通常のログとは別途管理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの動作履歴を示すログの管理システムおよびその制御方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、不正アクセスや情報漏えいといった問題が増加するにつれ、ソフトウェアのログ記録が重要視されるようになっている。ログには、ソフトウェアの動作履歴を記録するものや、システムへのユーザーのアクセス履歴を示すもの、ユーザーの操作履歴を示すものなど、さまざまな種類がある。これらのログには、操作を実行したユーザーや、操作対象となったファイルなどを特定できるように、ユーザー名やファイル名を記録しておく必要があるが、これらの情報は組織によっては機密情報とみなされるため、ログを閲覧できる人物が制限される可能性がある。そのため、ログに基づくトラブルシューティングやフォレンジックの作業において、調査に支障をきたす恐れがある。
【0003】
例えば、システムで障害が発生した際にシステム開発元がログの提供を求めても、ログに機密情報が含まれるためにユーザーがログの提供を拒否する可能性がある。この場合、ユーザー元でログの機密情報をマスクするなどの作業が必要であるが、そのために時間がかかったり、マスク処理によって調査に必要な情報が欠落したりする問題があった。
【0004】
それに対し、ユーザーの所望のログ形式を指定することでログを加工し、ログに出力する内容を操作する技術が提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−99442号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記従ログファイル作成方法では、機密と判断される情報を出力しないようにできるが、それにより情報が削除されてしまうため、ログの分析に支障をきたす可能性がある。また、ログの二次的な改変をするため、誤ってログの内容を書き変えてしまうミスが発生する恐れがある。
【0007】
本発明は、上記問題に鑑みて成されたものであり、ログ内の機密情報を所定のIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしに機密情報漏えいを回避するログ管理システムおよびその制御方法、並びにプログラムを並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムであって、
ソフトウェアからログの出力要求を受信するログ出力要求受信手段(102)と
ログの出力設定情報を管理するログ出力設定手段(109)と、
前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段(103)と、
前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段(104)と、
前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段(105)と、
を有し、
前記ログ出力要求受信手段(102)は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システム。
【発明の効果】
【0009】
本発明によれば、ログに含まれる機密情報を所定のIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしにユーザーデータが動作ログに混入することを防ぐことができる。
【0010】
また本発明によれば、ログの二次改変を伴わないため、ログの原本性保証を容易に実現できる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態に係るログ管理システムの構成を示すブロック図である。
【図2】図1のログ管理システムが動作するハードウェアの構成を示すブロック図である。
【図3】ソフトウェアが内部で持つログ出力フォーマットの一例である。
【図4】ソフトウェアがログ出力モジュール101に入力する情報の一例である。
【図5】ログ出力モジュール101におけるログ出力処理を示すフローチャートである。
【図6】ログ出力設定部109の操作画面の例を示す図である。
【図7】ユーザーデータを隠匿していない場合の動作ログ106の例である。
【図8】ユーザーデータを隠匿している場合の動作ログ106の例である。
【図9】図8の動作ログ106に対応するユーザーデータログ107の例である。
【図10】ログ出力モジュール101におけるログ出力処理を示すフローチャートである。
【図11】ユーザーデータを隠匿している場合の動作ログ106の例である。
【図12】図11の動作ログ106に対応するユーザーデータログ107の例である。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0013】
[第1の実施形態]
図1は、本発明の第1の実施形態に係るソフトウェアのログ管理システムの構成を示すブロック図である。ログ出力モジュール101は、ログ出力要求受信部102、ログ出力判定部103、ログ出力部104、ユーザーデータ管理部105から構成される。ログ出力モジュール101は、ソフトウェアからログ出力要求を受信し、ログ出力設定に基づいてログを作成し、動作ログ106とユーザーデータログ107を出力する。ここで、動作ログとは、ユーザーの操作履歴を示すいわゆる操作ログや、ユーザーの認証履歴を示すいわゆる認証ログなど、ソフトウェアの動作に関するあらゆるログを含んでいる。
【0014】
ログ出力要求受信部102は、ソフトウェアからログ出力要求を受け付ける。ログ出力要求は、ログ出力モジュールが解釈できる所定のフォーマットでログ出力モジュール101に入力する必要がある。
【0015】
ログ出力判定部103は、ログ出力設定108の設定内容に基づき、ログ出力要求受信部102が受信したログの出力方法を判定する。具体的には、ログ出力設定108で出力が許可されているユーザーデータについては、そのままログ出力部104を介して動作ログ106として出力する。一方、ログ出力設定108で出力が禁止されているユーザーデータについては、該当するユーザーデータを適当なID(所定のID)で置換して、動作ログ106を出力する。適当なIDは、ログ出力判定部103がユーザーデータ管理部105に問い合わせることで取得する。IDと置換されたユーザーデータは、ユーザーデータ管理部105を介してユーザーデータログ107として出力される。なお、ユーザーデータとは、ユーザー名やIPアドレスなど、ユーザー環境特有のデータのことを指す。
【0016】
ログ出力部104は、ログ出力判定部103から出力すべき動作ログを受け取り、動作ログ106を出力する。動作ログは、ログ出力設定108で出力が禁止されているユーザーデータの値を含まれていない状態で出力される。
【0017】
ユーザーデータ管理部105は、ログ出力判定部103から、出力禁止と判定されたユーザーデータの値に対し、適当なIDを発行する。IDは、他のユーザーデータの値と重複しないものを使用する。発行したIDと、そのIDを割り当てられたユーザーデータは、関連付けてユーザーデータログ107に出力する。
【0018】
ログ出力設定部109は、ユーザーに対してログ出力設定108を編集するためのインタフェースを提供する。ログ出力設定部109は、たとえばWebアプリケーションとして動作し、ユーザーはブラウザーを使用してログ出力設定画面にアクセスし、ログ出力設定108を編集する。
【0019】
なお、ログ出力モジュール101はログを出力すべきソフトウェアに組み込まれてビルドされ、ソフトウェアの一部として動作させても良いし、ソフトウェアとは別に動作させ、ソフトウェアから汎用的なプロトコルによってログ出力要求を受け付けるように構成しても良い。
【0020】
また、動作ログ106、ユーザーデータログ107は、ログを記録できるものであればどのような保存形式でも良く、たとえばファイルシステム上のファイル形式で保持していても良いし、データベース上に保持していても良い。
【0021】
図2は、図1のログ管理システムが動作する情報処理装置(サーバー及びPC)のハードウェア構成を示すブロック図である。
【0022】
図2において、CPU201は、ログ出力に関する各種データ処理のための演算を行い、バス208に接続された各構成要素を制御する処理装置である。ROM202は、データ読出し専用のメモリであり、基本制御プログラムが格納されている。RAM203は、データ読み書き用のメモリであり、CPU201の各種演算処理やデータの一時記憶用に用いられる。外部記憶装置204は、情報処理装置のオペレーティングシステム(OS)のシステムプログラム、及びログ管理システムのプログラムやデータ処理中の一時記憶領域として用いられる。外部記憶装置204は、RAM203に比べてデータの入出力は遅いが、大容量のデータを保持することが可能である。外部記憶装置204は、主に磁気記憶装置(HDD)で構成されるが、CD、DVD、メモリカードといった外部メディアを装填してデータの読み込みや記録を行う装置であってもよい。入力装置205は、情報処理装置に文字やデータを入力するための装置であり、各種のキーボードやマウスなどが該当する。表示装置206は、情報処理装置の処理結果を表示するための装置であり、CRTまたは液晶モニターなどが該当する。通信装置207は、LANに接続してTCP/IPによるデータ通信を行い、他の情報処理装置と相互に通信を行う場合に使用される。
【0023】
図3は、ソフトウェアが内部で持つログ出力フォーマットの一例である。ソフトウェアは、動作中に適宜ログを出力する。図3は、ソフトウェアがユーザーからリクエストを受信したときに出力するログの例である。不等号で囲まれているDateTimeとRequestIDの2つのフィールドは、ログ出力要求受信部102に入力する時点で、ソフトウェアが具体的な値を設定する。DateTimeはシステム時刻を表すもので、RequestIDは、ユーザーからのリクエストを識別するために、ソフトウェアがリクエストごとにユニークに発行するIDである。中括弧で囲まれているUserNameとIPAddressの2つのフィールドは、前述のDateTimeやRequestIDのようにソフトウェア独自の値ではなく、ユーザーデータの値を扱うフィールドである。そのため、UserNameとIPAddressの値を動作ログ106に出力するかどうかは、ログ出力判定部103が判定する。
【0024】
図4は、ソフトウェアがログ出力モジュール101に入力する情報の一例である。ソフトウェアがログ出力モジュール101に入力する情報は、ログの内容と、ログの内容に含まれるユーザーデータを扱うフィールドに入る具体的な値の組み合わせで構成される。図4の例では、ダブルクォーテーションで囲まれた最初の文字列がログの内容であり、ダブルクォーテーションで囲まれた第二、第三の文字列が、ログの内容に含まれるユーザーデータを扱うフィールドに入る具体的な値である。図4のログの内容は、図3の例におけるDateTimeとRequestIDの具体的な値は、すでにソフトウェアによって設定されている。一方、ユーザーデータ値を扱うUserNameとIPAddressは、まだ具体的な値を設定されていない。UserNameとIPAddressに対応する具体的な値は、ログの内容に続けて、「Sato」と「192.168.0.5」のように指定されている。
【0025】
図5は、ログ出力モジュール101におけるログ出力処理の流れを示すフローチャートである。ログ出力モジュール101が動作するPCおよびサーバーは、本明細書では、CPU、RAM、ROM、HDD等からなる。なお、フローチャートで示す手順がRAM、ROM、HDDのいずれかの記憶手段に記憶され、CPUにより実行される。
【0026】
ステップS501において、ログ出力判定部103は出力するログに含まれるユーザーデータの種類が隠匿対象であるかどうかを判定する。ユーザーデータの種類が隠匿対象であるかどうかは、あらかじめ設定されたログ出力設定108に基づいて判定する。
【0027】
出力するユーザーデータの種類が隠匿対象であった場合、ステップS502において、ログ出力判定部103はユーザーデータ管理部105からユーザーデータ値に対応するIDを取得する。具体的には、ログ出力判定部103が隠匿対象のユーザーデータの種類と値をユーザーデータ管理部105に送信し、ユーザーデータ管理部105は、ユーザーデータの値に対してユニークなIDを発行してログ出力判定部103に返す。ユーザーデータ管理部105は、ユーザーデータログ107として、ユーザーデータの値と発行したIDを管理している。
【0028】
ステップS503において、ログ出力判定部103は、ステップS502で取得したIDでログに含まれるユーザーデータを置換する。
【0029】
ステップS504において、ログ出力判定部103はログ出力部104に対しログ出力を要求する。ログ出力部104は、ログ出力判定部103から受信した文字列を、動作ログ106としてファイル等に出力する。
【0030】
ステップS501において、出力するユーザーデータの種類が隠匿対象でなかった場合、ログ出力判定部103はログの内容を置換することなく、ステップS504において、そのままの文字列でログ出力部104にログ出力を要求する。ログ出力部104は、ログ出力判定部103から受信した文字列を、動作ログ106としてファイル等に出力する
図6は、ログ出力設定部109の操作画面の例を示す図である。ユーザーは、ユーザーデータをログに出力するかどうかを選択する。ユーザーデータの種類としては、IPアドレス、MACアドレス、ユーザー名、ホスト名、ファイル名などがある。ユーザーがログ出力設定部109を使用して設定した内容は、ログ出力設定108として保存される。ここで隠匿するように設定されたユーザーデータは、ログ出力判定部103で適当なIDに変換されて動作ログ106に出力される。ユーザーデータとIDの紐づけはユーザーデータログ107で管理される。なお、ログ出力設定部109で、すべてのユーザーデータを隠匿しないように設定した場合、すべてのユーザーデータは動作ログ106に出力されるため、ユーザーデータログ107は作成されない。
【0031】
図7は、ユーザーデータを隠匿していない場合の動作ログ106の例である。ユーザーデータを隠匿しない設定であるため、例えば図7の1行目には、ユーザー名(Sato)とIPアドレス(192.168.0.5)が出力されている。
【0032】
図8は、ユーザーデータを隠匿している場合の動作ログ106の例である。ここではユーザー名とIPアドレスを隠匿する設定であることを想定している。基本的な内容は図7の例と同じであるが、たとえば図8の1行目では、ユーザー名が[User_00000001]というIDで、IPアドレスが[IP_00000001]というIDでそれぞれ置換されて出力されている。このように、ユーザーデータを隠匿対象に設定することで、ユーザーデータの具体的な値は動作ログ106には出力されなくなる。実際のユーザーデータの値は、IDと紐づけられてユーザーデータログ107で管理される。
【0033】
図9は、図8の動作ログ106に対応するユーザーデータログ107の例である。ユーザーデータ管理部105は、ログ出力判定部103から受け取ったユーザーデータの値に対してIDを発行し、ユーザーデータログ107に追記する。図9の例では、図8の動作ログに出力されていたIDである[User_00000001]が、実際の値である「Sato」と紐づけられて管理されている。同様に、[IP_00000001]というIDの具体的な値は「192.168.0.5」である。
【0034】
上記第1の実施形態によれば、ログ内の機密情報を適当なIDに変換し、機密情報は別に管理することで、ログ情報の欠落なしにユーザーデータが動作ログに混入することを防ぐことができる。
【0035】
[第2の実施形態]
本発明の第2の実施の形態では、図1〜図4および図6〜図7に示す構成が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
【0036】
図10は、ログ出力モジュール101におけるログ出力処理の流れを示すフローチャートである。図10中のS501〜S504は、図5に示すものと同一のステップであるため、説明は省略する。
【0037】
ステップS1001において、ユーザーデータ管理部105は、ステップS501で隠匿対象と判定されたユーザーデータの値がユーザーデータログ107に存在するかどうかを確認する。隠匿するユーザーデータの値がユーザーデータログ107に存在している場合、そのユーザーデータの値にはすでにIDが付与されていることになる。
【0038】
ステップS1001でユーザーデータの値がユーザーデータログ107に存在した場合、ステップS1002において、ユーザーデータ管理部105はユーザーデータログ107から隠匿対象のユーザーデータの値に対応するIDを取得し、ログ出力判定部103に返す。
【0039】
ステップS1001でユーザーデータの値がユーザーデータログ107に存在しなかった場合、ステップS502において、第1の実施形態と同様に、ユーザーデータ管理部105はユーザーデータの値に対してユニークなIDを発行し、ログ出力判定部103に返す。ユーザーデータ管理部105は、ユーザーデータログ107として、ユーザーデータの値と発行したIDを管理する。
【0040】
図11は、図7の動作ログの内容について、ユーザーデータを隠匿している場合の動作ログ106の例である。図8との違いは、6行目のDocNameのIDである。図8では6行目のDocNameのIDは[DocName_00000002]であったのに対し、図11ではIDが[DocName_00000001]になっている。第2の実施例では、同じ種類、同じ値のユーザーデータに対しては、ユーザーデータ管理部105が同じIDを取得してログ出力判定部103に返す。図7の例では、2行目と6行目のログにおいて、ファイル名(DocName)の値が同一である。そのため、ファイル名を隠匿した結果である図11では、2行目と6行目のDocNameのIDが、同一のものになっている。
【0041】
図12は、図11の動作ログ106に対応するユーザーデータログ107の例である。図9との違いは、DocNameのID=00000002の値である。第1の実施形態である図9では、ユーザーデータ管理部105は、同じユーザーデータ値に対しても新規にIDを発行していた。それに対し、第2の実施形態である図12では、ユーザーデータ管理部はすでにユーザーデータログに値があるものに対しては新規にIDを発行せず、ユーザーデータの値に対応するIDを取得する。その結果、図11の例のように、同じ種類、同じ値のユーザーデータは同じIDに置換され、動作ログ106が出力される。
【0042】
上記第2の実施形態によれば、同一のユーザーデータが同一のIDで置換されて動作ログ106が出力されるため、動作ログにより多くの情報量を保持したまま、ユーザーデータが動作ログに混入することを防ぐことができる。
【符号の説明】
【0043】
101 ログ出力モジュール
102 ログ出力要求受信部
103 ログ出力判定部
104 ログ出力部
105 ユーザーデータ管理部
106 動作ログ
107 ユーザーデータログ
108 ログ出力設定
109 ログ出力設定部


【特許請求の範囲】
【請求項1】
ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムであって、
ソフトウェアからログの出力要求を受信するログ出力要求受信手段(102)と
ログの出力設定情報を管理するログ出力設定手段(109)と、
前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段(103)と、
前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段(104)と、
前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段(105)と、
を有し、
前記ログ出力要求受信手段(102)は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システム。
【請求項2】
前記ユーザーデータ管理手段(105)は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする、請求項1に記載のログ管理システム。
【請求項3】
ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムの制御方法において、
ソフトウェアからログの出力要求を受信するログ出力要求受信工程(102)と
ログの出力設定情報を管理するログ出力設定工程(109)と、
前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定工程(103)と、
前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力工程(104)と、
前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理工程(105)と、
を有し、
前記ログ出力要求受信工程(102)は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システムの制御方法。
【請求項4】
前記ユーザーデータ管理工程(105)は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする請求項3に記載のログ管理システムの制御方法。
【請求項5】
ソフトウェアの動作に応じて動作履歴をログとして出力するログ管理システムの制御方法を情報処理装置に実行させるためのプログラムにおいて、
ソフトウェアからログの出力要求を受信するログ出力要求受信手段(102)
ログの出力設定情報を管理するログ出力設定手段(109)、
前記ログ出力設定の内容に応じて、ログに出力するユーザーデータが置換対象かどうかを判定するログ出力判定手段(103)、
前記ログ出力判定手段により置換が必要と判断された場合に、置換対象のユーザーデータ値に所定のIDを割り当ててログを出力するログ出力手段(104)、
前記置換対象ユーザーデータとそれに割り当てられたIDを、前記ログ出力手段とは別にユーザーデータとして出力するユーザーデータ管理手段(105)、
を有し、
前記ログ出力要求受信手段(102)は、ログ出力完了後にソフトウェアにログ出力完了通知を返すことを特徴とするログ管理システムの制御方法をコンピューターに実行させるためのコンピューターに読み取り可能なプログラム。
【請求項6】
前記ユーザーデータ管理手段(105)は、ユーザーデータにすでにIDが割り当てられていた場合にはそのIDを使用することを特徴とする、請求項5に記載のログ管理システムの制御方法をコンピューターに実行させるためのコンピューターに読み取り可能なプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate