(57)【要約】      （修正有）【課題】悪意のプログラムのＣＰＵへの攻撃を準備段階で解析して未然に防止する。【解決手段】情報処理装置は、いずれもオペレーティングシステムよりも高い特権レベルに設定された第１解析部１３０２及び第２解析部１３０４と制御部１３０５とを備える。第１解析部１３０２及び第２解析部１３０４は、基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する。制御部１３０５は、第１解析部１３０２及び第２解析部１３０４によってプロセスが準備処理であると解析された場合、プロセスを無効化する。【選択図】図３
2019008503.tif 000002
【特許請求の範囲】
【請求項１】
基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析手段と、
前記解析手段によって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御手段とを備えた情報処理監視装置。
【請求項２】
前記解析手段は、フェッチされた命令コードが基本命令コードか否かを解析する第１解析手段と、前記第１解析手段で基本命令コードでないと解析された場合、前記プロセスが準備処理か否かを解析する第２解析手段とを備える請求項１に記載の情報処理監視装置。
【請求項３】
前記解析手段は、フェッチされた命令コードが基本命令コードと解析された場合、及び前記プロセスが前記準備処理でないと解析された場合、前記プロセスの命令コードを命令実行部に導く請求項１又は２に記載の情報処理監視装置。
【請求項４】
基本命令コード以外の命令コードがフェッチされる毎に、割込を発行する割込手段を備える請求項１〜３のいずれかに記載の情報処理監視装置。
【請求項５】
前記解析手段は、拡張命令コードを含むプロセスに対して解析を行うことを特徴とする請求項１〜４のいずれかに記載の情報処理監視装置。
【請求項６】
前記解析手段は、シスコール命令を含むプロセスに対して解析を行うことを特徴とする請求項１〜５のいずれかに記載の情報処理監視装置。
【請求項７】
前記解析手段は、プロセス開始のシスコール命令からプロセス終了のシスコール命令までの命令コードを含むプロセスに対して解析を行うことを特徴とする請求項１〜６のいずれかに記載の情報処理監視装置。
【請求項８】
前記解析手段は、ｍｓｒレジスタを書き換る命令コードか否かの解析を行うことを特徴とする請求項１〜７のいずれかに記載の情報処理監視装置。
【請求項９】
前記前記準備処理か否かを解析する規約情報を記憶した規約情報記憶部を備える請求項１〜８のいずれかに記載の情報処理監視装置。
【請求項１０】
前記規約情報は、カーネルＡＰＩに対するものである請求項１〜９のいずれかに記載の情報処理監視装置。
【請求項１１】
前記制御手段は、前記準備処理と解析された後に発行される命令コードの実行を停止することを特徴とする請求項１〜１０のいずれかに記載の情報処理監視装置。
【請求項１２】
前記解析手段及び前記制御手段を前記オペレーティングシステムよりも先に起動させるブート処理部を備える請求項１〜１１のいずれかに記載の情報処理監視装置。
【請求項１３】
請求項１〜１２のいずれかに記載の情報処理監視装置を備えた情報処理装置。
【請求項１４】
基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析ステップと、
前記解析ステップによって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御ステップとを備えた情報処理監視方法。
【請求項１５】
コンピュータを、請求項１〜１２のいずれかに記載の情報処理監視装置として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
コンピュータを、請求項１〜１２のいずれかに記載の情報処理監視装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムによって実行される情報処理動作を監視するセキュリティ技術に関する。
【背景技術】
【０００２】
従来、悪意のあるアプリケーションプログラム（不正プログラム）のコンピュータデバイスへの侵入、攻撃によって、コンピュータの制御が奪われ、メモリに格納されているデータファイル等の改竄、消去等のデータ破壊、通信漏洩等が引き起こされてコンピュータのセキュリティが大きく損われている。そこで昨今、アプリケーションプログラムの振舞乃至は挙動を監視して、不正プログラムによる攻撃等を規制する各種の対応ソフトウェアが提案されている。
【０００３】
特許文献１には、アプリケーションによるハードディスクＨＤＤ等の記憶装置へのアクセスがウイルス等の不正なアクセスか否かを判定する情報漏洩防止システムが記載されている。すなわち、この情報漏洩防止システムは、ハードディスクＨＤＤ等の記憶装置に記憶された情報へのアプリケーションによるアクセスを、オペレーティングシステム（ＯＳ）のフック機能を利用してフックし、予め設定されたアクセス許容条件表の内容と照合することでマッチング判定を行うものである。そして、マッチングしない場合にはウイルス等の不正なアクセスであるとして、記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するようにしている。
【０００４】
特許文献２には、アプリケーションの挙動を監視して正常か否かを判定するセキュリティ技術が提案されている。すなわち、このセキュリティ技術は、オフラインマルウェア検出検査にリアルタイムマルウェア検出検査が追加的に提供され、この追加された検出検査がアプリケーションの実行中にその挙動を記録し、記録された挙動から挙動パターンを抽出し、抽出された挙動パターンを正常なアプリケーションの基本パターン又は以前に記録された前記アプリケーションのパターンと比較するものである。これにより、悪質なアプリケーションが実環境のモバイルデバイスにダウンロード、インストールされ、そして実際に実行されたとしても、モバイルデバイスは、このアプリケーションの悪質な挙動を自動的に検出することができる。
【０００５】
特許文献３には、バッファオーバーラン現象を利用したコンピュータウイルスや不正アクセスを抑制することのできるオペレーティングシステムが記載されている。このオペレーティングシステムは、コンピュータウイルスや不正アクセスを抑制するために、プログラムから要求されたＡＰＩ（Application Program Interface）を実行する前に、メモリ装置上におけるプログラムの格納アドレスを取得し、そのアドレスが適正な位置を示しているか否かを判定することにより、ＡＰＩをコールしたプログラムが適正か不正かを判断するものである。
【０００６】
特許文献４には、コンピュータシステムの脆弱性などのセキュリティーホールを攻撃して侵入する不正プログラムを、定義ファイルに依存することなくプロセスの振舞から検知可能にする情報処理装置が記載されている。この情報処理装置は、プロセスＡの実行において発生した情報、例えばモジュールの種類、呼び出された関数の種類、引数の値、読み出し元アドレス、タイムスタンプなどを取得し、これら収集した情報から、不正な攻撃や侵入を示す挙動であるファイルアクセス、ネットワークアクセス、他プロセスの起動などの動作があったか否かを検知して、不正プログラムとみなすものである。さらに特許文献４には、不正ではないプロセスが、ユーザによる操作を検出できない期間中にファイルアクセス、ネットワークアクセス等の動作を行う場合に、不正プログラムとして検知されることから、この不正ではないプロセスを特定するホワイトリストに予め登録しておき、検知に際して、まず照合を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１４０７９８号公報
【特許文献２】特開２０１７−５０５９４４号公報
【特許文献３】国際公開第２００５／０２９３２８号公報
【特許文献４】特開２０１５−０８２１９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１は、アプリケーションによるハードディスクＨＤＤに記憶された情報へのアクセスと予め設定されたアクセス許容条件表とのマッチングによるものであり、特許文献２は、検査対象のアプリケーションの実行中の挙動を記録し、記録された挙動から挙動パターンを抽出する一方、抽出された挙動パターンを正常なアプリケーションの基本パターン又は以前に記録された前記アプリケーションのパターンと比較するというものであり、いずれもホワイトリストとの照合といえるものである。
【０００９】
特許文献３は、バッファサイズを超えるデータが送り込まれることでシステムが誤動作を起こす脆弱性を狙って不正アクセスを実行するバッファオーバーラン現象への対応に着目した発明であって、プログラムの格納アドレスが適正か不正かを判断させる判断プログラムをオペレーティングシステムに付加したものである。特許文献４は、プロセス毎にプロセスモニタが設定され、このプロセスモニタが、プロセスの実行によって発生した情報であるモジュールの種類、呼び出された関数の種類、引数の値、読み出し元アドレス、タイムスタンプ情報等を振舞として収集し、不正な攻撃や侵入があったか否かを判定するもので、事前に規制するものではない。また、判別困難な範囲については、ホワイトリストとの照合を行うものである。
【００１０】
本発明は、上記に鑑みてなされたもので、悪意のプログラムによるＣＰＵへの攻撃（プログラムの実行環境の変更）を準備段階で解析して未然に防止する情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、コンピュータ技術の発展の歴史と経緯に起因して現在のコンピュータに付与された基本的構造に鑑みてなされたものということができる。
【００１２】
今日、パーソナルコンピュータは、ネットワーク及び種々の外部機器に接続されると共に６４ビットの元で大量のデータ処理が可能とされ、その利便性と高性能さから重要インフラ等の基盤産業も含む殆どの産業分野に導入され、さらにＩｏＴ、ＡＩ及びビッグデータに対応する第４次産業革命用として、高い機密性の元での利活用が期待されている。
【００１３】
パーソナルコンピュータは、１９７１年、４ビットマイクロプロセッサを搭載したアーキテクチャー（４ビットマイコン）として登場した。４ビットマイコンには、使用者の意図する処理を実現するプログラムが書き込まれ、その結果、使用者が直接マイコンを操作することでプログラムの実行を通してマイクロプロセッサに使用者の意図に沿った処理を実行させていた。すなわち当時はＯＳが未だ登場しておらず、マイコンは、マイコンを直接操作する者とマイクロプロセッサ（ＣＰＵ）との一義的な関係を持つ設計思想に基づくものであった。次いで翌年、機能性の普及を目的としてＯＳを搭載した８ビットマイコンが登場した。ＯＳとは、ユーザやアプリケーションとハードウェアとの中間に位置し、ユーザやアプリケーションに対して標準的なインターフェースを提供すると同時にハードウェアなどの各リソースに対して効率的な管理を行うもので、４ビット設計思想上、第三者としての立場にある。
【００１４】
その後、特にインターネット等のネットワークや各種周辺機器の発展に伴い、これらとの接続を契機に量的、質的により高い情報処理の実現を図るべく、マイコンは、４ビット設計思想を維持した状態で、すなわち４ビット当時の実行命令処理を基本動作として保持したまま、ＣＰＵを１６ビット、３２ビット、６４ビットアーキテクチャーとして進化させて、今日に至っている。かかる経緯を経て、今日の６４ビットマイコンは、４ビット当時の設計思想を残しながら、一方でＣＰＵの進化に応じて新たな機能を実現する目的で、基本動作以外の種々の拡張機能を実行可能にするルールの下での拡張命令が増設されている。拡張されたルールとは、１６ビット、３２ビット及び６４ビットの進化に応じて増設された種々の機能を無条件乃至は低い条件でＣＰＵに処理可能にする技術である。
【００１５】
かかる拡張機能を導入したことによって、より高度な情報処理が可能になった反面、使用者の操作に基づいて実行される本来の基本動作以外の、すなわち当該使用者が認識乃至意図しないような、第三者の悪意のプログラム（不当プログラム）が容易に侵入し、実行できる環境に移行してきている。
【００１６】
かかる事情に鑑みて、本発明に係る情報処理監視装置は、基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステム（ＯＳ）よりも高い特権レベルに設定された解析手段と、前記解析手段によって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御手段とを備えたものである。
【００１７】
また、本発明は、前記情報処理監視装置を備えた情報処理装置である。
【００１８】
また、本発明は、基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析ステップと、前記解析ステップによって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御ステップとを備えた情報処理監視方法である。
【００１９】
また、本発明は、コンピュータを、前記情報処理監視装置として機能させるプログラムであり、さらに、そのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００２０】
これらの発明によれば、オペレーティングシステムの起動時におけるリスク（感染、侵入等）が解消される。また、４ビット設計思想に基づく基本命令コード以外の、フェッチされた少なくとも１つの命令コードを含むプロセスが解析対象とされる。すなわち、基本的には、４ビット設計思想時代の命令以外の全ての命令コードが解析されることになる。そのため、攻撃のための準備処理に該当するか否かが解析可能となり、さらに攻撃の準備に該当すると解析された場合、準備段階で、当該プロセス乃至はこのプロセスを含むプログラムの実行が制御、例えば無効化される。従って、悪意のプログラムのＣＰＵへの攻撃を準備段階で解析し、その攻撃が未然に防止される。なお、上記において、攻撃のための準備とは、すなわち、プログラムの実行環境を変えるための外部からのプログラムによる準備でもあり、この外部からのプログラムの実行は、攻撃の準備乃至は攻撃と等価と見なし得る。
【００２１】
また、前記解析手段は、フェッチされた命令コードが基本命令コードか否かを解析する第１解析手段と、前記第１解析手段で基本命令コードでないと解析された場合、前記プロセスが準備処理か否かを解析する第２解析手段とを備える。この構成によれば、基本命令コードであると解析された場合、例えばそのまま実行され、一方、基本命令コード以外の命令コードと解析された場合には、準備に該当するか否かの解析の対象となる。
【００２２】
また、前記解析手段は、フェッチされた命令コードが基本命令コードと解析された場合、及び前記プロセスが前記準備処理でないと解析された場合、前記プロセスの命令コードを命令実行部に導くものである。この構成によれば、攻撃の準備処理に該当しないと解析された適正な命令コードは、命令実行部に導かれて、通常通り実行される。
【００２３】
また、本発明は、基本命令コード以外の命令コードがフェッチされる毎に、割込を発行する割込手段を備える。この構成によれば、攻撃の準備に該当する可能性が高い命令コードは割込によって解析対象とされる。
【００２４】
また、前記解析手段は、拡張命令コードを含むプロセスに対して解析を行うことを特徴とする。この構成によれば、個々の拡張命令コードの他、拡張枚例コードを含む複数段の命令ステップからなるプロセスに関しても準備に該当するか否かの判断が行われる。
【００２５】
また、前記解析手段は、シスコール命令を含むプロセスに対して解析を行うことを特徴とする。この構成によれば、拡張命令に対応して発行されるシスコール命令は全て解析対象とので、リソースへのアクセスは全て解析対象とされる。
【００２６】
また、前記解析手段は、プロセス開始のシスコール命令からプロセス終了のシスコール命令までの命令コードを含むプロセスに対して解析を行うことを特徴とする。この構成によれば、準備処理期間との可能性のある、時間的に前後のシスコール命令の範囲で解析を行うため、準備段階での解析が可能となる。なお、準備処理期間は前後のシスコール命令の他、複数のシスコール命令による場合もある。
【００２７】
また、前記解析手段は、ｍｓｒレジスタを書き換る命令コードか否かの解析を行うことを特徴とする。この構成によれば、ＣＰＵの動作モードを切換えることで実行可能となる攻撃の準備に該当すると解析されて、直ちにプロセスは無効化される。
【００２８】
また、本発明は、前記前記準備処理か否かを解析する規約情報を記憶した規約情報記憶部を備える。規約情報部を利用することで、攻撃の準備行為毎の解析処理方法に基づいて確実に解析することが可能となる。
【００２９】
また、前記規約情報は、カーネルＡＰＩに対するものである。この構成によれば、リソースへアクセスするシスコール命令は、全てカーネルのＡＰＩを利用してなされた、ものであり、係るＡＰＩに対応する解析処理で全ての攻撃順位が解析される。
【００３０】
また、前記制御手段は、前記準備処理と解析された後に発行される命令コードの実行を停止することを特徴とする。この構成によれば、攻撃の実行前に、準備に該当すると解析された後の基本命令コード等の命令コードの実行は確実に無効化される。
【００３１】
また、本発明は、前記解析手段及び前記制御手段を前記オペレーティングシステムよりも先に起動させるブート処理部を備える。この構成によれば、解析手段及び制御手段をＯＳよりも先に起動させることが可能となるため、ＯＳよりも上位でＯＳプログラム、アプリケーションプログラムの各挙動を監視し得、ＯＳへの不正プログラムの感染、侵入も検出し、阻止される。
【発明の効果】
【００３２】
本発明によれば、悪意のプログラムによるＣＰＵへの攻撃（プログラムの環境を変える）を準備段階で解析して未然に防止する。
【図面の簡単な説明】
【００３３】
【図１】本発明に係る情報処理装置の一実施形態を示す構成図である。
【図２】主メモリのリニアアドレス空間の概要を示すマップ図である。
【図３】ＣＰＵ及び主メモリの物理メモリ空間の概要を示すマップ図である。
【図４】起動処理の手順の一例を示すフローチャートである。
【図５】命令フォーマットを示す図である。
【図６】監視モジュールによって実行される監視処理Ｉのフローチャートである。
【図７】監視モジュールによって実行される監視処理IIのフローチャートである。
【図８】監視モジュールによって実行される監視処理IIIのフローチャートである。
【図９】監視モジュールによって実行される監視処理IVのフローチャートである。
【発明を実施するための形態】
【００３４】
図１は、本発明に係る情報処理装置の一実施形態を示す構成図である。本発明が適用される情報処理装置１００としては、外部機器との通信の有無を問わず、各種のパーソナルコンピュータ、コンピュータを内蔵するサーバ装置、金融、ＡＴＭ及びＰＯＳシステム、また全てのインフラを稼働させる情報処理システムを含み、更に携行用であって情報通信、ＳＮＳ及び電子マネー決済等が処理可能な情報処理端末等を含む。
【００３５】
情報処理装置１００は、マイクロコンピュタで構成され、プロセッサとしてのＣＰＵ１を備える。ＣＰＵ１は、バスＢＡを介して、補助記憶装置としてのハードディスクドライブ（ＨＤＤ：Hard Disc Drive）２、ＢＩＯＳ格納用のフラッシュＲＯＭ２Ａ、主メモリとしてのＲＡＭ（Random Access Memory）３、入力部４１及び出力部４２と接続されている。また、ＣＰＵ１は、ＮＩＣ（Network Interface Card）４３と接続されて、ローカルエリア及びインターネット等のネットワーク４４を介して外部機器との間で各種情報の授受を可能にしている。
【００３６】
ＨＤＤ２は、各種プログラム及び必要なデータ類を格納する。ＨＤＤ２は、複数のパーティションに分割されており、通常、例えばｗｉｎｄｏｗｓ（登録商標）のようなＯＳ（Operating System）のプログラム、及びＯＳ下で動作する各種アプリケーションプログラム（ＡＰＰ）は、場所（パス）としてＣドライブ領域に格納されている。また、通常、各種ＡＰＰで利用（アクセス）可能なデータファイル等は、パスとしてＤドライブ領域に格納されている。ＨＤＤ２には、本発明に係る監視モジュール１３０（図３参照）であるプログラムデータも格納されている。監視モジュール１３０の詳細は後述する。
【００３７】
ＲＡＭ３は、情報処理装置１００が起動する際に、フラッシュＲＯＭ２Ａ及びＨＤＤ２に格納されているＢＩＯＳやプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置１００は、ＨＤＤ２に格納されているプログラムファイル、データファイル等がＲＡＭ３にロードされ、ＣＰＵ１によって実行されることで、例えば文書及び図形作成機能、ブラウザ機能等の種々の情報処理機能、さらに適用される分野に応じた各種の情報処理を実行する。
【００３８】
入力部４１は、テンキー等を備えたキーボードやマウス、又はタッチパネル等を含み、操作者からの所要の情報の入力や処理の指示を行うものである。出力部４２は、処理結果等を画像で表示する表示部を想定している。なお、出力部４２としては、プリンタやスピーカを含むことができる。
【００３９】
図２は、ＲＡＭ３のリニアアドレス空間３１の概要を示すマップ図である。なお、リニアアドレス空間３１にマッピングされた各データ（プログラムデータやファイルデータ等）は、機能を示すものであり、詳細には、図３に示す物理メモリ３０内のページテーブル３０３に格納されており、かつリニアアドレスから物理アドレスに置換することでＣＰＵ１から読み取り可能にされている。
【００４０】
図２に示すように、リニアアドレス空間３１には、本実施形態では、特権レベル（リングＲ＝０）のカーネルモード領域３１１と、特権レベル（リングＲ＝３）のユーザモード領域３１２とが設定されている。カーネルモード領域３１１には、シスコール命令に対応するＯＳ（カーネル）のＡＰＩ（Application Program Interface）３１１１、ＯＳ（カーネル）３１１２、システムテーブル３１１３、及びＥプロセス等のプロセスリスト３１１４が展開されている。ユーザモード領域３１２には、各種のアプリケーションプログラム３１２１，…及び各種のシスコール（Syscall）３１２２が展開されている。
【００４１】
ユーザモード領域３１２のシスコール３１２２は、ＡＰＰ３１２１，…がリソース（後述するレジスタ部１２３を代表するメモリ資源）に対してアクセスを要求する場合に用いる命令の群である。シスコール命令は、特権レベルをリングＲ＝３からリングＲ＝０に昇格させる拡張命令コードであり、これによって、シスコール命令の引数に対応したＡＰＩが選択され、選択情報は例えば汎用レジスタｒａｘに設定される。
【００４２】
カーネルモード領域３１１のＡＰＩ３１１１は、シスコール３１２２から発行されるシスコール命令の引数に対応して設けられており、ＯＳ３１１２の管理に基づいて、リソースへのアクセス処理を実行する。システムテーブル３１１３は、リニアアドレス空間３１内の各データ（プログラムデータやファイルデータ等）のアドレス等を格納したものである。例えば、システムテーブル３１１３にはＧＤＴ（Global Descriptor Table）が含まれる。システムテーブル３１１３内のＧＤＴは、例えば８バイト単位で各データの格納箇所を管理するセグメントディスクリプタのリストである。各セグメントディスクリプタは、４つの属性、すなわちデータの「種別」（プログラムコード、データ、スタック）と、「ベースアドレス」と、「リミット」と、特権レベルを示す「ＤＰＬ」を備えている。システムテーブル３１１３内のＧＤＴと物理メモリ３０内のページテーブル３０３とでリニアアドレスから物理アドレスへの変換を実現する。プロセスリスト３１１４は、ＯＳ３１１２が管理する、実行中のプログラムのプロセスの一覧を示すもので、例えばＥプロセス（EPROCESS）を含む。
【００４３】
図３は、ＣＰＵ１及びＲＡＭ３の物理メモリ３０内の各機能の説明、及びＣＰＵ１と物理メモリ３０内の各機能との関係を説明するマップ図である。ＲＡＭ３の一部に構成される物理メモリ３０内には、ＢＩＯＳ３０１、ブートマネージャー３０２及びページテーブル３０３が展開されると共に監視モジュール１３０が展開される。ＢＩＯＳ３０１は、０〜１ＭＢの領域に書き込まれる。ブートマネージャー３０２及びページテーブル３０３は、それ以上の領域に書き込まれる。ＢＩＯＳ３０１、ブートマネージャー３０２及びページテーブル３０３は、特権レベルであるリングＲ＝０で書き込まれる。なお、ページテーブル３０３は、複数のページを有し、各ページは所定のデータ量、例えば４ＫＢ毎に分割されて構成されている。各ページデータには、物理アドレスとアクセス属性とが設定されている。また、各ページデータには、プログラムコード、データ、スタックのいずれかの種類が含まれる。アクセス属性は、特権レベルに相当するもので、「スーパーバイザー」と「ユーザ」とを有する。「スーパーバイザー」はカーネル空間での処理（カーネルモード）をいい、リングＲ＝０〜リングＲ＝２に該当し、「ユーザ」はリングＲ＝３に該当する。
【００４４】
監視モジュール１３０は、ＢＩＯＳ３０１の起動に続いて、すなわちＯＳより先に起動されることで、ＯＳを管理可能に、すなわちＯＳよりも高い特権レベルを設定可能にされている。例えば、監視モジュール１３０を、ゲストＯＳである仮想マシンＶＭとホストＯＳである仮想マシンモニタＶＭＭとを備えた仮想化支援技術ＶＴ−ｘに適用する態様では、監視モジュール１３０は仮想マシンモニタＶＭＭに読み込まれてよい。そして、監視モジュール１３０によって、ゲストＯＳに対して、Ｅｎｔｒｙ／Ｅｘｉｔ処理を制御することで、実質的にＯＳより高い特権レベル（Ｒ＝−１）が確保できる。 また、ＯＳを特権レベルＲ＝１又は２に書き換え、監視モジュール１３０を特権レベルＲ＝０とすることでも、ＯＳより高い特権レベルを確保することが可能となる。
【００４５】
ＣＰＵ１は、メモリコントローラ（ＭＭＵ）１１、制御ユニット１２及び演算ユニット１３を備えている。メモリコントローラ１１は、物理メモリ３０内のページテーブル３０３と制御ユニット１２との間に接続され、フェッチされたリニアアドレスへのアクセスに対してページテーブル３０３を参照して物理アドレスに変換してアクセスし、アクセス内容を制御ユニット１２に導くものである。
【００４６】
監視モジュール１３０は、本実施形態では、メモリ管理部１３０１、第１解析部１３０２、ハードウェア割込処理部１３０３、第２解析部１３０４、制御部１３０５、及び規約情報部１３０６を備えると共に、ＯＳを所定の監視下で起動させるためのブートプログラム（ブート処理部）を有する。これらの詳細は後述する。また、演算ユニット１３内には、監視モジュール１３０でフェッチされ、出力された命令コードを実行する命令実行部１３１を有する。
【００４７】
監視モジュール１３０を物理メモリ３０に配置することで、ＯＳに対しハードウェアの一部（ＭＭＩＯ（Memory-mappedI/O）空間）に見せかけることができる。このことにより、ＯＳから監視モジュール１３０を隔離でき、かつ悪意のプログラムからも保護される。メモリ管理部１３０１は、第１解析部１３０２、ハードウェア割込処理部１３０３、第２解析部１３０４、制御部１３０５、規約情報部１３０６を物理メモリ１３０に配置し、実行可能環境を生成するとともに、ＯＳ側のプログラムによる物理メモリ１３０へのアクセスを監視する。これによりＭＭＩＯ空間を使用したハードウェアへのアクセスやリニアアドレス空間を構成するページテーブル３０３へのアクセスも監視する。
【００４８】
制御ユニット１２内には、本実施形態ではメモリ管理部１３０１を介してメモリコントローラ１１に接続されたフェッチ部１２１、フェッチされた命令フォーマットを機械語に変換して解析するデコード部１２２、レジスタ部１２３を備えている。図３には一例としての命令フォーマット１２８を示している。命令フォーマット１２８の詳細は、図５で説明する。命令コード１２９がアセンブラ言語で例示されている。この例示された命令コードは、
mov  rax,  10
であり、「汎用レジスタｒａｘに、数値１０をコピーする」との意味である。
【００４９】
レジスタ部１２３は、各種のレジスタを備えるもので、汎用レジスタ１２４、制御レジスタ１２５、命令実行レジスタ１２６及びシステムレジスタ１２７を少なくとも備えている。汎用レジスタ１２４は、ｒａｘ，ｒｂｘ，ｒｃｘ，ｒｄｘ，…を有し、処理予定のデータ、パラメータを一時的に書き込む。なお、汎用レジスタ１２４の表記は、６４ビットの場合にはｒａｘ、３２ビットの場合にはｅａｘ、１６ビットの場合にはａｘ、８ビットの場合には、ａ又はｈａｌと区別して使用する。制御レジスタ１２５は、レジスタｃｒ０，ｃｒ１，ｃｒ２，…を有し、ＣＰＵ１の動作モードを制御する。制御レジスタ１２５は、物理メモリ３０から読み出された命令プログラムを受け取り、実行し、一次記憶し、また再配置するなどの制御用に用いられる。命令実行レジスタ１２６は、フェッチする命令コードを指定するレジスタＲＩＰ（Instraction Pointer）、命令の発行順番を指示するプログラムカウンタを備える。システムレジスタ１２７は、システムテーブル３１１３の内に現に使用されるデータが書き込まれると共に、動作モードを制御する各種のｍｓｒレジスタ（ModelSpecific Register ）を有する。なお、ｍｓｒレジスタは、ＣＰＵ１の内部制御用で、専用のｒｄｍｓｒ、ｗｒｍｓｒ命令を使用して読み書きを行わせる。ｍｓｒレジスタの中には、ＣＰＵ１の動作としての、例えば拡張機能の有効無効をフラグで識別させて、プロテクトモードでは特権レベルＲ＝０で読み書き可能にし、違反した場合にはフックさせるようにしている。
【００５０】
ここで、図４のフローチャートを用いて、起動処理の手順の一例を説明する。まず、情報処理装置１００の電源が投入されると、ＢＩＯＳプログラムがフラッシュＲＯＭ２ＡからＲＡＭ３の所定領域に読み出されて（ロードされて）起動される（ステップＳ１）。次いで、ＢＩＯＳによってＨＤＤ２の先頭セクタからＭＢＲ（Master Boot Record）がＲＡＭ３にロードされ、起動される（ステップＳ３）。
【００５１】
次いで、ＭＢＲによってＨＤＤ２のアクティブなパーティションテーブルに予め格納されている専用ローダがＲＡＭ３にロードされ、この専用ローダによって物理メモリ３０の所定の一部領域に特権レベル（リングＲ＝−１か０）が実質的に設定されて、この領域内に、ＨＤＤ２のファイルスシステム外から読み出された監視モジュール１３０のプログラムがロードされる（ステップＳ５）。なお、上記において、実質的にリングＲ＝−１か０との意味は、ＶＴ−ｘ仮想化支援技術を適用した態様と通常のコンピュータの場合とを含み、いずれにしてもＯＳ３１１２よりも高い特権レベルが設定されることを意味する。監視モジュール１３０のロード処理が終了すると、ＣＰＵ１の制御が監視モジュール１３０に渡され、監視モジュール１３０のブート処理部によってブートマネージャー３０２が起動される（ステップＳ７）。ここで、カーネルモード領域３１１に特権レベルとしてリングＲ＝０（又は１か２）の設定が行われ、この状態で、監視モジュール１３０のブート処理部によって作成されたＰＢＲ（Partition Boot Record）及びＩＰＬ（Initial Program Loader）で、ページテーブル３０３、ＧＤＴ等を含むシステムテーブル３１１３、更にＯＳ３１１２（ドライバ含む）がカーネルモード領域３１１にロードされ、起動される（ステップＳ９）。この結果、監視モジュール１３０は、コンピュータ内の全てを見ることが可能となる。
【００５２】
次いで、ＯＳ３１１２のブートが終了すると（ステップＳ１１でＹｅｓ）、例えば最初のページフォルト（＃ＰＦ）が発行されると、公知のように、ＯＳ３１１２内のＡＰローダによって、ＡＰＰ３１２１，…がユーザモード領域３１２にリングＲ＝３の特権レベルでロードされる（ステップＳ１３）。この起動処理によって、図２、図３に示すマップが完成する。
【００５３】
なお、起動時には、監視モジュール１３０は、ＣＰＵ１の動作モードとして、リアルモード、プロテクトモード、ＩＡ３２ｅモード（６４ビットモード）及び１６ビットでのＳＭＭ（SystemManagement mode）モードの各設定、ページテーブル３０３を有効化、シスコールの有効化の各処理を行う。また、監視モジュール１３０は、レジスタ部１２３の初期化、環境設定値の初期設定を行う。
【００５４】
図３に戻って、監視モジュール１３０の機能について説明する。監視モジュール１３０のメモリ管理部１３０１は、メモリコントローラ１１とＣＰＵ１との間のデータの流れを監視するもので、例えば、この結果、監視モジュール１３０は、リニアアドレスと物理アドレスの両方を管理してリニアアドレスの改変や物理アドレスの改変への対処、ＯＳ（カーネル）以外のプログラムに対してレジスタ部１２３内の環境設定値の変更アクセスを規制する監視を行う。
【００５５】
監視モジュール１３０の解析部は、本実施形態では、機能的に、第１解析部１３０２と第２解析部１３０４とを備える。第１解析部１３０２は、デコードされた命令コードが４ビットで定義された基本命令コードか、それ以外の命令コードかを解析する。
【００５６】
図５は、所定の様式を有する命令フォーマットを示している。命令フォーマットは、公知のように、命令を記述する部分と、データやパラメータ部分とから構成されている。命令フォーマットは、先頭側から、１バイトのプリフィックスと、１又は２バイトのオペコード（命令部）と、１バイトのＭｏｄＲ／Ｍと、ＳＩＢ（Scale Index Base）と、ディスプレイスメントと、即値とから構成されている。オペコード部は可変長で、基本命令は４ビットで記述され、拡張命令は２バイトで記述されている。
【００５７】
４ビットの基本命令とは、４ビット設計思想を維持した状態で、すなわち４ビット当時の実行命令処理を基本動作とするもので、ｍｏｖ（転送、コピー）、ｊｍｐ（分岐）、更に、計算、論理、比較、Ｉｎ／Ｏｕｔ等を行わせる命令をいう。基本命令は、１バイトで構成され、上位４ビットが“１”のときの下位４ビットで１６通りの命令（基本命令という）が定義されている。
【００５８】
一方、拡張命令は、各種の周辺機器の登場、ネットワークとの接続等によって、情報処理装置１００の入力部４１を介しての操作指示以外に、各種の動作の制御命令、またマルチタスク処理のためのマシンスイッチとしてのレジスタへの制御命令であって、制御用のｍｏｖ、ｊｍｐその他の多数の制御命令が準備されている。拡張命令は、２バイトで構成され、先頭の１バイト目が“０Ｆ”のとき、２バイト目に拡張命令が定義される。拡張命令としては、システムコール用に用意された各種のシスコール（syscall）命令、シスエンタ（sysenter）命令、また拡張命令機能の有効／無効を規定するｗｒｍｓｒ命令等がある。また、拡張機能は、プリフィックス、２バイトのオペコード及びＭｏｄＲ／Ｍの部分の組み合わせによって各種の制御命令、マルチタスク命令の設定を可能にしている。
【００５９】
図３において、第１解析部１３０２は、解析の結果が基本命令コードであれば、命令コードを命令実行部１３１に導き、それ以外の命令コードの場合、ハードウェア割込処理部１３０３に導く。
【００６０】
ハードウェア割込処理部１３０３は、第１解析部１３０２による解析の結果が基本命令コードでなければ（それ以外の命令コードであれば）、フック操作、すなわち割込処理を実行し、割込内容は、第２解析部１３０４に導かれる。なお、割込処理は、第２解析部１３０４の解析の終了によって復帰することができる。
【００６１】
第２解析部１３０４は、基本命令以外の命令、乃至は基本命令と基本命令以外の命令との組（プロセス）を規約情報部１３０６の規約に基づいて解析して、攻撃の準備に該当するか否かを決定する。第２解析部１３０４は、解析の対象がプロセスの場合、全ての命令コードのデコードの毎に、プロセスが準備に該当するか否かを逐次解析していくようにして、準備の段階で解析結果を得るようにしているため、攻撃そのものが未然に防止できる。第２解析部１３０４（又は後述する制御部１３０５の一方）は、ある時点でのステップに対する解析の結果が未だ攻撃の準備に該当していないと決定した段階では、解析した命令コードの命令実行部１３１での実行を許可する。これによって、最終的に攻撃の準備ではなかった（複数ステップの命令列からなる）プロセスをより自然に継続実行させることができる。
【００６２】
制御部１３０５は、第２解析部１３０４による解析の結果が、直ちに乃至は最終的に攻撃の準備と決定された段階で、プログラムの実行に対して一定の制御を行う制御信号を出力する。この制御信号は、実行中のプログラムを無効化、すなわちプログラムの実行停止、それまでの実行結果の削除、リセット等の処理を行うものでもよい。なお、命令コード（データ、パラメータ含む）の監視は、デコード部１２２の内容を参照する態様でもよいが、例えばプロセスリスト３１１４内のＥプロセスの一部を利用して命令コードのロガーとして機能させることで、監視するようにしてもよい。
【００６３】
情報処理装置１００に対する攻撃とは、情報処理装置１００の入力部４１からの操作に則して発行される、４ビット設計思想に基づく基本命令コードを、操作者が意図した処理とは異なる内容で実行させることをいい、実際の被害の有無、被害の形態を問わない。そして、攻撃の準備とは、操作者が意図した処理とは異なる内容での処理となるように導くためのプロセスをいう。なお、プロセスとは、少なくとも基本命令以外の１ステップの命令コード、またはこの１ステップを含む複数ステップからなるものを含む。
【００６４】
また、攻撃のための準備のタイミングとしては種々の態様が想定される。例えば、あるプログラムの実行中に、このプログラムに侵入して基本命令を奪う態様がある。また、マルチタスクによって複数のプログラム（例えばプログラムＡ，Ｂ）の実行中に、いずれか一方であるプログラムＢに侵入して（第１ステップとしての攻撃）、次いで、他方のプログラムＡに介入して、基本命令を奪う（第２ステップとしての攻撃）態様がある。また、プログラム実行中でない期間において、情報処理装置１００（コンピュータ）に侵入して準備を施して、後のプログラムの実行において発行される基本命令コードを奪う態様がある。さらに、Ｉｎ／Ｏｕｔ命令を利用したＳＭＩ命令によってＣＰＵの動作モードであるＳＭＭに遷移し、ＯＳの管理外で動作して攻撃を行う態様がある。本監視モジュール１３０は、これら全てについて攻撃に対する準備か否かを解析し、攻撃を未然に防ぐようにしている。
【００６５】
悪意のプログラムが基本命令コードを使用して攻撃を行おうとする場合、なりすまし、コピー、書き換えという、操作者の意図によらずにプログラム自身が動こうとする準備行為を要する。規約情報部１３０６は、かかる観点から、全ての命令コードに対して攻撃の準備に該当するかどうかを解析する際に利用する情報を記憶している。解析対象としての全ての命令コードとは、例えば既設のカーネルＡＰＩというプロセスの命令コードをいう。例えば、命令コードのオペランドであるデータ及びパラメータの各項目の内容（場所（パス、Ｔｏｋｅｎ・権限、時間、タイミング等）、発行元（データファイル名、実行ファイル名等）、権限の昇格降格、手続手順ルール、基本命令以外の命令コードを少なくとも含む。なお、場所（パス）としては、例えば、Ｃ：￥ ＰｒｏｇｒａｍＦｉｌｅｓ 配下のファイルでないかどうか、また、基本命令以外の命令コードとしては、例えば、現状では未使用乃至は非公開のカーネルモードのＡＰＩかどうかなどである。また、トークンには、それぞれ権限の異なるユーザプロセス、システムプロセス、サービスプロセス及びアドミニストレータプロセスの各権限値を含んでよい。また、時間には、処理等に関わる時間情報を含み、また、タイミングには、処理等のスタートのタイミング情報を含む。なお、命令コードのデータ等の一部が実行ファイルに置き換えられているような場合、ソフトウェア割込、レジスタ部１２３の環境設定値の書き替え命令等も不当性ありの規約として設定されている。さらに、手続手順ルールには、複数のステップからなるプロセスが、４ビット設計思想に基づく基本命令コードの実行のための準備処理としてあり得ない、乃至は不必要な挙動を含む。
【００６６】
以上によれば、規約情報部１３０６の規約は、ＯＳが構築する保護されたプログラム実行環境（プログラムの環境）を維持する（変えない）ためのものである。例えば、起動された複数のプログラムには、プログラム間において干渉できない環境が提供される。具体的には、ＣＰＵ１が提供するページテーブル３０３をプログラム毎に別々に作成することで、リニアアドレス空間を隔離し、他のプログラムへアクセスできなくしている。しかし、特定のカーネルＡＰＩ（ｓｙｓｃａｌｌ）を使用することで、この環境を変える（崩す）ことができる。また、プログラムによって新たに必要とされるメモリ領域は通常データ領域として使用されるため、カーネルが確保するメモリ領域は、ＣＰＵ命令が実行できないリニアアドレス空間となる。しかし、これもカーネルＡＰＩ（ｓｙｓｃａｌｌ）の使用方法によって確保したメモリ領域を実行可能領域に変更することが可能であるため、これもまた、規約に違反する実行環境の変更となる。
【００６７】
また、ＣＰＵ１の実行環境に関する前記規約は、ＣＰＵ命令単位となり、起動時においてのみ使用される命令が特定のタイミング以降に使用されると規約違反としている。起動後に使用される命令に関しては、独自の解析結果から、発行元のプログラムを特定しており、それ以外からの使用命令を規約違反としている。
【００６８】
図６は、監視モジュール１３０によって実行される監視処理Ｉのフローチャートである。プログラムの実行開始された後、命令コードがデコードされると、第１解析、第２解析処理が実行され（ステップＳ２１）、規約情報部１３０６に基づいて解析結果が攻撃の準備に該当するかどうか（すなわち、プログラムの実行環境を変更しようとする準備かどうか。以下同じ。）が決定される（ステップＳ２３）。そして、解析結果が攻撃の準備に該当しないと決定された場合、命令コードはそのまま命令実行部１３１に導かれる。そして、プログラムが終了したか否かが判断され（ステップＳ２５）、継続中であれば、ステップＳ２１に戻って、同様の解析処理が継続される。
【００６９】
一方、ステップＳ２３で、解析結果が攻撃の準備に該当すると決定された場合、制御部１３０５から制御信号が出力され、実行中のプログラムを無効化等させて（ステップＳ２７）、本フローを終了する。
【００７０】
図７は、監視モジュール１３０によって実行される監視処理IIのフローチャートである。いずれかのプログラムの実行中において、あるタイミングで最初の（プロセスの開始となる）シスコール命令がデコードされると（ステップＳ３１）、このシスコール命令以降にデコードされる各命令コードに対して第１解析、第２解析処理が実行され（ステップＳ３３）、その都度、解析結果が攻撃の準備に該当するかどうか（適正かどうか）が決定される（ステップＳ３５）。解析結果が攻撃の準備に該当しないと決定された場合、命令コードは命令実行部１３１に導かれる。次いで、現プロセスの終了に対応するシスコール命令が発行されたか否かが判断され（ステップＳ３７）、プロセス終了に対応するシスコール命令ではないと判断されると、ステップＳ３３に戻る。すなわち、ステップＳ３３からステップＳ３７の処理が繰り返し実行される。そして、解析結果が攻撃の準備に該当すると決定された場合、制御部１３０５から制御信号が出力され、実行中のプログラムを無効化等させて（ステップＳ３９）、本フローを終了する。
【００７１】
一方、ステップＳ３７で、プロセス終了に対応するシスコール命令であると判断された場合、プログラムの終了か否かが判断され（ステップＳ４１）、終了でなければ、今回のシスコール命令をプロセス開始用に置換して（ステップＳ４３）、ステップＳ３３に戻る。これにより、プロセスの範囲内での攻撃準備の有無が監視される。
【００７２】
図８は、監視モジュール１３０によって実行される監視処理IIIのフローチャートである。プログラム実行中において、発行された命令コードがｗｒｍｓｒ命令か否かが解析される（ステップＳ５１）。解析の結果がｗｒｍｓｒ命令でなければ、次いでプログラムが終了したか否かが判断され（ステップＳ５３）、終了でなければステップＳ５１に戻り、終了であれば、本フローを終了する。一方、ステップＳ５１で、解析結果が、ｗｒｍｓｒ命令であれば、攻撃の準備に該当するとして、制御部１３０５から制御信号が出力され、実行中のプログラムを無効化等させて（ステップＳ５５）、本フローを終了する。
【００７３】
図９は、監視モジュール１３０によって実行される監視処理IVのフローチャートである。基本命令コード実行中に、ＳＭＩ割込の発行によってＳＭＭが起動し、拡張命令コードが実行される場合であって、この拡張命令コードによって、ＣＰＵの動作モード、プレフィックスその他のパラメータの変更による攻撃が行われる。図９に示す実施形態では、まず、プログラム実行中において、発行された命令コードがシステムマネージメント割込（ＳＭＩ：SystemManagement Interrupt）命令か否かが解析される（ステップＳ６１）。解析の結果がＳＭＩ命令でなければ、次いでプログラムが終了したか否かが判断され（ステップＳ６３）、終了でなければステップＳ６１に戻り、終了であれば、本フローを終了する。一方、ステップＳ６１で、解析結果が、ＳＭＩ命令であれば、攻撃の準備に該当するとして、制御部１３０５から制御信号が出力され、実行中のプログラムを無効化等させて（ステップＳ６５）、本フローを終了する。
【００７４】
なお、図６〜図９に示す監視処理は、個別に採用するほか、いずれかの２種類以上を採用したものでもよく、さらには全ての監視処理を採用することが好ましい。
【００７５】
続いて、攻撃（プログラムの実行環境の変更）の準備動作に該当する具体例を説明する。
【００７６】
（１）制御レジスタへのアクセス例（２ステップ）
１）mov eax , 0x8xxxxxxx  ・・（Opecode ： B8xxxxxxxx）
２）mov cr0 , rax        ・・（Opecode ： 0F2xxx    ）
制御レジスタｃｒ０へ設定するオペランドとしての汎用レジスタに対し、その前ステップである１）にて即値を設定するような処理（例えばプロテクトモードの有効化とページテーブルの有効化とを同時に行わせるような処理）は攻撃の準備に該当する。
【００７７】
（２）ｍｓｒレジスタへのアクセス例（４ステップ）
１）mov ecx , 0xCxxxxxxx  ・・（Opecode ： B9xxxxxxxx）
２）mov edx , 0xFxxxxxxx  ・・（Opecode ： BAxxxxxxx）
３）mov eax , 0x12xxxxxx   ・（Opecode ： B8xxxxxxxx）
４）wrmsr                 ・・（Opecode ： 0Fxx      ）
シスコール命令が発行されたときにリングＲ＝０の呼び出し先アドレス（Entry Point）を設定（準備）する処理である。ｍｓｒレジスタにセットする呼び出し先アドレスが上下４ビットに分けて設定されることは攻撃の準備に該当する。
【００７８】
（３）カーネルＡＰＩの呼び出し例（８ステップ）
１）mov rcx , [rsp]      ・・（Opecode ： 488xxxxxxx）
２）lea rdx , [rsp+0x10]  ・・（Opecode ： 488xxxxxxx）
３）lea r8 ,[rsp+0x20]  ・（Opecode ： 4c8xxxxxxx）
４）mov r9d, 0x01        ・（Opecode ： 41Bxxxxxxx）
５）push byte 0xxx      ・・（Opecode ： 6xxxx    ）
６）mov eax , 0xxx        ・（Opecode ： B8xxxxxxx ）
７）mov r10 , rcx          ・（Opecode ： 49xxxx   ）
８）syscall                ・ （Opecode ： 0Fxx    ）
主メモリ内のファイルをＨＤＤ２に格納する前に消去する処理は、痕跡の隠蔽処理として広い意味で攻撃の準備に該当する。
【００７９】
本発明は、以下の態様が採用可能である。
【００８０】
（１）監視モジュール１３０は本実施形態の構成に限定されず、例えば、１つのモジュールでもよい。また、第２解析部が制御部１３０５の機能を実行する態様でもよい。また、ハードウェア割込処理部１３０３は、一般的なフック機能を実行する機能部でよい。ハードウェア割込処理部１３０３は、全ての命令コードに対して割込を行ってもよい。
【００８１】
（２）本発明が仮想化支援技術ＶＴで適用される態様では、監視モジュール１３０は、仮想マシンモニタ（ＶＭＭ）領域に読み出される。
【００８２】
（３）基本命令コードに対しては、解析を省略してもよいし、一定の範囲で解析を行ってもよい。例えばパラメータの内容をチェックするなどしてもよい。
【００８３】
（４）前記の実施形態では、侵入した悪意あるプログラムの挙動を規制する構成及び方法を示したが、悪意あるプログラムの侵入を防止する対策を別途施してもよい。
【符号の説明】
【００８４】
１００  情報処理装置
１  ＣＰＵ（コンピュータ）
１１  メモリコントローラ
１３０  監視モジュール（情報処理監視装置）
１３０１  メモリ管理部
１３０２  第１解析部
１３０３  ハードウェア割込処理部
１３０４    第２解析部
１３０５  制御部
１３０６  規約情報部
２  ＨＤＤ
３  ＲＡＭ
３１１２  ＯＳ（カーネル）
【図１】
2019008503.tif 000003
【図２】
2019008503.tif 000004
【図３】
2019008503.tif 000005
【図４】
2019008503.tif 000006
【図５】
2019008503.tif 000007
【図６】
2019008503.tif 000008
【図７】
2019008503.tif 000009
【図８】
2019008503.tif 000010
【図９】
2019008503.tif 000011