(57)【要約】【課題】情報処理ユニットがアクセスしようとする必要なファイルを直ちに検査することで、その情報処理ユニットを悪意あるソフトウェアから保護する。【解決手段】ファイル処理部１５は、ファイル・アクセスの際にシステム・コールを発生し、このシステム・コールをファイル処理制御部１６がフックする。情報処理ユニット２が情報処理ユニット１の仮想記憶を取り扱えるように、アドレス管理部２３は、アドレス変換部１４のアドレス変換情報を、アドレス変換部２４に通知させる。アドレス調停部５１は、アドレス変換部１４，２４間で物理アドレスの調停を行い、アドレスを指定する。ファイル処理制御部１６は、ファイル転送部２５に対し、補助記憶装置４からメモリ３へのファイル転送を要求する。ファイル検査部２６は、ファイル転送の際に検査を行い、ファイルに悪意あるソフトウェアが含まれていなければ、上記システム・コールを実行させる。【選択図】図２
2008108131.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置とを有してなるコンピュータシステムにおいて、
前記第１の情報処理ユニットは、
前記補助記憶装置に記憶されたファイルへのアクセス時に、ＯＳの機能としてシステム・コールを発生するファイル処理部と、
前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求を前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求に対する応答結果に基づき、前記システム・コールを実行するファイル処理制御部と、
仮想アドレスと物理アドレスの変換を行う第１のアドレス変換部とを含み、
前記第２の情報処理ユニットは、
前記転送要求に基づき、前記補助記憶装置から前記メモリへファイルを転送するファイル転送部と、
前記転送要求をトリガとしてファイルを検査し、該検査結果に基づく情報を前記転送要求に対する応答結果として前記ファイル処理制御部に通知するファイル検査部と、
前記第１のアドレス変換部のアドレス変換情報を管理するアドレス管理部と、
前記アドレス管理部にて管理されている前記第１のアドレス変換部のアドレス変換情報に基づき、仮想アドレスと物理アドレスの変換を行う第２のアドレス変換部とを含み、
前記コンピュータシステムは、
前記第１のアドレス変換部と前記第２のアドレス変換部との間で物理アドレスの調停を行うアドレス調停部をさらに有する、コンピュータシステム。
【請求項２】
前記ファイル処理制御部は、前記システム・コールを実行して、前記ファイル検査部により検査済みのファイルにアクセスする、請求項１に記載のコンピュータシステム。
【請求項３】
前記メモリは、
前記第１の情報処理ユニットと前記第２の情報処理ユニットがファイルの読み出し、書き込み可能である共用メモリ部と、
前記第２の情報処理ユニットのみがファイルの読み出し、書き込み可能である専用メモリ部とを含み、
前記ファイル転送部は、前記転送要求に基づき、前記補助記憶装置から前記専用メモリ部へファイルを転送し、
前記ファイル検査部は、前記専用メモリ部上でファイルを検査し、検査済みのファイルを前記共有メモリ部へ転送する、請求項１に記載のコンピュータシステム。
【請求項４】
前記補助記憶装置は、
前記第１の情報処理ユニットと前記第２の情報処理ユニットの両方がファイルの読み出し、書き込み可能である共用ファイル記憶部と、
前記第２の情報処理ユニットのみがファイルの読み出し、書き込み可能である専用ファイル記憶部とを含み、
前記ファイル転送部は、前記転送要求に基づき、前記共用ファイル記憶部から前記メモリへファイルを転送する、請求項１に記載のコンピュータシステム。
【請求項５】
前記ファイル転送部は、ファイル転送を代行するＤＭＡコントローラをさらに含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記第２の情報処理ユニットは、一定条件下で、前記ファイル転送部に対するファイルの転送要求を自動的に発行するスケジューリング部をさらに含む、請求項１に記載のコンピュータシステム。
【請求項７】
前記第２の情報処理ユニットは、前記ファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するファイル検査管理部をさらに含む、請求項１に記載のコンピュータシステム。
【請求項８】
前記第２の情報処理ユニットは、
前記ファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するファイル検査管理部と、
前記ファイル検査管理部によって前記ファイル検査部が更新された場合、前記ファイル転送部に対するファイルの転送要求を自動的に発行するスケジューリング部とをさらに含む、請求項１に記載のコンピュータシステム。
【請求項９】
前記ファイル処理制御部は、前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求と、更に、ファイルの検査要求も前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求および前記検査要求に対する応答結果に基づき、前記システム・コールを実行する、請求項１に記載のコンピュータシステム。
【請求項１０】
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置とを有してなるコンピュータシステムによるコンピュータ保護方法であって、
前記第１の情報ユニットが、前記補助記憶装置に記憶されたファイルへのアクセス時に、前記第２の情報処理ユニットに対して、前記補助記憶装置から前記メモリへのファイルの転送要求を発行するステップと、
前記第２の情報処理ユニットが、前記転送要求に基づいて前記補助記憶装置から前記メモリにファイルを転送するとともに、該ファイルを検査して該検査結果に基づく情報を前記第１の情報処理ユニットに対して通知するステップと、
前記第１の情報ユニットが、前記第２の情報処理ユニットからの通知に基づいて、前記メモリへ転送されたファイルへのアクセスの可否を決定するステップとを有する、コンピュータ保護方法。
【請求項１１】
前記第２の情報処理ユニットが、一定条件下で、ファイルの転送要求を自動的に発行するステップをさらに有する、請求項１０に記載のコンピュータ保護方法。
【請求項１２】
前記第２の情報処理ユニットが、ファイルを検査するファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するステップをさらに有する、請求項１０に記載のコンピュータ保護方法。
【請求項１３】
前記第２の情報処理ユニットが、ファイルを検査するファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するステップと、
前記第２の情報処理ユニットが、前記ファイル検査部が更新された場合に、ファイルの転送要求を自動的に発行するステップとをさらに有する、請求項１０に記載のコンピュータ保護方法。
【請求項１４】
前記転送要求を発行するステップでは、前記補助記憶装置に記憶されたファイルへのアクセス時に、前記第２の情報処理ユニットに対して、前記補助記憶装置から前記メモリへのファイルの転送要求と、更に、ファイルの検査要求も発行し、
前記検査結果に基づく情報を通知するステップでは、前記転送要求に基づいて前記補助記憶装置から前記メモリにファイルを転送するとともに、前記検査要求に基づいて該ファイルを検査して該検査結果に基づく情報を前記第１の情報処理ユニットに対して通知する、請求項１０に記載のコンピュータ保護方法。
【請求項１５】
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置と、アドレス調停部とを有してなるコンピュータシステムに実行させるコンピュータ保護プログラムであって、
前記第１の情報処理ユニットに、
前記補助記憶装置に記憶されたファイルへのアクセス時に、ＯＳの機能としてシステム・コールを発生する処理と、
前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求を前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求に対する応答結果に基づき、前記システム・コールを実行する処理と、
仮想アドレスと物理アドレスの変換を行う処理とを実行させ、
前記第２の情報処理ユニットに、
前記転送要求に基づき、前記補助記憶装置から前記メモリへファイルを転送する処理と、
前記転送要求をトリガとしてファイルを検査し、該検査結果に基づく情報を前記転送要求に対する応答結果として前記第１の情報処理ユニットに通知する処理と、
前記第１の情報処理ユニットのアドレス変換情報を管理する処理と、
前記第１の情報処理ユニットのアドレス変換情報に基づき、仮想アドレスと物理アドレスの変換を行う処理とを実行させ、
前記アドレス調停部に、
前記第１の情報処理ユニットと前記第２の情報処理ユニットとの間で物理アドレスの調停を行う処理を実行させる、コンピュータ保護プログラム。
【請求項１６】
前記システム・コールを実行する処理では、前記システム・コールを実行して、前記検査済みのファイルにアクセスする、請求項１５に記載のコンピュータ保護プログラム。
【請求項１７】
前記第２の情報処理ユニットに、一定条件下で、ファイルの転送要求を自動的に発行する処理をさらに実行させる、請求項１５に記載のコンピュータ保護プログラム。
【請求項１８】
前記第２の情報処理ユニットに、ファイルを検査するファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新する処理をさらに実行させる、請求項１５に記載のコンピュータ保護プログラム。
【請求項１９】
前記第２の情報処理ユニットに、
ファイルを検査するファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新する処理と、
前記ファイル検査部が更新された場合に、ファイルの転送要求を自動的に発行する処理をさらに実行させる、請求項１５に記載のコンピュータ保護プログラム。
【請求項２０】
前記システム・コールを実行する処理では、前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求と、更に、ファイルの検査要求も前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求および前記検査要求に対する応答結果に基づき、前記システム・コールを実行する、請求項１５に記載のコンピュータ保護プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、悪意あるソフトウェアからコンピュータを保護するコンピュータシステム、コンピュータ保護方法、コンピュータ保護プログラムに関し、特に、複数のプロセッサを活用することで、悪意あるソフトウェアからコンピュータを保護するコンピュータシステム、コンピュータ保護方法、コンピュータ保護プログラムに関する。なお、本明細書では、ファイル、オブジェクト、データ等を総称して、「ファイル」と称するものとする。
【背景技術】
【０００２】
利用者に製品が提供された時点でその製品に導入されているファイルに対しては、悪意あるソフトウェアが含まれているか否かの検査が既に行われている。しかし、製品の提供後に利用者によってその製品に追加されるファイルには、悪意あるソフトウェアが含まれている可能性がある。悪意あるソフトウェアとは、コンピュータシステムまたはコンピュータシステムの利用者に被害を与えるソフトウェアのことを指し、例えば、コンピュータウイルスなどがある。
【０００３】
従来、この種の悪意あるソフトウェアからコンピュータを保護するために、例えば、ウイルス対策ソフトウェアをコンピュータに導入することが行われてきた。さらに、ハードウェアをも活用した例が、特許文献１に記載されている。また、ファイルを転送する段階でそのファイルを検査する例が、特許文献２，３に記載されている。
【０００４】
特許文献１に記載されたコンピュータシステムは、破壊に対して耐久性のある、デジタル・コンピュータの情報処理における安全性を確保するものである。
【０００５】
図２１は、特許文献１の実施例の１つに記載された従来のコンピュータシステムの構成を示す図である。
【０００６】
図２１に示したコンピュータシステムは、悪意あるソフトウェアを検出するための免疫ＩＣ１００１と、コンピュータとしての情報処理を実行するＣＰＵ１００２と、ＣＰＵ１００２がファイルを処理する際に一時的にデータを記憶させる計算用ＲＡＭ１００４と、外部との入出力の制御を行う入出力装置１００５と、外部との通信を行う通信回線接続装置１００６と、表示や入力を行う表示装置・入力装置１００７と、大容量の記憶装置である大容量記憶装置１００８と、小容量の記憶装置である小型記憶装置１００９と、ＣＰＵ１００２と計算用ＲＡＭ１００４と入出力装置１００５と大容量記憶装置１００８と小型記憶装置１００９とを接続するバス１００３とから構成される。
【０００７】
入出力装置１００５は、免疫ＩＣ１００１に記憶された悪意あるソフトウェアに関する情報を基にして、通信回線接続装置１００６により読み出されたファイルを検査する。
【０００８】
特許文献２に記載されたコンピュータシステムは、大規模で高速なネットワークを流れるファイル（データ）にコンピュータウイルスが含まれているか否かを高速に検査するものである。
【０００９】
図２２は、特許文献２の実施形態の１つに記載された従来のコンピュータシステムの構成を簡潔に示す図である。なお、図２２には図示されていないが、ホストＣＰＵ２１０１がアクセス可能な外部記憶装置を備えることもある。
【００１０】
図２２に示したコンピュータシステムにおいては、通信用ソフトウェアによって動作するホストＣＰＵ２１０１は、ネットワークから受信したファイルをメインメモリ２１０２に記憶させる。メインメモリ２１０２に記憶されたファイルは、専用プロセスによって動作するホストＣＰＵ２１０１によってコンピュータウイルス検査装置２００１へ転送される。コンピュータウイルス検査装置２００１は、パターン・マッチング回路を使用してファイルを検査する。
【００１１】
特許文献３に記載されたコンピュータシステムは、ネットワークを介して計算機システムに転送されるファイルに対して、利用者が特に意識することなく、かつファイル転送プログラムにウイルス・チェック機能を持たせることなく、ウイルスに感染したファイルが記憶装置に保存されることを防止するシステムである。
【００１２】
図２３は、特許文献３の実施例の１つに記載された従来のコンピュータシステムの構成を示す図である。
【００１３】
図２３に示したコンピュータシステムにおいては、ファイル転送プログラム３００１は、受信データの受信命令３００３をソケット・モジュール３００２に発行する。このとき、フック部３００４は、ファイル転送プログラム３００１からの受信命令３００３を横取りし、代理関数３００５は、改めて受信命令３００６をソケット・モジュール３００２に発行する。ソケット・モジュール３００２がネットワーク３０１１から受信した受信データ３００７は、代理関数３００５に送られる。代理関数３００５は、受信データ３００７を検査してコンピュータウイルスの有無を検査し、ウイルスが検出されない場合には受信データ３００８をファイル転送プログラム３００１に送出し、ファイル転送プログラム３００１は、受信データ３００８を記憶装置３００９に書き込む。一方、代理関数３００５は、ウイルスが検出された場合には通知部３０１０を起動してコンピュータウイルスの検出を利用者に通知する。
【特許文献１】特開平８−１７９９４２号公報
【特許文献２】特表２００４−５２８６５１号公報
【特許文献３】特開平１１−１１９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来のコンピュータシステムには次のような課題がある。
【００１５】
第１の課題は、悪意あるソフトウェア対策として使用する対策ソフトウェアを動作させるための資源と、悪意あるソフトウェアが動作する可能性のある資源とが分離されていないため、万が一、悪意あるソフトウェアにより資源が汚染されてしまった場合、対策ソフトウェアが汚染されてしまう可能性があるという課題である。
【００１６】
第２の課題は、特許文献１に関するものである。特許文献１に記載の発明では、悪意あるソフトウェアを検出するための免疫ＩＣ１００１は、ＣＰＵ１００２とアドレス参照を共有することができないため、ＣＰＵ１００２の動作とは無関係に、ファイルを検査せざるを得ない。この場合、免疫ＩＣ１００１は、ＣＰＵ１００２が直ちに必要とするファイルではなく、ＣＰＵ１００２が直ちに必要としないファイルを検査してしまうという事態が発生しうるという課題がある。
【００１７】
第３の課題は、特許文献２に関するものである。特許文献２に記載の発明では、コンピュータウイルス検査部分がハードウェアによって実現されていても、コンピュータウイルス検査装置２００１へのデータの転送は、悪意あるソフトウェアが実行される可能性のあるホストＣＰＵ２１０１によって行われる。そのため、ホストＣＰＵ２１０１にコンピュータウイルス検査装置２００１へファイルを転送させるためのソフトウェアが改ざんされると、ホストＣＰＵ２１０１がウイルス検査装置２００１にファイルを転送しない、または、異なるファイルを転送してしまう可能性があるという課題がある。
【００１８】
第４の課題は、特許文献３に関するものである。特許文献３に記載の発明を、仮想記憶を使用するＯＳ（オペレーティング・システム）によって動作するコンピュータの内部において、ファイルにアクセスする際にそのファイルを検査できるように応用する場合を考慮する。この場合、ファイル転送プログラム３００１により動作する第１の情報処理ユニットと代理関数３００５により動作する第２の情報処理ユニットとは、仮想アドレスと物理アドレスのアドレス変換情報を共有することができない。そのため、第１の情報処理ユニットのソフトウェアの実行形式を変更せずに、悪意あるソフトウェアを検査する手段を第２の情報処理ユニットに実装することができないという課題がある。
【００１９】
本発明の目的は、仮想記憶を利用するＯＳによって動作する情報処理ユニットを複数設ける場合において、ある情報処理ユニットがアクセスしようとしている必要なファイルを直ちに検査することにより、その情報処理ユニットを悪意あるソフトウェアから保護することができる、コンピュータシステム、コンピュータ保護方法、コンピュータ保護プログラムを提供することにある。
【００２０】
本発明の他の目的は、ある情報処理ユニットの仮想記憶を、他の情報処理ユニットでも取り扱うことができる、コンピュータシステム、コンピュータ保護方法、コンピュータ保護プログラムを提供することにある。
【００２１】
本発明のさらに他の目的は、ある情報処理ユニットが、万が一、悪意あるソフトウェアにより汚染されてしまったとしても、その情報処理ユニットを検査する他の情報処理ユニットが悪意あるソフトウェアにより汚染されることを回避できる、コンピュータシステム、コンピュータ保護方法、コンピュータ保護プログラムを提供することにある。
【課題を解決するための手段】
【００２２】
上記目的を達成するために本発明のコンピュータシステムは、
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置とを有してなるコンピュータシステムにおいて、
前記第１の情報処理ユニットは、
前記補助記憶装置に記憶されたファイルへのアクセス時に、ＯＳの機能としてシステム・コールを発生するファイル処理部と、
前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求を前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求に対する応答結果に基づき、前記システム・コールを実行するファイル処理制御部と、
仮想アドレスと物理アドレスの変換を行う第１のアドレス変換部とを含み、
前記第２の情報処理ユニットは、
前記転送要求に基づき、前記補助記憶装置から前記メモリへファイルを転送するファイル転送部と、
前記転送要求をトリガとしてファイルを検査し、該検査結果に基づく情報を前記転送要求に対する応答結果として前記ファイル処理制御部に通知するファイル検査部と、
前記第１のアドレス変換部のアドレス変換情報を管理するアドレス管理部と、
前記アドレス管理部にて管理されている前記第１のアドレス変換部のアドレス変換情報に基づき、仮想アドレスと物理アドレスの変換を行う第２のアドレス変換部とを含み、
前記コンピュータシステムは、
前記第１のアドレス変換部と前記第２のアドレス変換部との間で物理アドレスの調停を行うアドレス調停部をさらに有することを特徴とする。
【００２３】
この構成によれば、第１の情報処理ユニットによるファイルへのアクセス時にはシステム・コールが必ずフックされ、第１の情報処理ユニットがアクセスしようとするファイルの転送要求が第１の情報処理ユニットから第２の情報処理ユニットに発行される。また、この際、第１の情報処理ユニットにおける仮想アドレスと物理アドレスとのアドレス変換情報が、第１の情報処理ユニットから第２の情報処理ユニットへ通知される。
【００２４】
したがって、第２の情報処理ユニットは、第１の情報処理ユニットがアクセスしようとしている必要なファイルを直ちに検査することができる。また、第１の情報処理ユニットの仮想記憶を、第２の情報処理ユニットでも取り扱うことができる。
【００２５】
また、前記ファイル処理制御部は、前記システム・コールを実行して、前記ファイル検査部により検査済みのファイルにアクセスすることを特徴とする。
【００２６】
この構成によれば、第１の情報処理ユニットがアクセスするファイルは、第２の情報処理ユニットにより検査済みのファイル、例えば、悪意あるソフトウェアが含まれていないと判断されたファイルとなる。
【００２７】
したがって、第１の情報処理ユニットが悪意あるソフトウェアの起動を中止することが可能となるため、悪意あるソフトウェアから保護することができる。
【００２８】
また、前記メモリは、
前記第１の情報処理ユニットと前記第２の情報処理ユニットがファイルの読み出し、書き込み可能である共用メモリ部と、
前記第２の情報処理ユニットのみがファイルの読み出し、書き込み可能である専用メモリ部とを含み、
前記ファイル転送部は、前記転送要求に基づき、前記補助記憶装置から前記専用メモリ部へファイルを転送し、
前記ファイル検査部は、前記専用メモリ部上でファイルを検査し、検査済みのファイルを前記共有メモリ部へ転送することを特徴とする。
【００２９】
この構成によれば、万が一、第２の情報処理ユニットの検査において検出できなかった悪意あるソフトウェア（例えば、新種のコンピュータウイルス）が第１の情報処理ユニット上で動作し、その悪意あるソフトウェアによって共用メモリ部が汚染されたとしても、専用メモリ部は汚染されないため、第２の情報処理ユニットが正常に動作を継続できる。
【００３０】
また、前記補助記憶装置は、
前記第１の情報処理ユニットと前記第２の情報処理ユニットの両方がファイルの読み出し、書き込み可能である共用ファイル記憶部と、
前記第２の情報処理ユニットのみがファイルの読み出し、書き込み可能である専用ファイル記憶部とを含み、
前記ファイル転送部は、前記転送要求に基づき、前記共用ファイル記憶部から前記メモリへファイルを転送することを特徴とする。
【００３１】
この構成によれば、第１の情報処理ユニットが活用する共用ファイル記憶部に記憶されたファイルが、悪意あるソフトウェアによって汚染されたとしても、第２の情報処理ユニットが活用する専用ファイル記憶部に記憶されたファイルを悪意あるソフトウェアから保護することができる。
【００３２】
また、前記ファイル転送部は、ファイル転送を代行するＤＭＡコントローラをさらに含むことを特徴とする。
【００３３】
また、前記第２の情報処理ユニットは、一定条件下で、前記ファイル転送部に対するファイルの転送要求を自動的に発行するスケジューリング部をさらに含むことを特徴とする。
【００３４】
この構成によれば、第１の情報処理ユニットからファイルの検査要求がなくとも補助記憶装置に記憶されたファイルを自動的に検査することが可能となるため、第１の情報処理ユニットからのファイル転送の要求があった場合に、そのファイルがすでに検査済みであれば、ファイルを検査する時間を削減することができる。
【００３５】
また、前記第２の情報処理ユニットは、前記ファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するファイル検査管理部をさらに含むことを特徴とする。
【００３６】
この構成によれば、最新の悪意あるソフトウェアを検出可能なファイル検査部への更新を自動的に行うことが可能となるため、最新の悪意あるソフトウェアを検出可能として、安全性の向上を図ることができる。
【００３７】
また、前記第２の情報処理ユニットは、
前記ファイル検査部を提供するサーバから新たなファイル検査部を取得することで、前記ファイル検査部を自動的に更新するファイル検査管理部と、
前記ファイル検査管理部によって前記ファイル検査部が更新された場合、前記ファイル転送部に対するファイルの転送要求を自動的に発行するスケジューリング部とをさらに含むことを特徴とする。
【００３８】
この構成によれば、最新の悪意あるソフトウェアを検出可能な最新のファイル検査部により、補助記憶装置に記憶されたファイルを自動的に検査することが可能となるため、第１の情報処理ユニットからの転送の要求があった場合に、そのファイルが最新のファイル検査部による検査が行われていれば、ファイルを最新のファイル検査部により検査する時間を削減することができる。
【００３９】
また、前記ファイル処理制御部は、前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求と、更に、ファイルの検査要求も前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求および前記検査要求に対する応答結果に基づき、前記システム・コールを実行することを特徴とする。
【００４０】
この構成によれば、第１の情報処理ユニットは、検査要求に対する応答結果を認識することが可能となる。
【００４１】
上記目的を達成するために本発明のコンピュータ保護方法は、
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置とを有してなるコンピュータシステムによるコンピュータ保護方法であって、
前記第１の情報処理ユニットが、前記補助記憶装置に記憶されたファイルへのアクセス時に、前記第２の情報処理ユニットに対して、前記補助記憶装置から前記メモリへのファイルの転送要求を発行するステップと、
前記第２の情報処理ユニットが、前記転送要求に基づいて前記補助記憶装置から前記メモリにファイルを転送するとともに、該ファイルを検査して該検査結果に基づく情報を前記第１の情報処理ユニットに対して通知するステップと、
前記第１の情報処理ユニットが、前記第２の情報処理ユニットからの通知に基づいて、前記メモリへ転送されたファイルへのアクセスの可否を決定するステップとを有することを特徴とする。
【００４２】
上記目的を達成するために本発明のコンピュータ保護プログラムは、
第１の情報処理ユニットと、第２の情報処理ユニットと、メモリと、補助記憶装置と、アドレス調停部とを有してなるコンピュータシステムに実行させるコンピュータ保護プログラムであって、
前記第１の情報処理ユニットに、
前記補助記憶装置に記憶されたファイルへのアクセス時に、ＯＳの機能としてシステム・コールを発生する処理と、
前記システム・コールをＯＳ階層以下においてフックし、前記補助記憶装置から前記メモリへのファイルの転送要求を前記第２の情報処理ユニットに対して発行し、前記第２の情報処理ユニットからの前記転送要求に対する応答結果に基づき、前記システム・コールを実行する処理と、
仮想アドレスと物理アドレスの変換を行う処理とを実行させ、
前記第２の情報処理ユニットに、
前記転送要求に基づき、前記補助記憶装置から前記メモリへファイルを転送する処理と、
前記転送要求をトリガとしてファイルを検査し、該検査結果に基づく情報を前記転送要求に対する応答結果として前記第１の情報処理ユニットに通知する処理と、
前記第１の情報処理ユニットのアドレス変換情報を管理する処理と、
前記第１の情報処理ユニットのアドレス変換情報に基づき、仮想アドレスと物理アドレスの変換を行う処理とを実行させ、
前記アドレス調停部に、
前記第１の情報処理ユニットと前記第２の情報処理ユニットとの間で物理アドレスの調停を行う処理を実行させることを特徴とする。
【発明の効果】
【００４３】
以上説明したように本発明によれば、第１の情報処理ユニットによるファイルへのアクセス時にはシステム・コールが必ずフックされ、第１の情報処理ユニットがアクセスしようとするファイルの転送要求が第１の情報処理ユニットから第２の情報処理ユニットに発行される。また、この際、第１の情報処理ユニットにおける仮想アドレスと物理アドレスとのアドレス変換情報が、第１の情報処理ユニットから第２の情報処理ユニットへ通知される。
【００４４】
したがって、第２の情報処理ユニットは、第１の情報処理ユニットがアクセスしようとしている必要なファイルを直ちに検査することができるという効果が得られる。また、第１の情報処理ユニットの仮想記憶を、第２の情報処理ユニットでも取り扱うことができるという効果が得られる。
【発明を実施するための最良の形態】
【００４５】
以下に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００４６】
（第１の実施形態）
図１は、本発明の第１の実施形態のコンピュータシステムの全体構成を示すブロック図である。
【００４７】
図１を参照すると、本実施形態は、ソフトウェア制御により動作するプロセッサである情報処理ユニット１と、ソフトウェア制御により動作するプロセッサである情報処理ユニット２と、情報処理ユニット１と情報処理ユニット２が一時記憶のために使用するメモリ３と、ファイルを記憶する補助記憶装置４と、情報処理ユニット１と情報処理ユニット２との間でのアドレスの調停を行うアドレス調停部５１とを含む。
【００４８】
図２は、本発明の第１の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。図３は、本発明の第１の実施形態のコンピュータシステムのソフトウェアも含めた詳細な構成を示すブロック図である。
【００４９】
図２および図３を参照すると、情報処理ユニット１は、情報処理回路１１と、ＯＳ（オペレーティング・システム）１２と、アドレス変換部１４と、ファイル処理部１５と、ファイル処理制御部１６とを備える。
【００５０】
情報処理回路１１は、ソフトウェアの機能を実現するハードウェアである。
【００５１】
ＯＳ１２は、情報処理回路１１上で動作し、メモリ３や補助記憶装置４、およびコンピュータシステムの不図示の入出力装置を管理するソフトウェアである。
【００５２】
アドレス変換部１４は、ＯＳ１２と情報処理回路１１により実現される。アドレス変換部１４は、ＯＳ１２で取り扱われる仮想アドレスとメモリ３で取り扱われる物理アドレスとを相互に変換する。
【００５３】
ファイル処理部１５は、ＯＳ１２上で動作するソフトウェアとして実装される。ファイル処理部１５は、例えば、ファイルを開く処理、ファイルを閉じる処理、ファイルから読み出す処理、ファイルに書き込む処理、ファイルを実行する処理など、ファイルへのアクセス処理を行う際にシステム・コールを発生する。
【００５４】
ファイル処理制御部１６は、ＯＳ１２の一部として実装される。ファイル処理制御部１６は、ファイル処理部１５によって発生したシステム・コールをフックする処理と、情報処理ユニット２に対してファイルの転送を要求する処理と、情報処理ユニット２からの通知に基づいてシステム・コールの実行またはファイル処理部１５にエラーを返す処理を行う。
【００５５】
情報処理ユニット２は、情報処理回路２１と、ＯＳ２２と、アドレス管理部２３と、アドレス変換部２４と、ファイル転送部２５と、ファイル検査部２６とを備える。
【００５６】
情報処理回路２１は、ソフトウェアの機能を実現するハードウェアである。
【００５７】
ＯＳ２２は、情報処理回路２１上で動作し、メモリ３や補助記憶装置４、およびコンピュータシステムの不図示の入出力装置を管理するソフトウェアである。
【００５８】
アドレス管理部２３は、ＯＳ２２の一部として実装されても、ＯＳ２２上で動作するソフトウェアとして実装されていてもよい。アドレス管理部２３は、ファイル転送など必要に応じて、情報処理ユニット１のアドレス変換部１４に対し、アドレス変換部１４のアドレス変換情報を情報処理ユニット２のアドレス変換部２４に通知させる。
【００５９】
アドレス変換部２４は、ＯＳ２２内部で動作するソフトウェアと情報処理回路２１により実現される。アドレス変換部２４は、ＯＳ２２で取り扱われる仮想アドレスとメモリ３で取り扱われる物理アドレスとを相互に変換する。
【００６０】
ファイル転送部２５は、ＯＳ２２の上で動作するソフトウェアとして実装される。ファイル転送部２５は、情報処理ユニット１からの要求に基づいて、補助記憶装置４の共有ファイル記憶部４１からメモリ３の専用メモリ部３２へファイルを転送する処理を行う。ファイル転送を行う際には、ファイル転送部２５の管理のもとで、例えば、ＤＭＡコントローラといったファイル転送専用ハードウェアがファイル転送を代行してもよい。
【００６１】
ファイル検査部２６は、ＯＳ２２の上で動作するソフトウェアとして実装される。ファイル検査部２６は、ファイル転送部２５からの転送要求をトリガにして、メモリ３の専用メモリ部３２へ書き込まれたファイルに悪意あるソフトウェアが含まれているか否かを検査し、その検査結果に基づくシステム・コールの実行の可否を情報処理ユニット１へ返す。また、ファイル検査部２６は、検査済みのファイルをメモリ３の共有メモリ部３１へ転送する。ファイル検査を行う際には、ファイル検査部２６の管理のもとで、専用のハードウェアがファイル検査を代行してもよい。
【００６２】
メモリ３は、共用メモリ部３１と専用メモリ部３２から構成され、情報処理ユニット１から専用メモリ部２３への不正な書き込みを防止できる構成となっている。例えば、共用メモリ部３１と専用メモリ部３２は、物理的に同一のメモリチップで構成され、アドレス変換部１４により情報処理ユニット１では専用メモリ部３２が参照できない状態であっても良い。または、共用メモリ部３１と専用メモリ部３２は、異なるメモリチップに分割され、結線やチップへの書込み保護設定により、情報処理ユニット１では専用メモリ部３２が参照できない状態であってよい。アドレス変換部１４への設定においては、例えば、ハードウェアによる設定を行うことで、ファイルのオーバーライトによる専用メモリ部３２への攻撃を避けることが可能となる。
【００６３】
共用メモリ部３１は、情報処理ユニット１と情報処理ユニット２がアクセス可能である。共用メモリ部３１には、ＯＳ１２やファイル処理部１５が使用するファイルなどが情報処理ユニット２により書き込まれる。また、共用メモリ部３１は、情報処理ユニット１が行う処理のための作業メモリなどとしても活用される。
【００６４】
専用メモリ部３２は、情報処理ユニット２のみがアクセス可能である。専用メモリ部３２には、ＯＳ２２やファイル検査部２６が使用する対策ソフトウェアなどが書き込まれる。また、専用メモリ部３２は、情報処理ユニット２が実行する処理のための作業メモリなどとしても利用される。
【００６５】
このように、専用メモリ部３２を情報処理ユニット１の処理系から分離して設けることにより、万が一、悪意あるソフトウェアによって動作する情報処理ユニット１によってメモリ３の共用メモリ部３１が汚染されても、専用メモリ部３２が汚染されることはないため、情報処理ユニット２は正常に動作する。ここでの万が一の場合としては、コンピュータの利用者が、情報処理ユニット２の検査において検出できない、コンピュータを破壊してしまうソフトウェア（例えば、新種のコンピュータウイルス）を、自ら当該コンピュータで作成、実行した場合などが考えられるが、この限りではない。
【００６６】
補助記憶装置４は、不揮発性の記憶装置によって構成され、共用ファイル記憶部４１と専用ファイル記憶部４２から構成される。共用ファイル記憶部４１と専用ファイル記憶部４２は、物理的に分割されていても、アドレス変換部１４により情報処理ユニット１では専用ファイル記憶部４２がアクセスできない状態でもよい。
【００６７】
共用ファイル記憶部４１は、情報処理ユニット１と情報処理ユニット２からアクセス可能である。共用ファイル記憶部４１は、ＯＳ１２やファイル処理部１５が使用するファイルなどが記憶される。
【００６８】
専用ファイル記憶部４２は、情報処理ユニット２のみがアクセス可能である。専用ファイル記憶部４２は、ＯＳ２２やファイル検査部２６が使用するソフトウェアなどが記憶される。
【００６９】
このように、専用ファイル記憶部４２を設けることで、万が一、悪意あるソフトウェアによって動作する情報処理ユニット１によって補助記憶装置４の共用ファイル記憶部４１が汚染されても、専用ファイル記憶部４２が汚染されることはないため、情報処理ユニット２は正常に動作する。
【００７０】
アドレス調停部５１は、情報処理ユニット１のアドレス変換部１４と情報処理ユニット２のアドレス変換部２４との間で、物理アドレスの衝突が発生しないように物理アドレスの調停を行う。
【００７１】
次に、図４および図５を参照して、本実施形態の動作について詳細に説明する。
【００７２】
図４を参照すると、情報処理ユニット１のファイル処理部１５が、ファイルへのアクセスの際に、システム・コールを発生する（ステップＡ１）。
【００７３】
情報処理ユニット１のファイル処理制御部１６が、上記システム・コールをフックする（ステップＡ２）。
【００７４】
情報処理ユニット１のファイル処理制御部１６が、情報処理ユニット２に含まれるファイル転送部２５に対して、補助記憶装置４の共有ファイル記憶部４１からメモリ３の共用メモリ部３１へのファイル転送を要求する（ステップＡ３）。
【００７５】
ファイル転送部２５が、アドレス管理部２３に対して、アドレス変換部１４のアドレス変換情報を、アドレス変換部１４からアドレス変換部２４へ通知させるよう要求する（ステップＡ４）。
【００７６】
アドレス管理部１４が、アドレス変換情報をアドレス管理部２４に通知する（ステップＡ５）。この結果、情報処理ユニット２は、情報処理ユニット１と同じファイルを参照することができる。
【００７７】
ファイル転送部２５が、補助記憶装置４の共有ファイル記憶部４１から読み出したファイルを、メモリ３の専用メモリ部３２に書き込む。専用メモリ部３２に書き込まれたファイルは、ファイル検査部２６により、悪意あるソフトウェアが含まれているか否かの検査を受ける（ステップＡ６）。検査されたファイルは、ファイル検査部２６により、共用メモリ部３１に転送される。ただし、検査の結果、悪意あるソフトウェアが含まれていた場合は、共用メモリ部３１に転送しなくてもよい。検査の方法としては、例えば、検査対象のファイルと悪意あるソフトウェアのデータ系列とのパターン・マッチングや、ＯＳ２２の上に構成された仮想マシンにおいて、ホストＯＳ２２とは完全に独立した環境の中での試験的な実行が考えられるが、この限りではない。ＯＳ１２によって情報処理ユニット１のシステム・コールがフックされ、その間に別のシステム・コールが実行されないコンピュータシステムである場合、情報処理ユニット２は、補助記憶装置４から読み出したファイルを、メモリ３の共用メモリ部３１に書き込み、検査してもよい。
【００７８】
ファイル検査部２６が、ファイル検査の結果を基にして、上記システム・コールの実行の可否をファイル処理制御部１６に通知する（ステップＡ７）。
【００７９】
ファイル検査部２６が、検査の結果、ファイルの中に悪意あるソフトウェアが含まれていなかったと判断し、システム・コールの実行を許可する通知をした場合（ステップＡ８）、ファイル処理制御部１６は、上記システム・コールを実行する（ステップＡ９）。
【００８０】
一方、ファイル検査部２６が、検査の結果、ファイルの中に悪意あるソフトウェアが含まれていると判断し、システム・コールの実行を不許可とする通知をした場合（ステップＡ８）、ファイル処理部１５に対してエラーを返す（ステップＡ１０）。ステップＡ１０により、悪意あるソフトウェアの起動を中止することが可能となる。
【００８１】
上述したように本実施形態においては、情報処理ユニット１によるファイルへのアクセス時にはシステム・コールが必ずフックされ、情報処理ユニット１がアクセスしようとするファイルの転送要求が情報ユニット１から情報処理ユニット２に発行される。また、この際、情報処理ユニット１の仮想アドレスと物理アドレスとのアドレス変換情報が、情報処理ユニット１から情報処理ユニット２へ通知される。
【００８２】
したがって、情報処理ユニット２は、情報処理ユニット１がアクセスしようとしている必要なファイルを直ちに検査することができるという効果が得られる。情報処理ユニット１の仮想記憶を、情報処理ユニット２でも取り扱うことができるという効果が得られる。
【００８３】
また、本実施形態においては、情報処理ユニット１がアクセスするファイルは、情報処理ユニット２によって検査済みのファイルとなる。
【００８４】
したがって、情報処理ユニット１が悪意あるソフトウェアの起動を中止することが可能となるため、悪意あるソフトウェアから保護することができるという効果が得られる。
【００８５】
また、本実施形態においては、メモリ３が、情報処理ユニット１が使用する領域（共用メモリ部３１）と、情報処理ユニット２が使用する領域（専用メモリ部３２）とに分離されている。
【００８６】
したがって、万が一、情報処理ユニット２が検出できなかった悪意あるソフトウェアが情報処理ユニット１上で動作し、その悪意あるソフトウェアによって共用メモリ部３１が汚染されたとしても、専用メモリ部３２は汚染されないため、情報処理ユニット２が正常に動作を継続できるという効果が得られる。なお、情報処理ユニット２が、専用メモリ部３２上で、悪意あるソフトウェアが含まれているファイルを検査する場合があるが、ファイルを検査するだけでは、専用メモリ部３２が汚染されることはない。
【００８７】
また、本実施形態においては、補助記憶装置４が、情報処理ユニット１が活用するソフトウェアが記憶された領域（共有ファイル記憶部４１）と、情報処理ユニット２が活用するソフトウェアが記憶された領域（専用ファイル記憶部４２）とに分離されている。
【００８８】
したがって、情報処理ユニット１が活用する補助記憶装置４に記憶されたファイルが、悪意あるソフトウェアによって汚染されたとしても、情報処理ユニット２が活用する補助記憶装置４に記憶されたファイルを悪意あるソフトウェアから保護することができるという効果が得られる。
【００８９】
（第２の実施形態）
図６は、本発明の第２の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【００９０】
図６を参照すると、本実施形態は、第１の実施形態と比較して、情報処理ユニット２にスケジューリング部２７を備えている点が異なる。その他は、第１の実施形態と同様である。
【００９１】
スケジューリング部２７は、ＯＳ２２の上で動作するソフトウェアであっても、ＯＳ２２に含まれるソフトウェアであってもよい。スケジューリング部２７は、ファイル処理制御部１６から一定時間要求がない場合、ファイル転送部２５およびファイル検査部２６を起動する。これにより、情報処理ユニット２が、情報処理ユニット１からのファイル検査要求とは独立して、ファイルを検査できる。検査した結果はファイル検査記録として専用メモリ部３２に記憶される。
【００９２】
次に、図７および図８を参照して、本実施形態の動作について詳細に説明する。
【００９３】
図７は、本実施形態の動作のうち、スケジューリング部２７からの要求によるファイル検査の動作を示す図である。
【００９４】
図７を参照すると、ファイル処理制御部１６から要求が一定時間ない場合（ステップＡ５１）、スケジューリング部２７がファイル転送部２５およびファイル検査部２６を起動し、ファイル転送部２５が、検査対象のファイルを、補助記憶装置４の共用ファイル記憶部４１からメモリ３の専用メモリ部３２へ転送し、ファイル検査部２６が、専用メモリ部３２へ転送されたファイルを検査する（ステップＡ５２）。
【００９５】
検査結果は、ファイル検査部２６により、ファイル検査記録として専用メモリ部３２に記憶される（ステップＡ５３）。更に、検査結果は、専用ファイル記憶部４２など情報処理ユニット２のみが書き換え可能な領域であれば、その他の記憶領域に記憶されてもよい。
【００９６】
図８は、本実施形態の動作のうち、情報処理ユニット１からの転送要求によるファイル検査の動作を示す図である。
【００９７】
図８を参照すると、情報処理ユニット１からのファイル転送の要求があった場合（ステップＡ３）、ファイル検査部２６が、ファイル検査記録を参照する（ステップＡ１１）。
【００９８】
検査対象のファイルが検査済みである場合、ファイル検査部２６が、ファイル検査記録からファイルが安全であるか否かを判断する（ステップＡ１２）。
【００９９】
検索対象のファイルが安全である場合、ファイル転送部２５とファイル検査部２６が、共有メモリ部３１へのファイル転送を行い（ステップＡ１３）、ファイル検査部２６が、システム・コールの実行許可を情報処理ユニット１に通知する（ステップＡ１４）。
【０１００】
一方、検索対象のファイルが安全でなかった場合、ファイル検査部２６が、システム・コールの実行不許可をファイル処理制御部１６に通知し、ファイル処理制御部１６が、ファイル処理部１５にエラーを返す（ステップＡ１０）。このとき、当該ファイルを転送しないなどの処理が考えられるが、この限りではない。
【０１０１】
また、検索対象のファイルが検査済みでなかった場合、ファイル検査部２６が、第１の実施形態と同様にファイルを検査する（ステップＡ６、ステップＡ７）。その他は、第１の実施形態と同様である。
【０１０２】
上述したように本実施形態においては、情報処理ユニット１からファイルの検査要求がなくとも補助記憶装置４の共有ファイル記憶部４１に記憶されたファイルを検査する。
【０１０３】
そのため、情報処理ユニット１からのファイル転送の要求があった場合に、そのファイルがすでに検査済みであれば、ファイルを検査する時間を削減できるという効果が得られる。その他の効果は第１の実施形態と同様である。
【０１０４】
なお、利用者は、スケジューリング部２７の設定を変更することで、スケジューリング部２７による検査の実行の可否を選択できる。
【０１０５】
（第３の実施形態）
図９は、本発明の第３の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【０１０６】
図９を参照すると、本実施形態は、第１の実施形態と比較して、ファイル検査部２６を提供する情報提供サーバ６０と、情報処理提供サーバ６０と情報処理ユニット２とを接続するネットワーク６１と、ファイル検査部２６の新旧、更新状況、バグなどを管理するファイル検査管理部２８と、ファイル処理管理部２８をネットワーク６１に接続するＮＩＣ（ネットワーク・インターフェース・カード）６２とを備えている点が異なる。その他は、第１の実施形態と同様である。
【０１０７】
ファイル検査管理部２８は、ファイル検査部２６の新旧に関して情報提供サーバ６０にＮＩＣ６２を通して問い合わせを行い、より新しいファイル検査部２６が提供されている場合には、新しいファイル検査部２６を取得する。更に、第２の実施形態と組み合わせた場合は、新しいファイル検査部２６を取得すると、ファイル検査記録の内容をすべて未検査とした上で、新しいファイル検査部２６が、補助記憶装置４の共用ファイル記憶部４２に記憶されたファイルを検査する。
【０１０８】
上述したように本実施形態においては、ファイル検査管理部２８が自動的にファイル検査部２６を更新することにより、最新の悪意あるソフトウェアを検出可能として、安全性の向上を図ることができるという効果が得られる。更に、第２の実施形態と組み合わせた場合は、最新の悪意あるソフトウェアを検出可能な状態で、第２の実施の形態の効果を得られる。その他の効果は第１の実施形態と同様である。
【０１０９】
なお、利用者は、ファイル検査管理部２８の設定を変更することで、ファイル検査管理部２８による更新の実行の可否を選択できる。
【０１１０】
（第４の実施形態）
図１０は、本発明の第４の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【０１１１】
図１０を参照すると、本実施形態は、第１の実施形態と比較して、情報処理ユニット１のファイル処理制御部１６が、ファイル検査部２６に対して、ファイルの検査を要求する機能を備えている点が異なる。その他は、第１の実施形態と同様である。
【０１１２】
次に、図１１を参照して、本実施形態の動作について詳細に説明する。
【０１１３】
図１１を参照すると、情報処理ユニット１のファイル処理制御部１６が、ファイルの転送を要求する際に、同時に、ファイルを検査する要求を発生する（ステップＡ１５）。
【０１１４】
ファイル転送部２５が、アドレス管理部２３に対して、アドレス変換部１４のアドレス変換情報を、アドレス変換部１４からアドレス変換部２４へ通知させるよう要求する（ステップＡ４）。
【０１１５】
アドレス管理部１４が、アドレス変換情報をアドレス管理部２４に通知する（ステップＡ５）。この結果、情報処理ユニット２は、情報処理ユニット１と同じファイルを参照することができる。
【０１１６】
ファイル転送部２５が、補助記憶装置４の共有ファイル記憶部４１から読み出したファイルを、メモリ３の専用メモリ部３２に書き込む。専用メモリ部３２に書き込まれたファイルは、ファイル検査部２６により、悪意あるソフトウェアが含まれているか否かの検査を受ける（ステップＡ６）。
【０１１７】
ファイル検査部２６が、ファイル検査の結果をファイル処理制御部１６に通知する（ステップＡ１６）。
【０１１８】
ファイル処理制御部１６が、ファイルの中に悪意あるソフトウェアが含まれていなかったと判断した場合（ステップＡ１７）、上記システム・コールを実行する（ステップＡ９）。
【０１１９】
一方、ファイル処理制御部１６が、ファイルの中に悪意あるソフトウェアが含まれていると判断した場合、ファイル処理部１５に対してエラーを返す（ステップＡ１０）。ステップＡ１０により、悪意あるソフトウェアの起動を中止することが可能となる。その他は、第１の実施形態と同様である。
【０１２０】
上述したように本実施形態においては、情報処理ユニット１は、ファイル検査部２６からファイル検査の結果が通知された際に、悪意あるソフトウェアに対する検査の結果であることを認識することが可能となる。そのため、情報処理ユニット１は、例えば、コンピュータシステムの利用者に検査結果を通知することができるという効果が得られる。その他の効果は第１の実施形態と同様である。
【実施例】
【０１２１】
（実施例１）
図１２は、本発明の実施例１のコンピュータシステムの構成を示すブロック図である。本実施例は、第１の実施形態に対応するものである。
【０１２２】
図１２を参照すると、本実施例は、情報処理ユニット１としてマルチ・コア・プロセッサ８００のプロセッサ・コア１００を、情報処理ユニット２としてプロセッサ・コア２００を、メモリ３としてＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）３００を、補助記憶装置４としてフラッシュ・メモリ４００を、アドレス調停部５１としてアドレス調停部５０１を設けている。
【０１２３】
なお、本実施例では、同じダイに複数のプロセッサが含まれるマルチ・コア・プロセッサを取り上げているが、複数のプロセッサを１つのコンピュータに含みバスを共有するようなマルチ・プロセッサでもよい。
【０１２４】
プロセッサ・コア１００には、アドレス変換部１４としてＭＭＵ（メモリ・マネジメント・ユニット）１０１が備えられている。
【０１２５】
プロセッサ・コア２００には、アドレス変換部２４としてＭＭＵ２０１が、アドレス管理部２３としてアドレス管理部２０２が備えられている。
【０１２６】
ＤＲＡＭ３００は、プロセッサ・コア１００やプロセッサ・コア２００が処理を行う際に使用する一時記憶装置である。ＤＲＡＭ３００は、プロセッサ・コア１００とプロセッサ・コア２００のどちらもがアクセスできる共用領域と、プロセッサ・コア２００のみがアクセスできる専用領域を有する。専用領域は、プロセッサ・コア１００のＭＭＵ１０１の設定により、プロセッサ・コア１００からはアクセスできない。
【０１２７】
フラッシュ・メモリ４００は、プロセッサ・コア１００とプロセッサ・コア２００のどちらもが読み出し、書き込み可能である共用領域と、プロセッサ・コア２００のみが読み出し、書き込み可能である専用領域を有する。共用領域には、ファイル処理部１５としてプロセッサ・コア１００を機能させるアプリケーション・ソフトウェアと、ファイル処理制御部１６としてプロセッサ・コア１００を機能させるフック・モジュールを含むＯＳなどが記憶されている。専用領域には、ファイル転送部２５としてプロセッサ・コア２００を機能させるＯＳと、ファイル検査部２６としてプロセッサ・コア２００を機能させる対策ソフトウェアが記憶されている。
【０１２８】
アドレス調停部５０１は、プロセッサ・コア１００のＭＭＵ１０１とプロセッサ・コア２００のＭＭＵ２０１との間で、物理アドレスの衝突が発生しないように物理アドレスを調停する。本実施例の場合では、プロセッサ・コア１００とプロセッサ・コア２００が、ＤＲＡＭ３００の共用領域に同時にアクセスしないようにする。調停方法としては、システムの状態に応じて、コアのどちらかに優先権を与える方法がある。
【０１２９】
次に、図１３を参照して、本実施例の動作について詳細に説明する。なお、図１３では、例えば、フラッシュ・メモリ４００の共用領域に記憶されたファイルを、アプリケーション・ソフトウェアによって動作するプロセッサ・コア１００が読み出すと仮定する。
【０１３０】
図１３を参照すると、アプリケーション・ソフトウェアによりプロセッサ・コア１００は、ファイルを開くというシステム・コールを生成する（ステップＢ１）。
【０１３１】
生成されたシステム・コールは、システム・コールをフックするモジュールを備えたＯＳにより動作するプロセッサ・コア１００によって、フックされる（ステップＢ２）。
【０１３２】
ＯＳによって動作するプロセッサ・コア１００は、ＯＳによって動作するプロセッサ・コア２００に対して、フラッシュ・メモリ４００からのメモリ３００へのファイル転送の要求を発する（ステップＢ３）。要求の内容には、例えば、ファイルが格納される場所を示すファイル・パスや書込み先のメモリのアドレスなどが含まれる。要求の内容を伝送する方法としては、例えば、共用メモリを使用する方法や、メッセージ・パッシングを使用する方法、専用線を配置する方法などが考えられるが、この限りではない。
【０１３３】
プロセッサ・コア２００のアドレス管理部２０２が、ＭＭＵ１０１に対して、仮想アドレスと物理アドレスとのアドレス変換情報を通知するように要求する（ステップＢ４）。
【０１３４】
ＭＭＵ１０１は、上記のアドレス変換情報をＭＭＵ２０１に通知する（ステップＢ５）。これにより、プロセッサ・コア１００とプロセッサ・コア２００とが同じ仮想記憶を扱えるようになる。
【０１３５】
ＯＳによって動作するプロセッサ・コア２００は、ファイルの転送を実行し、対策ソフトウェアによって動作するプロセッサ・コア２００は、悪意あるソフトウェアに関する情報をもとにして、ファイルの中に悪意あるソフトウェアが含まれているか否かを検査する（ステップＢ６）。プロセッサ・コア１００のシステム・コールがフックされ、その間に別のシステム・コールが実行されないコンピュータシステムである場合、プロセッサ・コア２００は、フラッシュ・メモリ４００の共用領域から読み出したファイルを、ＤＲＡＭ３００の共用領域に書き込み、検査してもよい。
【０１３６】
プロセッサ・コア２００は、検査の結果に基づき、システム・コール実行の可否を、プロセッサ・コア１００に通知する（ステップＢ７）。
【０１３７】
システム・コールをフックするモジュールを備えたＯＳによって動作するプロセッサ・コア１００は、実行が可であった場合（ステップＢ８）、上記システム・コールを実行する（ステップＢ９）。それにより、ファイルをＤＲＡＭ３００からプロセッサ・コア１００へ読み出すことが可能となる。
【０１３８】
一方、実行が不可であった場合（ステップＢ８）、プロセッサ・コア１００は、上記システム・コールを発生したアプリケーション・ソフトウェアに対して、エラーを返す（ステップＢ１０）。
【０１３９】
（実施例２）
図１４は、本発明の実施例２のコンピュータシステムの構成を示すブロック図である。本実施例は、第１の実施形態に対応するものである。
【０１４０】
図１４を参照すると、本実施例は、実施例１と比較して、ファイル転送部２５として機能するＤＭＡコントローラ５０２を備える点が異なる。その他は、実施例１と同様である。
【０１４１】
ＤＭＡコントローラ５０２は、プロセッサ・コア２００がファイル転送部２５として機能する際にファイル転送を代行する。同時に、ＤＭＡコントローラ５０２は、アドレス調停部５１としても動作する。その他は、実施例１と同様である。
【０１４２】
（実施例３）
図１５は、本発明の実施例３のコンピュータシステムの構成を示すブロック図である。本実施例は、第２の実施形態に対応するものである。
【０１４３】
図１５を参照すると、本実施例は、実施例１と比較して、フラッシュ・メモリ４００の専用領域に、スケジューラと、ファイル検査記録とを記憶している点が異なる。スケジューラは、プロセッサ・コア１００からの要求がない場合に、プロセッサ・コア２００が独立してファイル検査ができるように、プロセッサ・コア２００をスケジューリング部２７として機能させる。ファイル検査記録は、プロセッサ・コア２００が検査した結果を記録したものである。その他は、実施例１と同様である。図１６にファイル検査記録の例を示す。
【０１４４】
次に、図１７および図１８を参照して、本実施例の動作について詳細に説明する。
【０１４５】
図１７は、本実施例の動作のうち、スケジューラからの要求によるファイル検査の動作を示す図である。
【０１４６】
図１７を参照すると、プロセッサ・コア１００から要求が一定時間ない場合（ステップＢ５１）、スケジューラにより動作するプロセッサ・コア２００が、検査対象のファイルを、フラッシュ・メモリ４００の共用領域から、ＤＲＡＭ３００の専用領域へ転送し、対策ソフトウェアによりファイル検査部２６として機能するプロセッサ・コア２００が、ファイルを検査する（ステップＢ５２）。
【０１４７】
検査結果は、プロセッサ・コア２００のみがアクセスできる記憶領域に保存される（ステップＢ５３）
図１８は、本実施例の動作のうち、プロセッサ・コア１００からの要求によるファイル検査の動作を示す図である。
【０１４８】
ＯＳによって動作するプロセッサ・コア１００からのファイル転送の要求があった場合（ステップＢ３）、ＯＳによって動作するプロセッサ・コア２００が、ファイル検査記録を参照する（ステップＢ１１）。
【０１４９】
その結果、検査対象のファイルが検査済みである場合、ファイル検査記録を参照してファイルが安全であるかを判断する（ステップＢ１２）。
【０１５０】
上記ファイルが安全である場合、ＯＳによって動作するプロセッサ・コア２００が、ファイル転送を行い（ステップＢ１３）、システム・コールの許可を、プロセッサ・コア１００に通知する（ステップＢ１４）。
【０１５１】
一方、ファイルが安全でなかった場合、ＯＳによって動作するプロセッサ・コア２００が、システム・コールの不許可を、プロセッサ・コア１００に通知し、プロセッサ・コア１００が、上記システム・コールを発生したアプリケーション・ソフトウェアに対して、エラーを返す（ステップＢ１０）。
【０１５２】
また、参照した結果、検査対象のファイルが検査済みでなかった場合、プロセッサ・コア２００が、実施例１と同様に上記ファイルを検査する（ステップＢ６、ステップＢ７）。その他は、実施例１と同様である。
【０１５３】
（実施例４）
図１９は、本発明の実施例４のコンピュータシステムの構成を示すブロック図である。本実施例は、第３の実施形態に対応するものである。
【０１５４】
図１９を参照すると、本実施例は、実施例１と比較して、対策ソフトウェアの更新データを提供する情報提供サーバ６００と、情報提供サーバ６００とコンピュータ９００とを接続するネットワーク６０１と、コンピュータ９００をネットワーク６０１と接続可能にするＮＩＣ６０２とを備えている点と、フラッシュ・メモリ４００の専用領域に、プロセッサ・コア２００に対策ソフトウェアを管理させる機能を実現する対策管理ソフトウェアを記憶している点とが異なる。その他は、実施例１と同様である。
【０１５５】
対策ソフトウェアによりファイル検査部２６として動作するプロセッサ・コア２００は、対策ソフトウェアの新旧に関して情報提供サーバ６００にＮＩＣ６０２を通して問い合わせを行い、より新しい対策ソフトウェアが提供されている場合には、新しい対策ソフトウェアを取得し、フラッシュ・メモリ４００の専用領域に記憶させる。更に、実施例３と組み合わせた場合は、ファイル検査記録の内容をすべて未検査とした上で、新しい対策ソフトウェアによってファイル検査部２６として動作するプロセッサ・コア２００が、フラッシュ・メモリ４００の共用領域に記憶されたファイルを検査する。
【０１５６】
（実施例５）
図２０は、本発明の実施例５のコンピュータシステムの動作を示す図である。本実施例は、第４の実施形態に対応するものである。
【０１５７】
図２０を参照すると、ＯＳによって動作するプロセッサ・コア１００が、ＯＳによって動作するプロセッサ・コア２００に対してフラッシュ・メモリ４００からのメモリ３００へのファイル転送の要求と検査の要求を発生する（ステップＢ１５）。
【０１５８】
ＯＳによって動作するプロセッサ・コア２００は、ファイルの転送を実行し、対策ソフトウェアによって動作するプロセッサ・コア２００は、悪意あるソフトウェアに関する情報をもとにして、ファイルの中に悪意あるソフトウェアが含まれているか否かを検査をする（ステップＢ６）。
【０１５９】
プロセッサ・コア２００は、検査の結果を、プロセッサ・コア１００に通知する（ステップＢ１６）。
【０１６０】
システム・コールをフックするモジュールを備えたＯＳによって動作するプロセッサ・コア１００は、通知の結果、悪意あるソフトウェアが含まれていなかったと判断した場合（ステップＢ１７）、上記システム・コールを実行する（ステップＢ９）。それにより、ファイルをＤＲＡＭ３００からプロセッサ・コア１００へ読み出すことが可能となる。
【０１６１】
一方、プロセッサ・コア１００は、悪意あるソフトウェアが含まれていると判断した場合、上記システム・コールを発生したアプリケーション・ソフトウェアに対して、エラーを返す（ステップＢ１０）。その他は、実施例１と同様である。
【産業上の利用可能性】
【０１６２】
本発明は、マイクロ・プロセッサ・コアを複数活用することにより、消費電力などの観点から、マイクロ・プロセッサ・コア１個あたりの処理能力を著しく高められず、また、ＯＳの再インストールなどを容易に行うことができないために、悪意あるソフトウェアからの高い耐性が要求される、組込み機器などに適用することが可能である。
【図面の簡単な説明】
【０１６３】
【図１】本発明の第１の実施形態のコンピュータシステムの全体構成を示すブロック図である。
【図２】本発明の第１の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【図３】本発明の第１の実施形態のコンピュータシステムのソフトウェアの機能も含めた構成を示すブロック図である。
【図４】本発明の第１の実施形態のコンピュータシステムの動作を示すフローチャートである。
【図５】本発明の第１の実施形態のコンピュータシステムの動作を示すシーケンス図である。
【図６】本発明の第２の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【図７】本発明の第２の実施形態のコンピュータシステムの動作のうち、スケジュールリング部の要求によりファイル検査を行う場合の動作を示すフローチャートである。
【図８】本発明の第２の実施形態のコンピュータシステムの動作のうち、情報処理ユニット１の要求によりファイル検査を行う場合の動作を示すフローチャートである。
【図９】本発明の第３の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【図１０】本発明の第４の実施形態のコンピュータシステムの機能に関する詳細な構成を示すブロック図である。
【図１１】本発明の第４の実施形態のコンピュータシステムの動作を示すフローチャートである。
【図１２】本発明の実施例１のコンピュータシステムの構成を示すブロック図である。
【図１３】本発明の実施例１のコンピュータシステムの動作を示すフローチャートである。
【図１４】本発明の実施例２のコンピュータシステムの構成を示すブロック図である。
【図１５】本発明の実施例３のコンピュータシステムの構成を示すブロック図である。
【図１６】本発明の実施例３におけるファイル検査記録の例を示す図である。
【図１７】本発明の実施例３のコンピュータシステムの動作のうち、スケジューラの要求によりファイル検査を行う場合の動作を示すフローチャートである。
【図１８】本発明の実施例３のコンピュータシステムの動作のうち、プロセッサ・コア１００の要求によりファイル検査を行う場合の動作を示すフローチャートである。
【図１９】本発明の実施例４のコンピュータシステムの構成を示すブロック図である。
【図２０】本発明の実施例５のコンピュータシステムの動作を示すフローチャートである。
【図２１】特許文献１に示される従来のコンピュータシステムの構成を示すブロック図である。
【図２２】特許文献２に示される従来のコンピュータシステムの構成を示すブロック図である。
【図２３】特許文献３に示される従来のコンピュータシステムの構成を示すブロック図である。
【符号の説明】
【０１６４】
１    情報処理ユニット
２    情報処理ユニット
３    メモリ
４    補助記憶装置
５    バス調停部
１１    情報処理回路
１２    ＯＳ
１４    アドレス変換部
１５    ファイル処理部
１６    ファイル処理制御部
２１    情報処理回路
２２    ＯＳ
２３    アドレス管理部
２４    アドレス変換部
２５    ファイル転送部
２６    ファイル検査部
２７    スケジューリング部
２８    ファイル検査管理部
３１    共用メモリ部
３２    専用メモリ部
４１    共用ファイル記憶部
４２    専用ファイル記憶部
５１    アドレス調停部
１００    プロセッサ・コア
１０１    ＭＭＵ
２００    プロセッサ・コア
２０１    ＭＭＵ
２０２    アドレス管理部
３００    ＤＲＡＭ
４００    フラッシュ・メモリ
５０１    アドレス調停部
５０２    ＤＭＡコントローラ
６００    情報提供サーバ
６０１    ネットワーク
６０２    ＮＩＣ
８００    マルチ・コア・プロセッサ
９００    コンピュータ
【図１】
2008108131.tif 000003
【図２】
2008108131.tif 000004
【図３】
2008108131.tif 000005
【図４】
2008108131.tif 000006
【図５】
2008108131.tif 000007
【図６】
2008108131.tif 000008
【図７】
2008108131.tif 000009
【図８】
2008108131.tif 000010
【図９】
2008108131.tif 000011
【図１０】
2008108131.tif 000012
【図１１】
2008108131.tif 000013
【図１２】
2008108131.tif 000014
【図１３】
2008108131.tif 000015
【図１４】
2008108131.tif 000016
【図１５】
2008108131.tif 000017
【図１６】
2008108131.tif 000018
【図１７】
2008108131.tif 000019
【図１８】
2008108131.tif 000020
【図１９】
2008108131.tif 000021
【図２０】
2008108131.tif 000022
【図２１】
2008108131.tif 000023
【図２２】
2008108131.tif 000024
【図２３】
2008108131.tif 000025