(57)【要約】      （修正有）【課題】プログラムの異常をリアルタイムで検知するための検知プログラム、装置、及び方法を提供する。【解決手段】検知装置１０の特定部１３が、情報資産システム３０の情報資産３１へのアクセスを要求するプロセスとして実行されているプログラムを特定し、判定部１４が、特定したプログラムの実行中の状態における固有情報と、実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、特定したプログラムが異常であると判定する。【選択図】図１
2019067065.tif 000002
【特許請求の範囲】
【請求項１】
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータに実行させるための検知プログラム。
【請求項２】
前記アクセスを要求するプロセスの生成元のプロセスを順次遡って、前記アクセスを要求するプロセスに関連する全てのプロセスを特定し、特定した前記全てのプロセスの各々として実行されているプログラムの各々を特定する請求項１に記載の検知プログラム。
【請求項３】
前記固有情報を、前記プログラムのコードから算出される一意な値とする請求項１又は請求項２に記載の検知プログラム。
【請求項４】
前記固有情報を、前記アクセスを要求するプロセスの実行時に取得されるシステムコールの情報、及び前記アクセスを要求するプロセスの前後に実行されるプロセスの情報の少なくとも一つを含む動作情報とする請求項１又は請求項２に記載の検知プログラム。
【請求項５】
正常状態のプログラムから前記正常状態における固有情報を学習することをさらに含む処理を前記コンピュータに実行させる請求項１〜請求項４のいずれか１項に記載の検知プログラム。
【請求項６】
前記不一致の場合には、前記実行中のプログラムについての正常状態における固有情報が存在しない場合が含まれる請求項１〜請求項５のいずれか１項に記載の検知プログラム。
【請求項７】
プログラムが更新された場合、更新されたプログラムに関する固有情報を更新する請求項１〜請求項６のいずれか１項に記載の検知プログラム。
【請求項８】
前記情報資産のうち、異常検知の対象とする情報資産を設定可能とする請求項１〜請求項７のいずれか１項に記載の検知プログラム。
【請求項９】
前記不一致の場合、サイバー攻撃を検知したことを示す情報を出力することをさらに含む処理を前記コンピュータに実行させるための請求項１〜請求項８のいずれか１項に記載の検知プログラム。
【請求項１０】
前記情報資産へアクセスするユーザの本人性を認証し、前記情報資産に対する前記ユーザのアクセス権限を認可することにより、前記ユーザによる前記情報資産へのアクセス制御を行うことをさらに含む処理を前記コンピュータに実行させ、
前記アクセス制御の元で実行されるプロセスについて、前記プログラムを特定する処理、及び前記プログラムの異常を検知する処理を実行する
請求項１〜請求項９のいずれか１項に記載の検知プログラム。
【請求項１１】
周期的な所定のタイミングで、プロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータに実行させるための検知プログラム。
【請求項１２】
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定する特定部と、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する判定部と、
を含む検知装置。
【請求項１３】
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータが実行する検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、検知プログラム、検知装置、及び検知方法に関する。
【背景技術】
【０００２】
従来、企業や自治体などで使用される業務システムで扱われる情報資産に対する不正アクセスなどのサイバー攻撃を防止することが行われている。
【０００３】
例えば、保護対象フォルダに格納される保護対象ファイルへアクセスしようとする第１プログラムの呼出元の第２プログラムを特定する情報処理装置が提案されている。この情報処理装置は、保護対象ファイルへアクセスする第１プログラムを呼び出す第２プログラムを制限する第２リストを用いて、第２プログラムによる第１プログラムを用いた保護対象ファイルへのアクセス可否を判定するアクセス可否判定手段を有する。また、この情報処理装置は、保護対象ファイルへアクセスする第１プログラムを制限する第１リストを用いて第１プログラムによる保護対象ファイルへのアクセスを監視するアクセス監視手段を有する。アクセス監視手段は、アクセス可否判定手段の判定結果に基づいて第１プログラムによる保護対象ファイルへのアクセスを許可又は禁止する。
【０００４】
また、機密ファイルへのアクセスを許可する業務アプリケーションにおいて、予め管理サーバにその情報を登録しておき、登録されたアプリケーション情報を各クライアントに随時、配信する方法が提案されている。この方法では、業務アプリケーションで機密ファイルを参照する際は、業務アプリケーション起動時に、サーバに予め登録されているアプリケーションかどうかを判断し、パスした場合のみ、Ｉ／Ｏ捕捉モジュールに自らのプロセス情報を登録する。また、この方法では、Ｉ／Ｏ捕捉モジュールは、登録されているプロセス情報に一致するプロセスのみ機密情報へのアクセスを許可し、それ以外の場合はアクセスを拒否する。
【０００５】
また、検証対象装置において、完全性検証モジュールが、起動手段によって起動されたか否かを判定するシステムが提案されている。このシステムでは、完全性検証モジュールは、起動手段によって起動されていないと判定した場合に、異常な起動を示す情報を通知する。また、完全性検証モジュールは、起動手段によって起動されたと判定した場合に、受信した乱数情報に基づくコードを含めた、完全性検証モジュール自身のプログラムコードのチェックサムを計算し、完全性検証装置に送信する。完全性検証装置は、受信したチェックサムを検証し、検証対象装置が完全であるか否かを判定する。
【０００６】
また、プログラム記録部に記録されたプログラムからチェックサムを求め、初期状態プログラムデータ記録部に記録された初期状態プログラムのチェックサムと比較する装置が提案されている。この装置は、さらに、この比較結果に基づき、プログラム記録部に記録されたプログラムに障害が起きたか否かを判定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−７０２９７号公報
【特許文献２】特開２００７−１２８２０５号公報
【特許文献３】特開２０１６−１００３１号公報
【特許文献４】特開２００６−３５０９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、任意のユーザが任意の情報資産にアクセスする場合、システムは、アクセス要求元のユーザが正規のユーザであることを認証する。認証は、そのユーザが入力するユーザの識別情報とパスワード等との組み合わせなどと、システムが保有するそのユーザを認証するための情報との整合性の検証や、第三者機関による電子証明書などによって実施される。さらに、システムは、ユーザが保有する性質、すなわち、身分、役割権限、会員資格、年齢、性別等の属性情報に基づいて、そのユーザがアクセス可能な情報資産やアクセス種別（参照、更新、削除等）を認可する。
【０００９】
上述のアクセス制御により、正規ユーザの利用範囲においては、各ユーザは、正規の認証下、かつ正規の認可の範囲で情報資産へアクセス可能となる。一部ユーザの識別情報の誤入力や忘却の場合は認証が却下され、認可もされないため、情報漏洩することもなく、情報資産は正規ユーザ以外からのアクセス要求に対して保護される。
【００１０】
また、一般的に使用されるサイバー攻撃を検知するためのウイルス検知ソフトウェアは、対象ソフトウェアに攻撃パターン情報が含まれているか否かを検証することにより、サイバー攻撃の有無を判断する。ウイルス検知ソフトウェアでは、攻撃パターンを示すシグニチャやアノマリ検知のための情報等が必要であり、更新による情報の最新化が必要となる。
【００１１】
しかしながら、システムを構成するソフトウェアの脆弱性の悪用や、ユーザインタフェースで使用されるプロトコルの不備を突いて、プログラムに感染するウイルスや、システムへ侵入するマルウェアや不正アクセスなどのサイバー攻撃のリスクが高まっている。
【００１２】
上述のアクセス制御についても、正規ユーザへの“なりすまし”や、プロトコルやプロセスの通信への割り込みや通信擬似により、不正アクセスのリスクがある。そのリスクが顕在化し、認証が破られた場合、認可ではユーザの正当性を検証しないため、本来のアクセス制御の役割を果たせず、情報資産の改ざん、削除や漏洩の恐れがある。
【００１３】
最近では、ＯｐｅｎＩＤ、ＳＡＭＬ（Security Assertion Markup Language）、Ｏａｕｔｈなど、ＳＮＳ（Social Networking Service）等の外部サービスが提供する識別情報（ＩＤ）と連係するインターネットサービスも増加している。このようなサービスにおいて、認証は外部サービスによって実施され、情報資産を保有するシステムは認可だけを行う。このような外部サービスは、アイデンティティ管理技術と呼ばれ、認証及び認可の少なくとも一方のアクセス制御と同等機能を提供する。外部サービスはＷｅｂアプリケーション等の上位層のソフトウェアであり、脆弱性がゼロとは言えず、上記と同様に、ユーザの“なりすまし”やマルウェア感染等のリスクがある。
【００１４】
また、サイバー攻撃を検知するためのウイルス検知ソフトウェアの攻撃パターンは、更新により情報が最新化されているとしても、ゼロディ攻撃に代表される未知の脆弱性に対しては攻撃パターンが存在しないため、サイバー攻撃を検知することはできない。
【００１５】
上述した従来技術では、アプリケーションの起動時に不正なプログラムやプロセスのチェックを行っている。しかし、従来技術では、アプリケーションの起動後に実行中のプロセスが不正な動きをするようにプログラムが改ざんされていたり、そのようなマルウェアに感染したりしている場合には、対応することができない。
【００１６】
一つの側面として、プログラムの異常をリアルタイムで検知することを目的とする。
【課題を解決するための手段】
【００１７】
一つの態様として、開示の技術は、情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定する。そして、開示の技術は、特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する。
【発明の効果】
【００１８】
開示の技術は、一つの側面として、プログラムの異常をリアルタイムで検知することができる、という効果を有する。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態に係る検知装置の機能ブロック図である。
【図２】学習対象プログラムリストの一例を示す図である。
【図３】第１実施形態における初期固有情報テーブルの一例を示す図である。
【図４】プロセス情報の一例を示す図である。
【図５】プロセスの特定を説明するための図である。
【図６】特定プログラムテーブルの一例を示す概念図である。
【図７】第１実施形態における判定部の処理を説明するための図である。
【図８】アラームメッセージの一例を示す図である。
【図９】第１及び第２実施形態に係る検知装置として機能するコンピュータの概略構成を示すブロック図である。
【図１０】第１実施形態における学習処理の一例を示すフローチャートである。
【図１１】更新処理の一例を示すフローチャートである。
【図１２】第１及び第２実施形態における検知処理の一例を示すフローチャートである。
【図１３】特定処理の一例を示すフローチャートである。
【図１４】判定処理の一例を示すフローチャートである。
【図１５】第２実施形態に係る検知装置の機能ブロック図である。
【図１６】第２実施形態における初期固有情報テーブルの一例を示す図である。
【図１７】第２実施形態における判定部の処理を説明するための図である。
【図１８】保護対象フラグの一例を示す図である。
【図１９】第２実施形態における学習処理の一例を示すフローチャートである。
【図２０】設定処理の一例を示すフローチャートである。
【図２１】第３実施形態に係る検知装置の機能ブロック図である。
【図２２】第３実施形態に係る検知装置として機能するコンピュータの概略構成を示すブロック図である。
【図２３】第３実施形態における検知処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照して開示の技術に係る実施形態の一例を詳細に説明する。
【００２１】
＜第１実施形態＞
図１に示すように、第１実施形態に係る検知装置１０は、情報資産システム３０と接続される。なお、検知装置１０は、情報資産システム３０と同一のコンピュータに設けられてもよいし、情報資産システム３０とは異なるコンピュータで構成されてもよい。
【００２２】
情報資産システム３０は、情報資産３１と、情報資産３１に対するアクセスを含む処理を実行するアプリケーション３２を含む。例えば、情報資産システム３０は、個人情報や企業の機密情報等の情報資産３１を保有するサーバ、通信ノード、通信機器、ＩｏＴ（Internet of Things）機器等を含み、情報資産３１を保管及び運用するシステムである。
【００２３】
情報資産３１は、ファイルシステムで管理されるファイル、データベースなど、メモリやレジスタに記憶され、アプリケーション３２の実行によりアクセスされる可能性がある全てのデータを含む。また、アプリケーション３２がいずれかのデータにアクセスする際に動く様々なソフトウェアが参照するシステム情報も、情報資産３１に含まれる。
【００２４】
アプリケーション３２は、複数のプログラムにより実行される複数のプロセスにより実現される。情報資産システム３０の所定の記憶領域には、アプリケーション３２を実現するための複数のプログラムの各々についてのプログラム情報（プログラムコード）が記憶されている。
【００２５】
検知装置１０は、情報資産３１へのアクセスに対するサイバー攻撃を検知する。検知装置１０は、機能的には、図1に示すように、学習部１１と、検出部１２と、特定部１３と、判定部１４と、通知部１５とを含む。
【００２６】
学習部１１は、情報資産システム３０から、アプリケーション３２を実現するための複数のプログラムの各々について、例えば、システムの初期状態時など、改ざんやマルウェア感染などの異常がない正常状態のプログラム情報の各々を取得する。学習部１１は、取得したプログラム情報から、情報資産３１へのアクセス実行を許容するプログラムを抽出する。学習部１１は、例えば、図２に示すように、抽出したプログラムの識別情報（プログラム名、パス等）を学習対象プログラムのプログラム名として記述することにより、学習対象プログラムリスト２１を作成する。なお、図２の例では、学習対象プログラムリスト２１の先頭の行には、リストの名前が記述され、２行目からの各行に、それぞれ抽出されたプログラムのプログラム名が記述されている。
【００２７】
学習部１１は、学習対象プログラムリスト２１に記述されたプログラム名が示すプログラムの各々のプログラム情報から算出される一意な値を、各プログラムの初期固有情報として生成する。本実施形態では、学習部１１は、一意な値の一例として、プログラムのロードモジュールを入力情報としてＳＨＡ５１２等のセキュリティ強度が保証されるハッシュ関数を用いて計算するハッシュ値を算出する場合について説明する。学習部１１は、各プログラムについて生成した初期固有情報を、各プログラムのプログラム名と対応付けて、例えば、図３に示すような初期固有情報テーブル２２に記憶する。
【００２８】
また、学習部１１は、情報資産システム３０の運用中に、プログラムのバージョンアップやパッチなどにより、プログラムが正当な理由で更新された場合には、更新されたプログラムについて、初期固有情報を再生成し、初期固有情報テーブル２２を更新する。
【００２９】
検出部１２は、情報資産システム３０で実行されるアプリケーション３２において発生するイベントのうち、情報資産３１へのアクセス要求を示すイベントを検出する。検出部１２は、情報資産３１へのアクセス要求を検出すると、アクセス要求を一時停止し、アプリケーション３２からの要求を保留する。また、検出部１２は、図４に示すように、情報資産３１へのアクセス要求を示すイベントから、情報資産３１へのアクセス要求を行ったプロセスに関する情報（以下、「プロセス情報」という）２３を取得する。プロセス情報２３には、該当のプロセスの識別情報（プロセスＩＤ）が含まれる。このプロセスＩＤをトリガとして、プロセスリンク情報を遡ることにより、該当のプロセスを生成したプロセスのプロセスＩＤ、プロセスに対応するプログラムのプログラム名、アクセス要求に関する情報等を抽出することが可能となる。検出部１２は、取得したプロセス情報２３を特定部１３へ受け渡す。
【００３０】
特定部１３は、検出部１２から受け渡されたプロセス情報２３、すなわち、情報資産３１へアクセス要求を行ったプロセスのプロセス情報２３に基づいて、そのプロセスを生成した前のプロセスを順次遡って特定する。より具体的には、図５に示すように、特定部１３は、情報資産３１へ直接アクセス要求を行ったプロセス１を特定し、プロセス情報に含まれるプロセスリンク情報を遡ることよりプロセス１を生成した前プロセス２を特定する。さらに、特定部１３は、プロセスリンク情報を遡ることにより、プロセス２を生成した前プロセス３を特定し、同様の処理でプロセス生成順序を逆に遡ってプロセストレースを繰り返す。これにより、特定部１３は、プロセス１からコマンド機能やアプリケーション機能の起動元プロセスに至るまでのアクセス要求に関わる全てのプロセスを特定し、プロセス情報２３Ａを所得する。
【００３１】
特定部１３は、特定した全てのプロセスについて、プロセス情報２３Ａを参照して、各プロセスに対応するプログラムを特定する。特定部１３は、図６に概念的に示すように、情報資産３１へアクセス要求を行ったプロセスから順次特定した全てのプロセスのプロセスＩＤの各々と、特定したプログラムのプログラム名とを対応付けた特定プログラムテーブル２４を作成する。特定部１３は、作成した特定プログラムテーブル２４を判定部１４へ受け渡す。
【００３２】
判定部１４は、特定部１３から受け渡された特定プログラムテーブル２４に含まれる各プログラムについて、現在メモリに展開されているプログラム情報を取得する。そして、判定部１４は、上述した学習部１１と同様の手法により、取得した現在のプログラム情報から算出される一意な値（ここでは、ハッシュ値）を、現在の固有情報として生成する。また、判定部１４は、該当のプログラムのプログラム名に対応付けて初期固有情報テーブル２２に記憶されている初期固有情報を取得する。そして、判定部１４は、図７に示すように、取得した初期固有情報と、生成した現在の固有情報とを比較し、一致する場合には、該当のプログラムは正常であると判定し、不一致の場合には、該当のプログラムは異常であると判定する。判定部１４は、判定結果を通知部１５へ受け渡す。
【００３３】
通知部１５は、判定部１４から受け渡された判定結果が、プログラムが異常であることを示す判定結果の場合、サイバー攻撃を検知したと判断し、一時停止しているアクセス要求を却下し、保留していたアプリケーション３２からの要求を廃棄する。また、通知部１５は、判定部１４から受け渡された判定結果が、プログラムが正常であることを示す判定結果の場合、アクセス要求の一時停止を解除し、保留していたアプリケーション３２からのアクセス要求を実行する。
【００３４】
また、通知部１５は、サイバー攻撃を検知したと判断した場合、サイバー攻撃を検知したことを示す情報を通知する。例えば、通知部１５は、検知装置１０と接続されたシステム管理者用の端末（図示省略）のディスプレイに、図８に示すようなアラームメッセージ２５を表示する。なお、通知の方法は上記の例に限定されず、指定された端末や通知先のアドレスへアラームメッセージをメールで送信してもよいし、音声メッセージやアラート音を出力するようにしてもよい。また、ＭＩＢ（Management Information Base）を拡張して追加してもよい。
【００３５】
検知装置１０は、例えば図９に示すコンピュータ４０で実現することができる。コンピュータ４０は、ＣＰＵ（Central Processing Unit）４１と、一時記憶領域としてのメモリ４２と、不揮発性の記憶部４３とを備える。また、コンピュータ４０は、入力装置、表示装置等の入出力装置４４と、記憶媒体４９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ（Read/Write）部４５と、インターネット等のネットワークに接続される通信Ｉ／Ｆ（Interface）４６とを備える。ＣＰＵ４１、メモリ４２、記憶部４３、入出力装置４４、Ｒ／Ｗ部４５、及び通信Ｉ／Ｆ４６は、バス４７を介して互いに接続される。
【００３６】
記憶部４３は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部４３には、コンピュータ４０を、検知装置１０として機能させるための検知プログラム５０が記憶される。検知プログラム５０は、学習プロセス５１と、検出プロセス５２と、特定プロセス５３と、判定プロセス５４と、通知プロセス５５とを有する。また、記憶部４３は、初期固有情報テーブル２２を構成する情報が記憶される情報記憶領域６０を有する。
【００３７】
ＣＰＵ４１は、検知プログラム５０を記憶部４３から読み出してメモリ４２に展開し、検知プログラム５０が有するプロセスを順次実行する。ＣＰＵ４１は、学習プロセス５１を実行することで、図１に示す学習部１１として動作する。また、ＣＰＵ４１は、検出プロセス５２を実行することで、図１に示す検出部１２として動作する。また、ＣＰＵ４１は、特定プロセス５３を実行することで、図１に示す特定部１３として動作する。また、ＣＰＵ４１は、判定プロセス５４を実行することで、図１に示す判定部１４として動作する。また、ＣＰＵ４１は、通知プロセス５５を実行することで、図１に示す通知部１５として動作する。また、ＣＰＵ４１は、情報記憶領域６０から情報を読み出して、初期固有情報テーブル２２をメモリ４２に展開する。これにより、検知プログラム５０を実行したコンピュータ４０が、検知装置１０として機能することになる。なお、プログラムを実行するＣＰＵ４１はハードウェアである。
【００３８】
なお、検知プログラム５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）等で実現することも可能である。
【００３９】
次に、第１実施形態に係る検知装置１０の作用について説明する。例えば、情報資産システム３０の初回起動時など、アプリケーション３２を実現するプログラムが正常な状態で、検知装置１０において、図１０に示す学習処理が実行される。また、情報資産システム３０において、プログラムのバージョンアップやパッチなどにより、プログラムが正当な理由で更新されたことを示すイベントを検知装置１０が検知すると、検知装置１０において、図１１に示す更新処理が実行される。さらに、アプリケーション３２の実行中には、検知装置１０において、図１２に示す検知処理が実行される。
【００４０】
まず、図１０に示す学習処理について説明する。
【００４１】
ステップＳ１１で、学習部１１が、情報資産システム３０から、アプリケーション３２を実現するための複数のプログラムの各々について、正常状態のプログラム情報の各々を取得する。そして、学習部１１は、取得したプログラム情報から、情報資産３１へのアクセス実行を許容するプログラムを抽出し、例えば、図２に示すような、学習対象プログラムリスト２１を作成する。
【００４２】
次に、ステップＳ１２で、学習部１１が、学習対象プログラムリスト２１の先頭の行を参照する。なお、ここでは、学習対象プログラムリスト２１の先頭は、リストの名前が記述された行である。
【００４３】
次に、ステップＳ１３で、学習部１１が、学習対象プログラムリスト２１の次の行を参照する。
【００４４】
次に、ステップＳ１４で、学習部１１が、参照した行にプログラム名の記述があるか否かを判定することにより、処理対象となる次の学習対象プログラムが存在するか否かを判定する。次の学習対象プログラムが存在する場合には、処理はステップＳ１５へ移行し、学習部１１が、存在すると判定した次の学習対象プログラムを選択する。
【００４５】
次に、ステップＳ１６で、学習部１１が、選択した学習対象プログラムのプログラム情報から初期固有情報としてハッシュ値を算出し、選択した学習対象プログラムのプログラム名と対応付けて、例えば、図３に示すような初期固有情報テーブル２２に記憶する。そして、処理はステップＳ１３に戻る。
【００４６】
ステップＳ１４で、学習部１１が、処理対象となる次の学習対象プログラムが存在しないと判定すると、学習処理は終了する。
【００４７】
次に、図１１に示す更新処理について説明する。
【００４８】
ステップＳ２１で、学習部１１が、検出したプログラムの更新についてのイベントに基づいて、更新されたプログラムを特定する。そして、学習部１１は、特定したプログラムのプログラム名が学習対象プログラムリスト２１に存在するか否かを判定することにより、更新されたプログラムが学習対象プログラムか否かを判定する。更新されたプログラムが学習対象プログラムの場合には、処理はステップＳ２２へ移行し、学習対象プログラムではない場合には、更新処理は終了する。
【００４９】
ステップＳ２２では、学習部１１が、更新されたプログラムのプログラム情報からハッシュ値を算出することにより、初期固有情報を再生成する。学習部１１は、初期固有情報テーブル２２において、更新されたプログラムのプログラム名と対応付けて記憶されている初期固有情報を、再生成した初期固有情報で更新し、更新処理は終了する。
【００５０】
次に、図１２に示す検知処理について説明する。検知処理は、情報資産システム３０で実行されるアプリケーション３２においてイベントが発生する毎に実行される。
【００５１】
ステップＳ３１で、検出部１２が、情報資産システム３０で実行されるアプリケーション３２において発生するイベントを検出し、検出したイベントが情報資産３１へのアクセス要求を示すイベントか否かを判定する。情報資産３１へのアクセス要求を示すイベントの場合、処理はステップＳ３２へ移行し、情報資産３１へのアクセス要求を示すイベントではない場合、検知処理は終了する。
【００５２】
ステップＳ３２では、検出部１２が、アクセス要求を一時停止し、アプリケーション３２からの要求を保留する。
【００５３】
次に、ステップＳ４０で、特定処理が実行される。ここで、図１３を参照して、特定処理について詳述する。
【００５４】
ステップＳ４１で、検出部１２が、情報資産３１へのアクセス要求を示すイベントに基づいて、情報資産３１へのアクセス要求を行ったプロセスのプロセス情報を取得し、特定部１３へ受け渡す。特定部１３は、情報資産３１へのアクセス要求を行ったプロセスを特定プロセスに設定する。
【００５５】
次に、ステップＳ４２で、特定部１３が、特定プロセスのプロセスＩＤを特定プログラムテーブル２４に記憶する。
【００５６】
次に、ステップＳ４３で、特定部１３が、特定プロセスのプロセス情報２３Ａに基づいて、特定プロセスに対応するプログラムを特定する。そして、特定部１３は、上記ステップＳ４２で特定プログラムテーブル２４に記憶したプロセスＩＤに対応付けて、特定したプログラムのプログラム名を記憶する。
【００５７】
次に、ステップＳ４４で、特定部１３が、特定プロセスのプロセス情報２３Ａに基づいて、特定プロセスを生成した前のプロセス（生成元プロセス）が存在するか否かを判定する。生成元プロセスが存在する場合には、処理はステップＳ４５へ移行する。
【００５８】
ステップＳ４５では、特定部１３が、生成元プロセスを新たな特定プロセスに設定し、処理はステップＳ４２に戻る。
【００５９】
ステップＳ４４で、特定部１３が、生成元プロセスが存在しないと判定した場合には、特定処理は終了し、検知処理（図１２）に戻る。
【００６０】
次に、検知処理のステップＳ５１で、検知部１２が、上記ステップＳ４０で生成された特定プログラムテーブル２４の先頭の行を参照する。なお、ここでは、特定プログラムテーブル２４の先頭は、テーブルの名前が記述された行であるとする。
【００６１】
次に、ステップＳ５２で、検知部１２が、特定プログラムテーブル２４の次の行を参照する。
【００６２】
次に、ステップＳ５３で、検知部１２が、参照した行にプログラム名の記述があるか否かを判定することにより、処理対象となる次の特定プログラムが存在するか否かを判定する。次の特定プログラムが存在する場合には、処理はステップＳ６０へ移行し、特定プログラムが存在しない場合には、処理はステップＳ７４へ移行する。
【００６３】
ステップＳ６０では、判定処理が実行される。ここで、図１４を参照して、判定処理について詳述する。
【００６４】
ステップＳ６１で、判定部１４が、上記ステップＳ５３で存在すると判定した次の特定プログラムを選択する。
【００６５】
次に、ステップＳ６２で、判定部１４が、初期固有情報テーブル２２を参照して、選択した特定プログラムの初期固有情報が記憶されているか否かを判定する。特定プログラムの初期固有情報が記憶されている場合には、処理はステップＳ６３へ移行し、記憶されていない場合には、処理はステップＳ６６へ移行する。
【００６６】
ステップＳ６３では、判定部１４が、特定プログラムについて、現在メモリに展開されているプログラム情報を取得し、取得したプログラム情報から、現在の固有情報としてハッシュ値を算出する。
【００６７】
次に、ステップＳ６４で、判定部１４が、選択した特定プログラムのプログラム名に対応付けて初期固有情報テーブル２２に記憶されている初期固有情報を取得する。判定部１４は、取得した初期固有情報と、生成した現在の固有情報とが一致するか否かを判定する。初期固有情報と現在の固有情報とが一致する場合には、処理はステップＳ６５へ移行し、判定部１４が、該当のプログラムは正常であると判定する。一方、初期固有情報と現在の固有情報とが不一致の場合には、処理はステップＳ６６へ移行し、判定部１４が、該当のプログラムは異常であると判定する。そして、判定処理は終了し、検知処理（図１２）に戻る。
【００６８】
なお、上記ステップＳ６２で否定判定されて、上記ステップＳ６６へ移行した場合は、本来存在しないプログラムがプロセスとして動作していること、すなわち、そのプロセスは異常かつマルウェアであると考えられる。また、上記ステップＳ６４で否定判定されて、上記ステップＳ６６へ移行した場合は、正常なプログラムの一部が改ざんされた場合などが考えられる。本実施形態における判定処理により、プログラムの改ざん及びマルウェア感染の双方を検知することができる。
【００６９】
次に、検知処理のステップＳ７１で、通知部１５が、上記ステップ６０で判定部１４により判定された判定結果が「異常」か否かを判定する。判定結果が「異常」の場合には、処理はステップＳ７２へ移行し、判定結果が「正常」の場合には、処理はステップＳ５２に戻る。
【００７０】
ステップＳ７２では、通知部１５が、サイバー攻撃を検知したことを示す情報を、例えば、検知装置１０と接続されたシステム管理者用の端末（図示省略）等に通知する。
【００７１】
次に、ステップＳ７３で、通知部１５が、一時停止しているアクセス要求を却下することをアプリケーション３２へ通知し、検知処理は終了する。
【００７２】
一方、上記ステップＳ５３で否定判定される場合、すなわち、特定プログラムテーブル２４に含まれる全てのプログラムについて正常と判定される場合、処理はステップＳ７４へ移行する。ステップＳ７４では、通知部１５が、アクセス要求の一時停止を解除し、保留していたアプリケーション３２からのアクセス要求を実行し、検知処理は終了する。
【００７３】
以上説明したように、第１実施形態に係る検知装置１０は、正常状態のプログラムの各々について、プログラム情報から一意に算出される値を予め初期固有情報として生成して記憶しておく。そして、検知装置１０は、情報資産へアクセスするプロセスが検出された場合、検出されたプロセス及びそのプロセスの生成元を遡った全てのプロセスに対応するプログラムを特定する。また、検知装置１０は、特定したプログラムの現在の状態のプログラム情報から現在の固有情報を生成する。そして、検知装置１０は、初期固有情報と現在の固有情報とを比較することにより、プログラムの異常を検知する。これにより、プログラムの異常をリアルタイムで検知することができる。
【００７４】
また、サイバー攻撃を検知するためのウイルス検知ソフトウェアのように、攻撃パターン情報を必要としないため、ゼロディ攻撃に代表される未知の脆弱性に対しても、プログラムの異常を検知することができる。また、多数の機器を含むシステムなどに対しては、機器毎にウイルス検知ソフトウェアを導入する必要がなく、コストを削減することができる。また、ＩｏＴ機器などのように、メモリ容量などのリソースが制限されるシステムにおいても、適用が容易である。
【００７５】
また、プログラムの異常が検知された場合に、情報資産へのアクセス要求を却下することで、容易には情報資産を「出さない」仕組み、すなわち、情報資産の改ざん、削除や漏洩を防止する仕組みを実現することができる。
【００７６】
また、サイバー攻撃されている事実をリアルタイムで検知することで、ユーザへの通知や注意喚起、また、攻撃の解析や攻撃者の特定への応用が可能となる。例えば、通知部１５がサイバー攻撃を検知したと判断した場合、さらに、該当のプロセスの実行ユーザや端末（又は通信ポート）を特定することによる攻撃監視や、動作停止による攻撃拡大の防止等を実施する機能を設けてもよい。これにより、攻撃被害や影響の拡大を防止し、攻撃者や攻撃ルートの特定が容易となる。
【００７７】
また、本実施形態では、情報資産へアクセス要求を行うプロセスから生成元のプロセスを遡って、アクセス要求を行うプロセスに関連する全てのプロセスに対応するプログラムを異常検知の対象とする。これにより、直接アクセス要求を行うプロセスに対応するプログラム以外の関連するプログラムが改ざんされている場合や、マルウェア感染している場合も検知することができる。
【００７８】
＜第２実施形態＞
次に、第２実施形態について説明する。なお、第２実施形態において、第１実施形態と同様の部分については、同一符号を付して詳細な説明を省略する。
【００７９】
図１５に示すように、第２実施形態に係る検知装置２１０は、情報資産システム３０と接続される。検知装置２１０は、機能的には、学習部２１１と、検出部１２と、特定部１３と、判定部２１４と、通知部１５と、設定部１６とを含む。
【００８０】
学習部２１１は、アプリケーション３２を実現する複数のプログラムの正常状態における実行時の動作情報を入力情報として、その特徴を学習する。すなわち、学習部２１１は、プログラムの改ざんやマルウェアによる異常プロセスなどの攻撃により、不正なアクセス要求が発生していない正常なプロセスの動作を学習することにより、初期固有情報を生成する。
【００８１】
具体的には、学習部２１１は、第１実施形態における学習部１１と同様に、学習対象プログラムリスト２１を作成する。また、学習部２１１は、アプリケーション３２を複数回実行し、各実行時に学習対象プログラムの動作情報を取得する。動作情報は、例えば、学習対象プログラムにより起動されるアクセス要求するプロセスの前後のプロセス、アクセス要求するプロセス内で起動するシステムコールの種類、起動順序、起動回数、起動タイミング等の少なくとも一つとすることができる。学習部２１１は、複数回の実行で取得された各動作情報の集約や統計的処理や機械学習を行って、各学習対象プログラムについて、初期固有情報を生成する。学習時のアプリケーション３２の実行回数は、後述する判定部２１４での判定に利用する際に十分な判定精度を出せる一定数以上とする。学習部２１１は、各学習対象プログラムについて生成した初期固有情報を、各学習対象プログラムのプログラム名と対応付けて、例えば、図１６に示すような初期固有情報テーブル２２２に記憶する。
【００８２】
図１６の例では、動作情報として、学習対象プログラムにより起動されるアクセス要求するプロセスの前後のプロセス、プロセス内で起動するシステムコールの種類、システムコール毎の起動数及び起動タイミング等が取得された例を示している。そして、学習部２１１は、前後のプロセスについては、前プロセスに対応するプログラムを特定し初期固有情報「前プログラム」を生成し、後プロセスに対応するプログラムを特定し初期固有情報「後プログラム」を生成する。また、学習部２１１は、プロセス内で起動するシステムコールの種類を、初期固有情報「起動システムコール」として生成する。アプリケーション３２の複数の実行で、複数種類の前プロセス、後プロセス、及びシステムコールの種類が取得されている場合は、学習部２１１は、これらを集約して、初期固有情報を生成する。また、学習部２１１は、アプリケーション３２の複数の実行で取得されたシステムコール毎の起動数の総数を、初期固有情報「Ｘ起動数（Ｘはシステムコールの種類）」として生成する。また、学習部２１１は、アプリケーション３２の複数の実行で取得されたシステムコール毎の起動タイミングの平均などの統計処理を行った値を、初期固有情報「Ｘ起動タイミング（Ｘはシステムコールの種類）」として生成する。
【００８３】
なお、アプリケーション３２を実現する複数のプログラムの正常状態における実行は、アプリケーション３２の初回起動時に行うことができる。また、情報資産システム３０の運用時に、後述する判定部２１４での判定結果が正常であるプログラムの実行時に取得された動作情報を追加学習することにより、初期固有情報を再生成してもよい。また、判定結果が異常であるプログラムの実行時に取得された動作情報を削除して再学習することにより、初期固有情報を再生成してもよい。
【００８４】
判定部２１４は、後述する設定部１６で保護対象として設定された情報資産３１へのアクセスを要求したプロセスの実行時に、上述した学習部２１１で取得される動作情報と同様の動作情報を取得し、現在の固有情報を生成する。また、判定部２１４は、第１実施形態における判定部１４と同様に、図１７に示すように、初期固有情報と現在の固有情報との一致又は不一致により、各プログラムの正常又は異常を判定する。
【００８５】
設定部１６は、情報資産３１毎に、保護対象とするか否かの指定を受け付け、例えば、図１８に示すように、情報資産３１の制御情報の一部に、保護対象フラグとして設定する。具体的には、設定部１６は、各情報資産３１についての保護対象フラグの初期状態を、保護非対象を示す値（例えば、「０」）に設定しておく。そして、設定部１６は、保護対象として指定を受け付けた情報資産３１についての保護対象フラグを、保護対象を示す値（例えば、「１」）に設定する。また、設定部１６は、保護非対象とする指定を受け付けた場合、対象の情報資産３１についての保護対象フラグを、保護非対象を示す値に戻す。設定部１６により保護対象に設定された情報資産３１へアクセス要求するプロセスに対応するプログラムのみが、上記の判定部２１４での判定の対象となる。
【００８６】
検知装置２１０は、例えば図９に示すコンピュータ４０で実現することができる。コンピュータ４０の記憶部４３には、コンピュータ４０を、検知装置２１０として機能させるための検知プログラム２５０が記憶される。検知プログラム２５０は、学習プロセス２５１と、検出プロセス５２と、特定プロセス５３と、判定プロセス２５４と、通知プロセス５５と、設定プロセス５６とを有する。また、記憶部４３は、初期固有情報テーブル２２２を構成する情報が記憶される情報記憶領域６０を有する。
【００８７】
ＣＰＵ４１は、検知プログラム２５０を記憶部４３から読み出してメモリ４２に展開し、検知プログラム２５０が有するプロセスを順次実行する。ＣＰＵ４１は、学習プロセス２５１を実行することで、図１５に示す学習部２１１として動作する。また、ＣＰＵ４１は、判定プロセス２５４を実行することで、図１５に示す判定部２１４として動作する。また、ＣＰＵ４１は、設定プロセス５６を実行することで、図１５に示す設定部１６として動作する。また、ＣＰＵ４１は、情報記憶領域６０から情報を読み出して、初期固有情報テーブル２２２をメモリ４２に展開する。他のプロセスについては、第１実施形態における検知プログラム５０と同様である。これにより、検知プログラム２５０を実行したコンピュータ４０が、検知装置２１０として機能することになる。なお、プログラムを実行するＣＰＵ４１はハードウェアである。
【００８８】
なお、検知プログラム２５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣやＦＰＧＡ等で実現することも可能である。
【００８９】
次に、第２実施形態に係る検知装置２１０の作用について、第１実施形態に係る検知装置１０の作用と異なる点について説明する。例えば、情報資産システム３０の初回起動時など、アプリケーション３２を実現するプログラムが正常な状態で、検知装置２１０において、図１９に示す学習処理が実行される。また、任意のタイミングで、検知装置２１０に、情報資産３１の保護対象又は保護非対象の指定が入力されると、検知装置２１０において、図２０に示す設定処理が実行される。さらに、アプリケーション３２の実行中には、検知装置２１０において、図１２に示す検知処理が実行される。
【００９０】
まず、図１９に示す学習処理について説明する。
【００９１】
ステップＳ８１で、学習部２１１が、アプリケーション３２にテストデータを入力して、実行開始を指示する。
【００９２】
次に、ステップＳ８２で、学習部２１１が、実行中のプロセスのプロセス情報を取得し、実行中のプロセスに対応するプログラムを特定し、学習対象プログラムリスト２１を参照して、特定したプログラムが学習対象プログラムか否かを判定する。学習対象プログラムの場合には、処理はステップＳ８３へ移行し、学習対象プログラムではない場合には、処理はステップＳ８４へ移行する。
【００９３】
ステップＳ８３で、学習部２１１が、実行中の学習対象プログラムの、前後プロセスやシステムコールの情報等の動作情報を取得する。
【００９４】
次に、ステップＳ８４で，学習部２１１が、アプリケーション３２の実行が終了したか否かを判定する。終了していない場合には、処理はステップＳ８２に戻り、次に実行中のプロセスについて、ステップＳ８２及びＳ８３の処理を繰り返す。アプリケーション３２が終了した場合には、処理はステップＳ８５へ移行する。
【００９５】
ステップＳ８５では、学習部２１１が、アプリケーション３２の実行が、予め定めた所定回数終了したか否かを判定する。所定回数終了していない場合には、処理はステップＳ８１に戻り、学習部２１１が、アプリケーション３２に新たなテストデータを入力して、実行開始を指示し、ステップＳ８２〜Ｓ８４の処理を繰り返す。アプリケーション３２の実行が所定回数終了した場合には、処理はステップＳ８６へ移行する。
【００９６】
ステップＳ８６では、学習部２１１が、上記ステップＳ８３で取得した各動作情報の集約や統計的処理や機械学習を行って、各学習対象プログラムについて、初期固有情報を生成する。学習部２１１は、各学習対象プログラムについて生成した初期固有情報を、各学習対象プログラムのプログラム名と対応付けて、例えば、図１６に示すような初期固有情報テーブル２２２に記憶する。そして、学習処理は終了する。
【００９７】
次に、図２０に示す設定処理について説明する。
【００９８】
ステップＳ９１で、設定部１６が、入力された情報資産３１の保護対象又は保護非対象の指定を受け付ける。
【００９９】
次に、ステップＳ９２で、設定部１６が、指定を受け付けた情報資産３１の制御情報の一部に設けられた保護対象フラグを、受け付けた指定に従って設定し、設定処理は終了する。
【０１００】
第２実施形態における検知処理では、第１実施形態における検知処理（図１２）のステップＳ３１で、情報資産３１へのアクセス要求を検出する処理で、保護対象フラグが保護対象を示す値に設定されている情報資産３１へのアクセス要求のみを対象とする。
【０１０１】
また、第２実施形態における検知処理のステップＳ６０では、第１実施形態と同様に、判定処理（図１４）が実行される。この際、判定処理のステップＳ６３で、判定部２１４が、特定プログラムの現在の固有情報としてハッシュ値を算出する変わりに、特定プログラム実行時の動作情報から現在の固有情報を生成する。
【０１０２】
以上説明したように、第２実施形態に係る検知装置２１０は、保護対象に設定された情報資産に対するアクセス要求を行うプロセスに対応するプログラムについてのみ、異常か否かの判定を行う。これにより、情報資産の量が多い場合でも、例えば機密度の高い情報資産のみを選択的に保護し、処理負荷を低減することができる。
【０１０３】
なお、第２実施形態における学習部２１１は、第１実施形態における学習部１１で実現してもよい。同様に、第１実施形態における学習部１１は、第２実施形態における学習部２１１で実現してもよい。
【０１０４】
＜第３実施形態＞
次に、第３実施形態について説明する。なお、第３実施形態において、第１実施形態と同様の部分については、同一符号を付して詳細な説明を省略する。
【０１０５】
図２１に示すように、第３実施形態に係る検知装置３１０は、情報資産システム３０と接続される。検知装置３１０は、機能的には、認証部１７と、認可部１８と、確証部１９とを含む。
【０１０６】
認証部１７は、アプリケーション３２を利用するユーザの本人性を認証する。例えば、認証部１７は、アプリケーション３２へのログイン時等にユーザに入力されたユーザの識別情報及びパスワードと、予め登録されているユーザの識別情報及びパスワードとを照合することにより認証を行う。
【０１０７】
認可部１８は、認証部１７により本人性が認証されたユーザの属性に応じて、アクセス可能な情報資産３１を認可する。例えば、認可部１８は、情報資産システム３０が企業内の業務システムの場合、予め登録された部署毎にアクセス可能な情報資産３１の範囲と、ユーザの所属部署とに基づいて、そのユーザからの情報資産３１へのアクセス要求を許可又は拒否する。
【０１０８】
確証部１９は、認証部１７及び認可部１８で用いたユーザの識別情報、パスワード、属性情報等は使用せず、「認証」及び「認可」により“アクセス可能”と判断されたアクセス要求の正当性を、アクセス要求するプロセス自体の正常性により判断する。すなわち、確証部１９の処理は、情報資産３１へのアクセス要求が、正規ユーザによる正常なアクセス要求であるか否かを、「認証」及び「認可」とは別の方法で検証することである。本実施形態では、この確証部１９の処理を、認証及び認可後のアクセス制御の位置付けとして、「確証」と称する。
【０１０９】
アクセス制御において、認証及び認可とは別に確証を行う理由は、サイバー攻撃が、プログラムの改ざんやマルウェアによって実行されることを前提に、サイバー攻撃を検知する仕組みを提供するためである。不正に改ざんされたプログラムやマルウェアからのアクセス要求に対して、「認証」及び「認可」では、サイバー攻撃への防御が万全とはいえない。具体的には、プロセスへの感染や、ユーザの識別情報及びパスワードを詐取又は権限奪取することにより、「認証」及び「認可」による検証を回避することが可能である。さらに、システムの複雑化やサイバー攻撃の高度化により、プログラム改ざん等による“なりすまし”やマルウェア感染のリスクに対しても、「認証」及び「認可」は有効であるとは言い難い。「認証」及び「認可」だけでは防御しきれない攻撃があることも想定し、情報資産へのアクセス要求を複数手段により複合的に強化することが望ましい。そこで、本実施形態では、認証及び認可で正常であると判断されたとしても、「確証」により、アクセス要求に対して容易には情報資産３１を「出さない」仕組みを実現し、情報資産３１をサイバー攻撃による改ざん、削除や漏洩から防御する。
【０１１０】
確証部１９は、具体的には、第１実施形態に係る検知装置１０又は第２実施形態に係る検知装置２１０により実現することができる。
【０１１１】
検知装置３１０は、例えば図２２に示すコンピュータ４０で実現することができる。コンピュータ４０の記憶部４３には、コンピュータ４０を、検知装置３１０として機能させるための検知プログラム３５０が記憶される。検知プログラム３５０は、認証プロセス５７と、認可プロセス５８と、確証プロセス５９とを有する。また、記憶部４３は、初期固有情報テーブル２２（又は２２２）を構成する情報が記憶される情報記憶領域６０を有する。
【０１１２】
ＣＰＵ４１は、検知プログラム３５０を記憶部４３から読み出してメモリ４２に展開し、検知プログラム３５０が有するプロセスを順次実行する。ＣＰＵ４１は、認証プロセス５７を実行することで、図２１に示す認証部１７として動作する。また、ＣＰＵ４１は、認可プロセス５８を実行することで、図２１に示す認可部１８として動作する。また、ＣＰＵ４１は、確証プロセス５９を実行することで、図２１に示す確証部１９として動作する。また、ＣＰＵ４１は、情報記憶領域６０から情報を読み出して、初期固有情報テーブル２２（又は２２２）をメモリ４２に展開する。これにより、検知プログラム３５０を実行したコンピュータ４０が、検知装置３１０として機能することになる。なお、プログラムを実行するＣＰＵ４１はハードウェアである。
【０１１３】
なお、検知プログラム３５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣやＦＰＧＡ等で実現することも可能である。
【０１１４】
次に、第３実施形態に係る検知装置３１０の作用について、第１実施形態に係る検知装置１０又は第２実施形態に係る検知装置２１０の作用と異なる点について説明する。第１実施形態と同様の学習処理（図１０）、又は第２実施形態と同様の学習処理（図１９）が実行されて、初期固有情報テーブル２２（又は２２２）が作成され、所定の記憶領域に記憶される。この状態で、ユーザからアプリケーション３２へのログインが行われた場合、図２３に示す検知処理が実行される。
【０１１５】
ステップＳ１０１で、認証部１７が、ユーザにより入力されたログイン情報（ユーザの識別情報、パスワード等）を受け付け、受け付けたログイン情報を用いて、アプリケーション３２を利用するユーザの本人性を認証する。
【０１１６】
次に、ステップＳ１０２で、認証部１７が、認証に成功したか否かを判定する。認証に成功した場合には、処理はステップＳ１０３へ移行し、認証に失敗した場合には、アプリケーション３２を終了し、検知処理は終了する。
【０１１７】
ステップＳ１０３では、認可部１８が、情報資産システム３０で実行されるアプリケーション３２において発生するイベントを検出し、検出したイベントが情報資産３１へのアクセス要求を示すイベントか否かを判定する。情報資産３１へのアクセス要求を示すイベントの場合、処理はステップＳ１０４へ移行し、情報資産３１へのアクセス要求を示すイベントではない場合、処理はステップＳ１０７へ移行する。
【０１１８】
ステップＳ１０４では、認可部１８が、ユーザの属性に応じて、アクセス要求された情報資産３１に対するユーザのアクセス権限を判断する。
【０１１９】
次に、ステップＳ１０５で、認可部１８が、アクセス要求された情報資産３１に対するユーザのアクセス権限があるか否かを判定する。アクセス権限がある場合には、処理はステップＳ１０６へ移行し、アクセス権限がない場合には、処理はステップＳ１０７へ移行する。
【０１２０】
ステップＳ１０６では、確証部１９が確証処理を実行する。確証処理は、例えば、第１又は第２実施形態における検知処理（図１２）のステップＳ３２〜Ｓ７４と同様である。
【０１２１】
ステップＳ１０７では、認証部１７が、ユーザがアプリケーション３２からログアウトしたか否かを判定する。ログアウトしていない場合には、処理はステップＳ１０３に戻り、ログアウトした場合には、検知処理は終了する。
【０１２２】
以上説明したように、第３実施形態に係る検知装置３１０は、第１又は第２実施形態における検知処理を、認証及び認可後のアクセス制御の位置付けである「確証」として実行する。
【０１２３】
アクセス制御の認証及び認可により、情報資産へのアクセスの要求元が正規のユーザか否かを判断することは、ユーザによる識別情報やパスワードの誤入力や、オペレーションミスなどによる、情報資産への誤ったアクセスを防御するという面では有効である。しかし、プログラムの改ざんやマルウェアのような不正なプロセスによる情報資産へのアクセス要求の場合、認証や認可によるユーザの正当性の判断だけでは、不正なアクセス要求であると判断できない場合があり、情報資産の改ざんや漏えいのリスクが発生する。第３実施形態に係る検知装置３１０は、上述のように、確証を行うことで、認証及び認可だけでは防御することができないサイバー攻撃から情報資産を守り、かつ、サイバー攻撃をリアルタイムで検知することができる。
【０１２４】
なお、上記各実施形態では、情報資産へのアクセス要求を契機として、アクセス要求したプロセスに対応するプログラムの正当性を判断する場合について説明したが、これに限定されない。例えば、所定時間間隔で定期的に実行中のプロセスに対応するプログラムを特定し、特定したプログラムの現在のプログラム情報から生成される現在の固有情報と、正常時の初期固有情報とを比較して、プログラムの正当性を判断するようにしてもよい。これにより、情報資産へのアクセス要求を行わないプロセスについても、対応するプログラムの改ざんやマルウェア感染等を検知することができる。
【０１２５】
また、上記各実施形態では、検知プログラム５０、２５０、３５０が記憶部４３に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【０１２６】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１２７】
（付記１）
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータに実行させるための検知プログラム。
【０１２８】
（付記２）
前記アクセスを要求するプロセスの生成元のプロセスを順次遡って、前記アクセスを要求するプロセスに関連する全てのプロセスを特定し、特定した前記全てのプロセスの各々として実行されているプログラムの各々を特定する付記１に記載の検知プログラム。
【０１２９】
（付記３）
前記固有情報を、前記プログラムのコードから算出される一意な値とする付記１又は付記２に記載の検知プログラム。
【０１３０】
（付記４）
前記固有情報を、前記アクセスを要求するプロセスの実行時に取得されるシステムコールの情報、及び前記アクセスを要求するプロセスの前後に実行されるプロセスの情報の少なくとも一つを含む動作情報とする付記１又は付記２に記載の検知プログラム。
【０１３１】
（付記５）
正常状態のプログラムから前記正常状態における固有情報を学習することをさらに含む処理を前記コンピュータに実行させる付記１〜付記４のいずれか１項に記載の検知プログラム。
【０１３２】
（付記６）
前記不一致の場合には、前記実行中のプログラムについての正常状態における固有情報が存在しない場合が含まれる付記１〜付記５のいずれか１項に記載の検知プログラム。
【０１３３】
（付記７）
プログラムが更新された場合、更新されたプログラムに関する固有情報を更新する付記１〜付記６のいずれか１項に記載の検知プログラム。
【０１３４】
（付記８）
前記情報資産のうち、異常検知の対象とする情報資産を設定可能とする付記１〜付記７のいずれか１項に記載の検知プログラム。
【０１３５】
（付記９）
前記不一致の場合、サイバー攻撃を検知したことを示す情報を出力することをさらに含む処理を前記コンピュータに実行させるための付記１〜付記８のいずれか１項に記載の検知プログラム。
【０１３６】
（付記１０）
前記情報資産へアクセスするユーザの本人性を認証し、前記情報資産に対する前記ユーザのアクセス権限を認可することにより、前記ユーザによる前記情報資産へのアクセス制御を行うことをさらに含む処理を前記コンピュータに実行させ、
前記アクセス制御の元で実行されるプロセスについて、前記プログラムを特定する処理、及び前記プログラムの異常を検知する処理を実行する
付記１〜付記９のいずれか１項に記載の検知プログラム。
【０１３７】
（付記１１）
周期的な所定のタイミングで、プロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータに実行させるための検知プログラム。
【０１３８】
（付記１２）
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定する特定部と、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する判定部と、
を含む検知装置。
【０１３９】
（付記１３）
前記特定部は、前記アクセスを要求するプロセスの生成元のプロセスを順次遡って、前記アクセスを要求するプロセスに関連する全てのプロセスを特定し、特定した前記全てのプロセスの各々として実行されているプログラムの各々を特定する付記１２に記載の検知装置。
【０１４０】
（付記１４）
前記固有情報を、前記プログラムのコードから算出される一意な値とする付記１２又は付記１３に記載の検知装置。
【０１４１】
（付記１５）
前記固有情報を、前記アクセスを要求するプロセスの実行時に取得されるシステムコールの情報、及び前記アクセスを要求するプロセスの前後に実行されるプロセスの情報の少なくとも一つを含む動作情報とする付記１２又は付記１３に記載の検知装置。
【０１４２】
（付記１６）
正常状態のプログラムから前記正常状態における固有情報を学習する学習部を含む付記１２〜付記１５のいずれか１項に記載の検知装置。
【０１４３】
（付記１７）
前記学習部は、プログラムが更新された場合、更新されたプログラムに関する固有情報を更新する付記１６に記載の検知装置。
【０１４４】
（付記１８）
前記情報資産のうち、異常検知の対象とする情報資産を設定可能とする付記１２〜付記１７のいずれか１項に記載の検知装置。
【０１４５】
（付記１９）
前記情報資産へアクセスするユーザの本人性を認証し、前記情報資産に対する前記ユーザのアクセス権限を認可することにより、前記ユーザによる前記情報資産へのアクセス制御を行うアクセス制御部を含み、
前記アクセス制御の元で実行されるプロセスについて、前記特定部の処理、及び前記判定部の処理を実行する
付記１２〜付記１８のいずれか１項に記載の検知装置。
【０１４６】
（付記２０）
情報資産へのアクセスを要求するプロセスとして実行されているプログラムを特定し、
特定したプログラムの実行中の状態における固有情報と、前記実行中のプログラムについて予め取得された正常状態における固有情報とが不一致の場合に、前記特定したプログラムが異常であると判定する
ことを含む処理をコンピュータが実行する検知方法。
【符号の説明】
【０１４７】
１０、２１０、３１０ 検知装置
１１、２１１  学習部
１２   検出部
１３   特定部
１４、２１４  判定部
１５   通知部
１６   設定部
１７   認証部
１８   認可部
１９   確証部
２１   学習対象プログラムリスト
２２、２２２  初期固有情報テーブル
２３   プロセス情報
２３Ａ  プロセス情報
２４   特定プログラムテーブル
２５   アラームメッセージ
３０   情報資産システム
３１   情報資産
３２   アプリケーション
４０   コンピュータ
４１   ＣＰＵ
４２   メモリ
４３   記憶部
４９   記憶媒体
５０、２５０、３５０ 検知プログラム
【図１】
2019067065.tif 000003
【図２】
2019067065.tif 000004
【図３】
2019067065.tif 000005
【図４】
2019067065.tif 000006
【図５】
2019067065.tif 000007
【図６】
2019067065.tif 000008
【図７】
2019067065.tif 000009
【図８】
2019067065.tif 000010
【図９】
2019067065.tif 000011
【図１０】
2019067065.tif 000012
【図１１】
2019067065.tif 000013
【図１２】
2019067065.tif 000014
【図１３】
2019067065.tif 000015
【図１４】
2019067065.tif 000016
【図１５】
2019067065.tif 000017
【図１６】
2019067065.tif 000018
【図１７】
2019067065.tif 000019
【図１８】
2019067065.tif 000020
【図１９】
2019067065.tif 000021
【図２０】
2019067065.tif 000022
【図２１】
2019067065.tif 000023
【図２２】
2019067065.tif 000024
【図２３】
2019067065.tif 000025