以下、添付図面を参照しながら実施例について詳細に説明する。
<情報管理装置の機能構成例>
図1は、本実施形態における情報管理装置の機能構成例を示す図である。図1に示す情報管理装置10は、入力手段11と、出力手段12と、記憶手段13と、対象項目候補抽出手段(候補抽出手段)14と、対象項目設定手段15と、処理実行手段16と、入出力記録手段17と、対象処理抽出手段18と、画面生成手段19と、送受信手段20と、制御手段21とを有する。
入力手段11は、情報管理装置10を使用するユーザ(管理者やシステム開発者等)からの各種指示の開始や終了、設定の入力等の各種入力を受け付ける。具体的には、入力手段11は、例えば本実施形態における対象項目候補抽出指示、対象項目設定指示、処理実行指示、入出力記録指示、対象処理抽出指示、画面生成指示、送受信指示等の各指示を受け付ける。
入力手段11により取得される情報の入力は、例えばキーボードやマウス等の入力インターフェース等による入力でもよく、また画面を用いたタッチパネル形式の入力等でもよい。更に、入力手段11は、例えばマイクロフォン等により音声を入力する音声入力手段を有していてもよい。
出力手段12は、入力手段11により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。なお、出力手段12は、例えば画面表示により出力する場合には、ディスプレイやモニタ等の表示手段を有し、音声により出力する場合には、例えばスピーカ等の音声出力手段を有していてもよい。また、入力手段11と出力手段12とは、例えばタッチパネル等のように入出力が一体型であってもよい。
記憶手段13は、本実施形態において必要となる各種情報を記憶する。具体的には、記憶手段13は、例えば所定のシステムやサービス等を実行するために開発されたWebページや、Webページ内に存在する対象項目候補の抽出結果、対象項目設定結果、所定の処理を実行させるための入力データ(例えば、ダミーデータ等)、処理の実行結果等を記憶する。
また、記憶手段13は、例えば処理実行時における入出力情報を記録したり、対象処理抽出処理による抽出結果、画面生成結果、送受信結果等を記憶する。なお、記憶手段13に記憶される情報は、上述した情報に限定されるものではない。
また、記憶手段13は、記憶された各種情報を必要に応じて所定のタイミングで読み出したり、書き込んだりすることができる。また、記憶手段13は、上述したような多種の情報の集合物であり、それらの情報を、例えばキーワード等を用いて検索し、抽出することができるように体系的に構成されているデータベースとしての機能を有していてもよい。なお、記憶手段13は、例えばハードディスクやメモリ等からなる。
対象項目候補抽出手段14は、例えばWebシステム等の所定のシステムで入出力される項目(各種データ)のうち、取扱注意情報等が含まれていると推定される対象の項目候補を抽出する。例えば、対象項目候補抽出手段14は、あるWebシステムでユーザ等に提供される各Webページ等に取扱注意情報が含まれていると推定される場合には、その項目を対象項目候補として抽出する。
ここで、取扱注意情報とは、例えば個人情報等であるが、これに限定されるものではなく、例えば管理者等が取扱注意として任意に設定した文字列やコード情報等でもよい。個人情報としては、住所、氏名(姓、名)、電話番号、メールアドレス、クレジットカード番号、ユーザID、パスワード等の情報であるが、これに限定されるものではない。
また、対象の項目候補であるか否かを推定するための判断基準としては、例えばWebページ毎にHyper Text Markup Language(HTML)ファイルのソースコード等を確認し、個人情報に関連する項目やタグ等が存在するか否かにより判断することができる。なお、判断基準は、これに限定されるものではなく、例えばWebページで表示される文字列を解析し、「住所」や「氏名」等の予め設定された文字列が取得された場合に、その項目を対象項目候補として判断することができる。
対象項目設定手段15は、例えば対象項目候補抽出手段14により抽出された対象システム内のWebページ毎の対象項目候補から、少なくとも1つの対象項目を設定する。対象項目設定手段15では、例えばWebページに含まれる対象項目候補が出力手段12の画面上に表示され、管理者等が入力手段11等により、その候補の中から対象項目を選択することにより設定が行われるが、これに限定されるものではない。例えば、対象項目設定手段15は、対象項目候補の全てを対象項目として設定してもよく、全ての対象候補のうち、予め設定された名称(例えば、住所や電話番号等)に対応する項目を設定してもよい。
処理実行手段16は、例えば取扱注意情報等の漏れ等を管理する対象のシステムやサービスに対して所定の処理を実行する。所定の処理とは、例えば対象システム中に含まれる全てのWebページに遷移させたり、所定のWebアプリケーション等をリアルタイムに実行させたり、対象システムに必要となる所定のバッチプログラム等を一定期間毎に実行させる等の処理である。また、所定の処理とは、例えばファイルの読み書き、データベース接続、外部へのHyper Text Transfer Protocol(HTTP)接続、ユーザ認証処理、課金処理等である。更に、所定の処理とは、処理の実行結果として得られる各種データやログファイル等を出力する等の処理であるが、上述した処理内容に限定されるものではなく、複数を組み合わせてもよい。また、所定の処理は、各処理に対応するリクエスト情報により処理を実行し、レスポンス情報等を取得することで処理を終了する。
ここで、所定の処理が、Webシステムを利用するときのユーザ認証処理である場合には、予め設定された認証許可が得られるユーザIDやパスワード等に対応するダミーデータ等を入力して認証処理等を実行させる。ダミーデータは、対象項目設定手段15により取扱注意情報として設定された項目に対して所定のダミーデータを入力する。例えば、取扱注意情報としてユーザIDやパスワード等の個人情報を入力する場合は、その情報がその後どのように出力されるかを追跡しやすくするため、他のデータと区別しやすいデータ(例えば、「あああああ」や「ZZZZ」、「@@@」、「ABABABAB」等)を含むダミーデータ(擬似情報)にすることが好ましい。これにより、ログファイルやデータベース等に出力された多種のデータやタグ等の中から上述したダミーデータを容易に把握することができる。
また、処理実行手段16は、上述した入力するダミーデータを複数用意しておき、その中からランダム又は予め設定された順序等で選択されたダミーデータを用いて処理を実行してもよい。
入出力記録手段17は、上述した処理実行手段16により所定の処理を実行させるための入力データと、処理結果(出力データ)とを記録する。入力データと出力データとは、例えばデータベース等により管理され、記憶手段13に記憶される。なお、入出力記録手段17は、例えばそのシステムが処理を行う際の入出力データ等を通信途中でキャプチャして記録するが、これに限定されるものではない。
対象処理抽出手段18は、上述した処理実行手段16により所定の処理が実行され、入出力記録手段17に記録された入出力データ等から、取扱注意情報が取り扱われる処理(入出力される処理)を抽出する。例えば、対象処理抽出手段18は、所定の処理を実行時に入力されたダミーデータ等を検索キーとして、入出力データ等を参照し、キーが出力されている部分を取得する。なお、対象処理抽出手段18は、上述した対象項目設定手段15により設定された対象項目に対して取扱注意情報が出力されていた場合に、その項目に関する情報を抽出する。これにより、部分的な項目のみを対象にして適切な情報管理を行うことができる。
また、対象処理抽出手段18により抽出される情報としては、例えば対象システムにおいて、取扱注意情報が出力されたWebページを抽出してもよく、プログラム上のソースコードの命令部分(コマンド部分)を抽出してもよいが、これに限定されるものではない。例えば、対象処理抽出手段18により抽出される情報として、取扱注意情報が出力されたログファイルの該当部分等を抽出してもよく、上述した情報を組み合わせて抽出してもよい。
画面生成手段19は、情報管理装置10における各処理を実行するための設定画面や実行結果等の画面を生成する。また、画面生成手段19は、対象処理抽出手段18により抽出された情報を管理者等のユーザに提示するための画面を生成する。生成した画面は、例えば出力手段12のディスプレイ等に出力される。
また、画面生成手段19は、例えば記憶手段13に記憶されている情報や、対象項目設定手段15により設定された情報、入出力記録手段17により記録される情報等を表示する画面を生成することもできる。なお、画像生成手段19により生成される画面については、これに限定されるものではなく、例えばエラー発生時に表示されるエラー画面等を生成することができる。
本実施形態では、対象処理抽出手段18により得られる抽出内容に対応させて画面生成手段19で生成された画面を管理者等のユーザが確認することで、予定していなかった処理で取扱注意情報等が漏れていないかを適切に把握することができる。
送受信手段20は、例えばインターネットやLocal Area Network(LAN)等の通信ネットワークを介して外部装置と各種情報の送受信を行うための通信手段である。送受信手段20は、外部装置等にすでに記憶されている各種情報等を受信することができ、また情報管理装置10で処理された結果を、通信ネットワーク等を介して外部装置等に送信することもできる。
制御手段21は、情報管理装置10の各構成部全体の制御を行う。具体的には、制御手段21は、例えばユーザ等による入力手段11からの指示等に基づいて、情報管理処理に関する各制御を行う。ここで、各制御とは、例えば上述した対象項目候補抽出手段14における対象項目候補の抽出や、対象項目設定手段15における対象項目の設定、処理実行手段16における予め設定された処理の実行、入出力記録手段17における入出力の記録がある。また、各制御とは、対象処理抽出手段18における対象処理の抽出、画面生成手段19における画面の生成等があるが、これに限定されるものではない。
なお、上述した実施形態では、情報管理装置10からの指示により、所定のシステム等を実行し、その実行結果等から取扱注意情報等の漏れ等を管理する等の処理を行っているが、これに限定されるものではなく、外部端末からの指示により処理を実行してもよい。例えば、図1に示すように、情報管理装置10とデータの送受信が可能な状態で接続された端末22を設ける。情報管理装置10は、その端末22からの各指示(例えば、対象項目の設定や、各種処理の実行指示、入力データの投入)等を送受信手段20で受信して対応する処理を実行することができる。
端末22は、例えば管理者やシステムの各開発者等が使用する。情報管理装置10と端末22とは、インターネットやLAN等に代表される通信ネットワークにより接続される。また、情報管理装置10は、複数の端末22と接続することができ、各端末22から指示を受け付けて対応する処理を実行することができる。
情報管理装置10は、例えばサーバや汎用のPersonal Computer(PC)等であるが、これに限定されるものではない。また、端末22は、PC等であるが、これに限定されるものではない。
<ハードウェア構成例>
ここで、上述した情報管理装置10においては、各機能をコンピュータに実行させることができる実行プログラム(情報管理プログラム)を生成し、例えばサーバやPC等にその実行プログラムをインストールする。これにより、実行プログラムを用いて本実施形態における情報管理処理を実現することができる。ここで、情報管理装置10における情報管理処理が実現可能なコンピュータのハードウェア構成例について図を用いて説明する。
図2は、情報管理処理が実現可能なハードウェア構成の一例を示す図である。図2におけるコンピュータ本体には、入力装置31と、出力装置32と、ドライブ装置33と、補助記憶装置34と、主記憶装置35と、各種制御を行うCentral Processing Unit(CPU)36と、ネットワーク接続装置37とを有するよう構成されており、これらはシステムバスBで相互に接続されている。
入力装置31は、情報管理装置10の管理者(ユーザ)等が操作するキーボード及びマウス等のポインティングデバイスや、マイクロフォン等の音声入力デバイスを有しており、ユーザ等からのプログラムの実行指示、各種操作情報、ソフトウェア等を起動するための情報等を入力する。
出力装置32は、本実施形態における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU36が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。また、出力装置32は、上述の処理結果等を紙等の印刷媒体に印刷して、管理者等に提示することができる。
ここで、本実施形態においてコンピュータ本体にインストールされる実行プログラムは、例えば、Universal Serial Bus(USB)メモリやCD−ROM、DVD等の可搬型の記録媒体38等により提供される。プログラムを記録した記録媒体38は、ドライブ装置33にセット可能であり、CPU36からの制御信号に基づき、記録媒体38に含まれる実行プログラムが、記録媒体38からドライブ装置33を介して補助記憶装置34にインストールされる。
補助記憶装置34は、ハードディスク等のストレージ手段であり、CPU36からの制御信号に基づき、本実施形態における実行プログラムや、コンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行うことができる。補助記憶装置34は、CPU36からの制御信号等に基づいて、記憶された各情報から必要な情報を読み出したり、書き込むことができる。
主記憶装置35は、CPU36により補助記憶装置34から読み出された実行プログラム等を格納する。なお、主記憶装置35は、Read Only Memory(ROM)やRandom Access Memory(RAM)等からなる。なお、補助記憶装置34及び主記憶装置35は、例えば上述した記憶手段13に対応している。
CPU36は、オペレーティングシステム等の制御プログラム、及び主記憶装置35に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置34から取得することができ、また実行結果等を格納することもできる。
具体的には、CPU36は、例えば入力装置31から得られるプログラムの実行指示等に基づき、補助記憶装置34にインストールされた情報管理プログラムを実行させることにより、主記憶装置35上でプログラムに対応する処理を行う。
例えば、CPU36は、情報管理プログラムを実行させることで、上述した対象項目候補抽出手段14による対象項目候補の抽出、対象項目設定手段15による対象項目の設定、処理実行手段16における処理の実行等の処理を行う。また、CPU36は、情報管理プログラムを実行させることで、入出力記録手段17による所定のシステム(例えば、Webアプリケーション、バッチプログラム等)上での入出力の記録、対象処理抽出手段18における対象処理の抽出等の処理を行う。また、CPU36は、情報管理プログラムを実行させることで、画面生成手段19における画面の生成等の処理を行う。なお、CPU36における処理内容は、これに限定されるものではない。
ネットワーク接続装置37は、CPU36からの制御信号に基づき、通信ネットワーク等と接続することにより、実行プログラムやソフトウェア、設定情報等を、通信ネットワークに接続されている外部装置等から取得する。また、ネットワーク接続装置37は、プログラムを実行することで得られた実行結果又は本実施形態における実行プログラム自体を外部装置等に提供することができる。
上述したようなハードウェア構成により、本実施形態における情報管理処理を実行することができる。また、プログラムをインストールすることにより、汎用のPCやサーバ等で本実施形態における情報管理処理を容易に実現することができる。なお、端末22の構成についても図2に示すハードウェア構成と同様の構成を適用できる。
<情報管理処理の一例>
ここで、情報管理装置10における情報管理処理の一例について、フローチャートを用いて説明する。図3は、情報管理処理の一例を示すフローチャートである。図3の例に示す情報管理処理において、対象項目候補抽出手段14は、管理対象のシステムから対象項目候補を抽出する(S01)。ここで、対象項目候補としては、例えば上述した個人情報等の取扱注意情報等があるが、これに限定されるものではない。
次に、対象項目設定手段15は、S01の処理で得られた対象項目候補から、少なくとも1つの対象項目を設定する。(S02)。次に、処理実行手段16は、S02の処理により設定された対象項目が、例えばどの処理(例えば、アプリケーションやプログラム等)で入出力されているか等を取得するため、所定の入力データを用いて所定の処理を実行し(S03)、その時の入出力データ等を記録する(S04)。
なお、入力データに対しては、上述したS02の処理で設定された対象項目に対するダミーデータ等を用いるが、これに限定されるものではない。また、入力データは、例えば複数の入力によってデータが出力されるような場合や、入出力を複数回行うことで項目の出力経緯が把握できる場合もある。そのため、本実施形態では、予め複数の入力データ(ダミーデータ)を用意しておき、その中からランダム又は所定の順番に選択された入力データを入力して処理を行うことが好ましいが、これに限定されるものではない。
次に、対象処理抽出手段18は、上述した入力データ(ダミーデータ)を検索キーとして、記録された入出力データ内を検索し、キーが含まれる箇所を抽出し、その抽出結果から対象項目(取扱注意情報等)が取り扱われる対象処理を抽出する(S05)。
また、画面生成手段19は、S05の処理で得られた抽出結果の画面を生成する(S06)。なお、抽出結果として画面生成される内容としては、例えば処理対象のプログラムでもよく、入出力画面(例えば、Webページ等)でもよく、入出力データでもよいが、これに限定されるものではなく、例えば上述した複数の情報を組み合わせた内容でもよい。
画面生成手段19は、S06の処理により生成した画面を出力手段12等の画面に出力する(S07)。ここで、制御手段21は、処理を終了するか否かを判断し(S08)、処理を終了しない(継続する)場合(S08において、NO)、S01に戻る。また、制御手段21は、S08の処理において、処理を終了する場合(S08において、YES)、情報管理処理を終了する。
<実施例>
次に、本実施形態における情報管理装置10における情報管理の具体的な実施例について説明する。図4は、情報管理の実施例を示す図である。なお、図4では、情報管理装置10における情報管理対象システムの一例としてWebシステムの構成等を示しているが、対象システムについてはこれに限定されるものではない。
図4の例では、処理実行手段16により所定の処理を実行させる部分と、そのときの入出力記録手段17における入出力記録部分とを概略的に示している。つまり、図4に示す情報管理装置10は、上述した処理実行手段16と、入出力記録手段17とを有し、更に記憶手段13として、入力データベース13−1と、出力データベース13−2とを有する。また、処理実行手段16は、Webアプリケーション16−1と、バッチプログラム16−2とを有する。
図4に示す情報管理装置10は、例えばリクエストハンドラ41と、Webサービスアクセスライブラリ42と、データベースドライバ43と、ログライブラリ44と、ファイル操作ライブラリ45とを有する。
リクエストハンドラ41は、外部の端末22等から入力されるリクエスト情報(例えば、HTTPアクセス)等を取得し、取得した情報を処理実行手段16に出力する。リクエストに対応するシステム上のWebページは、例えばリクエスト情報に含まれる所定の識別情報(例えば、Uniform Resource Locator(URL))によって識別される。また、リクエスト情報に対応するWebページは、レスポンス情報の一例として端末22に提供することができる。
Webサービスアクセスライブラリ42は、例えばWebアプリケーション16−1からのWebサービス接続指示に基づいて、対応する外部Webシステム51へのアクセスを実現する。ライブラリとは、汎用性の高い複数のプログラムを、再利用可能な形で管理されたものである。
データベースドライバ43は、データの入出力先等を管理して所定のデータベース52との入出力を行う。データベースドライバ43は、例えば、Webアプリケーション16−1やバッチプログラム16−2を実行してデータベース52に対するデータアクセスを実現するためのドライバである。また、データベースドライバ43は、例えば異なるデータベースに対するアクセスを行う場合に、個々のデータベース毎にプログラムを書き換えなくても済むように、データベースとJava(登録商標)プログラムの間にあるドライバである。また、データベースドライバ43は、データベース毎のデータ等の違いをフォーマット変換等により吸収することもできる。
ログライブラリ44は、ログの出力先等を管理して所定のログファイル53を出力する。また、ログライブラリ44は、ログデータに対する書き込みや参照等を有効にしたり無効にする制御を行うことができる。また、ログライブラリ44は、出力フォーマット等を管理することができる。
ファイル操作ライブラリ45は、データの出力先等を管理して所定のデータファイル54を出力する。また、ファイル操作ライブラリ45は、データファイル54のフォーマットや使用制限等を管理することができる。
図4の例では、端末22等から受け取ったリクエスト情報等に対して、所定の入力データ等を用いて処理実行手段16における所定の処理(例えば、ファイルの読み書き、データベース接続、外部へのHTTP接続等)が実行される。このとき、入出力記録手段17は、データの流れ(入出力データ)を入力データベース13−1や出力データベース13−2等に記録する。
ここで、上述した所定の入力データとは、例えばユーザIDやパスワード等に対応するダミーデータ等があるがこれに限定されるものではなく、例えば所定のWebアプリケーション16−1の呼び出し等であってもよい。また、所定の入力データとは、例えばExtensible Markup Language(XML)やComma Separated Values(CSV)等へのデータ変換指示、ログ出力指示等がある。更に、所定の入力データとは、例えばデータベース52への接続指示、外部HTTP接続指示等があるが、これらに限定されるものではなく、上述した各指示を組み合わせもよい。
また、本実施形態は、対象処理抽出手段18により、上述したダミーデータを検索キーとして、各種データベースやログファイル53、データファイル、システム内部情報等を参照し、対象項目として指定した項目に対して取扱注意情報等を含む箇所の特定を行う。システム内部情報とは、例えばスタックトレース、プロファイル情報、HTTPリクエストやそのレスポンス情報等があるが、これに限定されるものではない。
<対象項目候補の抽出例>
次に、対象項目を設定する対象項目候補の抽出例について図を用いて説明する。図5は、対象項目候補の抽出例を説明するための図である。なお、図5の例では、例えば取扱注意情報等の漏れ等を管理する対象システム(例えば、Webアプリケーション16−1)において、表示される画面(例えば、Webページ)の遷移が示されている。この対象システムは、例えばサービス開始前のシステムであるが、これに限定されるものではなく、例えばサービス開始後のシステムであってもよい。
図5の例では、対象システムに含まれる全画面に対して初期アクセス画面60から画面遷移を辿ることによって、予め設定されたデータ入力機能や検索機能、参照機能等を有する画面等をリストアップする。
ここで、図6は、対象のWebページがリストアップされた画面例を示す図である。図6に示すサムネイル一覧画面70は、例えば上述した対象システム(例えば、Webアプリケーション16−1)において、対象項目候補を含むWebページ71−1〜71−6が示されている。Webページ71−1〜71−6は、例えば同一システム内に取扱注意情報を含む項目が表示されていると推定される画面である。
本実施形態では、対象システムの画面や画面の遷移等を自動的にキャプチャして記憶手段13等に記憶したり、画面生成手段19により図5に示すような遷移図や、図6に示すような画面を生成し、生成した画面を出力手段12から出力することができる。本実施形態では、図6に示すサムネイル画像としてリストアップされた画面を元に、管理者等により取扱注意情報を有する画面やその画面に対する対象項目等の設定を行う。
<対象項目設定の一例>
次に、対象項目設定の一例について図を用いて説明する。図7は、対象項目設定の一例を示す図である。図7の例では、画面生成手段19により生成される対象項目設定画面80を用いて取扱注意項目の設定を行う。
例えば図6に示すサムネイル一覧画面70から対象の画面を選択すると、対象項目設定画面80には、選択されたキャプチャ画面81と、その画面に対する構造情報(例えば、HTML等)から抽出された項目欄82が表示される。図7のキャプチャ画面81は、図6に示すキャプチャ画面71−4がユーザ等により選択されて表示されたものである。
また、本実施形態では、項目欄82に表示された各項目候補に対して、管理者等のユーザが実際に管理する対象項目としてチェックするためのチェックボックス等が設けられている。ユーザは、入力手段11等を用いて対象項目をチェックすることで、そのWebページにおける取扱注意情報等の対象項目を容易かつ適切に設定することができる。また、上述した設定は、他の画面(Webページ)についても行うことができる。
なお、本実施形態では、項目欄82に氏名全てを選択したり、姓、名、セイ、メイの少なくとも1つを個別に選択できるようにチェックボックスを設けていてもよい。この場合、個別で選択される例としては、例えば住所であれば、例えば郵便番号の上3桁(図7に示す[1])と下4桁(図7に示す[2])、及び住所名(図7に示す[3])等の細分化した各情報でそれぞれチェックボックスを有していてもよい。また、自宅電話番号であれば、例えば市外局番(図7に示す[1])、市内局番(図7に示す[2])、及び加入者番号(図7に示す[3])等の細分化した各情報でそれぞれチェックボックスを有していてもよい。
これにより、本実施形態では、個人情報の出力抑止を全解除することなく、必要なページの必要な部分のみ出力抑止を解除することができる。したがって、例えばシステムの動作状況を確認するために、一部の処理について個人情報の出力抑止を解除することができ、取扱注意情報が取り扱われる処理を適切に抽出することができる。
なお、本実施形態では、チェックボックスを用いた項目の選択でなくてもよく、例えばラジオボックスやリストボックス等により選択させることもできる。設定された項目の情報は、図5に示すように、例えば入力データベース13−1に入力され、その項目に対応するダミーデータ等を用いて所定の処理(例えば、ファイルの読み書き、データベース接続、認証、検索、参照、課金等)が行われる。
<処理実行手段16における処理実行の概要>
次に、処理実行手段16における処理実行の概要について図を用いて説明する。図8は、処理実行の概要を示す図である。なお、図8の例では、対象システムで使用される各Webページに対するデータの入出力内容を示している。つまり、本実施形態では、Webアプリケーション16−1に含まれる自動データ入力プログラムや自動検索・参照プログラム等を用いて入力データベース13−1に含まれるデータを用いて各種入力画面や検索・参照画面に対して入力を行う。また、対象システムにより処理された結果を出力データベース13−2に出力する。
ここで、図9は、処理実行処理の一例を示すフローチャートである。図9に示す処理実行処理は、一例として、データ入力処理か又は検索・参照処理かにより処理を分けて説明するが、処理内容についてはこれに限定されるものではない。
処理実行手段16は、実行される処理がデータ入力処理であるか否かを判断し(S11)、データ入力処理である場合(S11において、YES)、取扱注意項目を有する入力画面に対し、ランダムデータを生成する(S12)。なお、ランダムデータとは、例えば予め設定された複数のダミーデータからランダムに選択されたデータであるが、これに限定されるものではなく、例えば複数のダミーデータを予め設定された順序等で選択してもよい。
また、処理実行手段16は、データ入力処理でない場合(S11において、NO)、検索・参照処理として、取扱注意項目を有する検索画面に対し、例えば過去のランダムデータを用いた検索データを生成する(S13)。過去のランダムデータを用いて検索データを生成することで、少なくとも1つの検索結果を得ることができる。
次に、処理実行手段16は、S12又はS13の処理において生成したデータを入力データベース13−1に記録し(S14)、更に生成したデータの一部又は全部を入力して処理を実行する(S15)。なお、入力値の制約等により1回で特定し切れない可能性があるときは複数回入力してもよい。
処理実行手段16は、入出力記録手段17により、例えば対象システムに入力されたデータを記録させ(S16)、更に対象システムから出力されたデータを記憶させる(S17)。なお、S16の処理では、管理者(ユーザ)の操作内容に関する情報等を記録してもよい。操作に関する情報とは、例えば入力したデータそのものだけでなく、各種のリクエスト情報やレスポンス情報等があるが、これに限定されるものではない。また、S17の処理では、所定の処理の実行により出力されたデータや、どのような呼出階層を辿ってきたか等の処理経路等を記録する。また、処理実行手段16は、処理の終了時にレスポンスデータと終了時刻を記録する(S18)。
上述した処理により、対象システムに対してランダムデータを用いて各種の処理を実行させることができる。なお、本実施形態では、例えばリストアップされた検索・参照機能に対して上述の処理で入力したデータを再入力したり、入力データと同一或いは類似するデータを出力する機能があれば、そのときの出力情報を出力データベース13−2に記録してもよい。また、本実施形態では、所定のバッチプログラムの事前条件を満たすように調整を行ってからバッチプログラムを実行してもよい。このとき実行された出力データは、出力データベース13−2等に記録する。
<データの一例>
次に、本実施形態において適用されるデータの一例について図を用いて説明する。図10は、入力データベースのデータ例を示す図である。図10(A)は、データ入力情報記録テーブルの一例を示し、図10(B)は、取扱注意情報テーブルの一例を示している。
図10(A)に示すデータ入力情報記録テーブルは、項目として、例えば「ID」、「開始時刻」、「終了時刻」、「対象画面のURLor画面ID」、「リクエスト情報」、「ランダムデータ」、「レスポンス情報」等を含むがこれに限定されるものではない。なお、本実施形態では、図10(A)の「リクエスト情報」に示すように、例えば「メソッド」、「URL」、「Cookie」、「フォームデータ」等のサブ項目等を含んでいてもよい。
「ID」は、例えばデータ入力情報記録テーブルの各レコードを識別するための情報である。「開始時刻」は、例えばリクエスト情報を入力したときの日時情報である。「終了時刻」は、例えばリクエストに対するレスポンス情報を取得したときの日時情報である。「対象画面のURLor画面ID」は、例えばリクエスト対象画面(例えば、Webページ等)のアドレス情報等である。「リクエスト情報」は、例えば対象画面等に対して入力されたリクエスト情報である。「ランダムデータ」は、例えば所定の処理を実行するときに使用されるダミーデータ等である。なお、「ランダムデータ」には、取扱注意情報として設定された項目に対するダミーデータが設定される。「レスポンス情報」は、例えばリクエスト情報に対応して所定の処理が実行された結果等である。
例えば、図10(A)の例において、IDが「4」の場合、リクエスト情報のフォームデータが「"name1=○○○12、&name2=太郎12、&mtype=携帯、&……"」である。したがって、このリクエスト情報の対象画面(http://example.com/form)は、取扱注意情報を含む画面であることが分かる。
ここで、例えば、上述した対象項目設定手段15により、"name1"と"name2"の項目が対象項目として設定されていたとする。その場合に、ランダムデータは、例えば「name1=あああああ、name2=ZZZZ」と生成される。更に、フォームデータに対応させて、対象項目として設定されていない「mtype=携帯、……」が、そのままランダムデータに付加される。
また、データ入力情報記録テーブルには、上述したランダムデータを用いたリクエスト情報に対応するレスポンス情報(例えば、「<!DOCTYPE HTML...」)が記憶される。
上述したランダムデータは、例えば対象画面が認証画面等である場合に、認証結果として使用が許可されるダミーデータを用いることで、次の画面に遷移させることができる。なお、使用が拒否されるダミーデータを用いてもよく、これによりエラーログ等にユーザ情報等の取扱注意情報が出力されていないかを確認することもできる。本実施形態は、上述したように認証が許可されたり拒否される複数のダミーデータを予め設定して記憶手段13に記憶し、そこから処理内容に応じてランダムにダミーデータを抽出することで、ランダムデータを得ることができる。
なお、上述した図10(A)に示すデータ入力情報記録テーブルは、例えば端末22等からデータ(リクエスト情報)を入力する毎に1レコードが生成されるが、これに限定されるものではない。
また、図10(B)に示す取扱注意情報テーブルは、項目として、例えば「ID」、「対象画面のURLor画面ID」、「項目名」、「データ種別」、「"取扱注意情報フラグ"」等を含むがこれに限定されるものではない。
「ID」は、例えば取扱注意情報テーブルの各レコードを識別するための情報である。「対象画面のURLor画面ID」は、例えば対象画面(例えば、Webページ等)のアドレス情報等である。「項目名」は、例えば対象画面に含まれる入力領域を識別するための情報である。入力領域とは、例えばテキストボックスやラジオボックス、リストボックス、チェックボックス等であるが、これに限定されるものではない。
「データ種別」は、例えば「項目名」の項目に対応するデータ形式の種別である。例えば、「text:任意」とは、テキストボックス内に任意の情報を入力できることを示す。「取扱注意情報フラグ」は、例えば対象画面の対象項目に対して取扱注意情報とするか否かを示す情報である。図10(B)の例では、「TRUE」又は「FALSE」で識別しているが、情報の種類はこれに限定されるものではなく、例えば値が「1」の場合には取扱注意情報とし、値が「0」の場合には取扱注意情報としないように設定してもよい。
図10(B)の例では、IDが「1」の場合に、URLが「http://example.com/form」のWebページに存在するテキストボックスの項目名「name1」は、取扱注意項目(TRUE)として設定されていることを示している。
また、上述の設定は、対象項目設定手段15により設定され、例えば上述した図7に示すような対象項目設定画面80において、項目欄82に示されるチェックボックスでチェックされた項目が、取扱注意情報(TRUE)となる。また、チェックボックスでチェックを外した項目は、取扱注意情報ではなくなる(FALSE)。
なお、設定方法については、これに限定されるものではなく、例えば対象画面のアドレス情報や項目名等に応じて取扱注意情報フラグの設定を自動で行ってもよい。例えば、項目名が「password1」であれば、取扱注意情報であるパスワードが入力されるものと判断して自動的に取扱注意情報フラグを「TRUE」に設定してもよい。
上述した図10(B)に示す取扱注意情報テーブルは、例えばWebページの入力項目毎に1レコードが生成されるが、これに限定されるものではなく、例えばページ中の全項目を取扱注意情報フラグと共に1レコードでまとめてもよい。上述した図10に示す入力データベース13−1は、例えば上述した端末22に設けられていてもよい。
図11は、出力データベースのデータ例を示す図である。図11(A)は、データ受信情報記録テーブルの一例を示し、図11(B)は、入出力記録テーブルの一例を示し、図11(C)は、入出力記録結果テーブルの一例を示している。
図11(A)に示すデータ受信情報記録テーブルは、項目として、例えば「ID」、「開始時刻」、「終了時刻」、「リクエスト情報」等を含むがこれに限定されるものではない。また、本実施形態では、図11(A)の「リクエスト情報」に示すように、例えば「メソッド」、「URL」、「Session ID」、「Cookie」、「リクエストパラメータ」等のサブ項目等を含んでいてもよい。
「ID」は、例えばデータ受信情報記録テーブルの各レコードを識別するための情報である。「開始時刻」は、例えばリクエスト情報を実行したときの日時情報である。「終了時刻」は、例えばリクエストに対するレスポンス情報を取得したときの日時情報である。「リクエスト情報」は、例えばユーザ等により所定の処理を実行するために入力されたリクエスト情報である。
データ受信情報記録テーブルは、例えば端末22等を用いたり、情報管理装置10の入力手段11を用いてユーザが指定した入力情報が記録される。例えば、図11(A)に示すように、入力情報の一例であるユーザからのリクエスト情報を、そのリクエスト情報の受信時刻(開始時刻)及びリクエストに対する実行の終了時刻と対応づけてデータ受信情報記録テーブルに記録する。
図11(A)の例において、IDが「4」の場合、リクエスト情報のリクエストパラメータは、上述した図10(A)のダミーデータに対応して「"name1=あああああ、name2=ZZZZ、mtype=携帯、……"」となる。
また、図11(B)に示す入出力記録テーブルは、項目として、例えば「ID」、「入出力呼出情報」、「記録先種別」、「記録先識別名」等を含むがこれに限定されるものではない。また、本実施形態では、図11(B)の「入出力呼出情報」に示すように、例えば、「パッケージ名」、「クラス名」、「メソッド名」、「行番号」、「呼出階層」、「リビジョンID」等のサブ項目等を含んでいてもよい。
「ID」は、例えば入出力記録テーブルの各レコードを識別するための情報である。「入出力呼出情報」は、例えばデータの入出力処理時に呼び出されるプログラム上の位置や階層等の情報である。「記録先種別」は、例えば出力データの記録先の種別情報である。例えば、「記録先種別」としては、例えばログファイルやデータベース等であるが、これに限定されるものではない。「記録先識別名」は、例えば記録先を識別するための情報であり、例えばファイル名等があるが、これに限定されるものではない。
ここで、図11(B)に示す「パッケージ名」、「クラス名」、「メソッド名」、「行番号」は、入出力記録手段17が入出力記録処理時に取得したインターフェースのプログラム上の位置を示す。また、図11(B)における「呼出階層」は、対象の入出力呼出情報が呼び出されるまでの階層構造を示すものであり、入出力記録処理の該当位置に到達するまでに呼び出されたパッケージ名+クラス名+メソッド名+行番号の列が記録される。なお、図11(B)に示す「呼出階層」のP,C,Mとは、それぞれパッケージ、クラス名、メソッド名を意味する。例えば、呼出階層が、Webページ上の階層により構成されている場合には、その階層数に対応したパッケージ、クラス名、メソッド名の組が記録される。また、「リビジョンID」は、プログラムのリビジョン(改定や修正等によるバージョン)を区別するための識別子である。上述した入出力呼出情報は、記録先種別情報と、記録先識別名と共に記録される。
また、図11(C)に示す入出力記録結果テーブルは、項目として、例えば、「ID」、「入出力時刻」、「入出力データ」、「データ受信情報記録ID」、「入出力記録ID」等を含むがこれに限定されるものではない。
「ID」は、例えば入出力記録結果テーブルの各レコードを識別するための情報である。「入出力時刻」は、例えば入力データ又は出力データを入出力記録結果テーブルに記録したときの日時情報である。また、「入出力データ」は、例えば入出力記録手段17により取得される所定の処理を行うための入力データと、その処理結果として得られる出力データ等である。「データ受信情報記録ID」は、例えば入出力記録手段17により記録されるデータの種類を識別するための情報である。また、「入出力記録ID」は、例えば呼出階層を識別するための情報である。
図11(C)の例では、IDが「2」の場合に、ユーザ認証(データ受信情報記録ID=4)の場合に、ある階層(入出力記録ID=1)に入力データ(ダミーデータ)として"あああああ ZZZZ"が入力される。その後、IDが「3」の場合に、次の階層(入出力記録ID=2)に"insert into USER ... values('あああああ','ZZZZ','携帯',...)"のデータが入力される。
なお、本実施形態で用いられるデータ例については、これに限定されるものではなく、例えばユーザ認証を行うための許可用のユーザ情報や、その他の各種設定情報、入力する各種データに対応する1又は複数のダミーデータ等を含んでもよい。また、上述した各種情報は、記憶手段13で記憶し管理される。
本実施形態では、上述したようにダミーデータ等を用いて所定の処理を実行後、入力したダミーデータ等をキーとして、上述した入力データベース13−1や出力データベース13−2、及び実際の処理後に得られたファイルやデータベース等を検索する。なお、検索対象は、上述したデータの全部でもよく、予め設定された任意のデータのみを対象にしてもよい。
また、本実施形態では、上述した検索結果により、例えば取扱注意情報等がどの処理のどの部分で入出力されているかを特定し、その対象処理部分を抽出する。この場合、検索範囲は、時刻やリクエストの種類等により絞り込むことができる。また、該当部分の特定は、例えばスタックトレース等を用いることができるが、これに限定されるものではない。
<対象処理抽出の一例>
ここで、対象処理抽出手段18における対象処理抽出の概要について図を用いて説明する。図12は、対象処理抽出の概要を示す図である。対象処理抽出手段18は、対象システムで使用した各ファイルやデータベース等に対して、ダミーデータ等の入力データをキーにして各種データの検索を行い、抽出されたデータを出力した対象のWebページやプログラム(ソースプログラム)を抽出する。なお、検索対象となるデータは、例えば図12に示すように、入力データベース13−1や出力データベース13−2、出力先のその他のデータベース52、ログファイル53、データファイル54等があるが、これに限定されるものではない。
対象処理抽出手段18は、入力データをキーとして各種データを検索することで、例えばログファイル53に入力したパスワードがそのまま記録されていたり、データベース52にセキュリティコードが保存されている等の問題箇所を抽出する。
また、対象処理抽出手段18は、検索結果により上述した取扱注意情報等が入出力データに含まれている場合には、その処理を行っている箇所を特定する。例えば、対象処理抽出手段18は、検索結果に基づいて対象のシステムを実行する各種プログラム上における問題箇所を提示することができる。
ここで、図13は、対象処理抽出処理の一例を示すフローチャートである。図13に示す対象処理抽出処理において、対象処理抽出手段18は、所定の処理を実行するために入力したランダムデータをキーとして、入出力記録手段17により記録された各種情報を検索する(S21)。
次に、対象処理抽出手段18は、該当レコードがある場合に、その該当レコードに対応する入出力時の呼出階層を取得する(S22)。例えば、複数レコードが抽出された場合は、各レコードに対応する呼出階層を取得する。なお、呼出階層は、例えば上述した図11(B)に示す入出力記録テーブルを参照することで取得することができるが、取得方法はこれに限定されるものではない。
次に、対象処理抽出手段18は、取得した呼出階層の情報を集計して提示する(S23)。なお、提示する例としては、例えば、全ての階層を提示してもよく、また対象システムの各開発者が担当した階層部分のみを提示してもよいが、これに限定されるものではない。階層の情報を提示することで、管理者や開発者等のユーザは、該当箇所を容易に把握することができる。
また、提示する内容は、例えば取扱注意項目に対して入力されたダミーデータが表示されているWebページでもよく、ダミーデータが出力されたログファイルやデータベースの該当部分でもよく、出力処理を行ったプログラム(ソースコード)等でもよい。提示する内容は、これに限定されるものではなく、例えば上述した各情報を組み合わせて提示してもよい。更に、本実施形態では、例えばS21の処理により該当レコードがある場合に、呼出階層の情報を取得せずに、その該当レコードをそのまま提示してもよい。
図14,図15は、対象処理の抽出の様子を説明するための図(その1,その2)である。図14の例において、図14(A)はログイン画面の一例を示し、図14(B)はプログラム(ソースコード)の一例を示し、図14(C)はログファイルの一例を示している。
例えば、処理実行手段16は、図14(A)に示すログイン画面に対し、取扱注意情報として設定した項目にダミーデータを自動入力する。ここで、ログイン時の処理プログラムには、図14(B)に示すようにログライブラリ等の入口で入出力記録を収集するソースコード(log.info("ID=%s,pw=%s,id,password"))が記述されているとする。この場合、図14(C)に示すようにログファイルにパスワードが漏れることになる。なお、図14(C)に示すID=「○○○」,PW=「aaazzz」は、上述したダミーデータである。予めダミーデータを用意し、そのデータを用いて所定の処理を行うことで、データ入力等におけるユーザの負担を軽減することができる。
対象処理抽出手段18は、入力したデータ(例えば、○○○、aaazzz)をキーとして、所定の処理の実行時に入出力される各種のデータを検索することで、どの画面を表示しているときにどの場所で取扱注意情報が漏れているかを特定することができる。
また、図15の例において、図15(A)はプログラム(ソースコード)の一例を示し、図15(B),(C)は参照される画面例を示し、図15(D),(E)は図15(B),(C)に対応するそれぞれのログファイルを示している。
例えば、図15(A)に示すように、所定の処理を実行するプログラムに、情報表示を行うための共通のソースコード(log.info(resXml.toString()))が記述されているとする。
ここで、一般的に、同一のプログラム(ソースコード)の命令部分(コマンド部分)であっても、処理の遷移やパラメータ等によって、異なる情報が表示されたり、取得される場合がある。例えば、取得した情報を画面に表示するというプログラムコードであっても、図15(B)に示すように商品一覧等の取扱注意情報に含まれない情報が呼び出されたり、図15(C)に示すように会員情報等の取扱注意情報が呼び出されて参照される場合がある。また、図15(A)に示す共通のプログラムコードに対応させて、図15(B),(C)に対応するログファイルを出力した場合には、図15(D)に示すように商品情報が出力される場合や図15(E)に示すように個人情報が出力される場合がある。
したがって、本実施形態では、入力データ(ダミーデータ)をキーにして、所定の処理の実行に伴う入出力データを検索することで、取扱注意情報等が出力される箇所を適切に取得して、その情報を提示することができる。
なお、対象処理の抽出結果を管理者や開発者等のユーザ提示するための画面は、画面生成手段19により生成される。提示する画面は、例えば図14(A)や図15(C)に示すように取扱注意情報等が表示された画面(Webページ)でもよく、図14(B)や図15(A)に示すように該当するソースコードが表示された画面でもよい。また、提示する画面は、例えば図14(C)や図15(E)に示すようにログファイル(出力データ)が表示された画面でもよい。更に、提示する画面は、これに限定されるものではなく、例えば上述した各種情報を組み合わせた画面でもよい。
また、上述したプログラム(ソースコード)等を提示する場合には、例えば図14(B)や図15(A)に示すように、該当部分のプログラムを反転表示させたり、他と異なる色でマーカー表示したり、点滅させる等の各種の強調表示を行ってもよい。更に、プログラムや画面を提示する場合には、上述した呼出階層に関する情報を提示してもよい。
これにより、管理者や開発者等のユーザに対して容易にその箇所を指摘することができる。
また、画面生成手段19により生成された画面は、情報管理装置10の画面に表示してもよく、端末22の画面に表示してもよく、両方に表示してもよい。
上述したように本実施形態によれば、対象のシステム内で取扱注意情報が取り扱われる処理(例えば、入出力される処理)等を適切に抽出することができる。例えば、本実施形態によれば、ダミーデータを用いて対象システムを実際に動作させることにより静的な手段では確認が困難な調査等を効率よく適切に行うことができる。また、本実施形態によれば、例えば画面等に表示されずに開発者等には気づきにくいシステムログ等の出力処理等、システムで使用されるプログラム全体を対象にして取扱注意情報の出力抑止が必要な処理を特定することができる。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。
なお、以上の実施例に関し、更に以下の付記を開示する。
(付記1)
処理対象のシステムで入出力される項目のうち、取扱注意情報を含む項目候補を抽出し、
抽出された前記項目候補の中から設定された対象項目に対して、予め設定されたダミーデータを入力して所定の処理を実行し、
実行後の入出力データから前記ダミーデータが含まれている部分を抽出し、抽出された結果に基づいて、前記取扱注意情報が取り扱われる処理を抽出する、処理をコンピュータに実行させるための情報管理プログラム。
(付記2)
前記システムで提供される画面から、前記取扱注意情報を含む画面をサムネイル表示し、表示されたサムネイルから選択された画面に対して前記取扱注意情報を含む項目候補毎に、ユーザに前記対象項目を設定させる欄を表示することを特徴とする付記1に記載の情報管理プログラム。
(付記3)
前記実行後の入出力データには、前記システムに対するリクエスト情報、レスポンス情報、及び入出力呼出情報のうち、少なくとも1つを含むことを特徴とする付記1又は2に記載の情報管理プログラム。
(付記4)
前記取扱注意情報が取り扱われる処理の抽出結果に基づいて、前記処理により出力される画面、前記処理に対する入出力データ、及び前記処理を実行するプログラムのうち、少なくとも1つを画面に表示することを特徴とする付記1乃至3の何れか1項に記載の情報管理プログラム。
(付記5)
前記プログラムのうち、前記取扱注意情報が取り扱われる処理に対応する部分を強調表示することを特徴とする付記4に記載の情報管理プログラム。
(付記6)
処理対象のシステムで入出力される項目のうち、取扱注意情報を含む項目候補を抽出する候補抽出ステップと、
前記候補抽出ステップにより抽出された前記項目候補の中から設定された対象項目に対して、予め設定されたダミーデータを入力して所定の処理を実行する処理実行ステップと、
前記処理実行ステップにより得られる実行後の入出力データから前記ダミーデータが含まれている部分を抽出し、抽出された結果に基づいて、前記取扱注意情報が取り扱われる処理を抽出する対象処理抽出ステップとを有することを特徴とする情報管理方法。
(付記7)
処理対象のシステムで入出力される項目のうち、取扱注意情報を含む項目候補を抽出する候補抽出手段と、
前記候補抽出手段により抽出された前記項目候補の中から設定された対象項目に対して、予め設定されたダミーデータを入力して所定の処理を実行する処理実行手段と、
前記処理実行手段により得られる実行後の入出力データから前記ダミーデータが含まれている部分を抽出し、抽出された結果に基づいて、前記取扱注意情報が取り扱われる処理を抽出する対象処理抽出手段とを有することを特徴とする情報管理装置。