以下に添付図面を参照して、この発明にかかる監査証跡追跡装置、監査証跡追跡方法および監査証跡追跡プログラムの好適な実施の形態を詳細に説明する。
(情報システムの概要)
まず、この発明の実施の形態にかかる情報システムの概要について説明する。図1は、この発明の実施の形態にかかる情報システムの概要を示すシステム構成図である。図1において、情報システム100は、Webサーバ101と、メールサーバ102と、データベース(DB)サーバ103と、業務アプリケーションサーバ104と、管理サーバ105と、クライアント端末Cと、管理者端末110と、によってWANを構築している。情報システム100としては、たとえば、顧客情報検索システムが挙げられる。
まず、Webサーバ101は、インターネット120からアクセスしてくるクライアント端末C1に所定のWebサービスを提供するコンピュータ装置であり、LAN外のクライアント端末C1とのWebアクセスログを記録している。メールサーバ102は、電子メールの送受信を管理するサーバであり、クライアント端末C間の電子メールの送受信をおこなう。また、メールサーバ102は、電子メールの送受信ログを記録している。
また、DBサーバ103は、DB130を管理するコンピュータ装置である。DB130には情報システム100が保有する各種情報が格納されている。たとえば、情報システム100が顧客情報検索システムである場合、DB130には検索対象となる顧客情報が記憶されている。また、DBサーバ103は、クライアント端末Cや管理者端末110、または後述する業務アプリケーションサーバ104からのアクセスにより、要求された情報を提供する。また、DBサーバ103は、このアクセスによるアクセス権操作ログを記録している。
業務アプリケーションサーバ104は、情報システム100が提供する業務を実行するコンピュータ装置である。たとえば、情報システム100が顧客情報検索システムである場合、クライアント端末C2から直接、またはクライアント端末C1からWebサーバ101を介して間接的に検索要求を受けた場合、DBサーバ103に対して顧客情報の検索処理を実行する。そして、検索結果を検索要求先のクライアント端末Cに提供する。また、業務アプリケーションサーバ104は、検索要求や検索結果に関するDBアクセスログを記録している。
また、管理サーバ105は、情報システム100内の監査証跡となるログを管理するコンピュータ装置である。管理サーバ105は、管理者端末110から操作される。管理サーバ105は、具体的には、Webサーバ101、メールサーバ102、DBサーバ103、業務アプリケーションサーバ104に記録されているログや、クライアント端末Cの操作ログを収集し、収集されたログを用いて情報漏洩者やそのクライアント端末Cの情報漏洩操作履歴の追跡処理をおこなう。
クライアント端末Cおよび管理者端末110は、Webサーバ101、メールサーバ102、DBサーバ103、業務アプリケーションサーバ104が提供するサービスを受けるコンピュータ装置である。たとえば、LAN外のクライアント端末C1は、Webサーバ101を介して、メールサーバ102、DBサーバ103、業務アプリケーションサーバ104にアクセスすることができる。
また、LAN内のクライアント端末C2および管理者端末110は、Webサーバ101、メールサーバ102、DBサーバ103、業務アプリケーションサーバ104にアクセスすることができる。管理者端末110は、さらに管理サーバ105にアクセスすることができる。クライアント端末Cおよび管理者端末110の操作ログは、管理サーバ105に収集される。
(コンピュータ装置のハードウェア構成)
つぎに、図1に示した各コンピュータ装置のハードウェア構成について説明する。図2は、図1に示した各コンピュータ装置のハードウェア構成を示すブロック図である。図2において、コンピュータ装置は、CPU201と、ROM202と、RAM203と、HDD(ハードディスクドライブ)204と、HD(ハードディスク)205と、FDD(フレキシブルディスクドライブ)206と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)207と、ディスプレイ208と、I/F(インターフェース)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、コンピュータ装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。HDD204は、CPU201の制御にしたがってHD205に対するデータのリード/ライトを制御する。HD205は、HDD204の制御で書き込まれたデータを記憶する。
FDD206は、CPU201の制御にしたがってFD207に対するデータのリード/ライトを制御する。FD207は、FDD206の制御で書き込まれたデータを記憶したり、FD207に記憶されたデータをコンピュータ装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD207のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F209は、通信回線を通じてインターネット120などのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、I/F209は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、コンピュータ装置内に画像データを取り込む。なお、スキャナ212は、OCR機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(情報システム100の具体的構成)
つぎに、この発明の実施の形態にかかる情報システム100の具体的構成について説明する。図3は、この発明の実施の形態にかかる情報システム100の具体的構成を示す説明図である。なお、EJB(Enterprise JavaBeans(登録商標))サーバ300は、図1に示した業務アプリケーションサーバ104に相当するコンピュータ装置である。
図3において、Webサーバ101は、HTTPサーバ301と、サーブレット302と、J2EEクラスライブラリ303と、サーブレットコンテナ304と、アドオンセキュリティ管理機構305と、を備えている。HTTPサーバ301は、クライアント端末C1からのユーザ認証リクエスト400(HTTPリクエスト)を監視している。
図4は、ユーザ認証リクエスト400の一例を示す説明図である。クライアント端末CからのユーザIDの取得は、プラットフォーム標準の認証機構(ベーシック認証等)を利用したアプリケーションなら容易であるが、業務アプリケーションの大半は独自の認証機構を組んでいる。この場合、ユーザIDを認識しているのはアプリケーション層だけであると予想されるため、以下のように実現する。
クライアント端末Cからのユーザ認証リクエスト400(HTTPリクエスト)上において、ユーザIDがPOSTされるURLとクエリー情報を、事前に業務アプリケーションごとに定義させておき、サーブレットクラスライブラリ・レベルでユーザ認証リクエスト400(HTTPリクエスト)を監視することでユーザIDを取得し、当該ユーザIDとセッション識別情報と対応付けて記録する。
すなわち、ユーザ認証リクエスト400は、業務アプリケーションの識別情報(図4中、「gyoum1」)と、変数(図4中、「uid」)からなるHTTP形式のクエリー情報である。変数としては、たとえば、ユーザID(図4中、「user01」)およびパスワード(図4中「password」)が入力される。認証をおこなう以上、何らかの形でHTTPリクエスト上にユーザIDを載せることは高い確率で期待できるから、この手法で既存の業務アプリケーションのかなりの部分をカバーでき、プラットフォーム標準の認証から、独自の認証まで幅広く対応することができる。
また、図3において、サーブレット302は、Webサーバ101におけるWebサービスをクライアント端末Cに提供するプログラムである。また、J2EEクラスライブラリ303は、サーブレット302関連のクラスライブラリであり、クライアント端末Cから受け取ったユーザ認証リクエスト400を監視して、所定のパターンの場合は、ユーザIDを取り出して、当該ユーザIDとセッション識別情報と関連付ける。
具体的には、J2EEクラスライブラリ303は、ユーザID定義ファイル306を有している。ユーザID定義ファイル306は、たとえば、デプロイメントデスクリプタweb.xmlで記述され、ユーザ認証リクエスト400(HTTPリクエスト)から、ユーザIDを取り出す方法を予め定義しておくファイルである。
図3においては、たとえば、URLとして「gyoum1」、変数として「uid」が定義されている。したがって、リクエストに「gyoum1」とその変数として「uid」が記述されていると、J2EEクラスライブラリ303は、クライアント端末Cからのユーザ認証リクエスト400であると解釈する。そして、共有ストレージ308にユーザID(図3中「user−id」)とセッション識別情報(図3中「session」)とを関連付ける。この関連付けられたユーザIDおよびセッション識別情報は、サーブレットログ307としても記録される。
また、共有ストレージ308は、Webサーバ101上のセッション識別情報に対応するユーザIDと、EJBサーバ300から通知されたEJBオブジェクトの識別情報(以下、「EJBオブジェクト識別情報」)に対応するセッション識別情報を保持する。情報が複数のサーバにまたがることから、ストレージでの共有する形としているが、共有ストレージ308を用いずに、通信により実現することとしてもよい。
また、サーブレットコンテナ304は、共有ストレージ308において、EJBサーバ300のEJBコンテナ313から通知されたEJBオブジェクトのEJBオブジェクト識別情報(図3中、「server obj」)とWebサーバ101上のJ2EEクラスライブラリ303で生成されたセッション識別情報(図3中「session」)とを関連付ける。また、サーブレットコンテナ304は、ユーザ認証リクエスト400があった場合、ユーザIDに基づいてユーザ認証をおこなう。そして、認証された場合、当該ユーザIDおよびパスワードからなる認証情報を、EJBサーバ300のEJBコンテナ313に送信する。
また、アドオンセキュリティ管理機構305は、Webサーバ101用のアドオンミドルウェアであり、ユーザID定義ファイル306・共有ストレージ308とJ2EEクラスライブラリ303、サーブレットコンテナ304との仲介をおこなう。また、Webサーバ101におけるWebアクセスログ309およびサーブレットログ307は、図1に示した管理サーバ105に収集される。
また、EJBサーバ300は、EJB311と、J2EEクラスライブラリ312と、EJBコンテナ313と、アドオンセキュリティ管理機構314と、JDBC(Java(登録商標) Database Connectivity)フィルタドライバ315と、JDBCドライバ316と、PDP(Policy Decision Point)317と、を備えている。
EJB311は、EJBサーバ300が提供する業務アプリケーションである。EJB311は、DBサーバ103にアクセスするためのシステムIDを有しており、当該システムIDをDBアクセス要求に含まれているSQLコマンドとともにJDBCフィルタドライバ315に出力する。また、J2EEクラスライブラリ312は、EJB311関連のクラスライブラリである。
また、EJBコンテナ313は、クライアント端末CからのSQLコマンド(DBアクセス要求)に対応するメソッドとなるEJBオブジェクトの識別情報を、Webサーバ101のEJBコンテナ313に通知する。また、Webサーバ101のサーブレット302からのメソッド呼び出しの延長でおこなわれるJDBC呼び出し(セッション識別情報)とEJBオブジェクト識別情報とを関連付けて、アドオンセキュリティ管理機構314に通知する。
また、アドオンセキュリティ管理機構314は、EJBサーバ300(業務アプリケーションサーバ104)用のアドオンミドルウェアである。アドオンセキュリティ管理機構314は、JDBCドライバ316の実行単位に対応付けられるユーザIDを、EJBコンテナ313からの通知情報と共有ストレージ308内の情報とを手掛かりとして取り出す。
また、PDP317は、ポリシーを評価して許可・不許可の決定をおこなうエンティティであり、アクセスポリシーリポジトリを参照して、JDBCドライバ316へのDBアクセス要求の妥当性を判定する。アクセスポリシーリポジトリ318は、ユーザ/ロールごとのアクセス権限、ユーザ/ロールごとの利用時間帯の限定等を定義した情報である。また、PAP(Policy Administration Point)319は、アクセスポリシーリポジトリを作成・編集するエンティティである。
また、JDBCフィルタドライバ315は、EJB311から要求されたDBアクセス要求に対して、アドオンセキュリティ管理を利用して、その妥当性の判断をおこなわせ、その判断結果に基づいてアクセス制御を実行する。たとえば、DBアクセス要求が当該ユーザのアクセスできないテーブルへのアクセス要求であった場合、例外SQLExceptionをスローする。また、DBアクセス要求が当該ユーザのアクセスできない時間帯でのアクセス要求であった場合、例外SQLExceptionをスローする。さらに、DBアクセス要求が当該ユーザのアクセスできないカラムを含むアクセス要求であった場合、アクセス権限のないカラムを無意味なデータで置き換えて返す。
また、DBアクセスログ320は、DBアクセス要求とユーザIDとを関連付けているログである。また、アクセス要求の判断結果も記録されている。DBアクセスログ320は、図1に示した管理サーバ105に収集される。
図3に示した構成により情報漏洩対策を目的としたDB130のアクセス制御を実現するためには、EJB311(業務アプリケーション)は、JDBCドライバ316からDBサーバ103へのコネクション要求時に、その起点の操作をおこなったユーザIDを用いる。具体的には、JDBCフィルタドライバ315で以下を実現する。
ユーザIDを予め定義されたDBアクセス用のシステムIDに置き換えてコネクションを確立し、コネクションとユーザIDの関連付けを維持する。また、JDBCフィルタドライバ315は、上述したようにコネクションを使ったDBアクセス時に、先に取得したユーザIDとアクセス制御ポリシーに基づくアクセス制御を実行する。
この図3に示した構成によれば、EJBサーバ300側のJDBCフィルタドライバ315およびJDBCドライバ316に閉じて、EJBコンテナ313に手を入れずに対応することができるため、全体にシンプルな構造を実現することができる。また、ユーザIDとDBアクセス要求のマッピングが容易なため、オーバヘッドを最小限にすることができる。さらに、将来、DBサーバ103でユーザIDごとの細かなアクセス制御が可能になった場合でも、業務アプリケーションは修正不要であるため、汎用性が高い。
(Webサーバ101の監査証跡記録処理)
つぎに、図3に示したWebサーバ101における監査証跡(ログ)記録処理について説明する。図5は、図3に示したWebサーバ101における監査証跡(ログ)記録処理を示すフローチャートである。
Webサーバ101は、まず、ユーザID定義ファイル306を読み込む(ステップS501)。そして、リクエストの受信を待ち受け(ステップS502:No)、クライアント端末Cからリクエストが受信された場合(ステップS502:Yes)、読み込んだユーザID定義ファイル306により、受信されたリクエストがユーザ認証リクエスト400であるか否かを判断する(ステップS503)。
ユーザ認証リクエスト400でない場合(ステップS503:No)、ステップS506に移行する。一方、ユーザ認証リクエスト400である場合(ステップS503:Yes)、そのセッションを示すセッション識別情報を設定する(ステップS504)。そして、ユーザ認証リクエスト400に含まれているユーザIDとセッション識別情報との組み合わせを共有ストレージ308に記録する(ステップS505)。
この後、ステップS506において、サーブレット302の中でEJBサービス要求が呼び出されたか否かを判断する(ステップS506)。EJBサービス要求が呼び出されていない場合(ステップS506:No)、ステップS502に戻る。
一方、EJBサービス要求が呼び出された場合(ステップS506:Yes)、EJBサーバ300のEJBコンテナ313にEJBサービスをリクエストする(ステップS507)。この後、EJBサーバ300から応答があるか否かを判断する(ステップS508)。所定時間応答がない場合(ステップS508:No)、ステップS502に戻る。
一方、応答があった場合(ステップS508:Yes)、当該応答がEJBオブジェクト検索リクエストであるか否かを判断する(ステップS509)。EJBオブジェクト検索リクエストでない場合(ステップS509:No)、ステップS502に戻る。
一方、EJBオブジェクト検索リクエストである場合(ステップS509:Yes)、当該EJBオブジェクト検索リクエストに含まれているEJBオブジェクト識別情報とステップS504で設定されたセッション識別情報との組み合わせを共有ストレージ308に記録する(ステップS510)。そして、ステップS502に戻る。このWebサーバ101の監査証跡記録処理によれば、セッション識別情報により、ユーザIDとEJBオブジェクト識別情報とを関連付けることができ、EJBオブジェクト識別情報からユーザIDを追跡することができる。
(EJBサーバ300の監査証跡記録処理手順)
つぎに、図3に示したEJBサーバ300における監査証跡(ログ)記録処理について説明する。図6は、図3に示したEJBサーバ300における監査証跡(ログ)記録処理を示すフローチャートである。
まず、EJB311フィルタドライバによりEJBオブジェクトのリクエストを受け付けたか否か判断する(ステップS601)。つぎに、アドオンセキュリティ管理機構305により処理が実行される(ステップS602〜S606)。具体的には、受け付けられたEJBオブジェクトのリクエストから呼び出し元EJBオブジェクトを検出する(ステップS602)。
そして、検出されたEJBオブジェクトのEJBオブジェクト識別情報に関連付けられているユーザIDを共有ストレージ308から抽出する(ステップS603)。そして、抽出されたユーザIDと、Webサーバ101からEJB311を介して送られてきたDBアクセス要求(SQLコマンド)とを内部のPDP317に渡す(ステップS604)。
そして、上述したように、PDP317において、アクセスポリシー判定処理を実行する(ステップS605)。このアクセスポリシー判定処理によりアクセス許可された場合(ステップS606:Yes)、JDBCフィルタドライバ315により、JDBCドライバ316を呼び出して、DBアクセス要求(SQLコマンド)によりDB130にアクセスする(ステップS607)。具体的には、システムIDを発行して、SQLコマンドとともにDBサーバ103に送信する。
また、JDBCフィルタドライバ315により、ユーザIDとともにDBサーバ103へのアクセス情報(アクセス日時、システムID、アクセス許可フラグ、アクセス対象データ名、アクセス対象データ量、アクセス時間など)を、DBアクセスログとして記録し(ステップS608)、アクセス結果(DBアクセスログ)を図1に示した管理サーバ105に返却する(ステップS609)。
一方、ステップS606において、アクセス不許可である場合(ステップS606:No)、アクセス不許可であることを示すDBアクセスログ(アクセス日時、システムID、アクセス不許可フラグなど)を記録し(ステップS610)、クライアント端末Cに対して例外スローをおこなう(ステップS611)。
なお、DBサーバ103では、ステップS607においてアクセス(システムIDおよびSQLコマンド)を受けた場合、システムIDを認証して、システムIDの提供元にアクセス権があるか否かを判断する。そして、アクセス権があると判断された場合、SQLコマンドにしたがってDB130を検索する。そして、その検索結果を、EJBサーバ300およびWebサーバ101を介して、ユーザIDが認証されたクライアント端末Cに提供する。また、DBサーバ103では、このアクセス権の操作に関するログ(アクセス権操作ログ)を記録する。
(監査証跡追跡処理手順)
つぎに、この発明の実施の形態にかかる管理サーバ105における監査証跡(ログ)追跡処理手順について説明する。図7は、この発明の実施の形態にかかる管理サーバ105における監査証跡(ログ)追跡処理手順を示すフローチャートである。図7において、管理者端末110から検索条件の入力を待ち受ける(ステップS701:No)。検索条件としては、たとえば、アクセス日時、システムID、アクセス許可フラグ、アクセス対象データ名、アクセス対象データ量、アクセス時間、ユーザIDなどが挙げられる。
そして、検索条件が入力された場合(ステップS701:Yes)、入力された検索条件に合致するDBアクセスログレコードを、DBアクセスログ320の中から検索する(ステップS702)。そして、検索結果であるDBアクセスログレコードの集合の中から、管理者端末110の操作入力による、任意のDBアクセスログレコード(以下、「LDS」と称す。)の選択を待ち受ける(ステップS703)。LDSが選択されない場合(ステップS703:No)、ステップS716に移行する。
一方、LDSが選択された場合(ステップS703:Yes)、LDSの情報価値を算出する(ステップS704)。たとえば、LDSのカラム(アクセス日時、システムID、アクセス許可フラグ、アクセス対象データ名、アクセス対象データ量、アクセス時間、ユーザIDなど)に重み付けされた重要度にそのカラムの行数を乗算することによって得られる値である。そして、算出結果をディスプレイ208の表示画面に表示する(ステップS705)。
管理者は、ディスプレイの算出結果(情報価値)を参照して、追跡継続の入力を待ち受ける(ステップS706)。そして、たとえば、表示画面上の『追跡停止』ボタンを押下した場合、追跡継続の入力がなかったこととなり(ステップS706:No)、ステップS703に戻って、あらたなLDSの選択を待ち受ける。一方、『追跡継続』ボタンを押下した場合、追跡継続の入力があったこととなり(ステップS706:Yes)、ステップS707に移行する。
ステップS707では、LDSの記録時(タイムスタンプ)TLDSにおいて、DBサーバ103のアクセス権管理操作ログを参照して、追跡対象データにアクセス可能なアプリケーション、サービス、クライアント端末Cなどのエンティティを特定する。エンティティが特定されなかった場合(ステップS707:No)、ステップS703に戻って、あらたなLDSの選択を待ち受ける。
一方、エンティティが特定された場合(ステップS707:Yes)、管理者端末110の操作入力による、特定されたエンティティのログの指定を待ち受ける(ステップS708:No)。ログが指定された場合(ステップS708:Yes)、指定ログの中から、LDSに相当するログレコードを検索する(ステップS709)。
たとえば、指定ログの中にLDSに記録されている日時以降の日時が記録されているログレコードがある場合、当該ログレコードをLDS相当のログレコードとして指定ログから抽出する。同様に、指定ログの中にLDSに記録されている追跡対象データ量と同一データ量のログレコードがある場合、当該ログレコードをLDS相当のログレコードとして指定ログから抽出する。
そして、LDS相当のログレコードがない場合(ステップS710:No)、ステップS707に戻る。一方、LDS相当のログレコードがあった場合(ステップS710:Yes)、追跡候補のクライアント端末Cが特定されたか否かを判断する(ステップS711)。具体的には、たとえば、検索されたログレコードの中に、ユーザIDが含まれている場合には、当該ユーザIDのクライアント端末Cを、追跡候補のクライアント端末Cとして特定する。
また、検索されたログレコードに直接ユーザIDが記録されていない場合であっても、図3に示したEJBサーバ300のように、EJBオブジェクト識別情報が記録されているときには、共有ストレージ308により関連付けられているユーザIDを検出することができる。この場合、共有ストレージ308に関連付けられているユーザIDのクライアント端末Cを、追跡候補のクライアント端末Cとして特定する。
つぎに、特定された場合(ステップS711:Yes)、特定されたクライアント端末Cの操作ログを取得する(ステップS712)。そして、取得された操作ログの中から、追跡対象データの取得後におけるログレコードを抽出する(ステップS713)。この後、抽出されたログレコードに基づいて、特定されたクライアント端末Cのユーザに関する不審度算出処理を実行する(ステップS714)。不審度算出処理の具体的処理については後述する。なお、特定されなかった場合(ステップS711:No)、ステップS707に戻る。
そして、特定されたクライアント端末Cユーザに関する不審度に基づいて追跡結果を表示する(ステップS715)。図8は、追跡結果の表示画面の一例を示す説明図である。図8によれば、不審度がしきい値以上のログレコード800が強調表示(網掛け)されている。この後、他のDBアクセスログレコードを用いて追跡をおこなう場合には(ステップS716:No)、ステップS703に戻る。
一方、追跡をおこなわず、追跡を終了する場合には(ステップS716:Yes)、一連の処理を終了する。この監査証跡追跡処理手順によれば、追跡対象データからクライアント端末Cまでの追跡経路を探索することができる。
つぎに、ステップS714で示した不審度算出処理について具体的に説明する。図9は、不審度の操作に関する配点表を示す図表であり、図10は、不審度の連続操作に関する配点表を示す図表であり、図11は、不審度の加重係数表を示す図表である。
図9において、左端の記号a〜gは、操作内容を特定する識別記号であり、右端の数字は、その点数を示している。たとえば、識別記号cの操作内容は『印刷』であり、その点数は『8』である。したがって、ログレコードに記録されている操作内容が『印刷』である場合、点数『8』を読み出す。
また、図10の配点表は、連続操作の場合に加点される配点表である。たとえば、識別記号bから識別記号fへの連続操作『b→f』は、『ブラウザ等でデータファイル保存(保存先がリムーバブルディスク以外)』して、その後に『添付ファイル付きメール送信』をしたことを示しているが、その連続操作に加点される点数は、図10の右端により『3』である。
また、図11に示した加重係数表は、操作ログレコードの記録日時(タイムスタンプ)が、図11に示した時間に該当する場合には、その係数が読み出される。たとえば、タイムスタンプが『残業時間内』である場合には、係数『1.2』が読み出される。
つぎに、ステップS714で示した不審度算出処理手順について説明する。図12は、ステップS714で示した不審度算出処理手順を示すフローチャートである。ここでは、ログレコードに記録されている操作内容が、『c→d→e→a→g→b→f→c』(図9に示した識別記号を参照。)である場合について説明する。
まず、ログレコードに記録されている操作内容に対応する点数を、図9に示した配点表から抽出して加算する(ステップS1201)。たとえば、上記操作内容『c→d→e→a→g→b→f→c』では、『8,4,3,10,5,5,5,8』であるため、加算すると『48』点である。
つぎに、ログレコードに記録されている連続操作内容に対応する点数を、図10に示した配点表から抽出して加算する(ステップS1202)。たとえば、上記操作内容『c→d→e→a→g→b→f→c』には、図10に示した連続操作『d→e』および『b→f』が含まれているため、連続操作『d→e』の『3』点と、連続操作『b→f』の『3』点とを、ステップS1201で算出された『48』点に加算して、『54』点となる。
そして、ログレコードに記録されているタイムスタンプに対応する加重係数を、図11に示した係数表から抽出し、ステップS1202で算出された点数と乗算する(ステップS1203)。たとえば、タイムスタンプに示されている日時が『残業時間内』である場合、係数『1.2』を、ステップS1202で算出された『54』点に乗算して、『64.8』点となる。
このように、情報システム100内のあらゆる監査証跡(ログ)に基づいて、DB130にアクセスしたクライアント端末Cを特定することにより、そのクライアント端末Cのユーザを、情報漏洩をした不審者候補として絞り込むことができる。また、クライアント端末Cの操作ログを分析して不審度を得ることにより、不審者候補の中から不審者を特定することができる。
つぎに、この発明の実施の形態にかかる管理サーバ105における他の監査証跡(ログ)追跡処理手順について説明する。図13は、この発明の実施の形態にかかる管理サーバ105における他の監査証跡(ログ)追跡処理手順を示すフローチャートである。図13において、管理者端末110から検索条件の入力を待ち受ける(ステップS1301:No)。検索条件としては、たとえば、アクセス日時、システムID、アクセス許可フラグ、アクセス対象データ名、アクセス対象データ量、アクセス時間、ユーザIDなどが挙げられる。
そして、検索条件が入力された場合(ステップS1301:Yes)、入力された検索条件に合致するDBアクセスログレコードを、DBアクセスログ320の中から検索する(ステップS1302)。そして、検索結果であるn個のDBアクセスログレコードLDの中から、任意のDBアクセスログレコードLD(i)(i=1,2,・・・,n)を抽出する(ステップS1303)。
この後、未処理のクライアント端末Cの操作ログを設定(読出し)して(ステップS1304)、ログレコードLD(i)のタイムスタンプに示されている日時と同記録時間帯のログレコードLCを、設定された操作ログから抽出する(ステップS1305)。この後、抽出されたログレコードLCについて、図12に示した不審度算出処理を実行する(ステップS1306)。算出された不審度がしきい値以上でない場合(ステップS1307:No)、ステップS1309に移行する。
一方、算出された不審度がしきい値以上である場合(ステップS1307:Yes)、ログレコードLCをログレコードLC(j)(i=1,2,・・・,m)として記録する(ステップS1308)。つぎに、iをインクリメントして(ステップS1309)、i>nでない場合(ステップS1310:No)、ステップS1305に戻る。一方、i>nである場合(ステップS1310:Yes)、未処理のクライアント端末Cがあるか否かを判断する(ステップS1311)。未処理のクライアント端末Cがある場合(ステップS1311:Yes)、ステップS1304に戻る。
一方、未処理のクライアント端末Cがない場合(ステップS1311:No)、n個のログレコードLD(i)とm個のログレコードLC(j)とのユーザIDの同一性を照合する(ステップS1312)。具体的には、ログレコードLD(i)に記録されているユーザIDと、ログレコードLC(j)に記録されているユーザIDとの一致判定をおこなう。
ユーザIDが一致するログレコードLD(i),LC(j)の組み合わせがある場合(ステップS1313:Yes)、ログレコードLD(i)からログレコードLC(j)に到達することとなり、図8に示したように、照合されたユーザIDを含むログレコードLD(i)を追跡結果として表示する(ステップS1314)。なお、ステップS1312において照合されなかった場合(ステップS1313:No)、一連の処理を終了する。
この監査証跡(ログ)追跡処理手順によれば、追跡対象データとクライアント端末Cにおける操作とを付き合わせることにより、追跡対象データを情報漏洩したクライアント端末Cを特定することができる。
また、ステップS1313において、ユーザIDが一致するログレコードLD(i),LC(j)の組み合わせがある場合(ステップS1313:Yes)、ログレコードLD(i)をLDSとして、図7に示した監査証跡(ログ)追跡処理をステップS704から実行することとしてもよい。この場合、ステップS713で抽出されるログレコードが、ログレコードLD(i)に記録されているユーザIDと一致するログレコードLC(j)である場合、ログレコードLD(i)からログレコードLC(j)に到達することを確認することができる。
(監査証跡追跡装置の機能的構成の一例)
つぎに、この発明の実施の形態にかかる監査証跡追跡装置の機能的構成の一例について説明する。図14は、この発明の実施の形態にかかる監査証跡追跡装置の機能的構成の一例を示すブロック図である。
図14において、監査証跡追跡装置1400は、収集部1401と、入力部1402と、検索処理部1403と、アクセス元特定部1404と、クライアント端末特定部1405と、算出部1406と、出力部1407と、から構成されており、図1に示した管理サーバ105に相当する。
収集部1401は、情報システム100内におけるWebサーバ101が記録するWebアクセスログ、メールサーバ102が記録する送受信ログ、DBサーバ103が記録するアクセス権操作ログ、業務アプリケーションサーバ104が記録するログ(たとえば、図3に示したDBアクセスログ320)、クライアント端末Cの操作ログや、その他共有ストレージ308を収集する。
また、入力部1402は、データベースに記憶されている追跡対象データに関する検索条件の入力を受け付ける。具体的には、たとえば、図7のステップS701で示した入力処理をおこなう。
また、検索処理部1403は、第1の検索部1411と第2の検索部1412と第3の検索部1413とを備える。第1の検索部1411は、データベースに対してアクセスがあった場合に記録されるアクセスログから、入力部1402によって入力された検索条件に合致する第1のログレコードを検索する。具体的には、たとえば、図7のステップS702で示したDBアクセスログレコードの検索処理をおこなう。第2の検索部1412および第3の検索部1413については後述する。
また、アクセス元特定部1404は、第1の検索部1411によって検索された第1のログレコードに基づいて、当該第1のログレコードの記録日時に追跡対象データにアクセス可能なアクセス元を特定する。具体的には、たとえば、ステップS702で示したDBアクセスログレコードのタイムスタンプに示されている記録日時TLDSにおいて、追跡対象データにアクセス可能なアクセス元、たとえば、クライアント端末CおよびDBサーバ103以外のWebサーバ101、メールサーバ102、業務アプリケーションサーバ104を特定する。より具体的には、図7のステップS707で示した特定処理をおこなう。
また、第2の検索部1412は、アクセス元特定部1404によって特定されたアクセス元のログの中から、第1のログレコードに相当する第2のログレコードを検索する。具体的には、たとえば、図7のステップS709で示した、LDSに相当するログレコード(第2のログレコード)の検索処理をおこなう。
また、クライアント端末特定部1405は、第2の検索部1412によって検索された第2のログレコードに基づいて、追跡対象データにアクセスしたクライアント端末Cを特定する。具体的には、たとえば、図7のステップS711で示した特定処理をおこなう。
また、第3の検索部1413は、クライアント端末特定部1405によって特定されたクライアント端末Cの操作ログの中から、当該クライアント端末Cが追跡対象データを取得した後の第3のログレコードを検索する。具体的には、たとえば、図7のステップS713のログレコードの抽出処理をおこなう。
また、算出部1406は、第3の検索部1413によって検索された第3のログレコードに基づいて、クライアント端末Cを操作したユーザの不審度を算出する。具体的には、たとえば、図7のステップS715(図12のステップS1201〜ステップS1203)で示した不審度算出処理をおこなう。
また、出力部1407は、算出部1406によって算出された算出結果に基づいて、追跡対象データの追跡結果を出力する。具体的には、たとえば、図7のステップS715で示した追跡結果の表示処理をおこなって、図8に示した追跡結果を示す表示画面をディスプレイ208に表示する。
なお、上述した収集部1401、入力部1402、検索処理部1403、アクセス元特定部1404、クライアント端末特定部1405、算出部1406、および出力部1407は、具体的には、たとえば、図2に示したROM202、RAM203、HD205などの記録媒体に記録されたプログラムを、CPU201が実行することによって、またはI/F209によって、その機能を実現する。
(監査証跡追跡装置の機能的構成の他の例)
つぎに、この発明の実施の形態にかかる監査証跡追跡装置の機能的構成の他の例について説明する。図15は、この発明の実施の形態にかかる監査証跡追跡装置の機能的構成の他の例を示すブロック図である。なお、図14に示した構成と同一構成には同一符号を付し、その説明を省略する。
図15において、監査証跡追跡装置1500は、収集部1401と、入力部1402と、検索処理部1501と、照合部1502と、算出部1503と、判定部1504と、出力部1505と、から構成されており、図1に示した管理サーバ105に相当する。
検索処理部1501は、第1の検索部1511と、第2の検索部1512とを備えている。第1の検索部1511は、データベースに対してアクセスがあった場合に記録されるアクセスログから、入力部1402によって入力された検索条件に合致する第1のログレコードを検索する。具体的には、たとえば、図13のステップS1302で示したDBアクセスログレコード(第1のログレコード)の検索処理をおこなう。
また、第2の検索部1512は、クライアント端末Cの操作ログの中から、第1の検索部1511によって検索された第1のログレコードの記録日時の時間帯に含まれる記録日時の第2のログレコードを検索する。具体的には、たとえば、図13のステップS1305で示したログレコードLC(第2のログレコード)の抽出処理をおこなう。
また、照合部1502は、第1のログレコードと第2の検索部1512によって検索された第2のログレコードとに記録されているユーザ識別情報との同一性を照合する。具体的には、たとえば、図13のステップS1312で示したユーザIDの同一性の照合処理をおこなう。
また、出力部1505は、照合部1502によって照合された照合結果に基づいて、追跡対象データの追跡結果を出力する。具体的には、たとえば、図13のステップS1313およびステップS1314で示した追跡結果の表示処理をおこなって、図8に示した追跡結果を示す表示画面をディスプレイ208に表示する。
また、算出部1503は、第2の検索部1512によって検索された第2のログレコードに基づいて、クライアント端末Cを操作したユーザの不審度を算出する。具体的には、たとえば、第2のログレコードであるログレコードLCについて、図13のステップS1306(図12のステップS1201〜ステップS1203)で示した不審度算出処理をおこなう。
また、判定部1504は、算出部1503によって算出された不審度が所定のしきい値以上であるか否かを判定する。具体的には、たとえば、図13のステップS1307で示した判定処理をおこなう。この場合、照合部1502は、判定結果に基づいて、すなわち、不審度が所定のしきい値以上であるログレコードLCを第2のログレコードとして、第1のログレコードのユーザIDとの同一性を照合する。
なお、上述した収集部1401、入力部1402、検索処理部1501、照合部1502、算出部1503、判定部1504、および出力部1505は、具体的には、たとえば、図2に示したROM202、RAM203、HD205などの記録媒体に記録されたプログラムを、CPU201が実行することによって、またはI/F209によって、その機能を実現する。
このように、上述した実施の形態によれば、たとえば、悪意のある情報システム100内のユーザが、情報システム100(たとえば、顧客情報検索システム)を利用して、当該ユーザのクライアント端末CからDB130にアクセスしてDB130内の顧客情報をダウンロードし、ダウンロードした顧客情報を電子メールで自宅のパーソナル・コンピュータに送信する。この後、当該顧客情報の漏洩が発覚した場合、管理者は、管理者端末110から管理サーバ105にアクセスし、情報漏洩をおこなったユーザとその情報漏洩操作履歴を追跡することができる。
つぎに、この発明の実施の形態にかかる管理サーバ105におけるさらに他の監査証跡(ログ)追跡処理手順について説明する。ここでは、上述した不審度算出処理(ステップS714またはステップS1306)において、ユーザによって操作されたファイルの情報機密度をさらに考慮して不審度を算出する。
情報機密度は、クライアント端末Cの操作対象となるファイルおよびDB130内に設けられたDBテーブルごとに定義されている。具体的には、たとえば、情報機密度は、各ファイルまたはDBテーブルの内容の重要度に応じて設定された機密度点数(整数値)によって示され、機密度管理ファイルにファイル名などと関連付けて保存される。なお、ファイルごとに設定された機密度点数を、ファイル名と関連付けて直接DB130に保存する構成としてもよい。
機密度管理ファイルは、データ内容の重要度の変更を追跡するために用いる、いわばデータ内容の監査証跡である。機密度管理ファイルは、ファイルに対して操作をおこなったクライアント端末CまたはDB130を識別するための端末識別子と、クライアント端末CのファイルのフルパスまたはDB130内のDBテーブル名と、ファイルごとに定義された情報機密度を示す機密度点数と、機密度点数が定義された時刻を示す機密度開始時刻と、定義された機密度点数が変更された時刻を示す機密度終了時刻と、を含んで構成されている。
また、機密度管理ファイルは、たとえば、データをカンマで区切って並べたCSV(Comma Separated Values)形式で記述されており、端末識別子、ファイルのフルパス、機密度点数、機密度開始時刻および機密度終了時刻を示すデータが順に並べられた状態で保存されている。
さらに、機密度管理ファイルに保存される内容は、ユーザによるデータ内容の変更にともなって時間的に変化していく。このため、機密度管理ファイルは、一定時間(たとえば1日)ごとに内容を更新するべきかどうか調べる必要がある。ここで、機密度管理ファイルの内容を更新する際に、管理サーバ105が実行する監査証跡(ログ)更新処理について説明する。
図16−1および図16−2は、この発明にかかる管理サーバ105における監査証跡(ログ)更新処理手順を示すフローチャートである。ここでは、DB130などに保存されているログが時間的に古い順に保存されている性質を利用して、古いデータから順に保存されているすべてのデータについて監査証跡の追跡をおこなう。図16−1において、管理サーバ105は、DBサーバ103に記録されている監査証跡となるDBログを1行読み込む(ステップS1601)。
監査証跡となるDBログには、DBログが格納されているDBテーブルのテーブル名、DBサーバ103にアクセスしたアクセス日時、クライアント端末Cの識別情報およびWebサーバ101のIPアドレスを示す情報が含まれている。なお、DBテーブルのテーブル名には、DBログに含まれている情報の重要度を示す情報機密度が付されており、この情報機密度は機密度点数によってあらわされている。
つぎに、ステップS1601においてDBログが読み込めたか否かを判断する(ステップS1602)。そして、ログが読み込めた場合には(ステップS1602:Yes)、読み込んだDBログの中にクライアント端末Cの識別情報があるか否かを判断する(ステップS1603)。
ここで、クライアント端末Cの識別情報があった場合(ステップS1603:Yes)、読み込んだDBログからWebのIPアドレスを取得する(ステップS1604)。なお、クライアント端末Cの識別情報がなかった場合には(ステップS1603:No)、ステップS1601に戻る。
つぎに、ステップS1604において取得したWebのIPアドレスに対応したWebファイルを開く(ステップS1605)。そして、開いたWebファイルのWebログを1行読み込む(ステップS1606)。監査証跡となるWebログには、Webサーバ101にアクセスしたアクセス日時、クライアント端末Cの識別情報を示す情報が含まれている。
つぎに、ステップS1601において読み込んだDBログに含まれるアクセス日時と、ステップS1606において読み込んだWebログに含まれるアクセス日時とがほぼ一致しているか否かを判断する(ステップS1607)。ここで、一致していない場合は(ステップS1607:No)、DBログに含まれるアクセス日時がWebログに含まれるアクセス日時以降の日時か否かを判断する(ステップS1608)。
ここで、DBログに含まれるアクセス日時がWebログに含まれるアクセス日時以降の日時であった場合は(ステップS1608:Yes)、ステップS1606に戻る。また、DBログに含まれるアクセス日時がWebログに含まれるアクセス日時以前の日時であった場合は(ステップS1608:No)、ステップS1601に戻る。
ステップS1607において、DBログに含まれるアクセス日時とWebログに含まれるアクセス日時とがほぼ一致した場合は(ステップS1607:Yes)、DBログに含まれるクライアント端末Cの識別情報とWebログに含まれるクライアント端末Cの識別情報とが一致しているか否かを判断する(ステップS1609)。
ここで、クライアント端末Cの識別情報が一致している場合は(ステップS1609:Yes)、クライアント端末Cの識別情報からユーザIDを特定し、クライアント端末CのIPアドレスを取得する(ステップS1610)。具体的には、たとえば、図3に示した共有ストレージ308によりクライアント端末Cの識別情報に関連付けられてユーザIDが記録されている場合には、ステップS1609において一致したクライアント端末Cの識別情報に関連付けられたユーザIDを検出することによって、ユーザIDを特定し、ユーザIDに対応したIPアドレスを取得することができる。
ステップS1610においてクライアント端末CのIPアドレスを取得した後は、図16−2に示すフローチャートのステップS1611に移行する。なお、クライアント端末Cの識別情報が一致していない場合は(ステップS1609:No)、ステップS1606に戻る。
つぎに、ステップS1610において取得したIPアドレスに対応したクライアント端末Cの操作ログファイルを開く(ステップS1611)。そして、開いた操作ログファイルの操作ログを1行読み込む(ステップS1612)。監査証跡となる操作ログには、クライアント端末CがWebサーバ101などにアクセスしたアクセス日時、クライアント端末CのIPアドレスおよびユーザによっておこなわれたファイル操作を示す情報が含まれている。
つぎに、ステップS1606において読み込んだWebログに含まれるアクセス日時と、ステップS1612において読み込んだ操作ログに含まれるアクセス日時とがほぼ一致しているか否かを判断する(ステップS1613)。ここで、一致していない場合は(ステップS1613:No)、Webログに含まれるアクセス日時が操作ログに含まれるアクセス日時以降の日時か否かを判断する(ステップS1614)。
ここで、Webログに含まれるアクセス日時が操作ログに含まれるアクセス日時以降の日時であった場合は(ステップS1614:Yes)、ステップS1612に戻る。また、Webログに含まれるアクセス日時が操作ログに含まれるアクセス日時以前の日時であった場合は(ステップS1614:No)、図16−1に示すステップS1601に移行する。
ステップS1613において、Webログに含まれるアクセス日時と操作ログに含まれるアクセス日時とがほぼ一致した場合は(ステップS1613:Yes)、WebのIPアドレスとクライアント端末CのIPアドレスとが一致しているか否かを判断する(ステップS1615)。
ここで、IPアドレスが一致している場合は(ステップS1615:Yes)、ユーザによって操作された操作内容がファイルの作成か否かを判断する(ステップS1616)。具体的には、たとえば、ユーザがクライアント端末CにおいてWebブラウザを用いてファイルを作成したか否か判断する。
そして、操作内容が作成であった場合は(ステップS1616:Yes)、作成されたファイルに関する情報を機密度管理ファイルに保存する(ステップS1617)。その後、図16−1に示すステップS1601に移行して、すべてのDBログの読み込みが終了するまで図16−1および図16−2に示すフローチャートによる一連の処理を繰り返す。なお、ステップS1615において、IPアドレスが一致していない場合は(ステップS1615:No)、ステップS1612に戻る。
ここで、作成されたファイルに関する情報とは、ファイルの作成日時、ファイル名、クライアント端末Cの識別情報および機密度点数などが含まれる。また、機密度管理ファイルに保存される機密度点数は、ステップS1601において読み込まれたDBログに含まれるDBテーブルのテーブル名に付されている機密度点数と同様のものである。
そして、すべてのDBログの読み込みが終了し、ステップS1602においてDBログが読み込めないと判断された場合は(ステップS1602:No)、図16−1および図16−2に示すフローチャートによる一連の処理を終了する。なお、ステップS1616において操作内容が作成でなかった場合は(ステップS1616:No)、ステップS1612に戻る。
つぎに、クライアント端末Cの操作ログファイルを追跡することによって機密度管理ファイルの内容を更新する際の、管理サーバ105の監査証跡更新処理手順について説明する。図17は、この発明にかかる管理サーバ105における他の監査証跡(ログ)更新処理手順を示すフローチャートである。なお、ここで説明する監査証跡更新処理は、情報システム100内のすべてのクライアント端末Cの操作ログファイルに対して、一定時間(たとえば1日)ごとに実行されるようにしてもよい。
図17において、管理サーバ105は、クライアント端末Cの操作ログファイルを開く(ステップS1701)。そして、開いた操作ログファイルの操作ログを1行読み込む(ステップS1702)。操作ログには、上述したように、クライアント端末CがWebサーバ101などにアクセスしたアクセス日時、クライアント端末CのIPアドレスおよびユーザによっておこなわれたファイル操作を示す情報が含まれている。
つぎに、読み込んだ操作ログに基づいて、ユーザによって操作されたファイルの操作内容を判断する(ステップS1703)。ここで、ユーザによって操作される操作内容は、たとえば、ファイルの作成、ファイルの削除、ファイルの変名(リネーム)、ファイルの複写(コピー)、ファイル操作するためのプログラム(たとえばWebブラウザ)を起動、クライアント端末Cの電源のON/OFFなどを含む。
そして、ユーザによって操作されたファイルの操作内容に応じて、機密度管理ファイルの内容を更新する(ステップS1704)。ここで、図18−1〜図18−6を用いて、ファイルの操作内容に応じて変化する機密度管理ファイルの内容についての詳細な説明をする。
図18−1は、新規ファイルが作成された場合の一例を示す説明図である。図18−1に示すように、ユーザのクライアント端末Cにおいて、時刻「t1」にファイル名「F」の新規ファイルが作成されている。ここで、ユーザのクライアント端末Cを示す端末識別子は、「COM1」であり、ファイル名「F」のファイルの情報機密度を示す機密度点数は「s1」である。
このとき、機密度管理ファイルには、『COM1,F,s1,t1』のデータがあらたに保存される。なお、機密度点数「s1」は、時刻「t1」以降の任意の時刻「T1」の時点では継続して設定されているため、機密度点数「s1」の機密度終了時刻はここでは保存しない。
また、ユーザが新規ファイル「F」を作成した時点で、すでに同一ファイル名「F」のファイルが存在している場合は、機密度点数をあらたに作成した新規ファイル「F」の内容に基づいて設定されている機密度点数に更新して保存するようにしてもよい。
つぎに、図18−2は、同一ファイル名で異なる情報機密度のファイルが保存された場合の一例を示す説明図である。図18−2に示すように、時刻「t1」においてファイル名「F」の新規ファイルが作成された後、時刻「t2」において同一ファイル名「F」でファイルが上書き保存されている。
具体的には、同一のファイル名ではあるがファイルの情報機密度がそれぞれ異なるため、ファイル名「F」のファイルが上書き保存されたことによってファイルの内容が更新され、機密度点数が「s1」から「s2」に変わっている。また、機密度点数が「s1」から「s2」に変わったことにより、機密度点数「s1」の機密度終了時刻「t2」および機密度点数「s2」の機密度開始時刻「t2」が確定する。
このため、機密度管理ファイルには、機密度点数「s1」の機密度終了時刻および時刻「t2」において上書き保存されたファイルに関するデータがあらたに保存される。具体的に、機密度管理ファイルには、『COM1,F,s1,t1』および『COM1,F,s2,t2』が保存される。なお、機密度点数「s2」は、時刻「t2」以降の任意の時刻「T2」の時点では継続して設定されているため、機密度点数「s2」の機密度終了時刻はここでは書き込まない。
つぎに、図18−3は、ファイルが削除された場合の一例を示す説明図である。図18−3に示すように、時刻「t2」においてファイル名「F」のファイルが上書き保存された後、時刻「t3」においてファイルが削除されている。具体的には、ファイルが削除されることによって、時刻「t2」において設定された機密度点数「s2」の機密度終了時刻が時刻「t3」に確定する。
このため、時刻「t2」において上書き保存されたファイルの機密度終了時刻があらたに保存される。具体的には、機密度管理ファイルには、『COM1,F,s1,t1,t2』および『COM1,F,s2,t2,t3』が保存される。なお、時刻「t3」以降の任意の時刻「T3」の時点ではファイル「F」は存在しないため、機密度点数も存在しない。
つぎに、図18−4は、同一ファイル名であらたにファイルが作成された場合の一例を示す説明図である。図18−4に示すように、時刻「t3」においてファイルが削除された後、時刻「t4」においてファイル名「F」の新規ファイルが作成されている。具体的には、ファイル名「F」の新規ファイルが作成されたことにより、時刻「t4」において機密度点数「s4」および機密度点数「s4」の機密度開始時刻が確定する。
これにより、機密度管理ファイルには、時刻「t4」において作成されたファイルに関するデータがあらたに保存される。具体的に、機密度管理ファイルには、『COM1,F,s1,t1』,『COM1,F,s2,t2』および『COM1,F,s4,t4』が保存される。なお、機密度点数「s4」は、時刻「t4」以降の任意の時刻「T4」の時点では継続して設定されているため、機密度点数「s4」の機密度終了時刻はここでは書き込まない。
つぎに、図18−5は、ファイルが複写(コピー)された場合の一例を示す説明図である。図18−5に示すように、時刻「t1」においてファイル名「F」の新規ファイルが作成された後、時刻「t5」においてファイル名「F」のファイルを複写してファイル名「F2」のあらたな新規ファイルが作成されている。
ここで、ファイル名「F」のファイルを複写することによって作成されたファイル名「F2」の新規ファイルの内容は、ファイル名「F」のファイル内容と同一である。このため、ファイル名「F2」のファイルの機密度点数として、ファイル名「F」の機密度点数と同一の「s1」が確定するとともに、ファイル名「F2」のファイルの機密度点数「s1」の機密度開始時刻「t5」が確定する。
これにより、機密度管理ファイルには、時刻「t5」において作成されたファイル名「F2」のファイルに関するデータがあらたに保存される。具体的に、機密度管理ファイルには、『COM1,F,s1,t1』および『COM1,F2,s1,t5』が保存される。なお、ファイル名「F」およびファイル名「F2」のファイルにおける機密度点数「s1」は、時刻「t5」以降の任意の時刻「T5」の時点では継続して設定されているため、機密度点数「s1」の機密度終了時刻はここでは書き込まない。
つぎに、図18−6は、ファイルのファイル名が変名(リネーム)された場合の一例を示す説明図である。図18−6に示すように、時刻「t1」においてファイル名「F」の新規ファイルが作成された後、時刻「t6」においてファイル名「F」がファイル名「F2」に変名されている。
具体的には、ファイル名が変名されることにより、時刻「t1」において設定されたファイル名「F」の機密度点数「s1」の機密度終了時刻「t6」が確定する。また、ファイル名「F」からファイル名「F2」に変名することによって、時刻「t6」においてファイル名「F2」の機密度点数「s1」および機密度点数「s1」の機密度開始時刻「t6」が確定する。
これにより、機密度管理ファイルには、『COM1,F,s1,t1,t6』および『COM1,F2,s1,t6』が保存される。なお、ファイル名「F2」の機密度点数「s1」は、時刻「t6」以降の任意の時刻「T6」の時点では継続して設定されているため、ファイル「F2」における機密度点数「s1」の機密度終了時刻はここでは書き込まない。
また、ユーザによっておこなわれた操作が、たとえば、ファイル操作するためのプログラム(たとえばWebブラウザ)を起動、クライアント端末Cの電源のON/OFFなどの操作であった場合、機密度管理ファイルの内容の更新はおこなわない。
ここで、図17に示すフローチャートの説明に戻る。そして、ステップS1704において、上述したようにユーザによっておこなわれたファイル操作に応じて、機密度管理ファイルの更新がおこなわれた場合、つぎに、すべての操作ログの読み込みが終了したか否かを判断する(ステップS1705)。
ここで、すべての操作ログの読み込みが終了していない場合は(ステップS1705:No)、ステップS1702に戻り、すべての操作ログの読み込みが終了するまで一連の処理を繰り返す。そして、ステップS1705においてすべての操作ログの読み込みが終了した場合は(ステップS1705:Yes)、本フローチャートによる一連の処理を終了する。
つぎに、ファイルの情報機密度を考慮して不審度を算出する際の不審度算出処理手順について説明する。図19は、ステップS714(またはステップS1306)で示した不審度算出処理手順を示すフローチャートである。ここでは、クライアント端末Cの操作対象となるデータ(ファイルなど)の重要度を示す情報機密度に基づいて、不審度を算出する。
図19において、管理サーバ105は、クライアント端末Cの操作ログファイルを開く(ステップS1901)。具体的には、たとえば、特定されたクライアント端末C(たとえば図7に示すステップS711において特定されたクライアント端末C)の操作ログファイルを開く。
そして、開いた操作ログファイルの操作ログを1行読み込む(ステップS1902)。つぎに、読み込んだ操作ログに基づいて、ユーザによっておこなわれたファイルの操作内容を判断する(ステップS1903)。具体的には、たとえば、ユーザがブラウザなどでデータファイルを保存(保存先がリムーバブルディスク以外)したか、添付ファイル付きメール送信したか、あるいは、ファイルを印刷したかを判断する。
つぎに、ステップS1903において判断された操作内容に基づいて、操作内容に対応する点数を加算する(ステップS1904)。具体的には、たとえば、操作内容に対応する点数を図9に示した配点表から抽出して加算する。ここで、操作内容に対応する操作が図9に示されていない場合は、点数を加算しない。
そして、ステップS1903において判断された操作内容に基づいて、連続操作内容に対応する点数を加算する(ステップS1905)。具体的には、たとえば、連続操作内容に対応する点数を図10に示した配点表から抽出して加算する。ここで、連続操作内容に対応する操作が図10に示されていない場合は、点数を加算しない。
さらに、ステップS1902において読み込まれた操作ログに含まれるアクセス日時に対応する加重係数を算出された点数と乗算する(ステップS1906)。具体的には、ステップS1902において読み込まれた操作ログに含まれるアクセス日時に基づいて、加重係数を図11に示した係数表から抽出し、ステップS1905で算出された点数と乗算する。
つぎに、機密度管理ファイルから操作されたファイルに対応する機密度点数を取得する(ステップS1907)。具体的には、ユーザによって操作されたファイルのファイル名に関連付けられて保存されている機密度点数を機密度管理ファイルから取得する。そして、ステップS1906で算出された点数およびステップS1907で取得された機密度点数に基づいて、不審度を算出する(ステップS1908)。具体的には、たとえば、ステップS1906で算出された点数にステップS1907で取得された機密度点数を乗算することによって不審度を算出するようにしてもよい。
この後、すべての操作ログを読み込んだか否かを判断し(ステップS1909)、すべての操作ログを読み込んだ場合は(ステップS1909:Yes)、図7に示すステップS715(または図13に示すステップS1307)に移行する。なお、すべての操作ログを読み込んでいない場合は(ステップS1909:No)、ステップS1902に戻る。
以上説明したように、監査証跡追跡装置、監査証跡追跡方法および監査証跡追跡プログラムによれば、監査証跡となるログの収集および分析を容易にすることにより、効率的なログの追跡をおこなって、情報漏洩の抑止力の向上を図ることができるという効果を奏する。
なお、本実施の形態で説明した監査証跡追跡方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット120などのネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付ける入力手段と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力手段によって入力された検索条件に合致する第1のログレコードを検索する第1の検索手段と、
前記第1の検索手段によって検索された第1のログレコードに基づいて、当該第1のログレコードの記録日時に前記追跡対象データにアクセス可能なアクセス元を特定するアクセス元特定手段と、
前記アクセス元特定手段によって特定されたアクセス元のログの中から、前記第1のログレコードに相当する第2のログレコードを検索する第2の検索手段と、
前記第2の検索手段によって検索された第2のログレコードに基づいて、前記追跡対象データにアクセスしたクライアント端末を特定するクライアント端末特定手段と、
を備えることを特徴とする監査証跡追跡装置。
(付記2)前記クライアント端末特定手段によって特定されたクライアント端末の操作ログの中から、当該クライアント端末が前記追跡対象データを取得した後の第3のログレコードを検索する第3の検索手段と、
前記第3の検索手段によって検索された第3のログレコードに基づいて、前記クライアント端末を操作したユーザの不審度を算出する算出手段と、
前記算出手段によって算出された算出結果に基づいて、前記追跡対象データの追跡結果を出力する出力手段と、
を備えることを特徴とする付記1に記載の監査証跡追跡装置。
(付記3)前記算出手段は、
前記第3のログレコードに記録されている前記クライアント端末の操作内容に基づいて、前記不審度を算出することを特徴とする付記2に記載の監査証跡追跡装置。
(付記4)前記算出手段は、
前記第3のログレコードに記録されている前記クライアント端末の連続操作内容に基づいて、前記不審度を算出することを特徴とする付記2または3に記載の監査証跡追跡装置。
(付記5)前記算出手段は、
前記第3のログレコードに記録されている前記クライアント端末の操作日時に基づいて、前記不審度を算出することを特徴とする付記2〜4のいずれか一つに記載の監査証跡追跡装置。
(付記6)前記算出手段は、
前記クライアント端末の操作対象となるデータの重要度を示す情報機密度に基づいて、前記不審度を算出することを特徴とする付記2〜5のいずれか一つに記載の監査証跡追跡装置。
(付記7)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付ける入力手段と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力手段によって入力された検索条件に合致する第1のログレコードを検索する第1の検索手段と、
クライアント端末の操作ログの中から、前記第1の検索手段によって検索された第1のログレコードの記録日時の時間帯に含まれる記録日時の第2のログレコードを検索する第2の検索手段と、
前記第1のログレコードと前記第2の検索手段によって検索された第2のログレコードとに記録されているユーザ識別情報との同一性を照合する照合手段と、
前記照合手段によって照合された照合結果に基づいて、前記追跡対象データの追跡結果を出力する出力手段と、
を備えることを特徴とする監査証跡追跡装置。
(付記8)前記第2の検索手段によって検索された第2のログレコードに基づいて、前記クライアント端末を操作したユーザの不審度を算出する算出手段と、
前記算出手段によって算出された不審度が所定のしきい値以上であるか否かを判定する判定手段と、を備え、
前記照合手段は、
前記判定手段によって判定された判定結果に基づいて、前記第1のログレコードと前記第2のログレコードとに記録されているユーザ識別情報との同一性を照合することを特徴とする付記7に記載の監査証跡追跡装置。
(付記9)前記算出手段は、
前記第2のログレコードに記録されている前記クライアント端末の操作内容に基づいて、前記不審度を算出することを特徴とする付記8に記載の監査証跡追跡装置。
(付記10)前記算出手段は、
前記第2のログレコードに記録されている前記クライアント端末の連続操作内容に基づいて、前記不審度を算出することを特徴とする付記8または9に記載の監査証跡追跡装置。
(付記11)前記算出手段は、
前記第2のログレコードに記録されている前記クライアント端末の操作日時に基づいて、前記不審度を算出することを特徴とする付記8〜10のいずれか一つに記載の監査証跡追跡装置。
(付記12)前記算出手段は、
前記クライアント端末の操作対象となるデータの重要度を示す情報機密度に基づいて、前記不審度を算出することを特徴とする付記8〜11のいずれか一つに記載の監査証跡追跡装置。
(付記13)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付ける入力工程と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力工程によって入力された検索条件に合致する第1のログレコードを検索する第1の検索工程と、
前記第1の検索工程によって検索された第1のログレコードに基づいて、当該第1のログレコードの記録日時に前記追跡対象データにアクセス可能なアクセス元を特定するアクセス元特定工程と、
前記アクセス元特定工程によって特定されたアクセス元のログの中から、前記第1のログレコードに相当する第2のログレコードを検索する第2の検索工程と、
前記第2の検索工程によって検索された第2のログレコードに基づいて、前記追跡対象データにアクセスしたクライアント端末を特定するクライアント端末特定工程と、
を含んだことを特徴とする監査証跡追跡方法。
(付記14)前記クライアント端末特定工程によって特定されたクライアント端末の操作ログの中から、当該クライアント端末が前記追跡対象データを取得した後の第3のログレコードを検索する第3の検索工程と、
前記第3の検索工程によって検索された第3のログレコードに基づいて、前記クライアント端末を操作したユーザの不審度を算出する算出工程と、
前記算出工程によって算出された算出結果に基づいて、前記追跡対象データの追跡結果を出力する出力工程と、
を含んだことを特徴とする付記13に記載の監査証跡追跡方法。
(付記15)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付ける入力工程と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力工程によって入力された検索条件に合致する第1のログレコードを検索する第1の検索工程と、
クライアント端末の操作ログの中から、前記第1の検索工程によって検索された第1のログレコードの記録日時の時間帯に含まれる記録日時の第2のログレコードを検索する第2の検索工程と、
前記第1のログレコードと前記第2の検索工程によって検索された第2のログレコードとに記録されているユーザ識別情報との同一性を照合する照合工程と、
前記照合工程によって照合された照合結果に基づいて、前記追跡対象データの追跡結果を出力する出力工程と、
を含んだことを特徴とする監査証跡追跡方法。
(付記16)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付けさせる入力工程と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力工程によって入力された検索条件に合致する第1のログレコードを検索させる第1の検索工程と、
前記第1の検索工程によって検索された第1のログレコードに基づいて、当該第1のログレコードの記録日時に前記追跡対象データにアクセス可能なアクセス元を特定させるアクセス元特定工程と、
前記アクセス元特定工程によって特定されたアクセス元のログの中から、前記第1のログレコードに相当する第2のログレコードを検索させる第2の検索工程と、
前記第2の検索工程によって検索された第2のログレコードに基づいて、前記追跡対象データにアクセスしたクライアント端末を特定させるクライアント端末特定工程と、
をコンピュータに実行させることを特徴とする監査証跡追跡プログラム。
(付記17)前記クライアント端末特定工程によって特定されたクライアント端末の操作ログの中から、当該クライアント端末が前記追跡対象データを取得した後の第3のログレコードを検索させる第3の検索工程と、
前記第3の検索工程によって検索された第3のログレコードに基づいて、前記クライアント端末を操作したユーザの不審度を算出させる算出工程と、
前記算出工程によって算出された算出結果に基づいて、前記追跡対象データの追跡結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする付記16に記載の監査証跡追跡プログラム。
(付記18)データベースに記憶されている追跡対象データに関する検索条件の入力を受け付けさせる入力工程と、
前記データベースに対してアクセスがあった場合に記録されるアクセスログの中から、前記入力工程によって入力された検索条件に合致する第1のログレコードを検索させる第1の検索工程と、
クライアント端末の操作ログの中から、前記第1の検索工程によって検索された第1のログレコードの記録日時の時間帯に含まれる記録日時の第2のログレコードを検索させる第2の検索工程と、
前記第1のログレコードと前記第2の検索工程によって検索された第2のログレコードとに記録されているユーザ識別情報との同一性を照合させる照合工程と、
前記照合工程によって照合された照合結果に基づいて、前記追跡対象データの追跡結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする監査証跡追跡プログラム。
(付記19)付記16〜18のいずれか一つに記載の監査証跡追跡プログラムを記録したコンピュータに読み取り可能な記録媒体。