(57)【要約】【課題】プログラム中の不当動作を実行コード単位で阻止してセキュリティを保持する。【解決手段】情報処理装置１００は、ＲＡＭ３に読み出されたＡＰＰを構成する各プロセスの実行コードの動作を中断し、かつ実行コードのパラメータを取り込んで解析するプロセス監視部６１と、プロセスの不当性の判定基準となる規約情報を記憶した規約情報部６５と、解析した実行コードのパラメータと規約情報とからプロセスの不当性を判定する判定部６２とを備えている。【選択図】図２
2017215648.tif 000002
【特許請求の範囲】
【請求項１】
主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段と、
前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部と、
解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段とを備えた情報処理監視装置。
【請求項２】
前記判定手段によって前記プロセスが正当と判定された場合、前記中断した実行コードの動作を開始させ、前記判定手段によって前記プロセスが不当と判定された場合、前記中断した実行コードの動作を終了させる結果処理手段を備えたことを特徴とする請求項１に記載の情報処理監視装置。
【請求項３】
監視対象とする実行コードの種類を予め設定した監視対象コード情報記憶部を備えたことを特徴とする請求項１又は２に記載の情報処理監視装置。
【請求項４】
前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、特定の順番で実行される複数の実行コードの組みを含み、
前記規約情報記憶部は、前記規約情報として、前記特定の順番の複数の実行コードの組が実行された場合の前記プロセスの不当性の判定基準となる手続手順ルールを含み、
前記プロセス監視手段は、前記特定の順番の複数の実行コードの各パラメータを解析し、
前記判定手段は、前記特定の順番の複数の実行コードの各パラメータと、対応する前記手続手順ルールとから前記プロセスの不当性を判定することを特徴とする請求項３に記載の情報処理監視装置。
【請求項５】
前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、予め設定された種類の実行コードを含むことを特徴とする請求項４に記載の情報処理監視装置。
【請求項６】
前記監視対象プロセス情報記憶部は、前記主メモリ上で動作する実行コードを監視対象として含むことを特徴とする請求項３〜５のいずれかに記載の情報処理監視装置。
【請求項７】
前記手続手順ルールに該当する複数の実行コードのうち、先頭の実行コードは、リソースにアクセスする処理を伴うものであることを特徴とする請求項４〜６のいずれかに記載の情報処理監視装置。
【請求項８】
主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段、
前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部、
及び解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段、として情報処理装置を機能させるプログラム。
【請求項９】
前記判定手段によって前記プロセスが正当と判定された場合、前記中断した実行コードの動作を開始させ、前記判定手段によって前記プロセスが不当と判定された場合、前記中断した実行コードの動作を終了させる結果処理手段として、前記情報処理装置を機能させる請求項８に記載のプログラム。
【請求項１０】
監視対象とする実行コードの種類を予め設定した監視対象コード情報記憶部として、前記情報処理装置を機能させる請求項８又は９に記載のプログラム。
【請求項１１】
前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、特定の順番で実行される複数の実行コードの組みを含み、
前記規約情報記憶部は、前記規約情報として、前記特定の順番の複数の実行コードの組が実行された場合の前記プロセスの不当性の判定基準となる手続手順ルールを含み、
前記プロセス監視手段は、前記特定の順番の複数の実行コードの各パラメータを解析し、
前記判定手段は、前記特定の順番の複数の実行コードの各パラメータと、対応する前記手続手順ルールとから前記プロセスの不当性を判定することを特徴とする請求項１０に記載のプログラム。
【請求項１２】
前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、予め設定された種類の実行コードを含むことを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記監視対象プロセス情報記憶部は、前記主メモリ上で動作する実行コードを監視対象として含むことを特徴とする請求項１０〜１２のいずれかに記載のプログラム。
【請求項１４】
前記手続手順ルールに該当する複数の実行コードのうち、先頭の実行コードは、リソースにアクセスする処理を伴うものであることを特徴とする請求項１１〜１３のいずれかに記載のプログラム。
【請求項１５】
主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視ステップと、
解析した前記実行コードのパラメータと規約情報記憶部に記憶された前記プロセスの不当性の判定基準となる規約情報とから前記プロセスの不当性を判定する判定ステップとを情報処理装置に実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段、
前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部、
及び解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段、として情報処理装置を機能させる情報処理監視方法。
【請求項１７】
主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段と、
前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部と、
解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段とを備えた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムによって実行される情報処理動作を監視するセキュリティ技術に関する。
【背景技術】
【０００２】
昨今、不正かつ有害な動作を行う意図で作成された悪意のあるプログラム（以下、不当プログラム）によるリソース側へのアクセス、例えばファイルの改竄やシステムの設定変更等によってコンピュータのセキュリティが大きく損われている。今日、不当プログラムのリソースへのアクセスを監視し、不当動作を規制する各種の対応ソフトウェアが提案されている。
【０００３】
特許文献１には、リソースに対する処理要求であるＩ／Ｏプロセスを監視するステップと、アプリケーションから発行されたリソースに対する処理要求を一時保留するステップと、アプリケーションが正規のアプリケーションであるか否かをハッシュ値で認証するステップと、起動されたアプリケーションの認証結果が成功の場合にのみ、前記一時保留した処理要求による処理を許可するステップとを備えて、リソースの情報漏洩防止を図るアプリケーションの監視方法が記載されている。
【０００４】
特許文献２には、コンピュータ上で実行されるアプリケーションがハードディスクＨＤＤ等の記憶装置に記憶された情報にアクセスする時点で、オペレーティングシステム（ＯＳ）のフック機能を利用してこのアプリケーションをフックし、予め設定されたアクセス許容条件表の内容と照合することで判定し、マッチングしない場合にはウイルス等の不正なアクセスであるとして、記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するコンピュータの情報漏洩防止システムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１０８２５３号公報
【特許文献２】特開２００７−１４０７９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されたアプリケーションの監視方法は、リソースに対する処理要求のプロセス毎に、当該アプリケーションのハッシュ値を算出し、算出したハッシュ値と予め記憶しているハッシュ値とを照合するものである。このように、リソースに対する処理要求時にハッシュ値による認証照合を試みるだけでは信頼性の高い監視に限界がある。
【０００７】
特許文献２に記載された情報漏洩防止システムは、ファイルシステムの入出力に関する機能（ＡＰＩ（ApplicationProgramming Interface）、シスコール（Syscall））を監視対象とするもので、アクセス許容条件として、コンピュータのユーザインタフェースを介して入力される、ファイルデータの書き込みなどの操作を表すＩＯタイプ、アプリケーション名、データファイル名、実行プログラムの実行制約条件（日時、範囲等）などの所定のチェック項目を、ホワイトリストであるアクセス許容条件表の内容と照合するものであるため、ホワイトリストとの照合処理のみでは、同様に監視に限界がある。
【０００８】
また、特許文献１，２では、リソースに対するＩＯアクセスのみを監視対象としている点で充分とはいえない。
【０００９】
本発明は、上記に鑑みてなされたもので、実行コードを監視対象とし、かつオペレーティングシステム（ＯＳ）に原始的に設定された各種処理に対する約束事（規約）に従わない動作を禁止することで、セキュリティを効果的に保持する情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る情報処理監視装置は、主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段と、前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部と、解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段とを備えたものである。
【００１１】
また、本発明に係るプログラムは、主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段、前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部、及び解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段、として情報処理装置を機能させるものである。
【００１２】
また、本発明に係る、プログラムを記録したコンピュータ読み取り可能な記録媒体は、主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視ステップと、解析した前記実行コードのパラメータと規約情報記憶部に記憶された前記プロセスの不当性の判定基準となる規約情報とから前記プロセスの不当性を判定する判定ステップとを情報処理装置に実行させるものである。
【００１３】
また、本発明に係る情報処理監視方法は、主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段、前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部、及び解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段、として情報処理装置を機能させるものである。
【００１４】
また、本発明に係る情報処理装置は、主メモリに読み出されたプログラムを構成する各プロセスの実行コードの動作を中断し、かつ前記実行コードのパラメータを取り込んで解析するプロセス監視手段と、前記プロセスの不当性の判定基準となる規約情報を記憶した規約情報記憶部と、解析した前記実行コードのパラメータと前記規約情報とから前記プロセスの不当性を判定する判定手段とを備えたものである。
【００１５】
これらの発明によれば、実行予定のプログラムは主メモリに読み出されて実行される。プログラムは各プロセスに対応する実行コードの集合であり、リソースにアクセスする実行コード、及び主メモリ上で動作する実行コードがある。プログラム中の実行コードは、プロセス監視処理によって、動作直前に中断されると共に、当該実行コードおよびそのパラメータが取り込まれて解析される。実行コードの解析動作は、実行コードが発行される毎に、例えば特権レベルに基づいて情報処理監視側でコンピュータの制御を受け取ることで行う。実行コードは、例外、違反あるいは割込等の発生をトリガーとするいわゆるフック処理、またＡＰＩ及びシスコールをトリガーに含むことができる。なお、ＡＰＩはアプリケーションで使うものとアプリケーションがＯＳの機能を利用する場合のものとがあり、またシスコールは、リソース（メモリ及びチップセット内のレジスタ群１２（図５参照）を含む）に対する処理要求である特権命令によるアクセスである。
【００１６】
実行コードのパラメータは、場所（パス）、発行元、手順手続、特定オペコードを含み、さらに、権限、処理されるファイルのファイル名、その場所の各内容が必要に応じて含まれてもよく、これらが解析対象とされる。解析した実行コードのパラメータと、予め設定されている、前記プロセスの不当性の判定基準となる規約情報とから、当該実行コードのプロセスが規約に従っていないと判定された場合、前記プロセスの不当が判定される。なお、場所（パス）としては、例えば、Ｃ：￥ ＰｒｏｇｒａｍＦｉｌｅｓ 配下のファイルでないかどうか、また特定オペコードとしては、例えば、現状では未使用乃至は非公開のＡＰＩ（ソフトウェア割込など）かどうかなどである。
【００１７】
従って、実行コードを監視対象とし、かつ実行コード及びそのパラメータによる処理が規約に従わない動作の場合、その動作を禁止することで、セキュリティが確実に保持される。また、実行コードをエミュレーターを介して判定するシステムではないため、判定処理に要する時間が短縮され、リアルタイムで処理可能となる。
【００１８】
ところで、コンピュータは、原始的にアプリケーション、ＯＳ（Operating System）、ＣＰＵ（Central Processing Unit）のリレーションを司る基本機能に従って動作する。ＯＳは、設定された各種処理に対する約束事（手続、手順等含む）によってセキュリティを提供して、それ以外の動作を許容しないようにする一方、利便性等の観点から、その約束事を回避乃至はクリアする機能も多く提供している。ＯＳは、これらの回避乃至はクリア機能の数量及び種類の膨大さに、最早対応仕切れない現状にある。すなわち、ＯＳ、ＣＰＵに本質的なセキュリティ機構を提供し得ていない現状において、ＯＳ、ＣＰＵの定めている動作原理に、悪意をもって介入、侵入することはむしろ容易となっている。この状況下では、ＯＳ配下のソフトウェアで如何にセキュリティ対策を講じたとしても、セキュリティ機構を回避、無効化することは困難なことではない。本発明は、ＯＳが提供する原理的な約束事を、ＯＳによらず、かつＯＳとは別に、前記約束事に従うルール（規約）として監視可能に提供する。
【００１９】
また、前記情報処理監視装置は、前記判定手段によって前記プロセスが正当と判定された場合、前記中断した実行コードの動作を開始させ、前記判定手段によって前記プロセスが不当と判定された場合、前記中断した実行コードの動作を終了させる結果処理手段を備えたことを特徴とする。また、前記プログラムは、前記判定手段によって前記プロセスが正当と判定された場合、前記中断した実行コードの動作を開始させ、前記判定手段によって前記プロセスが不当と判定された場合、前記中断した実行コードの動作を終了させる結果処理手段として、前記情報処理装置を機能させる。これらの構成によれば、プロセスが不当と判定された場合、前記中断した実行コードの動作を終了させるので、不当動作が阻止され、セキュリティが効果的に保持される。
【００２０】
また、前記情報処理監視装置は、監視対象とする実行コードの種類を予め設定した監視対象コード情報記憶部を備えたことを特徴とする。また、前記プログラムは、監視対象とする実行コードの種類を予め設定した監視対象コード情報記憶部として、前記情報処理装置を機能させる。これらの構成によれば、不当動作に関連する実行コードのみを監視対象とするので、監視処理に要する時間が短縮される。
【００２１】
また、前記情報処理監視装置は、前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、特定の順番で実行される複数の実行コードの組みを含み、前記規約情報記憶部は、前記規約情報として、前記特定の順番の複数の実行コードの組が実行された場合の前記プロセスの不当性の判定基準となる手続手順ルールを含み、前記プロセス監視手段は、前記特定の順番の複数の実行コードの各パラメータを解析し、前記判定手段は、前記特定の順番の複数の実行コードの各パラメータと、対応する前記手続手順ルールとから前記プロセスの不当性を判定することを特徴とする。また、前記プログラムは、前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、特定の順番で実行される複数の実行コードの組みを含み、前記規約情報記憶部は、前記規約情報として、前記特定の順番の複数の実行コードの組が実行された場合の前記プロセスの不当性の判定基準となる手続手順ルールを含み、前記プロセス監視手段は、前記特定の順番の複数の実行コードの各パラメータを解析し、前記判定手段は、前記特定の順番の複数の実行コードの各パラメータと、対応する前記手続手順ルールとから前記プロセスの不当性を判定することを特徴とする。これらの構成によれば、監視対象コードに特定の順番で実行される複数の実行コードの組みが設定されているので、規約の内の手続手順ルールに従わない一連のプロセスが不当として判定される。
【００２２】
また、前記情報処理監視装置は、前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、予め設定された種類の実行コードを含むことを特徴とする。また、前記プログラムは、前記監視対象コード情報記憶部は、前記監視対象とする実行コードの種類として、予め設定された種類の実行コードを含むことを特徴とする。これらの構成によれば、全ての種類の実行コードを対象とするのではなく、不当行為に関わる実行コードを監視対象とすることで、監視処理に要する時間が短縮される。
【００２３】
また、前記情報処理監視装置は、前記監視対象プロセス情報記憶部は、前記主メモリ上で動作する実行コードを監視対象として含むことを特徴とする。また、前記プログラムは、前記監視対象プロセス情報記憶部は、前記主メモリ上で動作する実行コードを監視対象として含むことを特徴とする。これらの構成によれば、リソースへのアクセスに直接関わる実行コードの他、主メモリ上で動作する命令を発行する実行コードであっても、不当行為に繋がる実行コードを監視対象とするので、セキュリティが高レベルで保持される。
【００２４】
また、前記情報処理監視装置は、前記手続手順ルールに該当する複数の実行コードのうち、先頭の実行コードは、リソースにアクセスする処理を伴うものであることを特徴とする。また、前記プログラムは、前記手続手順ルールに該当する複数の実行コードのうち、先頭の実行コードは、リソースにアクセスする処理を伴うものであることを特徴とする。これらの構成によれば、実行コードがまずリソースに何を要求しているかということから判明するので、それに基づいての手続手順ルールへの適合性の有無の判定がより確実となる。
【発明の効果】
【００２５】
本発明によれば、プログラム中の不当動作を実行コード単位で阻止することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明に係る情報処理装置の一実施形態を示す構成図である。
【図２】主メモリであるＲＡＭのメモリマップを示す図である。
【図３】ＯＳによってＨＤＤからＲＡＭに読み出された実行予定のＡＰＰのメモリマップを示す図である。
【図４】逐次解析に適用される規約情報部の内容を示す図である。
【図５】ＡＰＰの実行と、その監視処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２７】
図１は、本発明に係る情報処理装置の一実施形態を示す構成図である。本発明が適用される情報処理装置１００としては、コンピュータを内蔵するサーバ装置、汎用パーソナルコンピュータ、携行用の情報処理端末等、更にはネットワークを介して通信する機能を備えた各種の情報処理装置を含む。
【００２８】
情報処理装置１００は、マイクロコンピュタで構成され、プロセッサとしてのＣＰＵ１０を含むチップセット１を備える。ＣＰＵ１０は、バスＢＡを介して、補助記憶装置としてのハードディスクドライブ（ＨＤＤ：Hard Disc Drive）２、主メモリとしてのＲＡＭ（Random Access Memory）３、入力部４１及び出力部４２と接続されている。
【００２９】
ＨＤＤ２は、各種プログラム及び必要なデータ類を格納する。ＨＤＤ２は、複数のパーティションに分割されており、通常、例えばｗｉｎｄｏｗｓ（登録商標）のようなＯＳのプログラム、及び当該ＯＳ下で動作する各種アプリケーションプログラム（ＡＰＰ）は、場所（パス）としてＣドライブ領域に格納されている。また、通常、各種ＡＰＰで利用（アクセス）可能なデータファイル等は、パスとしてＤドライブ領域に格納される。
【００３０】
ＲＡＭ３は、情報処理装置１００が起動する際にＨＤＤ２に格納されているプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置１００は、ＨＤＤ２に格納されているプログラムファイル、データファイル等がＲＡＭ３にロードされ、ＣＰＵ１０によって実行されることで、文書及び図形作成機能、ブラウザ機能等の種々の情報処理機能を実行する。
【００３１】
入力部４１は、テンキー等を備えたキーボードやマウス、又はタッチパネル等を含み、所要の情報の入力や処理の指示を行うものである。出力部４２は、画像を表示する表示部を想定している。なお、出力部４２としては、プリンタ部やインターネット等のネットワークに接続して情報の授受を行う通信部等でもよく、更にこれらが併設されたものでもよい。
【００３２】
図２は、主メモリであるＲＡＭ３のメモリマップを示す図である。図２は、ＨＤＤ２に格納されているＯＳ５、ＯＳ５の環境下で動作する各種のアプリケーションＡＰＰ１，ＡＰＰ２，…、ＨＤＤ２のファイルシステム（ＮＴＦＳやＦＡＴ）外に格納されている動作監視部６のファイルがＲＡＭ３に読み出された状態の一例を示している。アプリケーションＡＰＰ１，ＡＰＰ２，…は、特権レベル（リングＲ＝３）のＡＰＰ領域３１に展開される。なお、ＡＰＩもＡＰＰ領域３１内の所定領域に展開される。なお、ＡＰＩとは、複数のプログラムが共通に利用できる種々の機能（ソフトウェア）の呼び出し時の手順やデータ形式などを定めた仕様をいう。
【００３３】
ＯＳ５は、特権レベル（リングＲ＝０）のカーネル領域３２に展開される。動作監視部６は、特権レベル（リングＲ＝０、又はいわゆる−１）の監視処理領域３３に展開される。
【００３４】
動作監視部６の特権レベルをリング０又は−１とすることで、ＯＳ５と独立して動作させることが可能となる。
【００３５】
なお、ＲＡＭ３への各プログラムファイルの展開は、例えば以下のようにして行うことができる。情報処理装置１００の起動は、公知のように、まずＢＩＯＳプログラムがＲＡＭ３にロードされ、次いでＢＩＯＳによってＨＤＤ２の先頭セクタからＭＢＲ（Master Boot Record）がＲＡＭ３にロードされる。
【００３６】
次いでＭＢＲによってＨＤＤ２のアクティブなパーティションテーブルに予め格納されている専用ローダがＲＡＭ３にロードされ、この専用ローダによって領域３３に特権レベルがリング０（又は−１）に設定されて、ＨＤＤ２のファイルスシステム外から動作監視部６が領域３３にロードされる。動作監視部６のロード処理が終了すると、ＣＰＵ１０の制御が動作監視部６に渡され、動作監視部６によってＯＳローダが起動される。次いで、領域３２に特権レベルとしてリングＲ＝０の設定を行って、ＯＳ５を領域３２にロードする。その後、公知のように、ＯＳ５内のＡＰローダによって、ＡＰＰ１，ＡＰＰ２，…が領域３１に特権レベルとしてリングＲ＝３でロードされる。
【００３７】
なお、本発明はＶＭにも適用可能であり、その場合、動作監視部６のファイルは仮想マシンモニタ（ＶＭＭ）領域に読み出される。
【００３８】
ＣＰＵ１０は、動作監視部６のファイルがＨＤＤ２から読み出されて、実行されることで、プロセス監視部６１、判定部６２及び結果処理部６３として機能する。また、動作監視部６は、監視対象コード情報部６４及び規約情報部６５として機能する。
【００３９】
プロセス監視部６１は、ＯＳ５によってＨＤＤ２からＲＡＭ３に読み出された実行予定のＡＰＰ（例えばＡＰＰ１）に対して、後述するように監視を行う。まず、ＯＳ５によるＡＰＰ１に対する制御を説明する。
【００４０】
図３は、ＯＳ５によってＨＤＤ２からＲＡＭ３に読み出された実行予定のＡＰＰ１のメモリマップを示す。ＡＰＰ１は、ＲＡＭ３のＡＰＰ領域（リングＲ＝３）に読み出される。この場合、ＡＰＰ１は、説明の便宜上、イメージ的には、アドレス方向について、ＮＴＤＬＬ．ＤＬＬ７１、プログラム本体７２、及びＮＴＤＬＬ．ＤＬＬ７３のように展開される。ＮＴＤＬＬ．ＤＬＬ７１とＮＴＤＬＬ．ＤＬＬ７３とは同一である。なお、ＮＴＤＬＬ．ＤＬＬ７１は、Ｗｉｎｄｏｗｓ（登録商標）用の基本ソフトファイルの１つで、エクスプローラーが拡張機能を呼び出す際に核となって機能する関数のコンポーネントで、実際には１つのメモリ空間に配置されている。
【００４１】
ＯＳ５は、実行予定のＡＰＰ１が展開されると、公知のように、先ず、ＮＴＤＬＬ．ＤＬＬ７１から起動され、プログラム本体７２をプロセス順に各実行コード（ヘッダ）の中身（パラメータ）を事前解析し、ＯＳ内にあるＥプロセス（ＥＰＲＯＣＥＳＳ）８０のデータ構造体内に、実行コード毎の事前解析結果を順次格納していく。事前解析は、プログラム本体７２内の実行コードのデータの箇所をチェックし、ＯＳ５に知らせる。ＯＳ５は、チェック内容から、ＡＰＰ１が実行可能な状態、すなわち処理に要するデータ領域、スタック領域を確保するなどの準備処理を行う。この構造体は、実行コードに対応したヘッダ及びパラメータの項目（実行場所（パス）、Ｔｏｋｅｎ・権限、時間、タイミング等）を含む。なお、トークンには、それぞれ権限の異なるユーザプロセス、システムプロセス、サービスプロセス及びアドミニストレータプロセスの各権限値を含んでよい。また、時間には、処理等に関わる時間情報を含み、また、タイミングには、処理等のスタートのタイミング情報を含む。事前解析が不当性なく終了すると、プログラム本体７２の先頭の実行コードから動作が開始される。そして、シスコールの度にＮＴＤＬＬ．ＤＬＬ７３が実行され、最後のＮＴＤＬＬ．ＤＬＬ７３が実行された後、終了する。
【００４２】
プロセス監視部６１は、事前解析時及び実行コードの実行に際して逐次監視を行う。事前解析時では、ＯＳ５は、プログラム本体７２内の各実行コードに対して行った事前解析から得た事前解析結果をＯＳ領域内のＥプロセス８０に格納する際に、シスコールを発行して行う。そこで、この事前解析時に、後述するように、このシスコールを監視対象として設定しておくことで、プロセス監視部６１は、Ｅプロセス８０に格納されようとする事前結果内容を取り込み、自己の記憶領域に格納する。これによって、プロセス監視部６１は、事前解析の内容を利用して、不当性判定を行うことができる。
【００４３】
また、後述するように全ての乃至は所定の種類の実行コードを監視対象として設定しておくことで、プロセス監視部６１は、実行コードが実行されようとする時、当該実行コードが監視対象である場合、当該実行コードの実行を一旦、中断させ、かつ当該実行コードとその内容（パラメータ）を取り込んで逐次監視を行う。
【００４４】
監視対象コード情報部６４は、監視対象とする実行コード（ＡＰＩ及びシスコール含む）を設定する記憶部である。監視対象となる実行コードは、全てでもよいが、例えば、単純な計算のような凡そ不当な行為と無関係なものは対象外としてもよい。また、ＡＰＩ及びシスコールであっても不当な行為との関連性から、監視対象外となるものを除いてもよい。また、プログラム単位での監視では、プロセスの一部が入れ替わったりすると、不当か否か判断できなくなる場合があるが、実行コード単位で監視する場合には、判定が可能となる。さらに、規約情報部６５で後述するように、１プロセスの他、特定の複数のステップによって所期の動作を実現する手続手順があることから、監視対象とする実行コードの種類として、特定の順番で実行される複数の実行コードの組を含む。これは、不当な行為は、後述するように、一連の実行コードからなる通常の情報処理行為（手続手順）に比して、余分なプロセスを含んだり、一部が異なるプロセスに置き換えられたりすることに対応するためである。複数の実行コードの組には、実行コード数が２つのもの、３つのもの乃至はそれ以上の数からなるものを含む。
【００４５】
判定部６２は、Ｅプロセス８０に取り込まれた内容をプログラム本体７２の動作が開始される前に行う事前判定と、プログラム本体７２が開始された後の逐次判定とを行う。判定部６２は、事前判定では、Ｅプロセス８０にパラメータ内容が格納される毎に解析し、あるいは事前解析が終了した時点で解析し、不当行為の可能性の高い実行コードが存在するか否かを、後述する規約情報部６５の事前判定用の規約情報から判定する。さらに、判定部６２は、プログラム本体７２の実行が開始されてから、監視対象コード情報部６４によって取り込んだ実行コード及びそのパラメータを用いて行われる情報処理が、後述する規約情報部６５の逐次判定用の規約情報に従わないものか否かを判定する。
【００４６】
結果処理部６３は、事前判定の段階で、規約に反して不当性があると判定された場合、プログラム本体７２の開始を停止する。また、結果処理部６３は、逐次判定で、規約に従わないとして不当性があると判定された場合、プログラム本体７２の事項をその時点で停止し、あるいは偽りの処理データを戻して処理を続行させる。結果処理部６３は、逐次判定で不当でないと判定された場合、実行直前に中断された実行コードの動作を開始させる。
【００４７】
規約情報部６５は、事前解析及び逐次解析に対する判定基準情報を含む。事前解析に対しては、実行コード毎のＥプロセス８０の内容（パラメータ）から不当行為か否かが判定できる判定基準を有する。逐次解析に対しては、実行コードがそのパラメータ内容から不当行為か否かが判定できる判定基準である規約を有する。
【００４８】
図４は、逐次解析に適用される規約情報部６５の内容を示す図である。規約情報部６５には、場所（パス）、発行元（データファイル名、実行ファイル名等）、手続手順ルール、特定オペコードを少なくとも含む。なお、場所（パス）としては、例えば、Ｃ：￥ ＰｒｏｇｒａｍＦｉｌｅｓ 配下のファイルでないかどうか、また、特定オペコードとしては、例えば、現状では未使用乃至は非公開のＡＰＩ（ソフトウェア割込など）かどうかなどである。また、実行コードのデータの一部が実行ファイルに置き換えられているような場合、ソフトウェア割込、チップセット１のレジスタ群１２（図５参照）の環境設定値の書き替え命令等も不当性ありの規約として設定されている。さらに、プログラム本体７２の実行開始アドレスが事前解析で解析され、Ｅプロセス８０に格納された先頭の実行コードのアドレス位置と異なる場合も、不当なものとして規約に含めることができる。
【００４９】
また、手続手順には、監視対象コード情報部６４の設定内容に対応して、監視対象コード情報部６４によって設定された、特定の順番で実行される複数の実行コードの組に対応する規約も含む。例えば、一連の実行コードからなる通常の情報処理行為（手続手順）に比して、例えば自己が展開したファイルを削除する等のような、余分なプロセスを含む場合が例示できる。また、一部が異なるプロセスに置き換えられる場合とは、データの一部がプログラムに置換されている場合等が例示できる。また、通常とは異なる処理が実行される場合を含む。例えば、アプリケーションプログラムがインターネット通信を行う場合、接続先のＩＰアドレスを使用して接続を行う。このときのＩＰアドレスは、ＵＲＬから名前解決（ＤＮＳ：Domain Name System）処理を通じて取得される。一方、この名前解決（ＤＮＳ）処理を使用せずに、直接ＩＰアドレスを使用した通信も可能ではあるが、かかる手続手順は規約違反として扱う。この場合の監視は、最初に名前解決（ＤＮＳ）処理要求のシスコール命令を把握する。この命令によって取得された情報を記憶し、すなわちこの例はＩＰアドレスを記憶し、次の命令コード、この例では接続要求のシスコール命令を監視し、このシスコール命令にて、記憶したＩＰアドレスが使用されているか否かを判断する。すなわち、このとき、名前解決（ＤＮＳ）要求にて取得し、記憶したＩＰアドレスと接続要求でのＩＰアドレスとが一致すれば正当として許可し、不一致であれば不許可とする。なお、この場合において、監視対象コードとして設定された一連の実行コードの組が実行される途中で、不当性が判定された場合には、一連の実行コードの実行終了を待たず、より迅速に実行を停止することが好ましい。
【００５０】
図５は、ＡＰＰの実行と、その監視処理の手順を示すフローチャートである。まず、ＯＳ５によって実行予定のＡＰＰの読み取りが行われ（ステップＳ１）、図３に示すように、ＲＡＭ３にコピーされる（ステップＳ３）。コピーが終了すると、ＮＴＤＬＬ．ＤＬＬ７１によってプログラム本体７２の各実行コードについてＥプロセス８０が構成され、同時に事前解析が実行される（ステップＳ５）。すなわち、この間、動作監視部６によって、ＮＴＤＬＬ．ＤＬＬ７１による事前解析中の各シスコールの発行をトリガーにして、Ｅプロセス８０に格納されるパラメータ内容と同一内容が取り込まれ、不当性に関する解析及び事前判定が行われる（ステップＳ７，ステップＳ１３）。そして、不当（ＮＧ）と判定されると、この時点で、プログラムの実行は、例えば中止される。
【００５１】
一方、ステップＳ７で不当であると判定されなければ（ＯＫであれば）、プログラム本体７２の実行が開始されて（ステップＳ９）、実行コードの順次実行（ステップＳ１１）と、動作監視処理（ステップＳ１３）とが継続される。実行コードは、オペコードとそのパラメータとがＣＰＵ１０のマイクロコード１１に命令セットとしてセットされる。動作監視処理は、監視対象の実行コードの場合、当該実行コードがマイクロコード１１にセットされた後、実行直前に、動作が中断され、かつＮＴＤＬＬ．ＤＬＬ７３によって、セットされた内容（実行コード、パラメータ）が動作監視部６側に取り込まれる。そして、規約情報部６５の規約を参照されて不当か否かの動作監視処理に供される（ステップＳ１３）。
【００５２】
ステップＳ１１において、監視対象の実行コードに対する判定結果が不当である場合、プログラムの実行を停止す命令が発行される（ステップＳ１５）。一方、監視対象の実行コードに対する判定結果が不当でないとされた場合、ＣＰＵ１０に対して中断された実行コードの処理の開始指令が発行され、次の実行コードに移行する（ステップＳ１１）。なお、ＣＰＵ１０に対して中断された実行コードを無効として偽りのデータをＲＡＭ３側に返送するようにしてもよい。そして、プログラムの実行が最後まで行われると、最後のＮＴＤＬＬ．ＤＬＬ７３が実行されて（ステップＳ１７）、本フローを終了する。
【符号の説明】
【００５３】
１００  情報処理装置
１０  ＣＰＵ
２  ＨＤＤ
３  ＲＡＭ
５  ＯＳ
６  動作監視部
６１  プロセス監視部
６２  判定部
６３  結果処理部
６４  監視対象コード情報部
６５  規約情報部
【図１】
2017215648.tif 000003
【図２】
2017215648.tif 000004
【図３】
2017215648.tif 000005
【図４】
2017215648.tif 000006
【図５】
2017215648.tif 000007