(57)【特許請求の範囲】
【請求項１】
ファイル種別に対応して存在し、ファイルをデータに分割したときの単一のデータのサイズに対応した第１のパターン情報と、データを複数個結合した結合データのサイズに対応した第２のパターン情報と、
情報処理装置、外部装置、または、両装置間の接続路に接続されて、前記情報処理装置から前記接続路を介して前記外部装置へ、または、前記外部装置から前記接続路を介して前記情報処理装置へ転送されるデータと当該データが属するファイルのファイル種別を入力する管理部と、
前記管理部が入力した第１の前記データに、前記管理部が入力した前記ファイル種別（入力ファイル種別）に対応した前記第１のパターン情報で示されるパターンがあるか否かの検査を実行し、前記第１の前記データと前記管理部が前記第１の前記データ入力後順次入力した１以上の第２の前記データとを結合した結合データに、前記第２のパターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算部と、を備えるパターン検出装置。
【請求項２】
前記入力ファイル種別は、前記管理部が入力した前記データから取得される、請求項１のパターン検出装置。
【請求項３】
前記入力ファイル種別を、さらに、前記情報処理装置に通知する前記管理部を備えた、請求項２のパターン検出装置。
【請求項４】
前記入力ファイル種別は、前記情報処理装置から取得される、請求項１のパターン検出装置。
【請求項５】
前記情報処理装置が前記接続路を介して前記外部装置へ出力した、前記第１と前記第２の前記データに対応する第１と第２のＩＯ命令を入力する前記管理部と、
前記第１と前記第２のＩＯ命令で指示される前記情報処理装置のメモリアドレスに基づいて、前記第１と前記第２の前記データが連続しているか否かを判断して、連続していれば前記第１と前記第２の前記データから前記結合データを作成する前記演算部を備えた、請求項１乃至４のいずれかのパターン検出装置。
【請求項６】
請求項１ないし５のいずれかのパターン検出装置と、前記情報処理装置と、前記外部装置と、を備えるパターン検出システム。
【請求項７】
ファイル種別に対応して存在し、ファイルをデータに分割したときの単一のデータのサイズに対応した第１のパターン情報と、データを複数個結合した結合データのサイズに対応した第２のパターン情報を備えたコンピュータに、
情報処理装置、外部装置、または、両装置間の接続路に接続されて、前記情報処理装置から前記接続路を介して前記外部装置へ、または、前記外部装置から前記接続路を介して前記情報処理装置へ転送されるデータと当該データが属するファイルのファイル種別を入力する管理処理と、
前記管理処理で入力した第１の前記データに、前記管理処理で入力した前記ファイル種別（入力ファイル種別）に対応した前記第１のパターン情報で示されるパターンがあるか否かの検査を実行し、前記第１の前記データと前記管理部が前記第１の前記データ入力後順次入力した１以上の第２の前記データとを結合した結合データに、前記第２のパターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算処理と、を実行させるパターン検出プログラム。
【請求項８】
前記入力ファイル種別は、前記管理部が入力した前記データから取得される、請求項７のパターン検出プログラム。
【請求項９】
前記コンピュータに、前記入力ファイル種別を、さらに、前記情報処理装置に通知する前記管理処理を実行させる、請求項８のパターン検出プログラム。
【請求項１０】
前記入力ファイル種別は、前記情報処理装置から取得される、、請求項７のパターン検出プログラム。
【請求項１１】
前記コンピュータに、
前記情報処理装置が前記接続路を介して前記外部装置へ出力した、前記第１と前記第２の前記データに対応する第１と第２のＩＯ命令を入力する前記管理処理と、
前記第１と前記第２のＩＯ命令で指示される前記情報処理装置のメモリアドレスに基づいて、前記第１と前記第２の前記データが連続しているか否かを判断して、連続していれば前記第１と前記第２の前記データから前記結合データを作成する前記演算処理を、実行させる請求項７乃至１０のいずれかのパターン検出プログラム。
【請求項１２】
ファイル種別に対応して存在し、ファイルをデータに分割したときの単一のデータのサイズに対応した第１のパターン情報と、データを複数個結合した結合データのサイズに対応した第２のパターン情報を備えたコンピュータが、
情報処理装置、外部装置、または、両装置間の接続路に接続されて、前記情報処理装置から前記接続路を介して前記外部装置へ、または、前記外部装置から前記接続路を介して前記情報処理装置へ転送されるデータと当該データが属するファイルのファイル種別を入力する管理行程と、
前記管理工程で入力した第１の前記データに、前記管理工程で入力した前記ファイル種別（入力ファイル種別）に対応した前記第１のパターン情報で示されるパターンがあるか否かの検査を実行し、前記第１の前記データと前記管理部が前記第１の前記データ入力後順次入力した１以上の第２の前記データとを結合した結合データに、前記第２のパターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算行程と、を有するパターン検出方法。
【請求項１３】
前記入力ファイル種別は、前記管理部が入力した前記データから取得される、請求項１２のパターン検出方法。
【請求項１４】
前記コンピュータが、前記入力ファイル種別を、さらに、前記情報処理装置に通知する前記管理行程を有する、請求項１３のパターン検出方法。
【請求項１５】
前記入力ファイル種別は、前記情報処理装置から取得される、請求項１２のパターン検出方法。
【請求項１６】
前記コンピュータが、
前記情報処理装置が前記接続路を介して前記外部装置へ出力した、前記第１と前記第２の前記データに対応する第１と第２のＩＯ命令を入力する前記管理行程と、
前記第１と前記第２のＩＯ命令で指示される前記情報処理装置のメモリアドレスに基づいて、前記第１と前記第２の前記データが連続しているか否かを判断して、連続していれば前記第１と前記第２の前記データから前記結合データを作成する前記演算行程を、有する請求項１２乃至１５のいずれかのパターン検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パターン検出装置、パターン検出システム、パターン検出プログラム、およびパターン検出方法に関する。
【背景技術】
【０００２】
特許文献１は、ウィンドウのサイズに対応したセルパターンを備えるマルチウィンドウ表示装置を開示する。特許文献２は、情報処理装置に接続されて、ディスクに格納されたファイルのウィルスチェックを行う記憶装置を開示する。特許文献３は、バッファされたＣＰＵへの入力データとパターンデータを比較してウィルスを検出する装置を開示する。特許文献４は、ファイルの保存要求を受けたときにそのファイルのウィルスチェックを行う装置を開示する。特許文献５は、受信データのシーケンス番号に基づいて受信デー タの連続性を監視する装置を開示する。
【０００３】
【特許文献１】特開平11-095970号公報
【特許文献２】特開平08-328846号公報
【特許文献３】特開平06-337781号公報
【特許文献４】特開2007-164450号公報
【特許文献５】特開2003-169105号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の特許文献は、いずれも、情報処理装置と外部装置との間を転送される、ファイルの一部データに、ファイル種別に対応した所定パターンが有るか否かを検査して情報処理装置に通知するパターン検出装置に関するものではない。従って、情報処理装置に大きな負荷を増すことなく適切なパターン検出が出来ないという課題が有った。
【０００５】
本発明の目的は、上記課題を解決するパターン検出装置、パターン検出システム、パターン検出プログラム、およびパターン検出方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態のパターン検出装置は、ファイル種別に対応したパターン情報と、情報処理装置と前記情報処理装置に接続された外部装置との間を、データに分割して転送されるファイルに属する前記データを入力する管理部と、前記データに、前記ファイルの前記ファイル種別に対応した前記パターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算部と、を備える。
【０００７】
本発明の一実施形態のパターン検出プログラムは、ファイル種別に対応したパターン情報を備えたコンピュータに、情報処理装置と前記情報処理装置に接続された外部装置との間を、データに分割して転送されるファイルに属する前記データを入力する管理処理と、前記データに、前記ファイルの前記ファイル種別に対応した前記パターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算処理と、を実行させる。
【０００８】
本発明の一実施形態のパターン検出方法は、ファイル種別に対応したパターン情報を備えたコンピュータが、情報処理装置と前記情報処理装置に接続された外部装置との間を、データに分割して転送されるファイルに属する前記データを入力する管理行程と、前記データに、前記ファイルの前記ファイル種別に対応した前記パターン情報で示されるパターンが有るか否かを検査し、前記情報処理装置に通知される検査結果を報告する演算行程と、を有する。
【発明の効果】
【０００９】
本発明によれば、情報処理装置に大きな負荷を増すことなく適切なパターン検出が出来る。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の第１の実施形態のパターン検出システム１０を示す。パターン検出システム１０は、パターン検出装置５０、情報処理装置３０、および、外部装置２０を包含する。本発明でいうパターンは、ウィルスチェックパターンを含む、特定のビット列、文字列パターンである。
【００１１】
情報処理装置３０は、ＣＰＵ３２（Central Processing Unit）、主記憶装置３３、ＩＯＣ３４（Input/Output Controller）、ＯＳ３１（Operating System）を包含する。
【００１２】
外部装置２０は、磁気／光等のディスク装置、半導体メモリなどの情報格納装置であり、種々のファイル種別２３のファイル２１を包含する。ファイル種別２３はファイル２１の種類であり、例えば、文書、スプレッドシート、画像、音楽のファイル２１などの種類を指す。ファイル２１は一つまたは複数のデータ２２を包含する。データ２２はヘッダ２４を包含することがある。ファイル種別２３はヘッダ２４により判別出来る。通常、ファイル２１の先頭のデータ２２がヘッダ２４を包含する。ほかのデータ２２が包含していても良い。今後は、先頭のデータ２２がヘッダ２４を包含しているものとする。
【００１３】
ＯＳ３１は、ＣＰＵ３２によって実行され、ファイル２１を主記憶装置３３に入力したり、主記憶装置３３から出力したりする。ＯＳ３１は、通常、ファイル２１を複数のデータ２２に分割して、順次入出力する。この過程で、ＯＳ３１は、主記憶装置３３に、並行して入出力されるファイル２１毎に異なる連続した入力領域を用意し、一連のＩＯ命令４０（Input/Output命令）を作成する。ＯＳ３１は、ＩＯＣ３４を経由して、外部装置２０にＩＯ命令４０を出力し、外部装置２０からデータ２２や各種の通知３６を入力する。ＯＳ３１は、外部装置２０にデータ２２を出力することもある。
【００１４】
パターン検出装置５０は、ＩＯ命令４０、データ２２を入力して、データ２２の中に、ウィルス検出パターンなどの所定のパターンを持つ情報が含まれるか否かのチェックを行う。パターン検出装置５０は、通知３６を情報処理装置３０に出力して、当該チェックの終了や結果を報告する。
【００１５】
パターン検出装置５０は、ＩＯ命令４０やデータ２２を入力して、通知３６を情報処理装置３０に出力できるように情報処理装置３０、外部処理装置２０、または、その間のケーブルなどに接続される。具体的な接続ポート、ケーブルや接続方法は、情報処理装置３０と外部装置２０の入出力インターフェース等（例えば、バス構成）に依存して決定され、本発明では制限しない。
【００１６】
図２は、パターン検出装置５０の詳細を示す。パターン検出装置５０は、管理部５１、制御メモリ６０、演算部５２、ヘッダＤＢ５３（Data Base）、パターンＤＢ５５を包含する。
【００１７】
管理部５１や演算部５２はハードウェアで実装されてもよい。コンピュータ９０でもあるパターン検出装置５０が、その図示しないメモリに格納されるパターン検出プログラム５９を、そのプロセッサで実行して、管理部５１や演算部５２の機能を果たすように実装されても良い。
【００１８】
制御メモリ６０は、管理部５１と演算部５２の両者からアクセスされる記憶域である。制御メモリ６０は制御表６１を格納する。ヘッダＤＢ５３は管理部５１からアクセスされる記憶域である。ヘッダＤＢ５３はヘッダ情報５４を格納する。ヘッダ情報５４は、ファイル種別２３ごとに一つまたは複数存在する。ヘッダ情報５４は、ヘッダ２４の中でファイル種別２３に固有の情報を抽出したものである。
【００１９】
パターンＤＢ５５は演算部５２からアクセスされる記憶域である。パターンＤＢ５５はパターン情報５６を格納する。パターン情報５６は、ファイル種別２３に対応して一つ存在する。但し、あるファイル種別２３に対応して、パターン情報５６が存在しないこともある。パターン情報５６は、検出の対象となる単一のデータ２２または複数のデータ２２を結合したデータ２２の大きさ対応にエントリが分かれている。パターン情報５６のエントリは、ある大きさに対応するものが存在しない場合もあるし、同一の大きさに対応して複数存在することもある。
【００２０】
図３は、ＩＯ命令４０の詳細を示す。ＩＯ命令４０は、メモリアドレス４１、外部アドレス４２、ＩＯサイズ４３、方向４４、終端フラグ４５を包含する。
【００２１】
メモリアドレス４１は、データ２２の転送対象となる主記憶装置３３内の先頭アドレスを示す。外部アドレス４２は、データ２２の転送対象となる外部装置２０の識別子および外部装置２０内の格納域アドレス（例えば、ブロック番号）を示す。ＩＯサイズ４３は、ＩＯ命令４０によって転送されるデータ２２の大きさ（例えば、バイト数）を示す。方向４４は、入力（読みこみ）か出力（書きこみ）の区別を示す。
【００２２】
終端フラグ４５は、ＩＯ命令４０が、あるファイル２１についての一連のＩＯ命令４０の最後であることを示す。情報処理装置３０が、ファイル２１の入出力を行うとき、分割して入出力することが多い。ファイル２１のデータ２２が、外部装置２０上で連続して記録されているとは限らないからである。また、一括して転送できるデータ２２の大きさには上限があるからである。つまり、情報処理装置３０は、あるファイル２１の入出力に際し、複数のＩＯ命令４０を出力することが多いのである。終端フラグ４５は、この分割した入出力の最後のＩＯ命令４０であるかどうかを示す。あるファイル２１の入出力に際し、一つのＩＯ命令４０しか出力されないときは、当該ＩＯ命令４０の終端フラグ４５は最後であることを示している。
【００２３】
図４は制御表６１の詳細を示す。制御表６１は複数のエントリを包含する。各エントリは、使用中フラグ６２、メモリアドレス４１、有効サイズ６３、ファイル種別２３、バッファ６４を包含する。
【００２４】
使用中フラグ６２は、当該エントリが空きであるのか使用中で有るのかを示す。使用中である場合、そのエントリは一つのファイル２１のために使用されている。バッファ６４は、先頭から、ファイル２１の一つまたは複数のデータ２２を順次連続して（結合して）格納する。有効サイズ６３は、データ２２がバッファ６４に格納されている大きさ（例えば、バイト数）を示す。
【００２５】
図５は、管理部５１の動作を示すフローチャートである。
【００２６】
管理部５１は、ＩＯ命令４０と当該ＩＯ命令４０により転送されたデータ２２を入力する（Ｓ１）。管理部５１は、ＩＯ命令４０とデータ２２の対応関係を情報処理装置３０と外部装置２０の入出力インターフェースに依存して認識する。例えば、ＩＯ命令４０の発行と対応するデータ２２の転送が逐次的に行われるのであれば、時系列で対応関係を認識する。複数のＩＯ命令４０の発行と対応するデータ２２の転送が同時並行的に行われるのであれば、ＩＯＣ３４と同じ方法で対応関係を認識する。例えば、管理部５１は、対応するＩＯ命令４０とデータ２２の両者に付された共通の識別情報（ＩＯ発行識別子、メモリアドレス４１、外部装置２０関連のアドレス等）の同一性を判断するのである。
【００２７】
管理部５１は、制御表６１の使用中エントリから「当該エントリ内に格納されているメモリアドレス４１に有効サイズ６３を加えた値とＩＯ命令４０内のメモリアドレス４１が一致する」ものを検索する。
【００２８】
検索できた場合（Ｓ２でＹ、すなわち、ファイル２１の継続入出力時）、管理部５１は、当該エントリのバッファ６４にデータ２２を追記し、その後、有効サイズ６３にＩＯサイズ４３を加算する（Ｓ３）。ここで、データ２２の追記とは、バッファ６４の有効サイズ６３分以降の領域にデータ２２を格納して、バッファ６４に格納済みのデータ２２と追記したデータ２２を結合したデータ２２を作成することを指す。その後、管理部５１は、制御表６１のエントリを指定して、演算部５２にパターンチェックを依頼して、その完了を待ち合わせる（Ｓ４）。
【００２９】
検索できなければ（Ｓ２でＮ、すなわち、新たなファイル２１の入出力開始時）、管理部５１は、制御表６１から、使用中フラグ６２を参照して空きエントリを検索して（Ｓ８）、当該空きエントリの初期化を行う（Ｓ９）。具体的には、管理部５１は以下を行う。
【００３０】
１）使用中フラグ６２を使用中にセット、
２）メモリアドレス４１に、ＩＯ命令４０のメモリアドレス４１の内容をコピー、
３）有効サイズ６３に、ＩＯサイズ４３をコピー、
４）バッファ６４の先頭からデータ２２を格納。
【００３１】
次に、管理部５１は、データ２２にヘッダ情報５４を順番にパターンマッチングさせて、マッチするヘッダ情報５４のファイル種別２３を取得する（ＳＡ）。このデータ２２は、ファイル２１の先頭データ２２で有るため、ヘッダ２４を包含する。なお、ヘッダ２４がファイル２１の先頭データ２２に含まれないときは、含まれるデータ２２をファイル２１固有の方法で認識して、このパターンマッチングを行う。固有の方法とは、例えば、最後のデータ２２の認識、特定順番のデータ２２の認識などである。
【００３２】
その後、管理部５１は、制御表６１のエントリを指定して、演算部５２にパターンチェックを依頼して、その完了を待ち合わせる（Ｓ４）。
【００３３】
演算部５２からパターン検出無しが報告されると（Ｓ５でＹ）、管理部５１はＩＯ命令４０の終端フラグ４５を確認する（Ｓ６）。演算部５２からパターン検出有りが報告されると（Ｓ５でＮ）、管理部５１は、情報処理装置３０に対してパターン検出の通知３６を出力する（ＳＢ）。このとき管理部５１は、パターンの一致を検出したパターン情報５６の識別情報とファイル種別２３を当該通知３６に付加する。なお、このパターン検出の通知３６は、演算部５２が、管理部５１を経由しないで直接行っても良い。当該通知３６の出力後、管理部５１は、ＩＯ命令４０の終端フラグ４５を確認する（Ｓ６）。
【００３４】
終端フラグ４５がファイル２１の最後のＩＯ命令４０を示していなければ（Ｓ６でＮ）、管理部５１は、次のＩＯ命令４０とデータ２２の処理を行う（Ｓ１）。終端フラグ４５がファイル２１の最後のＩＯ命令４０を示していれば（Ｓ６でＹ）、管理部５１は、使用中フラグ６２を空きにして、情報処理装置３０に対して検出処理完了の通知３６を出力する（Ｓ７）。その後、管理部５１は、次のＩＯ命令４０とデータ２２の処理を行う（Ｓ１）。
【００３５】
図６は、演算部５２の動作を示すフローチャートである。
【００３６】
演算部５２は、管理部５１からパターンの検出を依頼されると、制御表６１の指定されたエントリのファイル種別２３に対応するパターン情報５６を取り出す（Ｓ１１）。
【００３７】
演算部５２は、当該パターン情報５６から、「有効サイズ６３以下」の大きさ対応のエントリを取得する（Ｓ１２）。当該大きさ対応のパターン情報５６のエントリが複数取得されることもあるし、取得されないこともある。
【００３８】
演算部５２は、取得したエントリについて順次、パターン情報５６とバッファ６４内に格納されているデータ２２とのパターンマッチングを行う（Ｓ１３）。ここで、データ２２は、単一のデータ２２または結合されたデータ２２であり、その大きさは、有効サイズ６３で示される。
【００３９】
取得したエントリのすべてのパターンマッチングが終了して（Ｓ１４でＹ）、かつ、いずれかのパターンマッチングでパターン一致を検出した場合（Ｓ１６でＹ）、演算部５２はその旨を管理部５１に報告する（Ｓ１７）。このとき、演算部５２は、一致を検出したパターン情報５６エントリの識別情報（例えば、当該エントリのパターンＤＢ５５内のアドレス）、ファイル種別２３等を付して報告する。パターンマッチングでパターン一致を検出しない場合（Ｓ１６でＮ）、演算部５２はその旨を管理部５１に報告する（Ｓ１８）。
【００４０】
図７は、パターン検出装置５０を使用する情報処理装置３０における、ＯＳ３１の想定される動作フローチャート例である。ここでは、パターン情報５６は、ファイル２１が感染する可能性のあるウィルスを検出するための情報であるとする。すなわち、パターン検出装置５０は、ウィルス検出装置として機能する。
【００４１】
ＯＳ３１は、入力装置やアプリケーションプログラム等からファイル２１の名称等を含む入力指示を受信する（Ｓ２１）と、ファイル２１の名称拡張子やディレクトリ等からファイル種別２３を取得する（Ｓ２２）。
【００４２】
ＯＳ３１は、主記憶装置３３に連続した入力領域を用意、一連のＩＯ命令４０を作成して、ＩＯＣ３４経由で外部装置２０に対して出力する（Ｓ２３）。これにより、外部装置２０からＩＯＣ３４に対するデータ２２の転送が開始される。データ２２はＩＯＣ３４に転送されると共に、パターン検出装置５０にも入力されてバッファ６４に蓄積される。パターン検出装置５０は、バッファ６４内の蓄積データ２２に対して、順次パターン情報５６を用いたウィルス検出を行う。
【００４３】
ＯＳ３１は、外部装置２０からデータ２２の転送完了の通知３６が来ると（Ｓ２４でＹ）、入力したファイル２１に対して、ＯＳ３１としての独自の異常検出をしても良い（Ｓ２５）。パターン情報５６を用いた検出方法以外にも、有効なファイル２１の異常検出方法がある場合もあるからである。例えば、デジタル署名を用いた改ざん検出などが考えられる。パターン検出装置５０とは別のパターンを用いたウィルス検出や異なる観点でのウィルス検出も考えられる。
【００４４】
ここで、正常であることが確認されると（Ｓ２６でＹ）、ＯＳ３１はパターン検出装置５０の検出処理完了の通知３６を待ち合わせて（Ｓ２７でＹ）、アプリケーションプログラム等に、入力したデータ２２を引き渡して（Ｓ２８）処理を終了する。異常を検出した場合（Ｓ２６でＮ）は、適切な異常対策を行って（Ｓ２Ｋ）処理を終了する。対策は、入力データ２２の破棄、アプリケーションプログラムや情報処理装置３０の管理者端末に対する異常報告出力などである。
【００４５】
ＯＳ３１は、パターン検出装置５０の検出処理完了の通知３６を待ち合わせ中（Ｓ２７でＮ）にパターン一致を検出した通知３６を受ける（Ｓ２９でＹ）と、当該通知３６に付されたファイル種別２３を取り出す（Ｓ２Ｇ）。
【００４６】
ＯＳ３１は、これと、先に名称拡張子などから取り出したファイル種別２３を比較して、同じであれば（Ｓ２ＨでＹ）、ウィルス対策を行って（Ｓ２Ｉ）処理を終了する。ウィルス対策は、入力データ２２の破棄、アプリケーションプログラムや情報処理装置３０の管理者端末に対する異常報告出力などである。同じでなければ（Ｓ２ＨでＮ）、ＯＳ３１は、ウィルス感染可能性の報告をアプリケーションプログラムや情報処理装置３０の管理者端末に出力して（Ｓ２Ｊ）処理を続行する。この場合、パターン検出装置５０が、ファイル種別２３を誤認識していたため、ウィルス感染の有無を断定できないからである。
【００４７】
ＯＳ３１は、外部装置２０からデータ２２の転送完了の通知３６を待ち合わせ中に（Ｓ２４でＮ）、パターン一致を検出した通知３６を受ける（Ｓ２ＡでＹ）と、当該通知３６に付されたファイル種別２３を取り出す（Ｓ２Ｂ）。
【００４８】
ＯＳ３１は、これと、先に名称拡張子などから取り出したファイル種別２３を比較して、同じであれば（Ｓ２ＣでＹ）、ウィルス対策を行って（Ｓ２Ｄ）処理を終了する。同じでなければ（Ｓ２ＣでＮ）、ＯＳ３１は、ウィルス感染可能性の報告をアプリケーションプログラムや情報処理装置３０の管理者端末に出力して（Ｓ２Ｆ）処理を続行する。
【００４９】
なお、ファイル２１の入力を行う主体はＯＳ３１に限られない。ＯＳ３１をロードするためのプログラム（初期プログラムローダやブートプラグラム等）が入力主体であっても良い。
【００５０】
本実施の形態によれば、パターン検出システム１０は、情報処理装置３０の負荷を大きく増加することなく、パターンチェック（例えば、ウィルスチェック）を行うことが出来る。また、パターン検出システム１０は、ＯＳ３１の起動前に、ＯＳ３１の格納ファイル２１等を対象としたにパターンチェックを行うことが出来る。その理由は、パターン検出装置５０が、データ２２を入力して、情報処理装置３０とは別にパターンの検出を実施するからである。
【００５１】
また、本実施の形態によれば、パターン検出システム１０は、適切にパターンチェックを行うことが出来る。その理由は、パターン検出装置５０が、データ２２を入力して、ファイル種別２３を認識して、ファイル種別２３に適したパターン情報５６を用いて、パターンチェックをするからである。
【００５２】
また、本実施の形態によれば、パターン検出システム１０は、迅速にパターンチェックを行うことが出来る。その理由は、パターン検出装置５０が、データ２２を順次蓄積して、ファイル２１の転送途中においても、蓄積されたデータ２２の有効サイズ６３に適用できるパターン情報５６を用いて、パターンチェックをするからである。
【００５３】
また、本実施の形態によれば、パターン検出システム１０は、安全にパターンチェックを行うことが出来る。その理由は、パターン検出装置５０が、データ２２から認識したファイル種別２３を情報処理装置３０に報告するからである。すなわち、ＯＳ３１が、パターン検出装置５０が認識したファイル種別２３を検証できるからである。
【００５４】
また、本実施の形態によれば、情報処理装置３０とパターン検出装置５０はパターン検出を適切に負荷分散出来る。その理由は、パターン検出装置５０が、データ２２の転送完了報告とは別に、パターンの検出処理完了を報告するからである。転送完了報告と検出処理完了の期間、ＯＳ３１とパターン検出装置５０は、並列してパターンの検出ができる。
【００５５】
図８は、本発明の第２の実施形態のパターン検出システム１０で用いられるＩＯ命令４０の詳細を示す。本実施形態のＩＯ命令４０はファイル種別２３を包含する。すなわち、ＯＳ３１は、ＩＯ命令４０を作成する際に、自らがファイル２１の名称拡張子やディレクトリ等から取得したファイル種別２３をＩＯ命令４０に包含させる（図７のＳ２１とＳ２２）。
【００５６】
本実施形態では、パターン検出装置５０の管理部５１は、ファイル種別２３を入力したデータ２２から取得するのではなく、ＩＯ命令４０から取得する（図５のＳＡ）。従って、パターン検出装置５０はヘッダＤＢ５３を備える必要はない。本実施形態は、ほかの点では第１の実施形態と同じである。
【００５７】
本実施形態では、パターン検出装置５０はファイル種別２３を誤認識する可能性が無くなる。ＯＳ３１がファイル種別２３をパターン検出装置５０に与えるからである。
【００５８】
図９は、本発明の第３の実施形態のパターン検出システム１０を示す。第１の実施形態と異なるのは、外部装置２０からの通知３６は直接情報処理装置３０に届かず、パターン検出装置５０の管理部５１を経由する点である。
【００５９】
本実施の形態では、管理部５１は、外部装置２０からデータ２２の転送完了の通知３６を入力しても、それをすぐには情報処理装置３０に転送しない。管理部５１は、演算部５２のパターン検出処理が完了するのを待ち合わせてから、情報処理装置３０に転送完了の通知３６を転送する。
【００６０】
パターンを検出した場合、ファイル種別２３やパターン情報５６の識別情報は、転送完了の報告３６に付加される。なお、管理部５１は、外部装置２０からデータ２２の転送完了以外の通知３６を入力した場合は、それをすぐに、情報処理装置３０に転送する。
【００６１】
本実施形態では、情報処理装置３０はパターン検出装置５０導入に伴う外部装置２０とのインターフェース変更を最小化できる。パターン検出装置５０が、自らのパターン検出処理終了の通知３６を外部装置２０の転送完了の通知３６に含ませて、情報処理装置３０に報告するからである。
【００６２】
図１０は、本発明の第４の実施形態のパターン検出システム１０で用いられるパターン検出装置５０の詳細を示す。本実施形態では、演算部５２が複数存在し、各々が並列動作可能である。以下、個々の演算部５２は、括弧付きの添え字を付けて（例えば、演算部５２（１））参照する。
【００６３】
図１１は、本実施形態の演算部５２の動作を示すフローチャートである。
【００６４】
演算部５２（１）は、管理部５１からパターンチェックを依頼されると、制御表６１の指定されたエントリのファイル種別２３に対応するパターン情報５６を取り出す（Ｓ３１）。
【００６５】
演算部５２（１）は、当該パターン情報５６から、「有効サイズ６３以下」の大きさ対応のエントリを取得する（Ｓ３２）。当該大きさ対応のパターン情報５６のエントリが複数取得されることもあるし、取得されないこともある。
【００６６】
演算部５２（１）は、取得したエントリについて順次、バッファ６４内に格納されているデータ２２とのパターンマッチングをほかの演算部５２（２〜ｎ）に依頼する（Ｓ３３）。即ち、演算部５２（１）は、当該パターン情報５６から取得したエントリが複数ある時に、パターン情報５６エントリごとに、ほかの演算部（２〜ｎ）のおのおのにパターンマッチングを依頼するのである。ここで、データ２２は、単一のデータ２２または結合されたデータ２２であり、その大きさは、有効サイズ６３で示される。
【００６７】
取得したエントリのすべてのパターンマッチングの依頼が終了すると（Ｓ３４でＹ）、演算部５２（１）はほかの演算部５２（２〜ｎ）すべてからの完了報告を待ち合わせる（Ｓ３５でＮ）。待ち合わせが完了し（Ｓ３５でＹ）、かつ、いずれかの演算部５２（２〜ｎ）のパターンマッチングでパターン一致を検出した場合（Ｓ３７でＹ）、演算部５２（１）は、その旨を管理部５１に報告する（Ｓ３８）。このとき、演算部５２（１）は、一致を検出したパターン情報５６エントリの識別情報、ファイル種別２３等を付して報告する。パターンマッチングでパターン一致を検出しない場合（Ｓ３７でＮ）、演算部５２（１）はその旨を管理部５１に報告する（Ｓ３９）。
【００６８】
演算部５２（２〜ｎ）は、演算部５２（１）から依頼されたパターンマッチングを各々並列に実行して（Ｓ３Ａ）、その結果を演算部５２（１）に報告する（Ｓ３Ｂ）。
【００６９】
本実施形態のほかの点は、第１の実施形態と同じである。
【００７０】
本実施の形態によれば、パターン検出システム１０は、高速にパターンチェックを行うことが出来る。その理由は、パターン検出装置５０が、演算部５２を複数備え、並列に動作させているからである。
【００７１】
図１２は、本発明のパターン検出装置５０を示す。このパターン検出装置５０は、ファイル種別２３に対応したパターン情報５６、管理部５１、演算部５２を備える。管理部５１は、情報処理装置３０と情報処理装置３０に接続された外部装置２０との間を、データ２２に分割して転送されるファイル２１に属するデータ２２を入力する。演算部５２は、データ２２に、ファイル２１のファイル種別２３に対応したパターン情報５６で示されるパターンが有るか否かを検査し、情報処理装置３０に通知３６がなされる検査結果を報告する。
【図面の簡単な説明】
【００７２】
【図１】図１は、本発明の第１の実施形態のパターン検出システム１０を示す。
【図２】図２は、パターン検出装置５０の詳細を示す。
【図３】図３は、ＩＯ命令４０の詳細を示す。
【図４】図４は制御表６１の詳細を示す。
【図５】図５は、管理部５１の動作を示すフローチャートである。
【図６】図６は、演算部５２の動作を示すフローチャートである。
【図７】図７は、パターン検出装置５０を使用する情報処理装置３０における、ＯＳ３１の想定される動作フローチャート例である。
【図８】図８は、本発明の第２の実施形態のパターン検出システム１０で用いられるＩＯ命令４０の詳細を示す。
【図９】図９は、本発明の第３の実施形態のパターン検出システム１０を示す。
【図１０】図１０は、本発明の第４の実施形態のパターン検出システム１０で用いられるパターン検出装置５０の詳細を示す。
【図１１】図１１は、本実施形態の演算部５２の動作を示すフローチャートである。
【図１２】図１２は、本発明のほかの実施形態のパターン検出装置５０を示す。
【符号の説明】
【００７３】
１０    パターン検出システム
２０    外部装置
２１    ファイル
２２    データ
２３    ファイル種別
３０    情報処理装置
３１    ＯＳ
３２    ＣＰＵ
３３    主記憶装置
３４    ＩＯＣ
３６    通知
４０    ＩＯ命令
４１    メモリアドレス
４２    外部アドレス
４３    ＩＯサイズ
４４    方向
４５    終端フラグ
５０    パターン検出装置
５１    管理部
５２    演算部
５３    ヘッダＤＢ
５４    ヘッダ情報
５５    パターンＤＢ
５６    パターン情報
５９    パターン検出プログラム
６０    制御メモリ
６１    制御表
６２    使用中フラグ
６３    有効サイズ
６４    バッファ
【図１】
0004488074.tif 000002
【図２】
0004488074.tif 000003
【図３】
0004488074.tif 000004
【図４】
0004488074.tif 000005
【図５】
0004488074.tif 000006
【図６】
0004488074.tif 000007
【図７】
0004488074.tif 000008
【図８】
0004488074.tif 000009
【図９】
0004488074.tif 000010
【図１０】
0004488074.tif 000011
【図１１】
0004488074.tif 000012
【図１２】
0004488074.tif 000013