(57)【要約】【課題】高速にウイルスを検出でき、新たな脆弱性要因となりづらいネットワークシステムを実現する。【解決手段】パケットデータ比較器では、入力パケットデータを３分岐し、分岐されたパケットデータと、保管データの一部とを比較し書換え可能な記憶領域に保管した照合パターンでマッチングを行う追加パターン・マッチング部と、保管データの一部とを比較し既知の照合パターンで構成した論理演算でマッチングを行う固定パターン・マッチング部と、保管データの一部とを比較し通知用パケットを見つける通知パケット・マッチング部と、それぞれのマッチング部の結果を集約する一致検出集約部と、を備える。また、それを用いてウイルスフィルタを構成し、該ウイルスフィルタを用いてネットワークを通じて更新可能なウイルスチェッカを構成し、該ウイルスチェッカを用いて、安全なネットワークシステムを実現する。【選択図】図４
2008271538.tif 000002
【特許請求の範囲】
【請求項１】
情報処理手段間を結ぶデータパスから入力したパケットデータと保管データと、の一致あるいは不一致を検出する比較手段であって、
入力されたパケットデータを少なくとも３分岐する分岐手段と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、書き換え可能な記憶領域に保管された照合パターンでマッチングを行う追加パターン・マッチング部と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、既知の照合パターンに基づいて構成された論理演算でマッチングを行う固定パターン・マッチング部と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、通知用パケットを見つけるための通知パケット・マッチング部と、
上記のパターン・マッチング部と固定パターン・マッチング部と通知パケット・マッチング部のそれぞれのマッチング結果を集約する一致検出集約部と、
を備え、上記の一致検出集約部から一致あるいは不一致を検出した結果を出力することを特徴とするパケットデータ比較器。
【請求項２】
上記の固定パターン・マッチング部で行なう論理演算は、ハードウェア論理演算回路で行なう論理演算であることを請求項１に記載のパケットデータ比較器。
【請求項３】
上記の固定パターン・マッチング部で行なう論理演算は、プログラム方式の演算処理装置で行なう論理演算であることを請求項１に記載のパケットデータ比較器。
【請求項４】
データパスのコンピュータウイルスを検出するウイルスフィルタであって、
入力したパケットを一時的に保管するパケットバッファと、
上記パケットバッファに保管されたパケットデータと保管されたフィルタリング情報とを比較する請求項１から３のいずれかに記載のパケットデータ比較器と、
通過させるパケットを出力するパケット出力手段と、
上記パケットバッファと、比較手段と、パケット出力手段とを制御するウイルスフィルタ制御部と、
を備え、
データパスから入力したパケットデータに含まれているコンピュータウイルスを検出し、ウイルスが検出されたパケットデータは出力しないことを特徴とするウイルスフィルタ。
【請求項５】
上記情報処理手段に上記パケットデータ比較手段の比較結果を知らせる通知用パケットを生成する通知用パケット生成部をさらに備えることを特徴とする請求項４に記載のウイルスフィルタ。
【請求項６】
ウイルスチェック手段であって、
上記データパスにそれぞれ接続された第１インタフェース手段と、第２インタフェース手段と、
第１インタフェース手段から第２インタフェース手段へ向かう上り回線のパケット信号のフィルタリングを行なう上り用で請求項４あるいは５に記載のウイルスフィルタと、
第２インタフェース手段から第１インタフェース手段へ向かう下り回線のパケット信号のフィルタリングを行なう下り用で請求項４あるいは５に記載のウイルスフィルタと、
上記上り用あるいは下り用ウイルスフィルタにそれぞれ上り用あるいは下り用フィルタリング情報を提供する更新制御手段と、を備え、
双方向のデータパスのウイルスを検出するウイルスチェッカ。
【請求項７】
上記ウイルスチェッカの構成に加えて、さらにウイルスフィルタを備え、
上記ウイルスフィルタは、スイッチ切り換えによって上り回線用ウイルスフィルタあるいは下り回線用ウイルスフィルタに用いることができる構成であり、
上り回線用ウイルスフィルタあるいは下り回線用ウイルスフィルタに用いていないウイルスフィルタのウイルス照合パターンの更新を、上記上り用ネットワークインターフェースまたは下り用ネットワークインターフェースを通じて行った後に、上り用ウイルスフィルタあるいは下り用ウイルスフィルタと入れ換えることを特徴とする請求項６に記載のウイルスチェッカ。
【請求項８】
上記のデータパスはネットワークであって、
上記ネットワークに接続された請求項６あるいは７に記載のウイルスチェッカと、
上記ウイルスチェッカを介して上記ネットワークに接続された情報処理手段と、
上記ネットワークに接続されウイルス情報を提供するウイルス情報データサーバと、
上記ネットワークに接続されウイルスチェック手段の保管情報を更新するウイルスチェッカ更新サーバと、を備え、ネットワークを通じて更新することが可能なウイルスチェッカを備えたネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信ネットワークを介して取得するディジタルデータから、高速に、“コンピュータウイルス”或いは“ネットワークウイルス”或いは単に“ウイルス”と呼ばれる有害データ、或いは、それに類する有害データを検出することができるパケットデータ比較器及びそれを用いたウイルスフィルタ、ウイルスチェッカ、ネットワークシステムに関する。
【背景技術】
【０００２】
ひとつの通信ネットワークに接続するコンピュータが増えるにつれ、通信ネットワークを流れるデータの量は飛躍的に増加している。これらのデータの中には、コンピュータの動作を阻害するコンピュータウイルス（或いはネットワークウイルスやそれに類する有害データ）が含まれる場合があるので、そのネットワークを流れるコンピュータウイルスを監視し、ネットワークに接続したコンピュータやそれに蓄積された情報等を保全する必要性が高くなっている。
【０００３】
このようなコンピュータウイルスの監視は、従来、個々のコンピュータやデータを中継する機器等において、専用ソフトウェアを用いて行われており、例えば、特許文献１から特許文献３に示されるとおりである。
【０００４】
特許文献１は、マクロの中のウイルスの検出および除去を開示している。マクロウイルス検出モジュールはマクロ位置特定および復号化モジュールと、マクロウイルス走査モジュールと、マクロ処置モジュールと、ファイル処置モジュールと、ウイルス情報モジュールとを含むものであり、それぞれの機能は、以下のものである。マクロ位置特定および復号化モジュールは、対象ファイルがマクロを含むか否かを判定し、マクロ有りの場合にそのマクロを位置特定して復号化ずみマクロを生ずるように復号化し、マクロウイルス走査モジュールは、復号化ずみマクロにアクセスし、そのマクロがウイルスを含むか否かを判定するようにそのマクロを走査する。未知のマクロウイルスの検出は、マクロウイルス走査モジュールが、ウイルス情報モジュールからの命令識別子組含有比較データの取込みおよび前記命令識別子対応の容疑命令組合せの前記復号化ずみマクロにおける含有の有無の判定に基づいて行う。マクロ処置モジュールは前記比較データを用いて前記復号化ずみマクロの中で容疑命令を位置特定し、その容疑命令を除去して処置ずみマクロを生ずる。ファイル訂正モジュールは、汚染マクロ含有の対象ファイルにアクセスし、マクロ処置モジュールからの処置ずみマクロでその汚染マクロを置換する。
【０００５】
特許文献２では、コンピュータ回線網に接続されている受信側装置がコンピュータウイルスに感染した通信データを受信しないようにして、受信側装置のコンピュータウイルスによる感染を未然に防ぐコンピュータウイルス受信監視装置及びそのシステムが開示されている。これは、コンピュータ回線網からデータを受信する受信処理手段と、前記受信処理手段により受信した受信データがコンピュータウイルスに感染しているかどうかを診断する受信データ処理手段と、前記受信データが前記コンピュータウイルスに感染している場合に、これを示す感染信号を受信側装置に知らせる受信側装置間通信処理手段と、前記受信データが前記コンピュータウイルスに感染していない場合に、前記受信データを前記受信側装置に送信する送信処理手段と、を備えるコンピュータウイルス受信監視装置をコンピュータ回線網と受信側装置との間に介在させるものである。
【０００６】
特許文献３では、コンピュータシステムへのウイルス汚染を防止できるフレキシブルディスクドライブが開示されている。この開示では、フレキシブルディスクドライブに、コンピュータシステムからデータ読出し要求があると、フレキシブルディスクからデータを読み込んでこれを一時的に格納するバッファ、ウイルスチェックプログラムが格納されたＲＯＭ、及び、ウイルスチェックプログラムに従って作動しバッファに格納されたデータにおけるウイルス存在の有無をチェックするウイルスチェックコントローラから成るウイルスチェック制御部と、ウイルスチェックの結果で異常が発見されなかったフレキシブルディスクからのデータを保持してコンピュータシステムに与えるキャッシュメモリと、を設けている。コンピュータシステム自身でウイルス存在の有無をチェックする際に生じるコンピュータシステムへのウイルス汚染を防止するものである。
【０００７】
しかし、ネットワーク等の通信路の転送速度の向上に従い通信路を流れるデータ量は増大しており、このような通信路の高速化により、ソフトウェアの処理速度がいずれ追従できなくなり、ウイルス監視ソフトウェアでは、パーソナルコンピュータのＣＰＵ負荷が高くなって隘路となることが予想されている。
【０００８】
一般に、ハードウェアはソフトウェアと比較して高速に処理することが可能であり、通信路のデータに対し、遅延を抑えて高速に監視することが可能である。しかし、一般に、ウイルスが更新された場合には、ウイルスチェックパターンを変更する必要があるが、そのためには、ウイルスチェック用ハードウェア内の監視目標となるデータ、つまりウイルスチェックパターン、を変更することになり、このためのハードウェアを変更する必要があり、日々変化する監視対象データに対応する用途には不向きである。
【０００９】
この問題を解消するために、ＦＰＧＡ（Field Programmable Gate Array）やＣＰＬＤ（Complex Programmable Logic Device）等と呼ばれる書き換え可能な、或いは再構成可能な、ＬＳＩ論理デバイス等を用いたウイルスチェック機器が、例えば、特許文献４に開示されている。
【００１０】
しかし、ＦＰＧＡやＣＰＬＤ等と呼ばれる書き換え可能な論理デバイスは、その汎用性の高さから、コンピュータウイルスで誤動作させることも可能であり、新たなセキュリティリスク（つまりコンピュータウイルスなどの標的となる危険性）となる可能性を有し、また、一般に高価である。また、こうした書き換え可能な論理デバイスは、一般に自分自身の構成データ（つまりコンフィギュレーション・データ）を書き換えることができないため、別に書き換え用のＣＰＵ等を用意する必要がある。
【００１１】
【特許文献１】特表２００１−５０８５６４号公報
【特許文献２】特開平１０−３０７７７６号公報
【特許文献３】特開１０−４９３６５号公報
【特許文献４】国際公開  ＷＯ  ２００４／０７５０５６  Ａ１
【発明の開示】
【発明が解決しようとする課題】
【００１２】
この発明は、このような事情に鑑み、ネットワークにおいて高速に有害データ（ウイルス）を検出することができ、更新用の付加回路を必要とせず、新たなセキュリティリスクとなりづらいウイルスチェック装置を備えたネットワークシステムを実現することを目的とする。
【発明の効果】
【００１３】
この発明によれば、まず、情報処理手段間を結ぶデータパスから入力したパケットデータと、保管データとの一致あるいは不一致を高速に検出するパケットデータ比較器を実現できる。また、上記パケットデータ比較器を用いて高速にデータパスのコンピュータウイルスを検出するウイルスフィルタを実現することができる。また、上記のウイルスフィルタを用いて双方向のデータパスのウイルスを高速に検出するウイルスチェッカを実現できる。また、上記のウイルスチェッカを用いて、ネットワークを通じて更新することが可能なウイルスチェッカを備えたネットワークシステムを実現することができる。
【００１４】
このネットワークシステムでは、通信ネットワーク通信路に挿入又はネットワークカード等に追加したウイルスチェック用ハードウェアを用いて、通信ネットワークから入力されてくるデータをウイルス特徴データと照合するようにしているので、ソフトウェアに比べ高速な処理が可能であるというハードウェアの利点を生かして、有害データ即ちウイルスのパーソナルコンピュータ等への侵入をリアルタイムで検知することができ、高速にウイルスを検出して対応する対策を講じることができる。
【課題を解決するための手段】
【００１５】
本発明は、情報処理手段間を結ぶデータパスから入力したパケットデータと、保管データとの一致あるいは不一致を検出する比較手段を基にしている。この比較手段は、入力されたパケットデータを少なくとも３分岐する分岐手段と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、書き換え可能な記憶領域に保管された照合パターンでマッチングを行う追加パターン・マッチング部と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、既知の照合パターンに基づいて構成された論理演算でマッチングを行う固定パターン・マッチング部と、
分岐されたパケットデータと保管データの一部とを比較する機能を有し、通知用パケットを見つけるための通知パケット・マッチング部と、
上記のパターン・マッチング部と固定パターン・マッチング部と通知パケット・マッチング部のそれぞれのマッチング結果を集約する一致検出集約部と、
を備え、上記の一致検出集約部から一致あるいは不一致を検出した結果を出力するパケットデータ比較器である。
【００１６】
上記の固定パターン・マッチング部で行なう論理演算は、ハードウェア論理演算回路で行なうことができる。
【００１７】
また、上記の固定パターン・マッチング部で行なう論理演算は、プログラム方式の演算処理装置で行なうことができる。この場合、既知の照合パターンに基づいて構成された論理式に従った論理演算で行なうことが肝要である。
【００１８】
本発明は、また上記のパケットデータ比較器を用いており、データパスのコンピュータウイルスを検出するウイルスフィルタである。これは、入力したパケットを一時的に保管するパケット・バッファと、
上記パケット・バッファに保管されたパケットデータと保管されたフィルタリング情報とを比較する上記のパケットデータ比較器と、
通過させるパケットを出力するパケット出力手段と、
上記パケット・バッファと、比較手段と、パケット出力手段とを制御するウイルスフィルタ制御部と、を備え、データパスから入力したパケットデータに含まれているコンピュータウイルスを検出し、ウイルスが検出されたパケットデータは出力しないウイルスフィルタである。
【００１９】
また、本発明のウイルスフィルタは、上記情報処理手段に上記パケットデータ比較手段の比較結果を知らせる通知用パケットを生成する通知用パケット生成部をさらに備えるものでもある。
【００２０】
本発明はまた、上記のウイルスフィルタを用いたウイルスチェッカである。これは、上記データパスにそれぞれ接続された第１インタフェース手段と、第２インタフェース手段と、
第１インタフェース手段から第２インタフェース手段へ向かう上り回線のパケット信号のフィルタリングを行なう上り用ウイルスフィルタと、
第２インタフェース手段から第１インタフェース手段へ向かう下り回線のパケット信号のフィルタリングを行なう上記の下り用ウイルスフィルタと、
上記上り用あるいは下り用ウイルスフィルタにそれぞれ上り用あるいは下り用フィルタリング情報を提供する更新制御手段と、を備え、双方向のデータパスのウイルスを検出するものである。
【００２１】
上記ウイルスチェッカの構成に加えて、さらにウイルスフィルタを備えたウイルスチェッカであり、上記ウイルスフィルタは、スイッチ切り換えによって上り回線用ウイルスフィルタあるいは下り回線用ウイルスフィルタに用いることができる構成である。上り回線用ウイルスフィルタあるいは下り回線用ウイルスフィルタに用いていないウイルスフィルタについては、そのウイルス照合パターンの更新を、上記上り用ネットワーク・インターフェースまたは下り用ネットワーク・インターフェースを通じて行った後に、上り用ウイルスフィルタあるいは下り用ウイルスフィルタと入れ換えることで行う。これによって、ウイルス照合パターンの更新を行ないつつウイルスチェックを行なうことができる。
【００２２】
本発明はまた、上記のウイルスチェッカを用いたネットワークシステムである。ここで、上記のデータパスはネットワークであって、そのネットワークシステムは、
上記ネットワークに接続された上記のウイルスチェッカと、
上記ウイルスチェッカを介して上記ネットワークに接続された情報処理手段と、
上記ネットワークに接続されウイルス情報を提供するウイルス情報データサーバと、
上記ネットワークに接続されウイルスチェック手段の保管情報を更新するウイルスチェッカ更新サーバと、を備えるものである。
【発明を実施するための最良の形態】
【００２３】
以下に、この発明の実施の形態を図面に基づいて詳細に説明する。以下の説明においては、同じ機能あるいは類似の機能をもった装置に、特別な理由がない場合には、同じ符号を用いるものとする。なお、各図面では、電源供給に係る要素等、回路動作に必要であってもこの発明に要旨に直接関係のない要素の記述は省略している。
【００２４】
この発明は、インターネットのような広域ネットワークや、イーサネット（登録商標）のようなＬＡＮ（Local Area Network）など、通信ネットワークを介して他の情報処理装置と通信可能な情報処理端末に適用するものであるが、この発明によるウイルスチェックでは、通信ネットワークから入力されてくるデータとウイルス特徴データとをウイルスチェック用ハードウェアを用いて照合することにより、ウイルスのパーソナルコンピュータ等への侵入をリアルタイムに検知することができる。このリアルタイム性は、ウイルスチェックをネットワークに挿入もしくはネットワークカード（ＮＩＣ：Network Interface Card）に追加したハードウェアで行うことにより、高速にウイルスを検出し、予め決められた対策を講じることで、実現している。
【００２５】
また、ハードウェアはウイルス定義ファイルの変更が困難であるという問題があるが、これに対して、この発明では、入力したパケットあるいはその一部である入力データと照合されるウイルスパターンをハードウェアで変更することを行なう。このように変更するために、照合パターンを保持する専用メモリを用意し、その内容を書き換えることで対応する。
【００２６】
これに加えて、本発明は、不定長の「ワイルドカード」に対応するものである。このためには、部分パターンのマッチング結果に対して論理演算を行う回路を用意し、その論理演算の変更を回路の接続を切り換えて行なうが、この回路がスイッチ切換で変更可能になっている。このスイッチ切換で、論理デバイスのウイルスパターンを書き換える場合は、サーバ装置のウイルス定義情報又はこの情報に基づいて生成される書き換え用データをウイルスチェック装置に送ることで、ウイルスパターンを更新する。
【００２７】
ウイルスチェック装置内では、照合用パターンはメモリ上に保持されているが、高速な照合を実現するために、レジスタ回路を用いることでメモリ読み出しがボトルネックにならないように回路が構成されている。これによって、照合用パターンの更新を可能にしつつ、ハードウェア実装に起因する装置の高速性を実現している。つまり、通信ネットワークが高速化してトラフィックが増大しても、端末パソコンのＣＰＵに負荷をかけることなく高速にウイルス検査を実施することができる。
【００２８】
ウイルスチェック装置が保持する照合用パターンを更新するためのデータは、通信ネットワークを介してサーバ装置などから配信することができる。この本発明では、照合用パターン等を更新する制御部を設けるだけでよい。また、配信するデータが大きくなるときには、差分のみを配信したり、データ圧縮技術を用いたりすることも可能である。
【００２９】
従来は、ＰＬＤ（programmable logic device）は自分自身のコンフィギュレーション・データ（構成データ）を書き換えることが一般にできないことから、特許文献４に記載されているように、ウイルスチェック装置内にＰＩＣ（Peripheral Interface Controller）等の小規模ＣＰＵ（Central Processing Unit）などを用意して、ＰＬＤ等の書き換えを実現する必要があった。
【００３０】
つぎに、本発明において、サーバ装置による更新用データ（照合用パターンなど）を配信する方式を説明する。
（１）各ウイルスチェック装置は、サーバ装置に対して定期的にパターン更新確認を行う。
（２−１）これに対して、サーバ装置では更新がなければ無視し、
（２−２）更新用のデータがある場合には、その更新データを配信する。
（３）更新データが装置のバッファに蓄積完了したのち、
（４）通信がアイドルになったときに装置内の更新制御回路がネットワークを一時停止する。
（５）照合パターンを更新した後、ネットワークを再起動する。
なお、更新データを配信する際、デジタル署名や暗号化などのセキュアな仕組みを利用することが好ましい。
【００３１】
本発明によるウイルスチェック装置は、ネットワークの通信路に挿入することができる。通信プロトコルを合わせれば、あらゆる通信路（ネットワーク、ＩＤＥケーブル、データバスなど）に挿入可能である。この発明のよるウイルスチェック装置をコンピュータの外付け装置として用いる場合は電源の供給が必要であるが、供給方法には制約はなく、通常の商用電源コンセントから供給する方法の他に、たとえば、イーサネット（登録商標）のケーブル経由で供給することも可能である。また、ＵＳＢ接続のネットワークアダプタに組み込んだり、ＩＥＥＥ１３９４接続のネットワークアダプタに組み込んだりすることもできる。
【００３２】
また、ウイルスチェック装置をコンピュータ端末に内蔵させることもできる。例えば、コンピュータに内蔵されるイーサネット（登録商標）アダプタカード（ＮＩＣ）上に組み込むこともできる。コンピュータに内蔵された無線ＬＡＮアダプタや無線ＬＡＮ用ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）カードアダプタ等についても同様である。
【００３３】
本発明のウイルスチェック装置では、
（１）ウイルスをチェックする照合用パターンをすべてメモリ上に置き、そのメモリから照合用パターンを読み出して、通信路から入力したデータと照合する回路と、
（２）ある時点で明らかになっている照合用パターンを論理回路に展開して構成した照合論理回路に変換し、通信路から入力したデータをその照合論理回路に入力しその照合論理回路の出力をみて、照合用パターンと通信路から入力したデータとを照合する回路と、
を複合した形でウイルスチェック装置を構成するものである。
【００３４】
また、上記の照合用パターンを集成したウイルス定義ファイルは、その通信路にあるサーバ上に置き、定期的にあるいは求めに応じて照合用パターンを更新する際の更新用データに、容易に作成可能な変換用ソフトウェアを使用して変換することができる。これらの一連の過程は、サーバ上で全て行っても良いし、ウイルス定義をそのまま装置へ配信しウイルスチェック装置上で行うこともできるし、或いは、途中の段階のものをウイルスチェック装置へ配信して、残りの処理をウイルスチェック装置上で行うように構成することも可能である。
【００３５】
上記の照合論理回路では、後に実施例（図４）で詳述するように、論理回路（論理デバイス）を用いてウイルス定義と通信路を流れるデータの比較を行う。コンテンツ部分に挿入されたコンピュータウイルス検出を行う場合は、通信路から入力したパケットについて、コンテンツ以外の除去を行う前処理を施す。このように前処理を施された入力データは、論理回路の入力部（ＦＩＦＯ）を通過する間にウイルス定義と比較され、ウイルス定義と符合しなければそのまま通過し、符合（一致）した場合は、１）そのまま破棄されるか、あるいは、２）警報情報を出力し、例えば、パケットの削除やパケットの受け取り先への通知など、適宜、必要な処理を行う。
【００３６】
上述したように、既に明らかになっているコンピュータウイルスについては、ウイルスチェックハードウェア（ウイルスチェッカ）である照合論理回路によって、通信路を通過するパケットに含まれるディジタルデータを、高速に照合するようにしているので、特に、１Ｇｂｐｓを超えるような超高速データ転送を行うシステムに対して、極めて有効である。
【実施例１】
【００３７】
〔システムの全体構成〕
図１は、この発明の一実施例で、ウイルスチェックシステムの全体構成を概略的に示している。本体装置であるコンピュータ０１０２は、インターネット０１０３につながる通信ネットワーク０１０６との入力通信路側にウイルスチェック用ハードウェア装置（本発明の装置）であるウイルスチェッカ０１０１が挿入されている。ウイルスチェッカ０１０１とコンピュータ０１０２とを結ぶ通信ネットワーク０１０７は通信ネットワーク０１０６と同じ媒体でも異なる媒体でも本発明の機能には影響はなく、イーサネット（登録商標）などの有線ネットワークでも、無線ＬＡＮなどの無線ネットワークでも、本発明は適用可能である。例えば、通信ネットワーク０１０６が１００ＢＡＳＥ−ＴＸで０１０７が１０ＢＡＳＥ−Ｔの場合などでもよい。コンピュータ０１０２はパーソナルコンピュータ（ＰＣ、パソコン）の他、ワークステーション、その他の卓上型コンピュータ、コンピュータ・クラスタ、大型コンピュータ、ＰＤＡ（Personal Digital Assistant）など、通信ネットワークに接続される情報処理機であれば何でもよく、また情報家電など内部にコンピュータを内蔵している機器でもよい。
【００３８】
このウイルスチェッカ０１０１は、通信ネットワーク０１０６から入力されてくるデータをウイルス特徴データ（ウイルスパターン）と照合しあるいは必要に応じて棄却することにより、ウイルスのコンピュータ等への侵入をリアルタイムに検知あるいは阻止することができ、同時に、ウイルスチェッカ０１０１は双方向に同じ機能を有していることから、ウイルスに感染したコンピュータが外部にウイルスをばらまくのを防ぐこともできる。また、ウイルスチェッカ０１０１のウイルスパターン及び照合機能デバイスは、新たに出現したウイルスに対応可能でありながら、再構成可能なＰＬＤやＦＰＧＡ等を用いずに専用ＬＳＩで構成することができる。
【００３９】
この場合、ウイルスチェッカ更新サーバ０１０４が、必要に応じて通信ネットワーク０１０６上のウイルス情報データサーバ０１０５から最新のウイルスパターンを受信し、それを用いてウイルスチェッカ０１０１の更新のためのデータを生成することができる。ウイルスチェッカ更新サーバ０１０４およびウイルス情報データサーバ０１０５は、パーソナルコンピュータやワークステーションなど、インターネット０１０３に接続され、他のコンピュータに対してデータを配信する能力を持つものであれば使用することができる。また、ウイルスチェッカ更新サーバ０１０４およびウイルス情報データサーバ０１０５は、ウイルスチェッカ０１０１と直接つながっていても、通信データを中継する機能を持つネットワーク・ハブを介してつながっていても、他の中継やＬＡＮ同士を接続する機能を有する機器類で接続されていても、また、図１のようにインターネットを経由して接続されていてもよい。さらに、同一のコンピュータがウイルスチェッカ更新サーバ０１０４およびウイルス情報データサーバ０１０５の両方を兼ねていてもよい。
【００４０】
図２は、ウイルスチェッカ０１０１の一構成例を示した図である。これは、外部からのデータ入力路でデータが流れてくる通信ネットワーク０１０６と、コンピュータ０１０２側の通信ネットワーク０１０７とで外部に接続する。通信ネットワーク０１０６、０１０７に対応したネットワーク・インターフェース０２０３、０２０４は、ＬＡＮにおける物理層と呼ばれる機能を有するものである。ここで、ネットワーク・インターフェース０２０３と０２０４との違いは、接続されるネットワークの種類だけである。また、ネットワーク・インターフェース０２０３および０２０４は、双方向であるネットワークデータの入力および出力をそれぞれ分離および混合する機能もつものである。また、配線０２０５は、ネットワーク・インターフェース０２０３あるいは０２０４に入力されたデータの流れる配線である。同様に、配線０２０６は、ネットワーク・インターフェース０２０３あるいは０２０４から出力されるデータの流れる配線である。配線２０５あるいは２０６はそれぞれのウイルスフィルタ０２０１に接続されており、それぞれのウイルスフィルタ０２０１は、ネットワークデータをウイルスパターンと照合する機能を有するものである。また、更新制御部０２０２は、新たに出現したウイルスにウイルスチェッカを対応させるための更新機能を制御するものである。配線０２０７上の制御信号でウイルスフィルタの更新を制御し、配線０２０８上のインタフェース制御信号で一時停止あるいはデータ蓄積などの、更新中のネットワークの動作を制御する。
【００４１】
図３は、ウイルスフィルタ０２０１の一構成例を示した図である。この構成では到着したネットワーク・パケットを一時的に蓄積するパケット・バッファ０３０３、パケット中の実データ（ペイロードと呼ばれる）とウイルスパターンを照合するマッチング部０３０２、ウイルスを含まないと判断されたパケット・バッファ中のパケットを出力させるパケット出力部０３０５、ウイルスチェッカ更新サーバ０１０４にウイルス情報の更新の有無を問い合わせるパケットやコンピュータ０１０２にウイルス発見を知らせるパケットを生成する通知用パケット生成部０３０４、ウイルスフィルタ０２０１全体を制御するウイルスフィルタ制御部０３０１を備えている。新たなパケットがパケット・バッファ０３０３に到着すると、配線０３１１を通じてウイルスフィルタ制御部０３０１に到着を通知し、配線０３０６を通じて到着したパケットのペイロードがマッチング部０３０２に送られる。マッチング部０３０２での照合結果は配線０３０７を通じてウイルスフィルタ制御部０３０１に送られ、ウイルスではなかった場合は、配線０３０９を通じてパケット出力部０３０５を制御して、配線０３１１を通じてパケット・バッファ０３０３の当該パケットを出力する。
【００４２】
マッチング部０３０２での照合の結果、ウイルス情報の更新用データだった場合は、配線０２０７を通じて、当該パケットが更新制御部０２０２に送られる。このために、ウイルスフィルタ部では、ウイルス情報の他に、ウイルス情報の更新用データであることを示すデータを認識する。この認識用データは、パケットのヘッダあるいはペイロードのどちらかに設けられたものである。
【００４３】
逆に、配線０２０７を通じて更新制御部０２０２からウイルス情報の更新の有無の問い合わせ指示があった場合は、ウイルスフィルタ制御部０３０１から配線０３０８を通じて通知用パケット生成部０３０４を制御し、問い合わせパケットを生成する。通知用パケット生成部０３０４で生成された問い合わせ用パケットは、一端、配線０３１０を通じてパケット出力部０３０５に送られ、ウイルスフィルタ制御部０３０１から配線０３０９を通じたパケット出力部０３０５への指示に従い、配線２０６を通じて出力される。ウイルスフィルタ０２０１内の各部分の初期化は、配線０２０７を通じて更新制御部０２０２が行い、ウイルスフィルタ制御部０３０１を経由して各部分へのデータの書き込みを行う。なお、図３の構成は論理的な接続関係であり、図中のすべてのブロックを単一もしくは複数のバスで接続することも可能である。
【００４４】
図４は、マッチング部０３０２の一構成例を示した図である。この構成は、入力されたペイロードをコピーし後続の３つの部分に分配するバッファ０４０１、新たに出現したウイルスに対応するために追加された照合パターンでマッチングを行う追加パターン・マッチング部０４０３、既知の照合パターンに基づいて設計された純粋な論理回路（プログラムで動作するＣＰＵを含まない論理回路）でマッチングを行う固定パターン・マッチング部０４０４、特定の目印データを含み更新データ等を運ぶ通知用の特殊なパケットを見つけるための通知パケット・マッチング部０４０５、一致結果を集約する一致検出集約回路０４０９を、備えるものである。
【００４５】
バッファ０４０１から配線０４０２への出力のそれぞれは、それぞれ追加パターン・マッチング部０４０３、固定パターン・マッチング部０４０４、通知パケット・マッチング部０４０５に入力されている。一方、追加パターン・マッチング部０４０３の出力に接続された配線０４０６、固定パターン・マッチング部０４０４の出力に接続された配線０４０７、通知パケット・マッチング部０４０５の出力に接続された配線０４０８は、全て一致検出集約回路０４０９に接続され、集約結果は配線０３０７を通じてウイルスフィルタ制御部０３０１に送られる。配線０３０７は双方向であり、ウイルスフィルタ制御部０３０１からは配線０３０７を通じて、追加パターン・マッチング部０４０３の更新や通知パケット・マッチング部０４０５の初期化が行われる。
【００４６】
図５は、パケット・バッファ０３０３の一構成例を示した図である。この構成は到着パケットを蓄積するパケット・メモリ０５０４、到着したパケットを空いているパケット・メモリに分配するパケット・デマルチプレクサ０５０１、パケット・メモリ中から指示されたパケットを選択するメモリ出力部０５０６、パケットの一部あるいは全部を選択的に出力するバッファード・パケット出力部０５１０、パケット・メモリ０５０４の各エントリの空き状態を管理するパケット・メモリ制御部０５１４、パケット・バッファ０３０３全体を制御するバッファ制御部０５１２を備えるものである。
【００４７】
パケット・デマルチプレクサ０５０１とパケット・メモリ０５０４とは、また、パケット・メモリ０５０４とメモリ出力部０５０６とは、それぞれ配線０５０２、配線０５０５で直接結合されている。メモリ出力部０５０６とバッファード・パケット出力部０５１０の間には２種類の配線があり、一つはパケットそのものを出力するための配線０５０８で、バッファード・パケット出力部０５１０を経由して配線０３１２に接続する。もう一つはパケット中のペイロードのみをマッチング部０３０２に出力するための配線０５０９で、同じくバッファード・パケット出力部０５１０を経由して配線０３０６に接続する。パケット・メモリ０５０４の空き状況はパケット・メモリ制御部０５１４で制御されるが、パケット・メモリ制御部０５１４は、配線０５１３でバッファ制御部０５１２と接続されている。この他に、パケット・メモリ制御部０５１４は、同様にバッファ制御部５１２を通じて、配線０５０３でパケット・デマルチプレクサ０５０１と、配線０５０７でメモリ出力部０５０６と、配線０５１１でバッファード・パケット出力部０５１０と配線０３１１でウイルスフィルタ制御部０３０１と接続されている。
【００４８】
図６は、パケット出力部０３０５の一構成例を示した図である。この構成は、パケット・バッファ０３０３から配線０３１２への出力と通知用パケット生成部０３０４から配線０３１０への出力の二者から、ウイルスフィルタ制御部０３０１から配線０３０９に出力された制御信号に従って一方を選択するパケット・マルチプレクサ０６０１、パケットの出力用整形や出力制御を行うパケット出力部０６０３である。パケット・マルチプレクサ０６０１とパケット出力部０６０３は配線０６０２により直接結合されている。
【００４９】
図７は、通知用パケット生成部０３０４の一構成例を示した図である。この構成は通知用パケットやそのテンプレートを格納する通知パケット・メモリ０７０１、ウイルスフィルタ制御部０３０１から配線０３０８に出力された指示に従って通知パケット・メモリ０７０１の内容を選択し出力用に整形する通知パケット出力部０７０３を備えるものである。通知パケット・メモリ０７０１と通知パケット出力部０７０３は配線０７０２により直接結合されている。
【００５０】
図８は、ウイルスフィルタ制御部０３０１の一構成例を示した図である。この構成は、ウイルスフィルタ０２０１内の他の部分を制御するための制御信号を生成し状態遷移を司る制御用組み合わせ回路０８０１、ウイルスフィルタ制御部の状態を保持する制御状態レジスタ０８０３を備えるものである。制御用組み合わせ回路０８０１と制御状態レジスタ０８０３は配線０８０２により直接結合されている。
【００５１】
図９は、ネットワーク・インターフェース０９０１の一構成例を示した図である。この構成はネットワーク・インターフェース全体を表し、図２におけるネットワーク・インターフェース０２０３または別のネットワーク・インターフェース０２０４のどちらかを表す。同様に通信ネットワーク０９０２は図１における通信ネットワーク０１０６または別の通信ネットワーク０１０７を表す。ハイブリッド０９０３は、双方向のネットワークの信号の入出力を分離するもので、分離した入力を配線０９０６に、出力を配線０９０７に接続する。０９０４はネットワーク出力部、０９０５はネットワーク入力部であり、両方ともネットワークの規格に従った物理層の処理を行う。ネットワーク出力部０９０４およびネットワーク入力部０９０５は、更新制御部０２０２と配線０２０８で接続され、更新制御部０２０２の指示によりウイルスフィルタ０２０１の更新時に通信処理を一時停止する。
【実施例２】
【００５２】
次に、より短い通信断時間で、ウイルスチェッカのウイルス照合パターンの更新を可能とする例を図１０に示す。図１０は、ウイルスチェッカ０１０１の一構成例であり、図２ではウイルスフィルタ０２０１は双方向用に２つあったが、ここでは３つに多重化して構成したものである。さらにウイルスフィルタ０２０１の前にバッファを設けることでより通信段時間を短くすることができるようになるが、ここでは、説明を簡略にするため、上記のようにしている。なお、図１０では更新制御部０２０２が省略されている。
【００５３】
図１０のような多重構成を１．５重構成と呼ぶことにし、その特徴を説明する。一般に、１．５重構成は、予備の機能ブロックを共有することで、システムを構成するハードウェア量などを削減することができる、というメリットがある。また、耐故障性を高めるために予備の機能ブロックを用意し共有する場合もある。しかし、図１０の場合は、耐故障性とは異なり、対象装置の機能停止時間、つまり本システムの場合は通信断時間、を極めて短くし、機能の継続性を高めることを目的としている。
【００５４】
図１０におけるウイルスチェッカの構成について説明する。通信ネットワーク１００１および１００２は、図１における通信ネットワーク０１０６または別の通信ネットワーク０１０７に相当する。ネットワーク・インターフェース１００３および１００４は、図２におけるネットワーク・インターフェース０２０３または０２０４と同じでよい。また、３つのウイルスフィルタ１００５、１００６、１００７は、図２におけるウイルスフィルタ０２０１と同じでよい。
【００５５】
スイッチ１００８〜１０１７は、２つのネットワーク・インターフェース１００３および１００４と３つのウイルスフィルタ１００５、１００６、１００７を結び、それらの接続関係を切り換えるものである。ネットワーク・インターフェース１００３および１００４の出力は、３つのウイルスフィルタ１００５、１００６、１００７への接続を切り換える１：３スイッチ１００８および１００９にそれぞれ繋がっている。スイッチ１００８および１００９の３つの出力は、３つのウイルスフィルタ１００５、１００６、１００７の入力を切り換える２：１スイッチ１０１２、１０１３、１０１４にそれぞれ接続されている。スイッチ１０１２、１０１３、１０１４の出力は、３つのウイルスフィルタ１００５、１００６、１００７の入力に直接接続されている。３つのウイルスフィルタ１００５、１００６、１００７の出力は、２つのネットワーク・インターフェース１００３および１００４への接続を選択する１：２スイッチ１０１５、１０１６、１０１７にそれぞれ接続されている。スイッチ１０１５、１０１６、１０１７の２つずつの出力は、２つのネットワーク・インターフェース１００３および１００４の入力を選択する３：１スイッチ１０１０および１０１１に接続されている。スイッチ１０１０および１０１１の出力は、そのまま２つのネットワーク・インターフェース１００３および１００４に接続されている。
【００５６】
図１１は、多重化されたウイルスフィルタの一組み合わせ例を示す表である。ネットワーク機能の双方向性を提供する２つのパス、すなわち、ネットワーク・インターフェース１００３から１００４へのパスおよび１００４から１００３へのパスに３つのウイルスフィルタ１００５、１００６、１００７を割り当てる組み合わせは、この表のように６通りあり、スイッチ１００８〜１０１７の切り換えによりすべて実現可能である。
【００５７】
図１１の表の内容を説明する。以下、説明に当たり、ネットワーク・インターフェース１００３から１００４へのパスを順方向、１００４から１００３へのパスを逆方向と呼ぶことにする。組み合わせ１では、順方向にウイルスフィルタ１００５を、逆方向にウイルスフィルタ１００６を接続する。組み合わせ２では、順方向にウイルスフィルタ１００５を、逆方向にウイルスフィルタ１００７を接続する。組み合わせ３は組み合わせ１の逆であり、順方向にウイルスフィルタ１００６を、逆方向にウイルスフィルタ１００５を接続する。組み合わせ４では、順方向にウイルスフィルタ１００６を、逆方向にウイルスフィルタ１００７を接続する。組み合わせ５は組み合わせ２の逆であり、順方向にウイルスフィルタ１００７を、逆方向にウイルスフィルタ１００５を接続する。組み合わせ６は組み合わせ４の逆であり、順方向にウイルスフィルタ１００７を、逆方向にウイルスフィルタ１００６を接続する。
【００５８】
図１２は、多重化されたウイルスフィルタ間をつなぐスイッチの一構成例を示す表である。組み合わせ１〜６は図１１の記述に対応しており、この表中には、各組み合わせを実現するためのスイッチ１００８〜１０１７の設定内容が記載されている。表中のスイッチの状態は、選択される側が繋がっている要素の番号で示されている。つまり、１：３スイッチ１００８および１００９は出力側の接続先であるスイッチ１０１２、１０１３、１０１４のいずれか、３：１スイッチ１０１０および１０１１は入力側の接続先であるスイッチ１０１５、１０１６、１０１７のいずれか、２：１スイッチ１０１２、１０１３、１０１４は入力側の接続先であるスイッチ１００８あるいは１００９のいずれか、１：２スイッチ１０１５、１０１６、１０１７は出力側の接続先である１０１０あるいは１０１１のいずれかがそれぞれ記載されている。また、"-"は"Ｄｏｎ’ｔ  Ｃａｒｅ"、すなわち、どこにつながっていてもいい状態を表す。
【００５９】
図１２の表の内容を説明する。組み合わせ１では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１２に設定され、対応するスイッチ１０１２の入力もスイッチ１００８に設定され、スイッチ１０１２の出力はウイルスフィルタ１００５に繋がっている。１００５の出力が繋がるスイッチ１０１５の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１５に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００５が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１３に設定され、対応するスイッチ１０１３の入力もスイッチ１００９に設定され、スイッチ１０１３の出力はウイルスフィルタ１００６に繋がっている。ウイルスフィルタ１００６の出力が繋がるスイッチ１０１６の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１６に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００６が設定される。ウイルスフィルタ１００７は予備であり、ウイルスフィルタ１００７の入出力に繋がっているスイッチ１０１４および１０１７の設定は任意である。
【００６０】
組み合わせ２では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１２に設定され、対応するスイッチの１０１２の入力もスイッチ１００８に設定され、スイッチ１０１２の出力はウイルスフィルタ１００５に繋がっている。ウイルスフィルタ１００５の出力が繋がるスイッチ１０１５の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１５に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００５が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１４に設定され、対応するスイッチの１０１４の入力もスイッチ１００９に設定され、スイッチ１０１４の出力はウイルスフィルタ１００７に繋がっている。ウイルスフィルタ１００７の出力が繋がるスイッチ１０１７の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１７に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００７が設定される。ウイルスフィルタ１００６は予備であり、ウイルスフィルタ１００６の入出力に繋がっているスイッチ１０１３および１０１６の設定は任意である。
【００６１】
組み合わせ３では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１３に設定され、対応するスイッチの１０１３の入力もスイッチ１００８に設定され、スイッチ１０１３の出力はウイルスフィルタ１００６に繋がっている。ウイルスフィルタ１００６の出力が繋がるスイッチ１０１６の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１６に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００６が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１２に設定され、対応するスイッチの１０１２の入力もスイッチ１００９に設定され、スイッチ１０１２の出力はウイルスフィルタ１００５に繋がっている。ウイルスフィルタ１００５の出力が繋がるスイッチ１０１５の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１５に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００５が設定される。ウイルスフィルタ１００７は予備であり、ウイルスフィルタ１００７の入出力に繋がっているスイッチ１０１４および１０１７の設定は任意である。
【００６２】
組み合わせ４では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１３に設定され、対応するスイッチの１０１３の入力もスイッチ１００８に設定され、スイッチ１０１３の出力はウイルスフィルタ１００６に繋がっている。ウイルスフィルタ１００６の出力が繋がるスイッチ１０１６の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１６に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００６が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１４に設定され、対応するスイッチの１０１４の入力もスイッチ１００９に設定され、スイッチ１０１４の出力はウイルスフィルタ１００７に繋がっている。ウイルスフィルタ１００７の出力が繋がるスイッチ１０１７の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１７に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００７が設定される。ウイルスフィルタ１００５は予備であり、ウイルスフィルタ１００５の入出力に繋がっているスイッチ１０１２および１０１５の設定は任意である。
【００６３】
組み合わせ５では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１４に設定され、対応するスイッチの１０１４の入力もスイッチ１００８に設定され、スイッチ１０１４の出力はウイルスフィルタ１００７に繋がっている。ウイルスフィルタ１００７の出力が繋がるスイッチ１０１７の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１７に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００７が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１２に設定され、対応するスイッチの１０１２の入力もスイッチ１００９に設定され、スイッチ１０１２の出力はウイルスフィルタ１００５に繋がっている。ウイルスフィルタ１００５の出力が繋がるスイッチ１０１５の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１５に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００５が設定される。ウイルスフィルタ１００６は予備であり、ウイルスフィルタ１００６の入出力に繋がっているスイッチ１０１３および１０１６の設定は任意である。
【００６４】
組み合わせ６では、ネットワーク・インターフェース１００３に繋がるスイッチ１００８の出力はスイッチ１０１４に設定され、対応するスイッチ１０１４の入力もスイッチ１００８に設定され、スイッチ１０１４の出力はウイルスフィルタ１００７に繋がっている。ウイルスフィルタ１００７の出力が繋がるスイッチ１０１７の出力はスイッチ１０１１に設定され、対応するスイッチ１０１１の入力もスイッチ１０１７に設定され、スイッチ１０１１の出力はネットワーク・インターフェース１００４に繋がっている。これで順方向のパスにウイルスフィルタ１００７が設定される。一方、ネットワーク・インターフェース１００４に繋がるスイッチ１００９の出力はスイッチ１０１３に設定され、対応するスイッチ１０１３の入力もスイッチ１００９に設定され、スイッチ１０１３の出力はウイルスフィルタ１００６に繋がっている。ウイルスフィルタ１００６の出力が繋がるスイッチ１０１６の出力はスイッチ１０１０に設定され、対応するスイッチ１０１０の入力もスイッチ１０１６に設定され、スイッチ１０１０の出力はネットワーク・インターフェース１００３に繋がっている。これで逆方向のパスにウイルスフィルタ１００６が設定される。ウイルスフィルタ１００５は予備であり、ウイルスフィルタ１００５の入出力に繋がっているスイッチ１０１２および１０１５の設定は任意である。
【００６５】
図１３は、多重化されたウイルスフィルタの更新順序の一例を表わす表である。予備のウイルスフィルタを共有しているため、順方向と逆方向のパスを同時に更新することはできず、順番を設ける必要がある。
【００６６】
図１３の表に示すように、更新の順序は２通りあり、１つ目は順方向すなわちネットワーク・インターフェース１００３からネットワーク・インターフェース１００４へのパスを先に更新し、次に、逆方向すなわちネットワーク・インターフェース１００４からネットワーク・インターフェース１００３へのパスを更新する。２つ目は逆方向すなわちネットワーク・インターフェース１００４からネットワーク・インターフェース１００３へのパスを先に更新し、次に順方向すなわちネットワーク・インターフェース１００３からネットワーク・インターフェース１００４へのパスを更新する。したがって、ウイルスフィルタの更新まで含めた更新の手順は次のようになる。１つ目の順序では、まず予備のウイルスフィルタを更新し、次に順方向のパスを切り換えて予備のウイルスフィルタを順方向に接続する。続いて、順方向に接続されていたウイルスフィルタを更新した後、逆方向のパスを切り換えて更新したウイルスフィルタを接続し、最後に新たに予備となったウイルスフィルタを更新する。なお、最後のウイルスフィルタの更新は必ずしも必要ではないが、ここで更新しておくことにより、ウイルスフィルタの一つが故障した場合などにすぐに予備に切り換えることができる。
【００６７】
この２つの順序は完全に等価であり、どちらを用いてもよい。どちらか一方に統一してもよく、更新ごとに切り換えるなど、両方を用いてもよい。
【００６８】
図１４は、多重化されたウイルスフィルタの更新ステップの一例を表わす表であり、図１３の更新順序１に従って、組み合わせ１〜６の状態の設定を具体的にどう更新するかを説明している。
【００６９】
更新前に組み合わせ１の状態だった場合、まず、予備のウイルスフィルタ１００７を更新する。次に順方向のウイルスフィルタ１００５をウイルスフィルタ１００７に変更、すなわち、組み合わせ６の状態に遷移する。続いてウイルスフィルタ１００５を更新し、逆方向のウイルスフィルタ１００６をウイルスフィルタ１００５に変更、すなわち、組み合わせ５の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００６を更新して、全体の更新が完了する。
【００７０】
更新前に組み合わせ２の状態だった場合、まず、予備のウイルスフィルタ１００６を更新する。次に順方向のウイルスフィルタ１００５をウイルスフィルタ１００６に変更、すなわち、組み合わせ４の状態に遷移する。続いてウイルスフィルタ１００５を更新し、逆方向のウイルスフィルタ１００７をウイルスフィルタ１００５に変更、すなわち、組み合わせ３の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００７を更新して、全体の更新が完了する。
【００７１】
更新前に組み合わせ３の状態だった場合、まず、予備のウイルスフィルタ１００７を更新する。次に順方向のウイルスフィルタ１００６をウイルスフィルタ１００７に変更、すなわち、組み合わせ５の状態に遷移する。続いてウイルスフィルタ１００６を更新し、逆方向のウイルスフィルタ１００５をウイルスフィルタ１００６に変更、すなわち、組み合わせ６の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００５を更新して、全体の更新が完了する。
【００７２】
更新前に組み合わせ４の状態だった場合、まず、予備のウイルスフィルタ１００５を更新する。次に順方向のウイルスフィルタ１００６をウイルスフィルタ１００５に変更、すなわち、組み合わせ２の状態に遷移する。続いてウイルスフィルタ１００６を更新し、逆方向のウイルスフィルタ１００７をウイルスフィルタ１００６に変更、すなわち、組み合わせ１の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００７を更新して、全体の更新が完了する。
【００７３】
更新前に組み合わせ５の状態だった場合、まず、予備のウイルスフィルタ１００６を更新する。次に順方向のウイルスフィルタ１００７をウイルスフィルタ１００６に変更、すなわち、組み合わせ３の状態に遷移する。続いてウイルスフィルタ１００７を更新し、逆方向のウイルスフィルタ１００５をウイルスフィルタ１００７に変更、すなわち、組み合わせ４の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００５を更新して、全体の更新が完了する。
【００７４】
更新前に組み合わせ６の状態だった場合、まず、予備のウイルスフィルタ１００５を更新する。次に順方向のウイルスフィルタ１００７をウイルスフィルタ１００５に変更、すなわち、組み合わせ１の状態に遷移する。続いてウイルスフィルタ１００７を更新し、逆方向のウイルスフィルタ１００６をウイルスフィルタ１００７に変更、すなわち、組み合わせ２の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００６を更新して、全体の更新が完了する。
【００７５】
図１５は、多重化されたウイルスフィルタの更新ステップの別の一例を示す表であり、図１３の更新順序２に従って、組み合わせ１〜６の状態の設定を具体的にどう更新するかを説明している。
【００７６】
更新前に組み合わせ１の状態だった場合、まず、予備のウイルスフィルタ１００７を更新する。次に逆方向のウイルスフィルタ１００６をウイルスフィルタ１００７に変更、すなわち、組み合わせ２の状態に遷移する。続いてウイルスフィルタ１００６を更新し、順方向のウイルスフィルタ１００５をウイルスフィルタ１００６に変更、すなわち、組み合わせ４の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００５を更新して、全体の更新が完了する。
【００７７】
更新前に組み合わせ２の状態だった場合、まず、予備のウイルスフィルタ１００６を更新する。次に逆方向のウイルスフィルタ１００７をウイルスフィルタ１００６に変更、すなわち、組み合わせ１の状態に遷移する。続いてウイルスフィルタ１００７を更新し、順方向のウイルスフィルタ１００５をウイルスフィルタ１００７に変更、すなわち、組み合わせ６の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００５を更新して、全体の更新が完了する。
【００７８】
更新前に組み合わせ３の状態だった場合、まず、予備のウイルスフィルタ１００７を更新する。次に逆方向のウイルスフィルタ１００５をウイルスフィルタ１００７に変更、すなわち、組み合わせ４の状態に遷移する。続いてウイルスフィルタ１００５を更新し、順方向のウイルスフィルタ１００６をウイルスフィルタ１００５に変更、すなわち、組み合わせ２の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００６を更新して、全体の更新が完了する。
【００７９】
更新前に組み合わせ４の状態だった場合、まず、予備のウイルスフィルタ１００５を更新する。次に逆方向のウイルスフィルタ１００７をウイルスフィルタ１００５に変更、すなわち、組み合わせ３の状態に遷移する。続いてウイルスフィルタ１００７を更新し、順方向のウイルスフィルタ１００６をウイルスフィルタ１００７に変更、すなわち、組み合わせ５の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００６を更新して、全体の更新が完了する。
【００８０】
更新前に組み合わせ５の状態だった場合、まず、予備のウイルスフィルタ１００６を更新する。次に逆方向のウイルスフィルタ１００５をウイルスフィルタ１００６に変更、すなわち、組み合わせ６の状態に遷移する。続いてウイルスフィルタ１００５を更新し、順方向のウイルスフィルタ１００７をウイルスフィルタ１００５に変更、すなわち、組み合わせ１の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００７を更新して、全体の更新が完了する。
【００８１】
更新前に組み合わせ６の状態だった場合、まず、予備のウイルスフィルタ１００５を更新する。次に逆方向のウイルスフィルタ１００６をウイルスフィルタ１００５に変更、すなわち、組み合わせ５の状態に遷移する。続いてウイルスフィルタ１００６を更新し、順方向のウイルスフィルタ１００７をウイルスフィルタ１００６に変更、すなわち、組み合わせ３の状態に遷移する。最後に、新たに予備となったウイルスフィルタ１００７を更新して、全体の更新が完了する。
【実施例３】
【００８２】
図１６は、ウイルスフィルタを多重化した別の一構成例を表わす図であり、機能上は図１０と等価である。図１０の構成では１０個使用されていた切り換えスイッチが、図１６の構成では１２個と増えているが、スイッチ１０２０から１０２３、１０３０から１０３３、１０４０から１０４３は、すべてＯＮ／ＯＦＦ型のものであり、配線のトポロジーが簡略化されて、実装が容易になっている。
【００８３】
図１６において、ネットワーク・インターフェース１００３および１００４、ウイルスフィルタ１００５、１００６、１００７は、図１０の場合と同じである。しかし、スイッチの種類、構成、数、および、接続関係が異なっている。スイッチは、１０２０〜１０２３、１０３０〜１０３３、１０４０〜１０４３の３グループに分かれており、それぞれのグループは同期して接続状態が変化することで、２つのネットワークと３つのウイルスフィルタ間の接続関係が正しく切り替わる。
【００８４】
図１７は、多重化されたウイルスフィルタをつなぐスイッチの状態の一例を表わす表である。１２個のスイッチは４つずつ３つのグループに分かれており、各グループのスイッチは図１７の３つの状態のいずれかをとる。
【００８５】
図１７の状態Ａでは、スイッチ１０２０または１０３０または１０４０がＯＦＦ、スイッチ１０２１または１０３１または１０４１がＯＮ、スイッチ１０２２または１０３２または１０４２がＯＦＦ、スイッチ１０２３または１０３３または１０４３がＯＮの状態であり、それぞれのスイッチのグループが対応するウイルスフィルタを順方向のパスに接続する。
【００８６】
図１７の状態Ｂでは、スイッチ１０２０または１０３０または１０４０がＯＮ、スイッチ１０２１または１０３１または１０４１がＯＦＦ、スイッチ１０２２または１０３２または１０４２がＯＮ、スイッチ１０２３または１０３３または１０４３がＯＦＦの状態であり、それぞれのスイッチのグループが対応するウイルスフィルタを逆方向のパスに接続する。
【００８７】
図１７の状態Ｃでは、グループ内の４つのスイッチがすべてＯＦＦ、すなわち、スイッチ１０２０または１０３０または１０４０がＯＦＦ、スイッチ１０２１または１０３１または１０４１がＯＦＦ、スイッチ１０２２または１０３２または１０４２がＯＦＦ、スイッチ１０２３または１０３３または１０４３がＯＦＦの状態であり、それぞれのスイッチのグループが対応するウイルスフィルタをどこにも接続しない状態、すなわち、予備の状態にする。
【００８８】
図１８は、多重化されたウイルスフィルタをつなぐスイッチの別の一構成例を示す表である。図１０の構成に対して、図１２の表のようにスイッチを接続することで、１から６までの組み合わせ状態が実現できることを上で説明した。この組み合わせ状態を、図１６の構成で実現するためには、図１８の表の様に接続する。この表において、状態Ａ、Ｂ、Ｃは、図１７で示したものである。これによって、図１２に等価な１から６までの組み合わせ状態が実現できる。
【００８９】
図１２の内容を説明する。組み合わせ１では、スイッチ１０２０〜１０２３からなるスイッチグループ（以下、スイッチグループ１）を図１７の状態Ａにすることでウイルスフィルタ１００５を順方向のパスに設定し、スイッチ１０３０〜１０３３からなるスイッチグループ（以下、スイッチグループ２）を図１７の状態Ｂにすることでウイルスフィルタ１００６を逆方向のパスに設定し、スイッチ１０４０〜１０４３からなるスイッチグループ（以下、スイッチグループ３）を図１７の状態Ｃにすることでウイルスフィルタ１００７をどこにもつながず予備の状態にする。
【００９０】
組み合わせ２では、スイッチグループ１を状態Ａにすることでウイルスフィルタ１００５を順方向のパスに設定し、スイッチグループ３を状態Ｂにすることでウイルスフィルタ１００７を逆方向のパスに設定し、スイッチグループ２を状態Ｃにすることでウイルスフィルタ１００６をどこにもつながず予備の状態にする。
【００９１】
組み合わせ３では、スイッチグループ２を状態Ａにすることでウイルスフィルタ１００６を順方向のパスに設定し、スイッチグループ１を状態Ｂにすることでウイルスフィルタ１００５を逆方向のパスに設定し、スイッチグループ３を状態Ｃにすることでウイルスフィルタ１００７をどこにもつながず予備の状態にする。
【００９２】
組み合わせ４では、スイッチグループ２を状態Ａにすることでウイルスフィルタ１００６を順方向のパスに設定し、スイッチグループ３を状態Ｂにすることでウイルスフィルタ１００７を逆方向のパスに設定し、スイッチグループ１を状態Ｃにすることでウイルスフィルタ１００５をどこにもつながず予備の状態にする。
【００９３】
組み合わせ５では、スイッチグループ３を状態Ａにすることでウイルスフィルタ１００７を順方向のパスに設定し、スイッチグループ１を状態Ｂにすることでウイルスフィルタ１００５を逆方向のパスに設定し、スイッチグループ２を状態Ｃにすることでウイルスフィルタ１００６をどこにもつながず予備の状態にする。
【００９４】
組み合わせ６では、スイッチグループ３を状態Ａにすることでウイルスフィルタ１００７を順方向のパスに設定し、スイッチグループ２を状態Ｂにすることでウイルスフィルタ１００６を逆方向のパスに設定し、スイッチグループ１を状態Ｃにすることでウイルスフィルタ１００５をどこにもつながず予備の状態にする。
【００９５】
このように、図１６の構成についても、図１７のスイッチ設定と図１８の組み合わせの設定を用いることで、図１３〜図１５のようにウイルスフィルタを更新することができる。
【００９６】
ここでは、図１０と図１６の２つの実装例を示して、１．５重構成を説明したが、他にも１．５重構成を実現する実装はあり、同様の機能を得ることができる。
【００９７】
なお、通信断時間を短くするだけであれば、双方向のそれぞれを二重構成にするだけでも十分である。
【００９８】
また、そのように二重構成で実装したシステムにおいても、合計で４つある機能ブロックのうちの１つが故障してしまった際には、１．５重構成として機能させることで、システム全体の可用性を高めることができる。
【００９９】
さらに、この１．５重構成は、同じ機能ブロックを複数持ち、それらの内蔵データを定期的かつ速やかに更新する必要があるすべての装置に対して有効である。
【０１００】
本発明のウイルスチェッカは、コンピュータに内蔵するＮＩＣやコンピュータの主要素が実装されるマザーボード、あるいはネットワーク機器であるルータ、スイッチングハブなどのデバイスに組み込むような設置方法も有効である。また、コンピュータ内部に実装されている各ネットワーク類の途中に挿入する設置方法も有効である。
【０１０１】
以上、図示例に基づき説明したが、この発明は上述の例に限定されるものでなく、特許請求の範囲の記載の範囲内で当業者が容易に改変し得る他の構成をも含むものである。
【産業上の利用可能性】
【０１０２】
上記の説明に於いて、固定パターン・マッチング部は、説明を簡明にするために、既知の照合パターンに基づいて設計された純粋な論理回路（プログラムで動作するＣＰＵを含まない論理回路）であるとしたが、プログラム方式の演算処理装置で行なうこともできる。この場合、既知の照合パターンに基づいて構成された論理式に従った論理演算で行なうことが肝要である。このようにプログラム方式の演算処理装置で動作させる場合は、記憶装置に保管されたフィルタリング情報を呼び出して逐次比較を行なうのではなく、フィルタリング情報を織り込んだ論理式にパケットデータを入力して論理演算をすることによりパターン・マッチングを行なうことができる。このような論理式を作成する方法は、既によく知られている。
【０１０３】
また、上記のパケットデータ比較器は、ネットワーク上のパケットに限る必要は無く、例えば、パーソナルコンピュータのＭＰＵとハードディスクユニット間のデータパスに適用することもできる。
【０１０４】
また、本発明は、コンピュータウイルスに限らず、特定のパターンを持ったパケットデータの検出にも適用することができる。
【図面の簡単な説明】
【０１０５】
【図１】図１は、この発明の一実施例によるウイルスチェックシステム全体の構成例を表わす図である。
【図２】図２は、この発明の一実施例によるウイルスチェック装置（ウイルスチェッカ）の一構成例〔１〕を表わす図である。
【図３】図３は、この発明の一実施例によるウイルスチェック装置におけるウイルスフィルタの一構成例を表わす図である。
【図４】図４は、この発明の一実施例によるウイルスチェック装置におけるマッチング部の一構成例を表わす図である。
【図５】図５は、この発明の一実施例によるウイルスチェック装置におけるパケット・バッファの一構成例を表わす図である。
【図６】図６は、この発明の一実施例によるウイルスチェック装置におけるパケット出力部の一構成例を表わす図である。
【図７】図７は、この発明の一実施例によるウイルスチェック装置における通知用パケット生成部の一構成例を表わす図である。
【図８】図８は、この発明の一実施例によるウイルスチェック装置におけるウイルスフィルタ制御部の一構成例を示す図である。
【図９】図９は、この発明の一実施例によるウイルスチェック装置におけるＬＡＮインタフェースの一構成例を表わす図である。
【図１０】図１０は、この発明の一実施例によるウイルスチェック装置において、ウイルスフィルタを多重化した一構成例を表わす図である。
【図１１】図１１は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタの一組み合わせ例を表わす表である。
【図１２】図１２は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタをつなぐスイッチの一構成例を表わす表である。
【図１３】図１３は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタの更新手順の一例を表わす表である。
【図１４】図１４は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタの更新ステップの一例を表わす表である。
【図１５】図１５は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタの更新ステップの別の一例を表わす表である。
【図１６】図１６は、この発明の一実施例によるウイルスチェック装置において、ウイルスフィルタを多重化した別の一構成例を表わす図である。
【図１７】図１７は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタをつなぐスイッチの状態の一例を表わす表である。
【図１８】図１８は、この発明の一実施例によるウイルスチェック装置において、多重化されたウイルスフィルタをつなぐスイッチの別の一構成例を表わす表である。
【符号の説明】
【０１０６】
０１０１  ウイルスチェッカ
０１０２  コンピュータ
０１０３  インターネット
０１０４  ウイルスチェッカ更新サーバ
０１０５  ウイルス情報データサーバ
０１０６、０１０７  通信ネットワーク
０２０１  ウイルスフィルタ
０２０２  更新制御部
０２０３、０２０４  ネットワーク・インターフェース
０２０５〜０２０８  配線
０３０１  ウイルスフィルタ制御部
０３０２  マッチング部
０３０３  パケット・バッファ
０３０４  通知用パケット生成部
０３０５  パケット出力部
０３０６〜０３１２  配線
０４０１  バッファ
０４０２  配線
０４０３  追加パターン・マッチング部
０４０４  固定パターン・マッチング部
０４０５  通知パケット・マッチング部
０４０６〜０４０８  配線
０４０９  一致検出集約回路
０５０１  パケット・デマルチプレクサ
０５０２、０５０３  配線
０５０４  パケット・メモリ
０５０５  配線
０５０６  メモリ出力部
０５０７〜０５０９  配線
０５１０  バッファード・パケット出力部
０５１１  配線
０５１２  バッファ制御部
０５１３  配線
０５１４  パケット・メモリ制御部
０６０１  パケット・マルチプレクサ
０６０２  配線
０６０３  パケット出力部
０７０１  通知パケット・メモリ
０７０２  配線
０７０３  通知パケット出力部
０８０１  制御用組み合わせ回路
０８０２  配線
０８０３  制御状態レジスタ
０９０１  ネットワーク・インターフェース
０９０２  通信ネットワーク
０９０３  ハイブリッド
０９０４  ネットワーク出力部
０９０５  ネットワーク入力部
０９０６、０９０７  配線
１００１、１００２  通信ネットワーク
１００３、１００４  ネットワーク・インターフェース
１００５、１００６、１００７  ウイルスフィルタ
１００８〜１０１７  スイッチ
１０２０〜１０２３  スイッチ
１０３０〜１０３３  スイッチ
１０４０〜１０４３  スイッチ
【図１】
2008271538.tif 000003
【図２】
2008271538.tif 000004
【図３】
2008271538.tif 000005
【図４】
2008271538.tif 000006
【図５】
2008271538.tif 000007
【図６】
2008271538.tif 000008
【図７】
2008271538.tif 000009
【図８】
2008271538.tif 000010
【図９】
2008271538.tif 000011
【図１０】
2008271538.tif 000012
【図１１】
2008271538.tif 000013
【図１２】
2008271538.tif 000014
【図１３】
2008271538.tif 000015
【図１４】
2008271538.tif 000016
【図１５】
2008271538.tif 000017
【図１６】
2008271538.tif 000018
【図１７】
2008271538.tif 000019
【図１８】
2008271538.tif 000020