(57)【要約】      （修正有）【課題】ウイルスパターンの最新化を行う必要もなく既知・未知マルウェアに関係なく情報漏洩を適切に検出することができる情報流出検出装置、情報流出検出システム、及び情報流出検出プログラムを提供する。【解決手段】プログラムに対する入力操作が人的な操作であるかチェックするプログラム動作・操作チェック機能部１５Ａと、プログラムが記憶領域へアクセスしているかチェックするファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂと、プログラムが外部アドレスへ通信しているかチェックする外部通信チェック機能部１５Ｃと、プログラム動作・操作チェック機能部１５Ａ、ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂ、及び外部通信チェック機能部１５Ｃによりチェックされた内容に基づいてプログラムがマルウェアであるか判定するマルウェア判定機能部１５Ｅとを備える。【選択図】図４
2016224506.tif 000002
【特許請求の範囲】
【請求項１】
悪意ある第三者の攻撃によって生じる情報流出を検出する情報流出検出装置であって、
プログラムに対する入力操作が人的な操作であるかチェックする第１チェック部と、
前記プログラムが記憶領域へアクセスしているかチェックする第２チェック部と、
前記プログラムが外部アドレスへ通信しているかチェックする第３チェック部と、
前記第１チェック部、前記第２チェック部、及び前記第３チェック部によりチェックされた内容に基づいて前記プログラムがマルウェアであるか判定する判定部と
を備えることを特徴とする情報流出検出装置。
【請求項２】
前記判定部は、前記プログラムに対する入力操作が人的な操作でなく、前記プログラムが記憶領域へアクセスし、前記プログラムが外部アドレスへ通信している場合にマルウェアであると判定することを特徴とする請求項１に記載の情報流出検出装置。
【請求項３】
更に、関連性のあるプログラム群の括り付けを行う括り付け部を備え、
前記判定部は、前記括り付け部により括り付けられたプログラム群を一括りにしてマルウェアであるか判定することを特徴とする請求項１又は２に記載の情報流出検出装置。
【請求項４】
請求項１〜３のいずれか１項に記載の情報流出検出装置と、
前記情報流出検出装置と連携して動作するネットワーク機器と
を備えることを特徴とする情報流出検出システム。
【請求項５】
請求項１〜３のいずれか１項に記載の各機能部をコンピュータに実現させるための情報流出検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報流出検出装置、情報流出検出システム、及び情報流出検出プログラムに関し、特に、悪意ある第三者の攻撃によって社内などの閉域網で使用されるコンピュータ内の機密情報が流出することを検出・防止する技術に関する。
【背景技術】
【０００２】
近年、電子的攻撃によって生じる情報の流出が問題となっている（特許文献１、２参照）。被害者の意図しないうちにＰＣ内の情報が攻撃者のサーバに送信されることで情報が流出する。この問題に対処する方法としては、パターンマッチング方式やレピュテーション方式等の“起動前検知”と、振舞検知手法や流出検知手法等の“起動後検知”が代表的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２４６４６３公報
【特許文献２】特開２００５−２７５６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、起動前検知に分類されるパターンマッチング方式やレピュテーション方式では、ウイルス候補となるパターンをリスト化して所有しておく必要があり、未知のものには対応できなかった。一方、起動後検知に分類される振舞検知手法や流出検知手法でも、対象は異なるがウイルス候補となるパターンをリスト化して所有しておく必要がある。また、起動前検知とは異なり、不正でないものも遮断することがあり、業務に支障が出る恐れがあった。
【０００５】
このように、現行の情報漏洩の検出手法は、事前登録したウイルスパターンと照合させることによりマルウェアを検出する手法である。そのため、常にウイルスパターンを最新化しておく必要がある課題や、登録したパターン以外の処理や機能による情報漏洩については検出できない課題がある。
【０００６】
本発明は、上述した従来の技術に鑑み、ウイルスパターンの最新化を行う必要もなく既知・未知マルウェアに関係なく情報漏洩を適切に検出することができる情報流出検出装置、情報流出検出システム、及び情報流出検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、第１の態様に係る発明は、悪意ある第三者の攻撃によって生じる情報流出を検出する情報流出検出装置であって、プログラムに対する入力操作が人的な操作であるかチェックする第１チェック部と、前記プログラムが記憶領域へアクセスしているかチェックする第２チェック部と、前記プログラムが外部アドレスへ通信しているかチェックする第３チェック部と、前記第１チェック部、前記第２チェック部、及び前記第３チェック部によりチェックされた内容に基づいて前記プログラムがマルウェアであるか判定する判定部とを備えることを要旨とする。
【０００８】
第２の態様に係る発明は、第１の態様に係る発明において、前記判定部が、前記プログラムに対する入力操作が人的な操作でなく、前記プログラムが記憶領域へアクセスし、前記プログラムが外部アドレスへ通信している場合にマルウェアであると判定することを要旨とする。
【０００９】
第３の態様に係る発明は、第１の態様に係る発明において、更に、関連性のあるプログラム群の括り付けを行う括り付け部を備え、前記判定部が、前記括り付け部により括り付けられたプログラム群を一括りにしてマルウェアであるか判定することを要旨とする。
【００１０】
第４の態様に係る発明は、情報流出検出システムであって、第１〜第３のいずれか１つの態様に係る情報流出検出装置と、前記情報流出検出装置と連携して動作するネットワーク機器とを備えることを要旨とする。
【００１１】
第５の態様に係る発明は、第１〜第３のいずれか１つの態様に係る各機能部をコンピュータに実現させるための情報流出検出プログラムであることを要旨とする。
【発明の効果】
【００１２】
本発明によれば、ウイルスパターンの最新化を行う必要もなく既知・未知マルウェアに関係なく情報漏洩を適切に検出することができる情報流出検出装置、情報流出検出システム、及び情報流出検出プログラムを提供することが可能である。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る情報流出検出システムの概要を説明するための図である。
【図２】マルウェアによる情報漏洩パターンを説明するための図である。
【図３】本発明の実施の形態に係る情報流出検出システムのシステム構成図である。
【図４】本発明の実施の形態に係る検出・防御ソフトウェアの機能ブロック図である。
【図５】本発明の実施の形態に係る情報流出検出システムのシーケンス図である。
【図６】本発明の実施の形態に係る関連プロセス括り付け機能部のフローチャートである。
【図７】本発明の実施の形態に係るプログラム動作・操作チェック機能部のフローチャートである。
【図８】本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスチェック機能部のフローチャートである。
【図９】本発明の実施の形態に係る外部通信チェック機能部のフローチャートである。
【図１０】本発明の実施の形態に係るマルウェア判定機能部のフローチャートである。
【図１１】本発明の実施の形態に係るプロセス括り付け情報漏洩検出判断ＤＢの構成図である。
【図１２】本発明の実施の形態に係るマルウェア判断パターンを示す図である。
【図１３】本発明の実施の形態に係るプログラム動作・操作ＤＢの構成図である。
【図１４】本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスＤＢの構成図である。
【図１５】本発明の実施の形態に係る外部通信ＤＢの構成図である。
【図１６】本発明の実施の形態に係るグループＩＤ管理ＤＢの構成図である。
【図１７】本発明の実施の形態に係るプロセス括り付け情報漏洩検出判断ＤＢが更新される様子を示す図である。
【図１８】本発明の実施の形態に係るプロセス括り付け情報漏洩検出判断ＤＢが更新される様子を示す図である。
【図１９】本発明の実施の形態に係るプログラム動作・操作ＤＢが更新される様子を示す図である。
【図２０】本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスＤＢが更新される様子を示す図である。
【図２１】本発明の実施の形態に係る外部通信ＤＢが更新される様子を示す図である。
【図２２】本発明の実施の形態に係るグループＩＤ管理ＤＢが更新される様子を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下の実施の形態は、この発明の技術的思想を具体化するための情報流出検出システムを例示するものであり、装置の構成やデータの構成等は以下の実施の形態に限定されるものではない。また、以下の実施の形態では、プログラム、アプリケーション、ソフトウェア、スレッド、プロセス等の用語を特に区別することなく「プログラム」という場合がある。
【００１５】
≪概要≫
本発明は、ユーザ挙動を用いた情報流出防止技術である。すなわち、操作者の意思とは関係なくアプリケーションが起動され、起動後についてもキーボード、マウス入力など操作者の意思と無関係にファイル、レジストリ、データベースにアクセスを行い、使用するコンピュータのＩＰアドレス以外に対して通信が行われた場合にマルウェアと判定し、該当のプロセスを停止する。これにより、誤検出や未検出をなくすことができ、挙動のみに着目することができるので、異常の候補となるパターンのようなものをリスト化して複数持つ必要がなくなる。
【００１６】
図１（ａ）は、本発明の実施の形態に係る情報流出検出システムの概要を説明するための図である。漏洩情報収集サーバ４１とコンピュータ（ＰＣ）１１とがネットワークを介して接続されている。コンピュータ１１は、機密情報が漏洩情報収集サーバ４１に収集されることを防ぐため、以下のチェックポイント１〜３についてチェック処理を実施する。
【００１７】
（チェックポイント１）
操作者が意思を持ってアプリケーションを起動し、起動したアプリケーションに対して操作者がキーボードやマウスの入力動作を行い、操作者の意思によりプロセスが動作していることを確認する。また、操作者の意思とは関係なくアプリケーションが自動で起動し、キーボードやマウス入力がなく、操作者の意思と無関係に動作しているアプリケーション、プロセスを特定する。コンピュータ１１は、キーボードやマウスの入力動作があったことをプロセストレース情報に登録するようになっている。
【００１８】
（チェックポイント２）
起動中アプリケーションのプロセスがファイル、レジストリ、データベース等のデータを保有する基盤（記憶領域）へのｒｅａｄ処理、ｓｅｌｅｃｔ処理を行う挙動を把握する。この動作によってファイル情報漏洩の前段階となる処理を判定する。コンピュータ１１は、ＤＢアクセス、テキストファイルの読み込み、レジストリへのアクセス動作があったことをプロセストレース情報に登録するようになっている。
【００１９】
（チェックポイント３）
使用するコンピュータの持つＩＰアドレス以外の外部に向かって一定のデータ量を送信しているかを確認する。コンピュータ１１は、自身のコンピュータの持つＩＰアドレス以外（外部）への通信動作があったことをプロセストレース情報に登録するようになっている。
【００２０】
図１（ｂ）は、図１（ａ）に示されるコンピュータ１１のプロセストレース情報の一例（通信が遮断される例）を示している。この図に示すように、プログラムスレッドやプログラムの親子関係を含め、起動中のプログラム、プロセスの関連性について括り付けを行う。このようにすれば、括り付けを行ったグループのプロセス内でキーボード、マウス入力が無く、ＤＢ／テキスト／レジストリへのアクセスがあり、外部へ通信を行っている場合にプロセスを停止させることができる。
【００２１】
図２は、マルウェアによる情報漏洩パターンを説明するための図である。例えば、図２（ａ）に示すように、ウイルス感染したコンピュータから、ウイルスのプログラムに基づき、攻撃者が用意した外部サーバへ情報が送信される場合がある（パターン１）。また、図２（ｂ）に示すように、ウイルス感染したコンピュータから、攻撃者の用意した制御サーバからの命令に基づき、攻撃者が用意した外部サーバへ情報が送信される場合がある（パターン２）。さらに、図２（ｃ）に示すように、正常なプログラムを起動した場合にプログラムの立ち上がりの時点で外部からコントロールされるプログラムが起動し、攻撃者の用意した制御サーバからの命令に基づき、攻撃者が用意した外部サーバへ情報が送信される場合がある（パターン３）。
【００２２】
このように、マルウェアによる情報漏洩パターンには複数の種類がある。その種類によっては、利用者が正常なプログラムを起動しているにも関わらす、意図せず情報を外部に送り出してしまうものもある。本発明の実施の形態では、このようなマルウェアに対応するため、ユーザの動作挙動を追跡する。具体的には、キーボード入力やマウス入力、またＡｃｔｉｖｅになっているアプリケーションを追跡し、各フェーズを調査した上で、Ａｃｔｉｖｅになっているアプリケーションにおいてキーボード入力やマウス入力があった場合にのみ送信を許可するようになっている。また、送信を許可する場合の一定期間に送信できるデータ量を利用者単位に任意に定義できるようになっている。
【００２３】
≪システム構成≫
図３は、本発明の実施の形態に係る情報流出検出システムのシステム構成図である。この図に示すように、企業ネットワーク（ＮＷ）１０には、企業内パーソナルコンピュータ１１Ａ，１１Ｂ，１１Ｃ，…（以下、一括して「コンピュータ１１」という。）と、企業内ファイルサーバ１４が接続されている。コンピュータ１１は、ルータ２０やファイアーウォール３０等のネットワーク機器を介してインターネット４０に接続されている。インターネット４０には攻撃者の漏洩情報収集サーバ４１が存在するため、コンピュータ１１には検出・防御ソフトウェア１５がインストールされている。
【００２４】
詳細については後述するが、検出・防御ソフトウェア１５は、既知マルウェア１６及び未知マルウェア１７を検出して情報の流出を防御するソフトウェアである。これにより、従来法で利用していたマルウェアのリストを持つ必要がなくなるため、維持するための費用が不要になる。また、従来法で利用していた送信先のホワイトリストを持つ必要がなくなるため、悪意のない送信が遮断されるような、業務の妨げになることがなくなる。さらに、未知のマルウェアによる攻撃を防ぐことができるという効果もある。
【００２５】
≪検出・防御ソフトウェア≫
図４は、本発明の実施の形態に係る検出・防御ソフトウェア１５の機能ブロック図である。検出・防御ソフトウェア１５は、機能的には、プログラム動作・操作チェック機能部１５Ａと、ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂと、外部通信チェック機能部１５Ｃと、関連プロセス括り付け機能部１５Ｄと、マルウェア判定機能部１５Ｅとを備える。プログラム動作・操作チェック機能部１５Ａは、プログラムの起動（フォアグランド、バックグランド）方法、及びプログラムに対するキーボード、マウス入力操作を確認する機能部である。ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂは、起動中のプログラム、プロセスなどがファイル／レジストリ／ＤＢへアクセスしているかチェックする機能部である。外部通信チェック機能部１５Ｃは、起動中のプログラム、プロセスなどが外部アドレスへ通信しているかチェックする機能部である。関連プロセス括り付け機能部１５Ｄは、プログラムスレッドやプログラムの親子関係を含め、起動中のプログラム、プロセスの関連性について括り付けを行う機能部である。マルウェア判定機能部１５Ｅは、プログラム動作・操作チェック機能部１５Ａ、ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂ、外部通信チェック機能部１５Ｃでチェックした内容からマルウェアを判断・防御する機能部である。
【００２６】
≪シーケンス≫
図５は、本発明の実施の形態に係る情報流出検出システムのシーケンス図である。
【００２７】
まず、コンピュータ１１において不正マルウェアが自動起動し、コンピュータ１１と漏洩情報収集サーバ４１との間でコネクションが確立すると、漏洩情報収集サーバ４１からコンピュータ１１に制御命令が指示される（Ｓ１→Ｓ２）。これにより、コンピュータ１１の不正マルウェアが子プロセスを起動し、この子プロセスが機密情報へアクセスする可能性がある（Ｓ３）。また、コンピュータ１１の不正マルウェアが子プロセスを起動し、この子プロセスが漏洩情報収集サーバ４１に機密情報を送信する可能性がある（Ｓ４→Ｓ５）。
【００２８】
このような問題を回避するため、プログラム動作・操作チェック機能部１５Ａは、プログラムの起動方法、キーボード／マウス入力のアプリケーションへの割り込み有無を確定し、操作者の意思と関係なく動作するアプリケーションを特定する（チェックポイント１）。ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂは、アプリケーションのプロセスのファイル、レジストリ、データベース等のデータを保有する基盤へのｒｅａｄ処理、ｓｅｌｅｃｔ処理を行う挙動を把握する（チェックポイント２）。外部通信チェック機能部１５Ｃは、外部に向かって一定データ量を送信しているかを確認する（チェックポイント３）。関連プロセス括り付け機能部１５Ｄは、プロセスの起動を起因として、プロセスやスレッドの親子関係を含め、関連性について括り付けを行い、プロセスのグループ化を実施する。マルウェア判定機能部１５Ｅは、操作者からのキーボード、マウス入力がなく、ファイル、レジストリ、データベースへアクセスを行い、使用するコンピュータのＩＰアドレス以外に対して通信が行われた場合にマルウェアと判定する。
【００２９】
このように、本発明の実施の形態に係る情報流出検出システムでは、ウイルスパターンとの照合による検出手法ではなく、エンド端末上のアプリケーションが運用者の意思によって動作していることを判断して検出する手法を採用している。すなわち、操作者が意思をもってプロセスを動作させているかを確認すると共に、ウイルスの挙動を段階的にわけ、それぞれで候補となる挙動を分類することで、既知・未知マルウェアに関係のない検出が可能である。また、挙動のみに着目しているので、異常の候補となるパターンのようなものをリスト化して複数持つ必要がないという効果もある。
【００３０】
≪関連プロセス括り付け機能部≫
図６は、本発明の実施の形態に係る関連プロセス括り付け機能部１５Ｄのフローチャートである。以下、ＰｒｏｇＡ＿ｓａｍ．ｅｘｅが起動した場合を例にして説明する。
【００３１】
Ｓ１１：プロセス括り付け情報漏洩検出判断ＤＢを読み込む（図１７（ａ）参照）。
【００３２】
Ｓ１２：プロセス起動情報（起動時間、プロセスＩＤ、プロセス名）を取得する。
【００３３】
Ｓ１３：起動プロセスと過去のマルウェア判定結果からマルウェア登録有無を判断する（図１７（ｂ）参照）。未登録の場合はＳ１４に移行し、登録済の場合はＳ１９に移行する。
【００３４】
Ｓ１４：プロセス括り付け情報漏洩検出判断ＤＢを読み込み、起動プロセスの親プロセスと一致するプロセスＩＤを読み込む。
【００３５】
Ｓ１５：起動したプロセスと紐付く親プロセス有無を判断する。紐付いている場合（親プロセス有）はＳ１６に移行し、紐付いていない場合（親プロセス無）はＳ１７に移行する。
【００３６】
Ｓ１６：親プロセスのグループＩＤを取得する（図１８（ｋ）参照）。
【００３７】
Ｓ１７：グループＩＤ管理ＤＢを読み込み、新しくグループＩＤを作成し、グループＩＤ管理ＤＢに払い出したＩＤの払出し日時を更新する（図２２（ｘ）参照）。
【００３８】
Ｓ１８：プロセス括り付け情報漏洩検出判断ＤＢに起動時間、グループＩＤ、プロセスＩＤ、プロセス名、親プロセスＩＤ、親プロセス名を登録する（図１７（ｃ）参照）。
【００３９】
Ｓ１９〜Ｓ２１：プロセスを強制停止し、プロセス停止情報を取得し、プロセス括り付け情報漏洩検出判断ＤＢに停止時間を更新する（図１７（ｄ）参照）。
【００４０】
Ｓ２２：プログラム動作・操作チェック機能部１５Ａを起動する（図７参照）。
【００４１】
Ｓ２３：ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂを起動する（図８参照）。
【００４２】
Ｓ２４：外部通信チェック機能部１５Ｃを起動する（図９参照）。
【００４３】
≪プログラム動作・操作チェック機能部≫
図７は、本発明の実施の形態に係るプログラム動作・操作チェック機能部１５Ａのフローチャートである。以下、図７を用いて、Ｓ２２の処理を詳細に説明する。
【００４４】
Ｓ３１：プログラム動作・操作チェック機能部１５Ａの処理を開始する。
【００４５】
Ｓ３２：プロセス情報（プロセスＩＤ、プロセス名、プロセス起動方法）を取得し、プログラム動作・操作ＤＢに登録する（図１９（ｌ）参照）。
【００４６】
Ｓ３３：キーボード及びマウスの割り込み情報を取得する。
【００４７】
Ｓ３４：キーボード又はマウスの割り込み発生有無を判断する。キーボード割り込み有の場合はＳ３５に移行し、マウス割り込み有の場合はＳ３７に移行し、割り込み発生無の場合はＳ３９に移行する。
【００４８】
Ｓ３５：キーボード操作情報（入力時間、キーボード入力情報）を取得する。
【００４９】
Ｓ３６：プログラム動作・操作ＤＢにキーボードの入力時間とキーボード入力情報を更新する（図１９（ｍ）参照）。
【００５０】
Ｓ３７：マウス操作情報（入力時間、マウス入力情報）を取得する。
【００５１】
Ｓ３８：プログラム動作・操作ＤＢにマウス入力時間とマウス入力情報を更新する（図１９（ｎ）参照）。
【００５２】
Ｓ３９：プロセスの停止の有無を確認する。プロセスの停止が無い場合はＳ３３に移行し、プロセスの停止が有る場合は終了する。
【００５３】
≪ファイル／レジストリ／ＤＢアクセスチェック機能部≫
図８は、本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂのフローチャートである。以下、図８を用いて、Ｓ２３の処理を詳細に説明する。
【００５４】
Ｓ４１：ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂの処理を開始する。
【００５５】
Ｓ４２：プロセスＩＤ、プロセス名を取得し、ファイル／レジストリ／ＤＢアクセスＤＢに登録する（図２０（ｐ）参照）。
【００５６】
Ｓ４３：プロセスモニタにてプロセストレース情報を取得する。具体的には、プロセスモニタでプロセスＩＤ、ファイルアクセス状況（Ｒｅａｄ）、アクセスファイル名、レジストリアクション状況（ＲｅｇＱｕｅｒｙＫｅｙ）、レジストリ名、ＤＢアクセス状況（ＴＣＰ−Ｃｏｎｎｅｃｔ）を取得する。
【００５７】
Ｓ４４：プロセストレース情報に基づき、ファイル操作、レジストリ操作、ＤＢ操作の有無を判断する。具体的には、プロセスモニタのオペレーションがＲｅａｄの場合はファイル操作と判断し、ＲｅｇＱｕｅｒｙＫｅｙの場合はレジストリ操作と判断し、ＴＣＰ−Ｃｏｎｎｅｃｔの場合はＤＢと判断する。各種操作がない場合はＳ５１に移行し、ファイル操作が有る場合はＳ４５に移行し、レジストリ操作が有る場合はＳ４７に移行し、ＤＢ操作が有る場合はＳ４９に移行する。
【００５８】
Ｓ４５：ファイルシステムミニフィルタドライバの機能でファイル操作情報（プロセスＩＤ、プロセス名、読込時刻、読込ファイル名、ディレクトリ名、読込ポイント、読込サイズ）を取得する。
【００５９】
Ｓ４６：ファイル／レジストリ／ＤＢアクセスＤＢに読込時刻、読込ファイル名、ディレクトリ名、読込ポイント、読込サイズを更新する（図２０（ｑ）参照）。
【００６０】
Ｓ４７：レジストリフィルタ通知機能でレジストリ操作情報（プロセスＩＤ、プロセス名、読込時刻、レジストリ名、パス名）を取得する。
【００６１】
Ｓ４８：ファイル／レジストリ／ＤＢアクセスＤＢに読込時刻、レジストリ名、パス名を更新する（図２０（ｒ）参照）。
【００６２】
Ｓ４９：ＤＢ操作情報（プロセスＩＤ、プロセス名、読込時刻、データベース名、読込情報、読込件数）を取得する（ＳＱＬ−ＮＥＴコマンド）。
【００６３】
Ｓ５０：ファイル／レジストリ／ＤＢアクセスＤＢに読込時刻、データベース名、読込情報、読込件数を更新する（図２０（ｓ）参照）。
【００６４】
Ｓ５１：プロセスの停止の有無を確認する。プロセスの停止が無い場合はＳ４３に移行し、プロセスの停止が有る場合は終了する。
【００６５】
≪外部通信チェック機能部≫
図９は、本発明の実施の形態に係る外部通信チェック機能部１５Ｃのフローチャートである。以下、図９を用いて、Ｓ２４の処理を詳細に説明する。
【００６６】
Ｓ６１：外部通信チェック機能部１５Ｃの処理を開始する。
【００６７】
Ｓ６２：プロセスＩＤ、プロセス名を取得し、外部通信ＤＢに登録する（図２１（ｕ）参照）。
【００６８】
Ｓ６３：プロセスモニタにてプロセストレース情報を取得する。具体的には、プロセスモニタにてプロセスＩＤ、送信状況（ＴＣＰ−Ｓｅｎｄ、ＵＤＰ−Ｓｅｎｄ）、送信先ＩＰ、送信ポートを取得する。
【００６９】
Ｓ６４：プロセストレース情報が外部通信の有無を判断する。具体的には、プロセスモニタのオペレーションがＴＣＰ−Ｓｅｎｄ又はＵＤＰ−Ｓｅｎｄの場合は外部通信と判断する。外部通信が有る場合はＳ６５に移行し、外部通信が無い場合はＳ６８に移行する。
【００７０】
Ｓ６５：ネットワークシステムミニドライバの機能で送信情報（プロセスＩＤ、プロセス名、送信時間、送信先ＩＰ、送信ポート、プロトコル、送信サイズ）を取得する。
【００７１】
Ｓ６６：外部通信ＤＢに送信時間、送信先ＩＰ、送信ポート、プロトコル、送信サイズを更新する（図２１（ｖ）参照）。
【００７２】
Ｓ６７：マルウェア判定機能部１５Ｅを起動する（図１０参照）。
【００７３】
Ｓ６８：プロセスの停止の有無を確認する。プロセスの停止が無い場合はＳ６３に移行し、プロセスの停止が有る場合はＳ６９に移行する。
【００７４】
Ｓ６９：プログラム動作・操作ＤＢ、ファイル／レジストリ／ＤＢアクセスＤＢ、外部通信ＤＢから対象プロセス情報を削除する。
【００７５】
≪マルウェア判定機能部≫
図１０は、本発明の実施の形態に係るマルウェア判定機能部１５Ｅのフローチャートである。以下、図１０を用いて、Ｓ６７の処理を詳細に説明する。
【００７６】
Ｓ７１：マルウェア判定機能部１５Ｅの処理を開始する。
【００７７】
Ｓ７２：送信プロセス（プロセスＩＤ、プロセス名）を引き渡す。
【００７８】
Ｓ７３：プロセス括り付け情報漏洩検出判断ＤＢから送信プロセスＩＤに該当するグループＩＤのプロセスＩＤを全て取得する（図１７（ｅ）参照）。
【００７９】
Ｓ７４：プログラム動作・操作ＤＢから取得したプロセスＩＤに該当するレコードのプログラム動作・操作有無を判断する（図１９（ｏ）参照）。操作が有る場合はＳ７５に移行し、操作が無い場合はＳ７６に移行する。
【００８０】
Ｓ７５：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードのプログラム動作・操作有無を有に更新する（図１７（ｆ）参照）。
【００８１】
Ｓ７６：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードのプログラム動作・操作有無を無に更新する（図１７（ｆ）参照）。
【００８２】
Ｓ７７：ファイル／レジストリ／ＤＢアクセスＤＢから取得したプロセスＩＤに該当するレコードのファイル／レジストリ／ＤＢアクセス有無を判断する（図２０（ｔ）参照）。アクセスが有る場合はＳ７８に移行し、アクセスが無い場合はＳ７９に移行する。
【００８３】
Ｓ７８：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードのファイル／レジストリ／ＤＢアクセス有無を有に更新する（図１７（ｇ）参照）。
【００８４】
Ｓ７９：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードのファイル／レジストリ／ＤＢアクセス有無を無に更新する（図１７（ｇ）参照）。
【００８５】
Ｓ８０：外部通信ＤＢから取得したプロセスＩＤに該当するレコードの外部送信有無、及び一定のデータ量を送信しているか判断する（図２１（ｗ）参照）。外部送信有で且つ一定のデータ量の送信がある場合はＳ８１に移行し、外部送信無又は外部送信有で且つ一定のデータ量の送信がない場合はＳ８２に移行する。
【００８６】
Ｓ８１：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードの外部通信有無を有に更新する（図１７（ｈ）参照）。
【００８７】
Ｓ８２：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードの外部通信有無を無に更新する（図１７（ｈ）参照）。
【００８８】
Ｓ８３：プロセス括り付け情報漏洩検出判断ＤＢが図１２に示すマルウェア判断パターンのようか判断する（図１７（ｉ）参照）。条件通りである場合はＳ８４に移行し、条件以外の場合は終了する。
【００８９】
Ｓ８４：プロセス括り付け情報漏洩検出判断ＤＢから取得したプロセスＩＤに該当するレコードのマルウェア判定結果をマルウェアに更新する（図１７（ｊ）参照）。
【００９０】
Ｓ８５：該当するプロセスを全て強制停止する。
【００９１】
≪データベース≫
図１１は、本発明の実施の形態に係るプロセス括り付け情報漏洩検出判断ＤＢの構成図である。この図に示すように、プロセス括り付け情報漏洩検出判断ＤＢは、「Ｎｏ」「起動時間」「停止時間」「ＧＩＤ」「ＰＩＤ」「プロセス名」「親ＰＩＤ」「親プロセス名」「プログラム動作・操作有無」「ファイル／レジストリ／ＤＢアクセス有無」「外部通信有無」「マルウェア判定結果」を管理している。
【００９２】
図１２は、本発明の実施の形態に係るマルウェア判断パターンを示す図である。マルウェア判断パターンとは、プロセス括り付け情報漏洩検出判断ＤＢにおいてマルウェアと判断するパターンである。同一ＧＩＤに属するプロセスにおいて、図中のパターンの場合のみマルウェアと判断する。但し、図中のパターンを行うプロセス数は限定しない。ここでは、「プログラム動作・操作が無く、ファイル／レジストリ／ＤＢへのアクセスがあり、一定期間の送信データ量超えて外部通信が有る場合、マルウェアであると判断するようになっている。「一定期間の送信データ量超え」とは、運用者が自身のマシンにおいて、事前に一定期間における送信データ量（サイズ）を設定しておき、その値を超えていることである。
【００９３】
図１３は、本発明の実施の形態に係るプログラム動作・操作ＤＢの構成図である。この図に示すように、プログラム動作・操作ＤＢは、「Ｎｏ」「ＰＩＤ」「プロセス名」「プログラム動作・操作情報」を管理している。「プログラム動作・操作情報」とは、具体的には、「起動方法」「キーボードの入力時間、入力情報」「マウスの入力時間、入力情報」である。
【００９４】
図１４は、本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスＤＢの構成図である。この図に示すように、ファイル／レジストリ／ＤＢアクセスＤＢは、「Ｎｏ」「ＰＩＤ」「プロセス名」「ファイル／レジストリ／ＤＢアクセス情報」を管理している。「ファイル／レジストリ／ＤＢアクセス情報」とは、具体的には、「読込時間」「読込ファイル名」「ディレクトリ名」「読込開始ポイント」「読込サイズ」「レジストリ名」「パス名」「データベース名」「読込情報」「読込件数」である。
【００９５】
図１５は、本発明の実施の形態に係る外部通信ＤＢの構成図である。この図に示すように、外部通信ＤＢは、「Ｎｏ」「ＰＩＤ」「プロセス名」「外部通信情報」を管理している。「外部通信情報」とは、具体的には、「送信時間」「送信先ＩＰ」「送信ポート」「プロトコル」「送信サイズ」である。
【００９６】
図１６は、本発明の実施の形態に係るグループＩＤ管理ＤＢの構成図である。この図に示すように、グループＩＤ管理ＤＢは、「Ｎｏ」「ＧＩＤ」「払出し日時」を管理している。
【００９７】
図１７及び図１８は、本発明の実施の形態に係るプロセス括り付け情報漏洩検出判断ＤＢが更新される様子を示す図である。図１９は、本発明の実施の形態に係るプログラム動作・操作ＤＢが更新される様子を示す図である。図２０は、本発明の実施の形態に係るファイル／レジストリ／ＤＢアクセスＤＢが更新される様子を示す図である。図２１は、本発明の実施の形態に係る外部通信ＤＢが更新される様子を示す図である。図２２は、本発明の実施の形態に係るグループＩＤ管理ＤＢが更新される様子を示す図である。いずれも、太枠で囲われた項目が更新対象である。更新タイミングは、図６〜図１０のフローチャートに示す通りである。
【００９８】
以上のように、本発明の実施の形態に係るコンピュータ１１は、悪意ある第三者の攻撃によって生じる情報流出を検出する情報流出検出装置であって、プログラムに対する入力操作が人的な操作であるかチェックするプログラム動作・操作チェック機能部１５Ａと、プログラムが記憶領域へアクセスしているかチェックするファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂと、プログラムが外部アドレスへ通信しているかチェックする外部通信チェック機能部１５Ｃと、プログラム動作・操作チェック機能部１５Ａ、ファイル／レジストリ／ＤＢアクセスチェック機能部１５Ｂ、及び外部通信チェック機能部１５Ｃによりチェックされた内容に基づいてプログラムがマルウェアであるか判定するマルウェア判定機能部１５Ｅとを備える。これにより、ウイルスパターンの最新化を行う必要もなく既知・未知マルウェアに関係なく情報漏洩を適切に検出することができる。
【００９９】
具体的には、マルウェア判定機能部１５Ｅは、プログラムに対する入力操作が人的な操作でなく、プログラムが記憶領域へアクセスし、プログラムが外部アドレスへ通信している場合にマルウェアであると判定する。この場合、プログラムに対する入力操作が人的な操作であれば、即座にマルウェアでないと判定することも可能である。
【０１００】
更に、関連性のあるプログラム群の括り付けを行う関連プロセス括り付け機能部１５Ｄを備え、マルウェア判定機能部１５Ｅは、関連プロセス括り付け機能部１５Ｄにより括り付けられたプログラム群を一括りにしてマルウェアであるか判定してもよい。これにより、プログラムスレッドやプログラムの親子関係を含めてマルウェアであるか判定することができるため、より確実に情報漏洩を適切に検出することが可能である。
【０１０１】
なお、上記の説明では特に言及しなかったが、一度マルウェアと判断したプログラムについては、そのプログラムの特徴情報を記憶しておき、再度、同一のプログラムが起動した場合はマルウェアであるか判断せず、即座にマルウェアとみなしてプログラムのプロセスを強制的に終了させてもよい。これにより、一度マルウェアと判断したプログラムについては、より迅速にマルウェアを検出することが可能である。
【０１０２】
また、コンピュータ１１においてマルウェアと判断した結果や特徴情報をルータ２０やファイアーウォール３０等のネットワーク機器に伝達してもよい。これにより、コンピュータ１１とネットワーク機器とを連携して動作させることができるため、より確実かつ迅速に情報漏洩を検出することが可能である。
【０１０３】
また、本発明は、情報流出検出装置として実現することができるだけでなく、この情報流出検出装置が備える各機能部をコンピュータに実現させるための情報流出検出プログラムとして実現することも可能である。このようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【符号の説明】
【０１０４】
１１…コンピュータ（情報流出検出装置）
１５…検出・防御ソフトウェア
１５Ａ…プログラム動作・操作チェック機能部（第１チェック部）
１５Ｂ…ファイル／レジストリ／ＤＢアクセスチェック機能部（第２チェック部）
１５Ｃ…外部通信チェック機能部（第３チェック部）
１５Ｄ…関連プロセス括り付け機能部（括り付け部）
１５Ｅ…マルウェア判定機能部（判定部）
２０…ルータ（ネットワーク機器）
３０…ファイアーウォール（ネットワーク機器）
【図１】
2016224506.tif 000003
【図２】
2016224506.tif 000004
【図３】
2016224506.tif 000005
【図４】
2016224506.tif 000006
【図５】
2016224506.tif 000007
【図６】
2016224506.tif 000008
【図７】
2016224506.tif 000009
【図８】
2016224506.tif 000010
【図９】
2016224506.tif 000011
【図１０】
2016224506.tif 000012
【図１１】
2016224506.tif 000013
【図１２】
2016224506.tif 000014
【図１３】
2016224506.tif 000015
【図１４】
2016224506.tif 000016
【図１５】
2016224506.tif 000017
【図１６】
2016224506.tif 000018
【図１７】
2016224506.tif 000019
【図１８】
2016224506.tif 000020
【図１９】
2016224506.tif 000021
【図２０】
2016224506.tif 000022
【図２１】
2016224506.tif 000023
【図２２】
2016224506.tif 000024