JP2014021509A - 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法 - Google Patents

不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法 Download PDF

Info

Publication number
JP2014021509A
JP2014021509A JP2012156170A JP2012156170A JP2014021509A JP 2014021509 A JP2014021509 A JP 2014021509A JP 2012156170 A JP2012156170 A JP 2012156170A JP 2012156170 A JP2012156170 A JP 2012156170A JP 2014021509 A JP2014021509 A JP 2014021509A
Authority
JP
Japan
Prior art keywords
message
unit
verification information
verification
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012156170A
Other languages
English (en)
Inventor
Toshiya Seyama
稔哉 瀬山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012156170A priority Critical patent/JP2014021509A/ja
Publication of JP2014021509A publication Critical patent/JP2014021509A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】暴露型ウィルスなどの不正プログラムの活動を検出することにより、情報の漏洩を防ぐ。
【解決手段】メッセージ生成部21は、送信するメッセージを生成する。検証情報生成部22は、メッセージ生成部21がメッセージを生成するごとに異なる検証情報を生成する。検証情報付加部23は、メッセージ生成部21が生成したメッセージに、検証情報生成部22が生成した検証情報を付加する。メッセージ送信部24は、検証情報付加部23が検証情報を付加したメッセージを送信する。
【選択図】図3

Description

この発明は、コンピュータウィルスなどの不正プログラムが送信したメッセージを検出する不正検出システムに関する。
情報の漏洩を防ぐため、組織内のネットワークと、インターネットなど外部のネットワークとの間を接続するゲートウェイ装置やプロキシ装置などの中継装置において、許可された通信以外の通信を遮断する技術がある。
しかし、インターネットなどから情報を得るため、組織内のネットワークに接続した端末装置から外部のネットワークに接続したサーバ装置へ向けて送信されるハイパーテキスト転送プロトコル(HTTP)におけるリクエストと、それに対する応答として外部から内部へ向けて送信されるレスポンスは、遮断しない設定となっている場合がある。
特許文献1には、端末装置と中継装置との間で暗号化通信を確立し、中継装置とサーバ装置との間で別の暗号化通信を確立することにより、中継装置において、暗号化通信の内容を復号して確認できるようにした技術が記載されている。
特開2011−151785号公報
暴露型ウィルスと呼ばれる不正プログラムは、ウェブブラウザなどの正当なプログラムになりすまして、HTTPリクエストを送信する。不正プログラムが送信するHTTPリクエストは、端末装置から入手した情報を含む。不正プログラムがHTTPリクエストを送信する送信先は、不正者のサーバ装置である。不正者は、受信したHTTPリクエストから漏洩した情報を入手する。
特許文献1に記載の技術では、送信される情報の内容を確認することはできるが、それを送信したのが、正当なプログラムであるか、不正プログラムであるかを判別することはできない。
この発明は、例えば、暴露型ウィルスなどの不正プログラムの活動を検出することにより、情報の漏洩を防ぐことを目的とする。
この発明にかかる不正検出システムは、
端末装置と、不正検出装置とを有する不正検出システムにおいて、
上記端末装置は、
送信するメッセージを生成するメッセージ生成部と、
上記メッセージ生成部がメッセージを生成するごとに異なる検証情報を生成する検証情報生成部と、
上記メッセージ生成部が生成したメッセージに、上記検証情報生成部が生成した検証情報を付加する検証情報付加部と、
上記検証情報付加部が上記検証情報を付加したメッセージを送信するメッセージ送信部とを有し、
上記不正検出装置は、
上記端末装置が送信したメッセージを取得するメッセージ取得部と、
上記メッセージ取得部が取得したメッセージに付加された検証情報を検証することにより、上記メッセージが正当であるか否かを判定するメッセージ検証部とを有する
ことを特徴とする。
この発明にかかる不正検出システムによれば、暴露型ウィルスなどの不正プログラムの活動を検出することにより、情報の漏洩を防ぐことができる。
実施の形態1における不正検出システム10の構成の一例を示す図。 実施の形態1におけるコンピュータ90のハードウェア資源の一例を示す図。 実施の形態1における端末装置12の機能ブロックの構成の一例を示す図。 実施の形態1におけるログ記録装置13の機能ブロックの構成の一例を示す図。 実施の形態1における不正検出システム10で扱われるデータの一例を示す図。 実施の形態1における不正検出システム10で扱われるデータの別の例を示す図。 実施の形態2における不正検出システム10の構成の一例を示す図。 実施の形態2における検出装置14の機能ブロックの構成の一例を示す図。 実施の形態2における検証情報生成部22の詳細ブロックの構成の一例を示す図。 実施の形態2におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図。 実施の形態2における時刻候補算出部422の動作の一例を示す図。 実施の形態2における検証処理72の流れの一例を示す図。 実施の形態3におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図。 実施の形態3における検証処理72の流れの一例を示す図。 実施の形態4における端末装置12の機能ブロックの構成の一例を示す図。 実施の形態4におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図。 実施の形態5における端末装置12の機能ブロックの構成の一例を示す図。 実施の形態5における検出装置14の機能ブロックの構成の一例を示す図。 実施の形態6における不正検出システム10の構成の一例を示す図。 実施の形態6における中継装置16の機能ブロックの構成の一例を示す図。 実施の形態7における中継装置16の機能ブロックの構成の一例を示す図。
実施の形態1.
実施の形態1について、図1〜図6を用いて説明する。
図1は、この実施の形態における不正検出システム10の構成の一例を示す図である。
不正検出システム10は、例えば、端末装置12と、ログ記録装置13とを有する。なお、不正検出システム10は、端末装置12やログ記録装置13を複数有する構成であってもよい。
端末装置12は、インターネットなどのネットワーク18を介して、サーバ装置19などとの間で通信をする。サーバ装置19は、不正検出システム10の外部に多数存在する。例えば、端末装置12は、サーバ装置19に対して、HTTPリクエストを送信し、それに対する応答としてサーバ装置19が送信したHTTPレスポンスを受信する。
ログ記録装置13は、端末装置12がした通信のログを記録する。例えば、ログ記録装置13は、端末装置12が送信したHTTPリクエストのログをとる。
図2は、この実施の形態におけるコンピュータ90のハードウェア資源の一例を示す図である。
図1で説明した端末装置12やログ記録装置13は、例えば、コンピュータ90である。コンピュータ90は、例えば、制御装置91と、入力装置92と、出力装置93と、記憶装置94と、演算装置95とを有する。
制御装置91は、記憶装置94が記憶したコンピュータプログラムを実行することにより、コンピュータ90全体を制御し、コンピュータ90を端末装置12やログ記録装置13として機能させる。
記憶装置94は、制御装置91が実行するコンピュータプログラムや、演算装置95が演算に用いるデータなどを記憶する。記憶装置94は、例えば、揮発性メモリや不揮発性メモリなどの半導体メモリや、磁気ディスク装置や光学ディスク装置などの外部記憶装置などである。
演算装置95は、記憶装置94が記憶したデータなどを用いて、算術演算や論理演算などの演算をして、演算結果を表わすデータを生成する。演算装置95が生成したデータは、例えば、記憶装置94が記憶する。
入力装置92は、コンピュータ90の外部から情報を入力して、データに変換する。入力装置92が変換したデータは、例えば、記憶装置94が記憶し、あるいは、演算装置95が演算に用いる。入力装置92は、例えば、キーボードやマウスなどの操作入力装置、マイクなどの音声入力装置、カメラやスキャナなどの画像入力装置、温度や電圧などの物理量を測定するセンサ装置、外部の装置がコンピュータ90に対して送信した信号を受信して復調する受信装置などである。
出力装置93は、記憶装置94が記憶したデータや演算装置95が生成したデータなどを変換してコンピュータ90の外部へ出力する。出力装置93は、例えば、液晶表示装置などの表示装置、プリンタなどの印刷装置、スピーカなどの音声出力装置、変調した信号を生成して外部の装置に対して送信する送信装置などである。
なお、コンピュータ90は、制御装置91や入力装置92や出力装置93や記憶装置94や演算装置95を複数有する構成であってもよい。また、例えば、通信装置が入力装置92としての機能と出力装置93としての機能とを兼ね備えるなど、物理的に一つの装置が複数の機能を兼ね備える構成であってもよい。
以下に説明する端末装置12やログ記録装置13の機能ブロックは、記憶装置94が記憶したコンピュータプログラムを制御装置91が実行することにより実現される。しかし、これらの機能ブロックのうちの一部または全部は、他の電気的構成や機械的構成などによって実現されるものであってもよい。
図3は、この実施の形態における端末装置12の機能ブロックの構成の一例を示す図である。
端末装置12は、例えば、メッセージ生成部21と、検証情報生成部22と、検証情報付加部23と、メッセージ送信部24と、現在時刻取得部29とを有する。
現在時刻取得部29は、現在の時刻を取得する。例えば、現在時刻取得部29は、入力装置92を用いて、時計が計測した現在の時刻を取得する。時計は、端末装置12が内蔵する構成であってもよいし、時刻サーバ装置など外部の装置が有する構成であってもよい。
メッセージ生成部21は、演算装置95を用いて、メッセージを生成する。メッセージ生成部21が生成するメッセージは、例えばサーバ装置19に対して送信するためのものである。
検証情報生成部22は、演算装置95を用いて、検証情報を生成する。検証情報生成部22が生成する検証情報は、メッセージ生成部21が生成したメッセージを検証するためのものである。検証情報生成部22は、メッセージに含まれる情報に基づいて、検証情報を生成する。なお、検証情報生成部22は、メッセージ生成部21が同じメッセージを生成した場合でも、メッセージごとに異なる検証情報を生成する。検証情報生成部22は、メッセージ生成部21がメッセージを生成するごとに変化する情報と、メッセージに含まれる情報とに基づいて、検証情報を生成する。
メッセージ生成部21がメッセージを生成するごとに変化する情報には、例えば、現在の時刻がある。なお、ここでいう「現在の時刻」とは、メッセージ生成部21がメッセージを生成した時刻であってもよいし、検証情報生成部22が検証情報を生成する時刻であってもよいし、メッセージ送信部24がメッセージを送信する予定の時刻であってもよい。検証情報生成部22は、例えば、現在時刻取得部29が取得した現在の時刻を使って、検証情報を生成する。
現在の時刻は、例えば「年」「月」「日」「時」「分」「秒」「ミリ秒」などの情報によって表わされる。現在時刻取得部29が取得した現在の時刻があまり正確でない場合を考慮すると、検証情報生成部22は、あまり細かい情報は使わない構成であることが望ましい。例えば、検証情報生成部22は、「年」「月」「日」「時」「分」の情報だけを使い、「秒」「ミリ秒」の情報は使わずに、検証情報を生成する。
検証情報付加部23は、演算装置95を用いて、メッセージ生成部21が生成したメッセージに、検証情報生成部22が生成した検証情報を付加したメッセージを生成する。
メッセージ送信部24は、出力装置93を用いて、検証情報付加部23が検証情報を付加したメッセージを送信する。
メッセージ生成部21が生成するメッセージは、例えばHTTPリクエストである。
メッセージ生成部21及びメッセージ送信部24を実現するコンピュータプログラムは、例えばウェブブラウザプログラムである。ウェブブラウザプログラムは、機能拡張プログラムを追加するためのアドオンと呼ばれる機能を有する。検証情報生成部22及び検証情報付加部23を実現するコンピュータプログラムは、例えば、アドオン機能によってウェブブラウザプログラムに追加された機能拡張プログラムである。
アドオン機能によって検証情報生成部22及び検証情報付加部23が追加される前において、メッセージ送信部24は、メッセージ生成部21が生成したメッセージをそのまま送信する。アドオン機能によって検証情報生成部22及び検証情報付加部23が追加されることにより、メッセージ送信部24は、メッセージ生成部21が生成したメッセージではなく、検証情報付加部23が検証情報を付加したメッセージを送信するようになる。
このように、ウェブブラウザプログラムのアドオン機能を使うことによって、ここで述べた機能ブロックを有する端末装置12を、容易に構成することができる。
なお、端末装置12がコンピュータウィルスに侵されている場合などにおいては、利用者が意図しない不正なプログラムを端末装置12の制御装置91が実行する場合がある。
不正プログラムによって実現される不正な機能ブロックは、例えばメッセージ生成部21が生成するメッセージをまねた不正なメッセージを生成し、送信する場合がある。
図4は、この実施の形態におけるログ記録装置13の機能ブロックの構成の一例を示す図である。
ログ記録装置13は、例えば、メッセージ取得部31と、ログ生成部32と、ログ記録部33と、現在時刻取得部39とを有する。
現在時刻取得部39は、現在の時刻を取得する。例えば、現在時刻取得部39は、入力装置92を用いて、時計が計測した現在の時刻を取得する。時計は、ログ記録装置13が内蔵する構成であってもよいし、時刻サーバ装置など外部の装置が有する構成であってもよい。
メッセージ取得部31は、入力装置92を用いて、端末装置12が送信したメッセージを取得する。メッセージ取得部31が取得するメッセージは、通常、メッセージ送信部24が送信したメッセージである。しかし、不正プログラムによって送信された不正なメッセージが含まれる場合がある。
メッセージ取得部31は、現在時刻取得部39が取得した現在の時刻に基づいて、メッセージを取得した時刻を取得する。
ログ生成部32は、演算装置95を用いて、メッセージ取得部31が取得したメッセージや時刻からログに記録する情報を抽出し、抽出した情報を使ってログを生成する。
ログ記録部33は、記憶装置94を用いて、ログ生成部32が生成したログを記録する。ログ記録部33は、それまで記憶していたログの最後に、ログ生成部32が生成したログを追加して記憶する。
端末装置12が送信したメッセージのなかに、不正プログラムによって送信された不正なメッセージが含まれていた場合、ログ記録部33が記録したログのなかに、不正なメッセージから生成されたログが残る。
図5は、この実施の形態における不正検出システム10で扱われるデータの一例を示す図である。
メッセージ81は、メッセージ生成部21が生成するメッセージである。この例において、メッセージ81は、HTTPリクエストである。
1行目は、このHTTPリクエストが、識別子「/index.html」で識別される資源(ファイル)の送信を要求するリクエストであり、「HTTP/1.1」形式で記述されていることを表わす。
2行目は、ユーザエージェントフィールドであり、このHTTPリクエストを生成したプログラムが「BrowserA」であることを表わす。
3行目は、ホストフィールドであり、このHTTPリクエストが「ServerB」に対する要求であることを表わす。
4行目は、コネクションフィールドであり、このHTTPリクエストに対するレスポンスを返したあと、コネクションの継続を要求することを表わす。
検証情報82は、検証情報生成部22が生成する検証情報である。
メッセージ83は、検証情報付加部23がメッセージ81に検証情報82を付加して生成し、メッセージ送信部24が送信するメッセージである。この例において、検証情報付加部23は、検証情報82の前後を「(」「)」で囲み、2行目のユーザエージェントフィールドの後ろに付加する。検証情報付加部23は、メッセージ81のそれ以外の部分は変更せず、メッセージ83に含める。
ログ84は、ログ生成部32がメッセージ83から生成するログである。この例において、ログ84は、日時841と、端末IP842と、URL843と、ユーザエージェント844とを含む。
日時841は、メッセージ取得部31がメッセージ83を取得した時刻を表わす。ログ生成部32は、メッセージ取得部31が現在時刻取得部39から取得した時刻に基づいて、ログに記録する日時841を生成する。例えば、ログ生成部32は、メッセージ取得部31が取得した時刻から、「年」「月」「日」「時」「分」「秒」の情報を抽出し、抽出した情報から、日時841を生成する。
端末IP842は、メッセージ83を送信した端末装置12のIPアドレスを表わす。メッセージの送受信には、例えば、IPパケットが用いられる。この図に示したメッセージ83には、端末装置12のIPアドレスが記載されていないが、IPパケットのヘッダ部を見れば、メッセージ83を送信した送信元である端末装置12のIPアドレスを取得することができる。ログ生成部32は、例えばこのようにして端末装置12のIPアドレスを取得し、取得したIPアドレスから、端末IP842を生成する。
URL843は、メッセージ83により送信を要求されたファイルのURL(統一資源位置指定子)を表わす。URLは、プロトコルを表わす部分(「http://」)と、要求先のホスト名を表わす部分(「ServerB」)と、要求先のホスト内における資源の識別子を表わす部分(「/index.html」)とによって構成されている。例えば、ログ生成部32は、メッセージ83がHTTPリクエストであることからプロトコルを表わす部分「http://」を生成する。ログ生成部32は、メッセージ83のホストフィールドから要求先のホスト名「ServerB」を生成する。ログ生成部32は、メッセージ83の1行目から資源の識別子「/index.html」を生成する。ログ生成部32は、この3つを結合して、URL843を生成する。
ユーザエージェント844は、端末装置12でメッセージ83を生成したプログラムを表わす。ログ生成部32は、例えば、メッセージ83のユーザエージェントフィールドから、ユーザエージェントを生成する。
メッセージ83のユーザエージェントフィールドには、検証情報生成部22が生成した検証情報82が付加されている。これにより、ログ記録部33が記録するログのなかに、検証情報82が含まれるようになる。
なお、検証情報82がログに記録されればよいので、検証情報付加部23は、ユーザエージェントフィールド以外のフィールドに検証情報82を付加し、あるいは、検証情報を表わす新しいフィールドを追加するなどする構成であってもよい。
しかし、記載できる文字列の範囲が決まっているフィールドには、検証情報82を付加できないし、内容を変えると意味が変わってしまうフィールドにも、検証情報82を付加すべきではない。これに対し、ユーザエージェントフィールドは、仕様上、ユーザエージェント名のあとに括弧書きでコメントを付加できることになっているので、検証情報82を付加するフィールドとして適している。
また、検証情報82を表わすフィールドを新たに追加した場合、ログ生成部32が生成するログにそのフィールドが含まれるよう、ログ生成部32の設定を変更する必要がある。これに対し、ユーザエージェントフィールドは、通常、ログ生成部32が生成するログに含まれる設定になっているので、ログ生成部32の設定を変更する必要がない。
このため、検証情報付加部23は、ユーザエージェントフィールドに検証情報82を付加する構成であることが望ましい。
図6は、この実施の形態における不正検出システム10で扱われるデータの別の例を示す図である。
メッセージ85は、不正プログラムによって送信されたメッセージである。不正プログラムは、メッセージ生成部21が生成するメッセージをまねている。このため、メッセージ85は、メッセージ81に酷似している。しかし、メッセージ85は、メッセージ83と異なり、ユーザエージェントフィールドに検証情報が付加されていない。
ログ生成部32は、メッセージ83の場合と同様、メッセージ85からログ84を生成する。ログ生成部32が生成したログ84には、ユーザエージェント844が含まれる。しかし、メッセージ85のユーザエージェントフィールドに検証情報が付加されていないので、ログ84にも、検証情報は含まれない。
このように、メッセージ送信部24が送信したメッセージのログには、検証情報82が含まれるのに対し、不正プログラムによって送信されたメッセージのログには、検証情報が含まれない。
したがって、ログ記録部33が記録したログを調べて、検証情報が含まれないログが存在すれば、端末装置12において不正プログラムが実行されていることがわかる。
上記端末装置(12)は、メッセージ生成部(21)と、検証情報生成部(22)と、検証情報付加部(23)と、メッセージ送信部(24)とを有する。
上記メッセージ生成部は、送信するメッセージ(81)を生成する。
上記検証情報生成部は、上記メッセージ生成部がメッセージを生成するごとに異なる検証情報(82)を生成する。
上記検証情報付加部は、上記メッセージ生成部が生成したメッセージに、上記検証情報生成部が生成した検証情報を付加する。
上記メッセージ送信部は、上記検証情報付加部が上記検証情報を付加したメッセージ(83)を送信する。
端末装置が送信したメッセージのログを記録しておくことにより、不正プログラムの活動を検出することができる。
上記メッセージ生成部(21)が生成するメッセージ(81)は、ハイパーテキスト転送プロトコルにおけるリクエスト(HTTPリクエスト)である。
上記検証情報付加部(23)は、上記検証情報生成部(22)が生成した検証情報(82)を、上記リクエストのユーザエージェントフィールドに付加する。
検証情報をユーザエージェントフィールドに付加することにより、ログ記録装置の設定を変えることなく、検証情報をログに記録することができる。
実施の形態2.
実施の形態2について、図7〜図12を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
図7は、この実施の形態における不正検出システム10の構成の一例を示す図である。
不正検出システム10は、端末装置12と、ログ記録装置13(不正検出装置)と、検出装置14(不正検出装置)とを有する。
このうち、端末装置12及びログ記録装置13は、実施の形態1と同様なので、ここでは説明を省略する。
検出装置14は、ログ記録装置13が記録したログを検査することにより、不正プログラムの活動を検出する。
検出装置14は、端末装置12やログ記録装置13と同様、例えば図2で説明したコンピュータ90である。以下に説明する検出装置14の機能ブロックは、記憶装置94が記憶したコンピュータプログラムを制御装置91が実行することにより実現される。しかし、これらの機能ブロックのうちの一部または全部は、他の電気的構成や機械的構成などによって実現されるものであってもよい。
図8は、この実施の形態における検出装置14の機能ブロックの構成の一例を示す図である。
検出装置14は、例えば、ログ取得部41と、メッセージ検証部42と、検出警告部43とを有する。
ログ取得部41は、入力装置92を用いて、ログ記録装置13が記録したログを取得する。
メッセージ検証部42は、演算装置95を用いて、ログ取得部41が取得したログに記録された情報に基づいて、端末装置12が送信したメッセージを検証して、メッセージが正当か否かを判定する。
検出警告部43は、メッセージが正当でないとメッセージ検証部42が判定した場合に、出力装置93を用いて、警告する。例えば、検出警告部43は、端末装置12に対して警告メッセージを送信する。あるいは、検出警告部43は、端末装置12の利用者や、不正検出システムの管理者に対して、警告メールを送信する構成であってもよい。
図9は、この実施の形態における検証情報生成部22の詳細ブロックの構成の一例を示す図である。
検証情報生成部22は、例えば、情報抽出部221と、ハッシュ算出部223とを有する。
情報抽出部221は、演算装置95を用いて、検証情報を生成するために使う情報を抽出する。情報抽出部221は、検出装置14がメッセージを検証するときに使うことができる情報のなかから、あらかじめ定められた情報を抽出する。検出装置14がメッセージを検証するときに使うことができる情報には、例えば、ログ記録装置13がログに記録する情報や、端末装置12と検出装置14との間であらかじめ共有されている秘密情報などがある。検証情報を生成するために使う情報は、例えば、メッセージ生成部21が生成したメッセージや、現在時刻取得部29が取得した現在の時刻などから抽出される。
例えば、検証情報を生成するために「時刻」を使う場合、情報抽出部221は、現在時刻取得部29が取得した現在の時刻から「時刻」を表わす文字列データを生成する。また、検証情報を生成するために「端末IP」を使う場合、情報抽出部221は、あらかじめ記憶した端末装置12のIPアドレスから「端末IP」を表わす文字列データを生成する。また、検証情報を生成するために「URL」を使う場合、情報抽出部221は、メッセージ生成部21が生成したメッセージから、ホスト名や資源の識別子を取得し、「URL」を表わす文字列データを生成する。
ハッシュ算出部223は、演算装置95を用いて、情報抽出部221が抽出した情報に基づいて、ハッシュ値を算出する。検証情報生成部22は、ハッシュ算出部223が算出したハッシュ値を検証情報とする。
例えば、ハッシュ算出部223は、情報抽出部221が抽出した情報を表わす文字列データを、あらかじめ定められた順序で連結した文字列データを生成し、生成した文字列データのハッシュ値を算出する。
ここでいう「ハッシュ値」とは、あらかじめ定められた演算方式(ハッシュ関数)により、任意の長さの文字列データから算出される所定の範囲の数値である。ハッシュ算出部223が使用するハッシュ関数は、同じデータからは同じハッシュ値が算出され(決定性)、元のデータからハッシュ値を算出することは計算量的に容易であるが、ハッシュ値から元のデータを算出することは、計算量的に困難である(一方向性)という性質を有する。
ハッシュ値は決定性を有するので、検証情報生成部22がハッシュ値を算出したのと同じデータに基づいて、メッセージ検証部42がハッシュ値を算出すれば、検証情報生成部22が算出したハッシュ値と同じハッシュ値を算出することができる。
また、ハッシュ値は一方向性を有するので、ハッシュ値の算出に用いる情報や、文字列データの結合順序を秘密にしておけば、メッセージ送信部24が送信したメッセージから、これらを知ることは極めて困難である。したがって、メッセージ検証部42が算出するハッシュ値と同じハッシュ値を、不正プログラムが算出することは極めて困難である。
このため、ログ記録装置13が記録したログに含まれる検証情報(ハッシュ値)と、メッセージ検証部42が算出したハッシュ値とを比較して、一致すれば、メッセージが正当であると判定し、一致しなければ、メッセージが不正であると判定することができる。
なお、ハッシュ値の算出に使う情報のなかに、端末装置12と検出装置14との間であらかじめ共有されている秘密情報が含まれる構成とすれば、ハッシュ値の算出に用いる情報や、文字列データの結合順序が解読される可能性は更に低くなる。
図10は、この実施の形態におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図である。
メッセージ検証部42は、例えば、情報抽出部421と、時刻候補算出部422と、ハッシュ算出部423と、ハッシュ比較部424とを有する。
情報抽出部421は、演算装置95を用いて、メッセージを検証するために使う情報を抽出する。メッセージを検証するために使う情報には、ハッシュ値を算出するために使う情報と、検証情報(ハッシュ値)とがある。メッセージを検証するために使う情報は、例えば、ログ取得部41が取得したログなどから抽出される。
例えば、ハッシュ値を算出するために、「時刻」「端末IP」「URL」を使う場合、情報抽出部421は、ログ取得部41が取得したログから、日時841と、端末IP842と、URL843と、ユーザエージェント844に含まれる検証情報とを抽出する。
実施の形態1で述べたように、検証情報付加部23は、ログ生成部32がログに記録する情報に検証情報を付加するので、情報抽出部421は、ログ取得部41が取得したログから検証情報を抽出することができる。なお、ログに記録されたメッセージが不正プログラムによって送信されたものである場合、ログに検証情報が記録されていない場合がある。その場合、情報抽出部421は、そのログに記録されたメッセージが不正であると判定する。
時刻候補算出部422は、演算装置95を用いて、情報抽出部421が抽出した「日時」から、検証情報生成部22が検証情報を生成するときに使った「時刻」を推定する。
例えば、検証情報生成部22が検証情報を生成した時刻から、メッセージ送信部24が送信したメッセージをメッセージ取得部31が取得した時刻までの間には、必ずしも一定とは限らない遅延時間が存在する。また、例えば、端末装置12の時計とログ記録装置13の時計とがずれているなど、現在時刻取得部29が取得する現在の時刻と、現在時刻取得部39が取得する現在の時刻とが、一致しない可能性もある。
このため、時刻候補算出部422は、ログに記録された日時の前後所定の範囲内の時刻を、検証情報生成部22が検証情報を生成するときに使った「時刻」の候補とする。時刻候補算出部422は、複数の候補を算出する。
ハッシュ算出部423は、演算装置95を用いて、情報抽出部421が抽出した情報に基づいて、ハッシュ値を算出する。ただし、「時刻」については、情報抽出部421が抽出した「時刻」ではなく、時刻候補算出部422が算出した候補を使う。ハッシュ算出部423は、時刻候補算出部422が算出した候補それぞれについて、ハッシュ値を算出する。ハッシュ算出部423が算出するハッシュ値の数は、時刻候補算出部422が算出した候補の数と同じである。
ハッシュ算出部423におけるハッシュ値の算出方式(ハッシュ値の算出に使う情報や、文字列データの結合順序など)は、ハッシュ算出部223と同じである。ハッシュ算出部223がハッシュ値の算出に使った情報と、ハッシュ算出部423がハッシュ値の算出に使う情報とが同じであれば、算出されるハッシュ値も同じになる。
ハッシュ比較部424は、演算装置95を用いて、情報抽出部421が抽出した検証情報(ハッシュ値)と、ハッシュ算出部423が算出したハッシュ値とを比較する。ハッシュ算出部423が算出した複数のハッシュ値のなかに、検証情報(ハッシュ値)と一致するハッシュ値があれば、ハッシュ比較部424は、そのログに記録されたメッセージが正当であると判定する。ハッシュ算出部423が算出した複数のハッシュ値のなかに、検証情報(ハッシュ値)と一致するハッシュ値がなければ、ハッシュ比較部424は、そのログに記録されたメッセージが不正であると判定する。
メッセージ検証部42による判定結果は、情報抽出部421による判定結果とハッシュ比較部424による判定結果との論理積である。すなわち、そのメッセージが不正であると情報抽出部421が判定した場合、メッセージ検証部42は、そのメッセージが不正であると判定する。そのメッセージが不正であると情報抽出部421が判定しない場合、ハッシュ比較部424による判定結果が、そのまま、メッセージ検証部42による判定結果となる。
図11は、この実施の形態における時刻候補算出部422の動作の一例を示す図である。
横軸は、時刻を示す。横軸につけられた目盛は、分単位の時刻を表わす。
例えば、時刻候補算出部422は、ログに記録された日時841を基準時刻として、基準時刻よりも所定の時間(例えば2分)前の時刻801と、基準時刻よりも所定の時間(例えば1分)後の時刻802とを算出する。時刻候補算出部422は、時刻801以降で、かつ、時刻802より前の範囲に含まれる時刻803〜805を、検証情報生成部22が検証情報を生成するときに使った時刻の候補とする。
図12は、この実施の形態における検証処理72の流れの一例を示す図である。
検証処理72は、メッセージ検証部42がメッセージを検証する処理である。検証処理72は、例えば、情報抽出工程721と、時刻候補算出工程722と、時刻候補選択工程723と、ハッシュ算出工程724と、ハッシュ比較工程725とを有する。メッセージ検証部42は、検証処理72を、情報抽出工程721から開始する。
情報抽出工程721において、情報抽出部421は、ログ取得部41が取得したログなどから、メッセージの検証に使う情報を抽出する。情報抽出部421が抽出する情報には、「時刻」及び「検証情報」が含まれる。
ログに「検証情報」が含まれない場合、情報抽出部421は、そのメッセージが不正であると判定し、検証処理72を終了する。
ログに「検証情報」が含まれる場合、情報抽出部421は、時刻候補算出工程722へ処理を進める。
時刻候補算出工程722において、時刻候補算出部422は、情報抽出工程721で情報抽出部421が抽出した情報のうちの「時刻」に基づいて、複数の時刻の候補を算出する。
時刻候補選択工程723において、ハッシュ比較部424は、時刻候補算出工程722が算出した複数の時刻の候補のなかから、時刻の候補を1つ選択する。
すべての時刻の候補が選択済であり、未選択の候補がない場合、ハッシュ比較部424は、そのメッセージが不正であると判定し、検証処理72を終了する。
選択済でない時刻の候補がある場合、ハッシュ比較部424は、未選択の候補のなかから、時刻の候補を1つ選択する。
ハッシュ算出工程724において、ハッシュ算出部423は、情報抽出工程721で情報抽出部421が抽出した情報のうち「時刻」及び「認証情報」以外の情報と、時刻候補選択工程723でハッシュ比較部424が選択した時刻の候補とに基づいて、ハッシュ値を算出する。
ハッシュ比較工程725において、ハッシュ比較部424は、情報抽出工程721で情報抽出部421が抽出した情報のうちの「認証情報」と、ハッシュ算出工程724でハッシュ算出部423が算出したハッシュ値とを比較する。
認証情報とハッシュ値とが一致しない場合、ハッシュ比較部424は、時刻候補選択工程723に処理を戻し、次の候補を選択する。
認証情報とハッシュ値とが一致した場合、ハッシュ比較部424は、そのメッセージが正当であると判定し、検証処理72を終了する。
このように、検証情報がログに記録されているか否かを判定するだけでなく、ログに検証情報が記録されている場合には、検証情報が正しい算出方式に基づいて算出されたものであるか否かを判定する。これにより、検証情報付加部23が検証情報を付加したメッセージを不正プログラムがまねた場合であっても、そのメッセージが正当であるか否かを判定することができる。
上記不正検出装置(ログ記録装置13、検出装置14)は、メッセージ取得部(31)と、メッセージ検証部(42)とを有する。
上記メッセージ取得部は、端末装置(12)が送信したメッセージを取得する。
上記メッセージ検証部は、上記メッセージ取得部が取得したメッセージに付加された検証情報を検証することにより、上記メッセージが正当であるか否かを判定する。
メッセージに付加された検証情報を検証することにより、不正プログラムにより検証情報が付されたメッセージが送信された場合であっても、メッセージが正当であるか否かを判定することができる。
上記不正検出装置(13、14)は、ログ記録部(33)を有する。
上記ログ記録部は、上記メッセージ取得部(31)が取得したメッセージのログを記録する。
上記メッセージ検証部(42)は、上記ログ記録部が記録したログに基づいて、上記メッセージが正当であるか否かを判定する。
ログ記録部が記録したログに基づいてメッセージが正当であるか否かを判定することにより、システムの負荷が少ない時間帯などにまとめて、検証処理をすることができる。また、情報の漏洩が判明した場合に、その原因をあとから追究することができる。
上記検証情報生成部(22)は、現在の時刻を含む情報に基づいて、上記検証情報を生成する。
上記メッセージ検証部(42)は、上記メッセージ取得部(31)が上記メッセージを取得した時刻に基づいて、上記検証情報生成部が上記検証情報の生成に用いた時刻の候補を複数算出し、算出した複数の時刻の候補それぞれに基づいて、上記検証情報を検証し、いずれかの時刻の候補において検証に成功した場合に、上記メッセージが正当であると判定する。
現在の時刻を含む情報に基づいて検証情報を生成するので、生成するたびに異なる検証情報が生成される。このため、不正プログラムが、前にメッセージ送信部が送信したメッセージから検証情報を複製したとしても、正しい検証情報が付されたメッセージを生成することはできない。
また、時刻の候補を複数算出して検証情報を検証することにより、端末装置の時計と、不正検出装置の時計とがずれている場合や、メッセージの送信時における遅延がある場合であっても、検証情報を検証することができる。
上記検証情報生成部(22)は、現在の時刻を分単位で表わした情報を含む情報に基づいて、上記検証情報を生成する。
現在の時刻を分単位で表わした情報を使うことにより、メッセージ検証部が算出する時刻の候補の数を少なくすることができる。これにより、メッセージの検証にかかる処理負荷を減らすことができる。
上記検証情報生成部(22)は、上記メッセージの送信先を表わす情報(ホスト名)を含む情報に基づいて、上記検証情報を生成する。
不正プログラムが不正なメッセージを送信する送信先は、通常、不正者のサーバ装置であり、メッセージ生成部が生成するメッセージの送信先とは、異なる。送信先の情報を含む情報に基づいて検証情報を生成するので、不正プログラムが、前にメッセージ送信部が送信したメッセージから検証情報を複製したとしても、正しい検証情報が付されたメッセージを生成することはできない。
上記検証情報生成部(22)が検証情報を生成する生成方式は、あらかじめ定められた秘密の方式である。
上記メッセージ検証部(42)は、上記生成方式と同じ方式を使って、検証情報(ハッシュ値)を生成し、算出した検証情報と、メッセージに付加された検証情報とが一致する場合に、上記メッセージが正当であると判定する。
検証情報生成部と、メッセージ検証部とが、あらかじめ定められた同じ生成方式で検証情報を算出するので、2つの検証情報が一致するか否かに基づいて、メッセージが正当であるか否かを判定することができる。
また、検証情報の生成方式が秘密なので、不正プログラムが、正しい検証情報を生成することはできない。
上記検証情報生成部(22)は、一方向性関数(ハッシュ関数)を使って、上記検証情報を生成する。
一方向性関数を使って検証情報を生成するので、検証情報から、検証情報の生成方式が解読されるのを防ぐことができる。
上記検証情報生成部(22)は、上記不正検出装置(14)との間であらかじめ共有した秘密情報を含む情報に基づいて、上記検証情報を生成する。
上記メッセージ検証部(42)は、上記秘密情報を含む情報に基づいて、上記検証情報を検証する。
秘密情報を含む情報に基づいて、検証情報を生成するので、不正プログラムが、正しい検証情報を生成することはできない。
実施の形態3.
実施の形態3について、図13及び図14を用いて説明する。
なお、実施の形態1及び実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における不正検出システム10の構成、端末装置12及び検出装置14の機能ブロックの構成は、実施の形態2と同様である。
図13は、この実施の形態におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図である。
メッセージ検証部42は、例えば、情報抽出部421と、時刻候補算出部422と、ハッシュ算出部423と、ハッシュ比較部424と、ホワイトリスト記憶部425と、除外判定部426とを有する。
このうち、時刻候補算出部422、ハッシュ算出部423及びハッシュ比較部424は、実施の形態2で説明したものと同様なので、ここでは説明を省略する。
情報抽出部421は、演算装置95を用いて、メッセージを検証するために使う情報を抽出する。実施の形態2と異なり、情報抽出部421は、ログに検証情報が記録されていない場合でも、そのログに記録されたメッセージが不正であると判定しない。
ホワイトリスト記憶部425は、記憶装置94を用いて、ホワイトリストをあらかじめ記憶している。ホワイトリストとは、端末装置12がメッセージを送信しても安全であることがあらかじめ判明しているサーバ装置19のリストである。
除外判定部426は、ログ取得部41が取得したログに検証情報が記録されていない場合、演算装置95を用いて、ログ取得部41が取得したログから、端末装置12がメッセージを送信した送信先のホスト名を取得する。除外判定部426は、演算装置95を用いて、ホワイトリスト記憶部425が記憶したホワイトリストに、取得したホスト名が載っているか否かを判定する。ホワイトリストにホスト名が載っている場合、除外判定部426は、そのメッセージが正当であると判定する。ホワイトリストにホスト名が載っていない場合、除外判定部426は、そのメッセージが不正であると判定する。
メッセージ検証部42による判定結果は、ハッシュ比較部424による判定結果と、除外判定部426による判定結果との論理和である。すなわち、そのメッセージが正当であるとハッシュ比較部424が判定するか、あるいは、そのメッセージが正当であると除外判定部426が判定するかした場合に、メッセージ検証部42は、そのメッセージが正当であると判定する。それ以外の場合、メッセージ検証部42は、そのメッセージが不正であると判定する。
図14は、この実施の形態における検証処理72の流れの一例を示す図である。
検証処理72は、例えば、情報抽出工程721と、時刻候補算出工程722と、時刻候補選択工程723と、ハッシュ算出工程724と、ハッシュ比較工程725と、除外判定工程726とを有する。
このうち、時刻候補算出工程722、時刻候補選択工程723、ハッシュ算出工程724及びハッシュ比較工程725は、実施の形態2で説明したものと同様なので、ここでは説明を省略する。
情報抽出工程721において、情報抽出部421は、ログ取得部41が取得したログなどから、メッセージの検証に使う情報を抽出する。情報抽出部421が抽出する情報には、「時刻」及び「検証情報」が含まれる。
ログに「検証情報」が含まれない場合、情報抽出部421は、除外判定工程726へ処理を進める。
ログに「検証情報」が含まれる場合、情報抽出部421は、時刻候補算出工程722へ処理を進める。
除外判定工程726において、除外判定部426は、ログ取得部41が取得したログから、メッセージの送信先のホスト名を取得する。除外判定部426は、ホワイトリスト記憶部425が記憶したホワイトリストに、取得したホスト名が載っているか否かを判定する。
ホワイトリストにホスト名が載っている場合、除外判定部426は、そのメッセージが正当であると判定し、検証処理72を終了する。
ホワイトリストにホスト名が載っていない場合、除外判定部426は、そのメッセージが不正であると判定し、検証処理72を終了する。
なお、先に除外判定を行い、ホワイトリストにホスト名が載っていない場合のみ、検証情報による検証を行う構成であってもよい。
端末装置12において、正当なメッセージを送信するコンピュータプログラムは、ウェブブラウザプログラムだけでなく、他のプログラムも、正当なメッセージを送信する場合がある。例えば、バージョンアップ時に更新プログラムを自動ダウンロードする設定になっているプログラムのなかには、そのプログラムの販売会社のサーバ装置に対してメッセージを送信することにより、更新プログラムの有無を問い合わせるものがある。
実施の形態1で説明したように、検証情報生成部22や検証情報付加部23を、ウェブブラウザプログラムのアドイン機能を使って実現した場合、上記のように、ウェブブラウザプログラム以外のプログラムによって送信されたメッセージには、検証情報が付加されない。
このため、検証情報のみに基づいてメッセージが正当か否かを判定すると、正当なメッセージを誤って不当であると判定する可能性がある。
そこで、安全であるとあらかじめ判明しているサーバ装置をホワイトリストに登録しておく。メッセージに検証情報が付加されていない場合でも、送信先のサーバ装置がホワイトリストに登録されている場合には、そのメッセージが正当であると判定する。
上記メッセージ検証部(42)は、上記メッセージ取得部(31)が取得したメッセージに検証情報が付加されていない場合であっても、上記メッセージの送信先が、安全であると判明している送信先である場合は、上記メッセージが正当であると判定する。
これにより、正当なメッセージが誤って不当であると判定されるのを防ぐことができる。
実施の形態4.
実施の形態4について、図15及び図16を用いて説明する。
なお、実施の形態1〜実施の形態3と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における不正検出システム10の構成は、実施の形態2と同様である。
図15は、この実施の形態における端末装置12の機能ブロックの構成の一例を示す図である。
端末装置12は、例えば、メッセージ生成部21と、検証情報生成部22と、検証情報付加部23と、メッセージ送信部24と、乱数生成部28とを有する。
このうち、メッセージ生成部21及びメッセージ送信部24は、実施の形態1で説明したものと同様なので、説明を省略する。
乱数生成部28は、演算装置95を用いて、所定の範囲の乱数を生成する。
検証情報生成部22は、演算装置95を用いて、検証情報を生成する。検証情報生成部22は、メッセージ生成部21がメッセージを生成するごとに変化する情報として、実施の形態1で説明した「現在の時刻」の代わりに、乱数生成部28が生成した乱数を用いる。
検証情報付加部23は、演算装置95を用いて、メッセージ生成部21が生成したメッセージに、検証情報生成部22が生成した検証情報と、乱数生成部28が生成した乱数とを付加したメッセージを生成する。
検出装置14の機能ブロックの構成は、実施の形態2と同様である。
図16は、この実施の形態におけるメッセージ検証部42の詳細ブロックの構成の一例を示す図である。
メッセージ検証部42は、例えば、情報抽出部421と、ハッシュ算出部423と、ハッシュ比較部424とを有する。
情報抽出部421は、演算装置95を用いて、検証情報を生成するために使う情報を抽出する。情報抽出部421が抽出する情報には、検証情報付加部23が付加した「検証情報」と「乱数」とが含まれる。ログ取得部41が取得したログに検証情報や乱数が記録されていない場合、情報抽出部421は、そのログに記録されたメッセージが不正であると判定する。
ハッシュ算出部423は、演算装置95を用いて、情報抽出部421が抽出した情報に基づいて、ハッシュ値を算出する。ハッシュ算出部423は、ハッシュ算出部223と同じ算出方式を用いて、ハッシュ値を算出する。ハッシュ算出部423は、情報抽出部421が抽出した「乱数」を含む情報に基づいて、ハッシュ値を算出する。実施の形態2と異なり、ハッシュ算出部423は、ハッシュ値を1つ算出する。
ハッシュ比較部424は、演算装置95を用いて、情報抽出部421が抽出した検証情報(ハッシュ値)と、ハッシュ算出部423が算出したハッシュ値とを比較する。検証情報とハッシュ値とが一致した場合、ハッシュ比較部424は、そのメッセージが正当であると判定する。検証情報とハッシュ値とが一致しない場合、ハッシュ比較部424は、そのメッセージが不正であると判定する。
このように、メッセージ生成部21がメッセージを生成するごとに変化する情報として「現在の時刻」ではなく「乱数」を用いる構成であってもよい。検証情報付加部23は、検証情報の生成に用いた「乱数」をメッセージに付加する。これにより、検証情報生成部22が検証情報の生成に用いた「乱数」をログが記録されるので、それを用いて、メッセージ検証部42がメッセージを検証できる。
上記端末装置12は、乱数生成部(28)を有する。
上記乱数生成部は、乱数を生成する。
上記検証情報生成部(22)は、上記乱数生成部が生成した乱数を含む情報に基づいて、上記検証情報を生成する。
上記検証情報付加部(23)は、上記メッセージ生成部(21)が生成したメッセージに、上記検証情報生成部が生成した検証情報と、上記乱数生成部が生成した乱数とを付加する。
乱数を含む情報に基づいて検証情報を生成するので、生成するたびに異なる検証情報が生成される。このため、不正プログラムが、前にメッセージ送信部が送信したメッセージから検証情報を複製したとしても、正しい検証情報が付されたメッセージを生成することはできない。
また、検証情報の生成に用いた乱数をメッセージに付加するので、それを用いることにより、メッセージ検証部がメッセージを検証することができる。
なお、「現在の時刻」や「乱数」は、メッセージ生成部がメッセージを生成するごとに変化する情報の一例であり、検証情報生成部は、メッセージ生成部がメッセージを生成するごとに変化する他の情報を含む情報に基づいて、検証情報を生成する構成であってもよい。
実施の形態5.
実施の形態5について、図17及び図18を用いて説明する。
なお、実施の形態1〜実施の形態4と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における不正検出システム10の構成は、実施の形態2で説明したものと同様である。
図17は、この実施の形態における端末装置12の機能ブロックの構成の一例を示す図である。
端末装置12は、例えば、メッセージ生成部21と、検証情報生成部22と、検証情報付加部23と、メッセージ送信部24と、生成方式記憶部25と、現在時刻取得部29とを有する。
このうち、メッセージ生成部21、検証情報付加部23、メッセージ送信部24及び現在時刻取得部29は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
生成方式記憶部25は、記憶装置94を用いて、検証情報を生成する生成方式を記憶している。例えば、ハッシュ値を検証情報とする構成の場合、生成方式記憶部25が記憶する生成方式は、メッセージ生成部21が生成したメッセージから抽出した情報や、現在の時刻、端末装置12のIPアドレス、乱数、秘密情報などの情報のうち、どの情報を使うか、それぞれの情報をどのようなフォーマットの文字列データに変換するか、変換した文字列データをどの順序で結合するか、どのハッシュ関数を用いて、結合した文字列データからハッシュ値を算出するかなどを表わす。
検証情報生成部22は、演算装置95を用いて、検証情報を生成する。検証情報生成部22は、生成方式記憶部25が記憶した生成方式にしたがって、検証情報を生成する。
図18は、この実施の形態における検出装置14の機能ブロックの構成の一例を示す図である。
検出装置14は、例えば、ログ取得部41と、メッセージ検証部42と、検出警告部43と、検証方式記憶部45とを有する。
このうち、ログ取得部41及び検出警告部43は、実施の形態2で説明したものと同様なので、ここでは説明を省略する。
検証方式記憶部45は、記憶装置94を用いて、メッセージを検証する検証方式を記憶している。検証方式記憶部45が記憶する検証方式は、検証情報の生成方式に対応する方式である。例えば、ハッシュ値を検証情報とする構成の場合、検証方式記憶部45が記憶する検証方式は、生成方式記憶部25が記憶した生成方式と同じく、どのようにしてハッシュ値を算出するかを表わす。
メッセージ検証部42は、演算装置95を用いて、ログ取得部41が取得したログに記録された情報に基づいて、端末装置12が送信したメッセージを検証して、メッセージが正当か否かを判定する。
メッセージ検証部42は、検証方式記憶部45が記憶した検証方式にしたがって、メッセージを検証する。
このように、生成方式記憶部25が記憶した生成方式にしたがって検証情報生成部22が検証情報を生成するので、生成方式記憶部25が記憶した生成方式を書き換えることにより、検証情報の生成方式を容易に変更することができる。
また、検証方式記憶部45が記憶した検証方式にしたがって、メッセージ検証部42がメッセージを検証するので、検証方式記憶部45が記憶した検証方式を書き換えることにより、メッセージの検証方式を容易に変更することができる。
生成方式記憶部25が記憶した生成方式を変更した場合に、検証方式記憶部45が記憶した検証方式を同時に変更すれば、検証情報の生成方式の変更に応じて、メッセージの検証方式を変更することができる。
検証情報の生成方式及びメッセージの検証方式を、例えば定期的に変更することにより、不正プログラムにまねされる可能性を更に低くすることができる。
上記端末装置(12)は、生成方式記憶部(25)を有する。
上記生成方式記憶部は、上記検証情報生成部(22)が上記検証情報を生成する生成方式を表わす情報を記憶する。
上記検証情報生成部は、上記生成方式記憶部が記憶した情報によって表される生成方式に基づいて、上記検証情報を生成する。
以上説明した不正検出装置(ログ記録装置13、検出装置14)は、検証方式記憶部(45)を有する。
上記検証方式記憶部は、上記生成方式記憶部が記憶した情報によって表される生成方式に対応する検証方式を表す情報を記憶する。
上記メッセージ検証部(42)は、上記検証方式記憶部が記憶した情報によって表される検証方式に基づいて、上記検証情報を検証する。
これにより、検証情報の生成方式を容易に変更できるので、不正プログラムにまねされる可能性を更に低くすることができる。
上記生成方式記憶部(25)が記憶した情報は、上記メッセージに含まれるデータを含む複数のデータのうち、どのデータをどのような順序で用いるかを表わす。、
上記検証情報生成部(22)は、上記メッセージに含まれるデータを含む複数のデータから、上記生成方式記憶部が記憶した情報によって表わされるデータを抽出し、抽出したデータを、上記生成方式記憶部が記憶した情報によって表わされる順序で結合し、結合したデータのハッシュ値を算出して、上記検証情報とする。
上記検証方式記憶部(45)が記憶した情報は、上記生成方式記憶部が記憶した情報と同じ内容を表わす。
上記メッセージ検証部(42)は、上記メッセージに含まれるデータを含む複数のデータから、上記検証方式記憶部が記憶した情報によって表わされるデータを抽出し、抽出したデータを、上記検証方式記憶部が記憶した情報によって表わされる順序で結合し、結合したデータのハッシュ値を算出し、算出したハッシュ値と、上記検証情報とが一致するか否かを判定することにより、上記検証情報を検証する。
これにより、検証情報の生成方式を変更した場合でも、メッセージが正当であるか否かを容易に判定することができる。
実施の形態6.
実施の形態5について、図19及び図20を用いて説明する。
なお、実施の形態1〜実施の形態4と共通する部分については、同一の符号を付し、説明を省略する。
図19は、この実施の形態における不正検出システム10の構成の一例を示す図である。
不正検出システム10は、例えば、端末装置12と、中継装置16(ゲートウェイ装置、プロキシ装置)とを有する。
端末装置12と、中継装置16とは、ネットワーク15を介して通信する。ネットワーク15は、例えばローカルエリアネットワーク(LAN)などの内部ネットワークである。
中継装置16と、サーバ装置19とは、ネットワーク18を介して通信する。ネットワーク18は、例えばインターネットなどの外部ネットワークである。
ネットワーク15とネットワーク18とは、独立している。端末装置12がサーバ装置19と通信する場合、端末装置12が送信したメッセージは、ネットワーク15を介して、中継装置16が受信する。中継装置16は、端末装置12の代理として、受信したメッセージを、ネットワーク18を介して、サーバ装置19に対して送信する。逆経路も同様に、サーバ装置19が送信したメッセージを、中継装置16が受信して、端末装置12に対して送信する。
図20は、この実施の形態における中継装置16の機能ブロックの構成の一例を示す図である。
中継装置16(不正検出装置)は、例えば、メッセージ取得部61と、メッセージ検証部62と、検出警告部63と、代理送信部64と、現在時刻取得部69とを有する。
なお、サーバ装置19から端末装置12へ向けて送信されるメッセージの処理に関する部分については、図示を省略している。
現在時刻取得部69は、現在の時刻を取得する。例えば、現在時刻取得部69は、入力装置92を用いて、時計が計測した現在の時刻を取得する。時計は、中継装置16が内蔵する構成であってもよいし、時刻サーバ装置など外部の装置が有する構成であってもよい。
メッセージ取得部61は、入力装置92を用いて、端末装置12が送信したメッセージを受信する。
メッセージ検証部62は、演算装置95を用いて、メッセージ取得部61が受信したメッセージを検証して、メッセージが正当か否かを判定する。
検出警告部63は、メッセージが正当でないとメッセージ検証部62が判定した場合に、出力装置93を用いて、警告する。例えば、検出警告部63は、端末装置12に対して警告メッセージを送信する。あるいは、検出警告部63は、端末装置12の利用者や、不正検出システムの管理者に対して、警告メールを送信する構成であってもよい。
代理送信部64は、メッセージが正当であるとメッセージ検証部62が判定した場合に、出力装置93を用いて、メッセージ取得部61が取得したメッセージを、サーバ装置19に対して送信する。
メッセージ検証部62は、例えば、実施の形態2〜実施の形態4で説明したメッセージ検証部42と同様にして、メッセージを検証する。メッセージ検証部42との違いは、メッセージの検証に使う情報を、ログ取得部41が取得したログからではなく、メッセージ取得部61が取得したメッセージから直接抽出する点である。また、メッセージの送信時にリアルタイムで検証をする点も、メッセージ検証部42と異なる点である。
中継装置16は、端末装置12が送信したメッセージを検証して、正当であると判定した場合のみ、メッセージを中継し、不正であると判定した場合には、メッセージを中継しない。これにより、不正なメッセージによる情報の漏洩を未然に防ぐことができる。
上記不正検出装置(中継装置16)は、代理送信部(64)を有する。
上記代理送信部は、ネットワーク(18)に接続し、上記メッセージが正当であると上記メッセージ検証部(62)が判定した場合に、上記端末装置(12)に代理して、上記メッセージを上記ネットワークに対して送信する。
メッセージが不正であると判定した場合に、メッセージをネットワークに対して送信しないので、情報の漏洩を防ぐことができる。
実施の形態7.
実施の形態7について、図21を用いて説明する。
なお、実施の形態1〜実施の形態6と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態における不正検出システム10の構成は、実施の形態6で説明したものと同様である。
図21は、この実施の形態における中継装置16の機能ブロックの構成の一例を示す図である。
中継装置16は、例えば、メッセージ取得部61と、メッセージ検証部62と、検出警告部63と、代理送信部64と、検証情報削除部65と、現在時刻取得部69とを有する。
このうち、メッセージ取得部61、メッセージ検証部62、検出警告部63及び現在時刻取得部69は、実施の形態6で説明したものと同様なので、ここでは説明を省略する。
検証情報削除部65は、演算装置95を用いて、メッセージ取得部61が取得したメッセージから、検証情報付加部23が付加した検証情報を削除する。
代理送信部64は、メッセージが正当であるとメッセージ検証部62が判定した場合に、出力装置93を用いて、検証情報削除部65が検証情報を削除したメッセージを、サーバ装置19に対して送信する。
不正プログラムの作者がネットワーク18からメッセージを取得して解析することにより、検証情報の生成方式を解読しようとする可能性がある。
代理送信部64は、検証情報削除部65が検証情報を削除して、メッセージ生成部21が生成したメッセージに戻ったものを送信する。検証情報が付加されていないメッセージが、ネットワーク18に送信される。
このため、ネットワーク18からメッセージを取得して解析しても、検証情報の生成方式が解読されることはない。
上記不正検出装置(中継装置16)は、検証情報削除部(65)を有する。
上記検証情報削除部は、上記メッセージ取得部(61)が取得したメッセージから、上記検証情報付加部(23)が付加した検証情報を削除する。
上記代理送信部(64)は、上記検証情報削除部が上記検証情報を削除したメッセージを上記ネットワーク(18)に対して送信する。
これにより、検証情報の生成方式が解読され、不正プログラムにまねされるのを防ぐことができる。
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を矛盾しない範囲で組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
10 不正検出システム、12 端末装置、13 ログ記録装置、14 検出装置、15,18 ネットワーク、16 中継装置、19 サーバ装置、21 メッセージ生成部、22 検証情報生成部、221,421 情報抽出部、223,423 ハッシュ算出部、23 検証情報付加部、24 メッセージ送信部、25 生成方式記憶部、28 乱数生成部、29,39,69 現在時刻取得部、31,61 メッセージ取得部、32 ログ生成部、33 ログ記録部、41 ログ取得部、42,62 メッセージ検証部、422 時刻候補算出部、424 ハッシュ比較部、425 ホワイトリスト記憶部、426 除外判定部、43,63 検出警告部、45 検証方式記憶部、64 代理送信部、65 検証情報削除部、72 検証処理、721 情報抽出工程、722 時刻候補算出工程、723 時刻候補選択工程、724 ハッシュ算出工程、725 ハッシュ比較工程、726 除外判定工程、801〜805 時刻、81,83,85 メッセージ、82 検証情報、84 ログ、841 日時、842 端末IP、843 URL、844 ユーザエージェント、90 コンピュータ、91 制御装置、92 入力装置、93 出力装置、94 記憶装置、95 演算装置。

Claims (12)

  1. 端末装置と、不正検出装置とを有する不正検出システムにおいて、
    上記端末装置は、
    送信するメッセージを生成するメッセージ生成部と、
    上記メッセージ生成部がメッセージを生成するごとに異なる検証情報を生成する検証情報生成部と、
    上記メッセージ生成部が生成したメッセージに、上記検証情報生成部が生成した検証情報を付加する検証情報付加部と、
    上記検証情報付加部が上記検証情報を付加したメッセージを送信するメッセージ送信部とを有し、
    上記不正検出装置は、
    上記端末装置が送信したメッセージを取得するメッセージ取得部と、
    上記メッセージ取得部が取得したメッセージに付加された検証情報を検証することにより、上記メッセージが正当であるか否かを判定するメッセージ検証部とを有する
    ことを特徴とする不正検出システム。
  2. 上記検証情報生成部は、現在の時刻を含む情報に基づいて、上記検証情報を生成し、
    上記メッセージ検証部は、上記メッセージ取得部が上記メッセージを取得した時刻に基づいて、上記検証情報生成部が上記検証情報の生成に用いた時刻の候補を複数算出し、算出した複数の時刻の候補それぞれに基づいて、上記検証情報を検証し、いずれかの時刻の候補において検証に成功した場合に、上記メッセージが正当であると判定する
    ことを特徴とする請求項1に記載の不正検出システム。
  3. 上記端末装置は、
    上記検証情報生成部が上記検証情報を生成する生成方式を表わす情報を記憶する生成方式記憶部を有し、
    上記検証情報生成部は、上記生成方式記憶部が記憶した情報によって表される生成方式に基づいて、上記検証情報を生成し、
    上記不正検出装置は、
    上記生成方式記憶部が記憶した情報によって表される生成方式に対応する検証方式を表す情報を記憶する検証方式記憶部を有し、
    上記メッセージ検証部は、上記検証方式記憶部が記憶した情報によって表される検証方式に基づいて、上記検証情報を検証する
    ことを特徴とする請求項1または請求項2に記載の不正検出システム。
  4. 上記生成方式記憶部が記憶した情報は、上記メッセージに含まれるデータを含む複数のデータのうち、どのデータをどのような順序で用いるかを表わし、
    上記検証情報生成部は、上記メッセージに含まれるデータを含む複数のデータから、上記生成方式記憶部が記憶した情報によって表わされるデータを抽出し、抽出したデータを、上記生成方式記憶部が記憶した情報によって表わされる順序で結合し、結合したデータのハッシュ値を算出して、上記検証情報とし、
    上記検証方式記憶部が記憶した情報は、上記生成方式記憶部が記憶した情報と同じ内容を表わし、
    上記メッセージ検証部は、上記メッセージに含まれるデータを含む複数のデータから、上記検証方式記憶部が記憶した情報によって表わされるデータを抽出し、抽出したデータを、上記検証方式記憶部が記憶した情報によって表わされる順序で結合し、結合したデータのハッシュ値を算出し、算出したハッシュ値と、上記検証情報とが一致するか否かを判定することにより、上記検証情報を検証する
    ことを特徴とする請求項3に記載の不正検出システム。
  5. 上記不正検出装置は、
    ネットワークに接続し、上記メッセージが正当であると上記メッセージ検証部が判定した場合に、上記端末装置に代理して、上記メッセージを上記ネットワークに対して送信する代理送信部を有する
    ことを特徴とする請求項1乃至請求項4のいずれかに記載の不正検出システム。
  6. 上記不正検出装置は、
    上記メッセージ取得部が取得したメッセージから、上記検証情報付加部が付加した検証情報を削除する検証情報削除部を有し、
    上記代理送信部は、上記検証情報削除部が上記検証情報を削除したメッセージを上記ネットワークに対して送信する
    ことを特徴とする請求項5に記載の不正検出システム。
  7. 上記不正検出装置は、
    上記メッセージ取得部が取得したメッセージのログを記録するログ記録部を有し、
    上記メッセージ検証部は、上記ログ記録部が記録したログに基づいて、上記メッセージが正当であるか否かを判定する
    ことを特徴とする請求項1乃至請求項6のいずれかに記載の不正検出システム。
  8. 上記メッセージ生成部が生成するメッセージは、ハイパーテキスト転送プロトコルにおけるリクエストであり、
    上記検証情報付加部は、上記検証情報生成部が生成した検証情報を、上記リクエストのユーザエージェントフィールドに付加する
    ことを特徴とする請求項1乃至請求項7のいずれかに記載の不正検出システム。
  9. 送信するメッセージを生成するメッセージ生成部と、
    上記メッセージ生成部がメッセージを生成するごとに異なる検証情報を生成する検証情報生成部と、
    上記メッセージ生成部が生成したメッセージに、上記検証情報生成部が生成した検証情報を付加する検証情報付加部と、
    上記検証情報付加部が上記検証情報を付加したメッセージを送信するメッセージ送信部と
    を有することを特徴とする端末装置。
  10. 端末装置が送信したメッセージを取得するメッセージ取得部と、
    上記メッセージ取得部が取得したメッセージに付加された検証情報を検証することにより、上記メッセージが正当であるか否かを判定するメッセージ検証部と
    を有することを特徴とする不正検出装置。
  11. コンピュータが実行することにより、請求項1乃至請求項8のいずれかに記載の不正検出システムまたは請求項9に記載の端末装置または請求項10に記載の不正検出装置として上記コンピュータが機能することを特徴とするコンピュータプログラム。
  12. 端末装置と、不正検出装置とを有する不正検出システムにおける不正検出方法において、
    上記端末装置のメッセージ生成部が、送信するメッセージを生成し、
    上記端末装置の検証情報生成部が、上記メッセージ生成部がメッセージを生成するごとに異なる検証情報を生成し、
    上記端末装置の検証情報付加部が、上記メッセージ生成部が生成したメッセージに、上記検証情報生成部が生成した検証情報を付加し、
    上記端末装置のメッセージ送信部が、上記検証情報付加部が上記検証情報を付加したメッセージを送信し、
    上記不正検出装置のメッセージ取得部が、上記端末装置が送信したメッセージを取得し、
    上記不正検出装置のメッセージ検証部が、上記メッセージ取得部が取得したメッセージに付加された検証情報を検証することにより、上記メッセージが正当であるか否かを判定する
    ことを特徴とする不正検出方法。
JP2012156170A 2012-07-12 2012-07-12 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法 Pending JP2014021509A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012156170A JP2014021509A (ja) 2012-07-12 2012-07-12 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012156170A JP2014021509A (ja) 2012-07-12 2012-07-12 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法

Publications (1)

Publication Number Publication Date
JP2014021509A true JP2014021509A (ja) 2014-02-03

Family

ID=50196369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012156170A Pending JP2014021509A (ja) 2012-07-12 2012-07-12 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法

Country Status (1)

Country Link
JP (1) JP2014021509A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
JP2020155986A (ja) * 2019-03-20 2020-09-24 三菱電機インフォメーションネットワーク株式会社 ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
JP2020155986A (ja) * 2019-03-20 2020-09-24 三菱電機インフォメーションネットワーク株式会社 ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法
JP7166969B2 (ja) 2019-03-20 2022-11-08 三菱電機インフォメーションネットワーク株式会社 ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法

Similar Documents

Publication Publication Date Title
US11132464B2 (en) Security systems and methods for encoding and decoding content
US10402594B2 (en) Information processing apparatus and non-transitory computer readable medium
US8286225B2 (en) Method and apparatus for detecting cyber threats
JP6608256B2 (ja) 電子データの存在証明プログラムおよび存在証明サーバ
US7673135B2 (en) Request authentication token
US9043866B2 (en) Security systems and methods for encoding and decoding digital content
JP5598828B2 (ja) ソフトウェア署名証明書評判モデル
JP2020517200A (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
JP5597230B2 (ja) 情報操作装置、情報出力装置および情報操作プログラム
US9350551B2 (en) Validity determination method and validity determination apparatus
CN114223175A (zh) 在防止获取或操控时间数据的同时生成网络数据的序列
JP4643718B2 (ja) セキュリティ強化プログラム及びセキュリティ強化装置
JP2014021509A (ja) 不正検出システム及び端末装置及び不正検出装置及びコンピュータプログラム及び不正検出方法
JP6307610B2 (ja) データ改竄検知装置、データ改竄検知方法、及びプログラム
JP2013062650A (ja) データ検証装置、データ検証装置のデータ検証方法、データ検証プログラムおよびデータ検証システム
JP2002318726A (ja) コンテンツ監視方法、コンテンツ提供装置およびコンテンツ監視装置
JP6041634B2 (ja) 改竄検知装置及び改竄検知方法
JP5834118B2 (ja) 情報操作装置、情報出力装置および情報操作プログラム
US20160378982A1 (en) Local environment protection method and protection system of terminal responding to malicious code in link information
JP2018041188A (ja) アドレス管理装置、データ管理システム及びプログラム
KR20210097786A (ko) 집계된 네트워크 측정에서의 부정 방지
JP6532505B2 (ja) 認証サーバ、認証システム及びプログラム
JP6688782B2 (ja) ネットワーク通信方法及びネットワーク通信システム
CN108304729A (zh) 一种客户端上报日志的方法以及电子设备
JP2016028532A (ja) 情報操作装置、情報出力装置および情報操作プログラム