(57)【要約】【課題】  ウイルスに対する通信端末のセキュリティを向上させること。【解決手段】  パターンファイル１０８ａには、WORM_MSBLAST.AやCODERED.A等のウイルスが、自身の複製をコンピュータ装置１０へ転送するため、ＯＳや通信アプリケーションに存在するセキュリティホールを突いてコンピュータ装置１０にバックドアを仕掛ける際のアクセスパターン（ポート番号と、コンピュータ装置１０に送信されるデータ）が登録されている。コンピュータ装置１０は、送受信されるパケットから取得した宛先ポート番号およびデータを、パターンファイル１０８ａに登録されている各ウイルス用のアクセスパターンと比較して、いずれかのアクセスパターンと一致した場合に、このパケットを破棄してコネクションを切断する。【選択図】      図４
2005128792.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータウイルスを通信装置に転送するため、前記通信装置にバックドアを仕掛けるアクセスの特徴を記憶する記憶手段と、
通信手段と、
前記通信手段により受信されたデータが前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データを通信制御用のアプリケーションに引き渡す前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを前記アプリケーションに引き渡すことなく破棄する破棄手段と
を備えることを特徴とする通信装置。
【請求項２】
前記判別手段は、前記通信手段により受信された、シーケンス番号が連続する２つのパケットに跨ったデータが、前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データを通信制御用のアプリケーションに引き渡す前に判別し、
前記破棄手段は、前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記２つのパケットの一方以上を前記アプリケーションに引き渡すことなく破棄するとともに、当該パケットが受信されたコネクションを切断する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判別手段によりアクセスの特徴を満たすと判別された場合に、コンピュータウイルスが当該通信装置に侵入しようとしたことを報知する報知手段をさらに備える
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
コンピュータウイルスを通信装置に転送するため、前記通信装置にバックドアを仕掛けるアクセスの特徴を記憶する記憶手段と、
通信手段と、
前記通信手段により送信されるデータが前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データの送信前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを破棄して当該データの送信を中止する通信制御手段と
を備えることを特徴とする通信装置。
【請求項５】
前記判別手段は、前記通信手段により送信される、シーケンス番号が連続する２つのパケットに跨ったデータが、前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データの送信前に判別し、
前記通信制御手段は、前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記２つのパケットの一方以上を破棄するとともに、当該パケットを送信しようとしていたコネクションを切断する
ことを特徴とする請求項４に記載の通信装置。
【請求項６】
前記判別手段によりアクセスの特徴を満たすと判別された場合に、当該通信装置がコンピュータウイルスに感染していることを報知する報知手段をさらに備える
ことを特徴とする請求項４に記載の通信装置。
【請求項７】
前記判別手段によりアクセスの特徴を満たすと判別された場合に、当該通信装置からコンピュータウイルスを取り除くとともに、前記コンピュータウイルスにより書き替えられた当該通信装置の制御情報を復元する復元手段をさらに備える
ことを特徴とする請求項４に記載の通信装置。
【請求項８】
コンピュータを、
コンピュータウイルスをコンピュータに転送するため、前記コンピュータにバックドアを仕掛けるアクセスの特徴をメモリに記憶させる記憶制御手段と、
受信したデータが前記メモリに記憶されたアクセスの特徴を満たすか否かを、前記データを通信制御用のアプリケーションに引き渡す前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを前記アプリケーションに引き渡すことなく破棄する破棄手段と
として機能させるためのプログラム。
【請求項９】
コンピュータを、
コンピュータウイルスをコンピュータに転送するため、前記コンピュータにバックドアを仕掛けるアクセスの特徴をメモリに記憶させる記憶制御手段と、
送信するデータが前記メモリに記憶されたアクセスの特徴を満たすか否かを、前記データの送信前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを破棄して当該データの送信を中止する通信制御手段と
として機能させるためのプログラム。
【請求項１０】
請求項８または９に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置のセキュリティを確保するための技術に関する。
【背景技術】
【０００２】
電子メールに添付されたファイルや、ネットワークを介して送受信されるコンテンツには、コンピュータウイルス（以下、本明細書では「ウイルス」と記載する）が含まれている可能性がある。このようなウイルスから通信装置を保護するため、例えば、パターンマッチング方式を用いてウイルスを検出する技術が知られている（特許文献１〜３参照）。このパターンマッチング方式では、既知のウイルスのコードからこのウイルスに固有のコードパターンを抽出してこれをパターンファイルとして保持し、検査対象となるデータのコードと、パターンファイルに収められているコードパターンとを比較してウイルスの有無をチェックする。
【０００３】
ところで、WORM_MSBLAST.A（W32/Lovsan.worm、Lovsan、W32.Blaster.Wormとも呼ばれる）は、Windows NT、Windows 2000、Windows XP、Windows Server 2003（ともに登録商標）に存在する「RPC DCOM バッファオーバフロー」と呼ばれるセキュリティホールを突いてコンピュータに侵入するウイルスである。このWORM_MSBLAST.Aは、ＲＰＣを利用した通信において、ＲＰＣ用に割り当てられたバッファに入力されるデータの長さチェックが不充分である点を突いて、バッファを意図的にオーバフローさせ、これを足掛かりにコンピュータにバックドアを仕掛けて自身の複製をコンピュータに転送する。
【０００４】
以下に、図７を参照してWORM_MSBLAST.Aの動作について説明する。なお、同図において、通信端末１００Ａは、現時点においてWORM_MSBLAST.Aに感染していない通信端末である。一方、通信端末１００Ｂは、既にWORM_MSBLAST.Aに感染しており、Windowsのシステムフォルダ内にWORM_MSBLAST.Aの実行ファイル“MSBLAST.EXE”が保存されている通信端末である。
【０００５】
同図に示すように、“MSBLAST.EXE”が通信端末１００Ｂにおいて起動されると、まず、通信端末１００Ｂは、ネットワーク接続されたコンピュータのうち、ポート１３５、ポート４４４４およびポート６９が開いており、かつＲＰＣが起動しているコンピュータを検出する。この条件を通信端末１００Ａが満たしている場合、通信端末１００Ｂは、パケットの宛先ポート番号を“１３５”に設定し、ＲＰＣの“Bind”コマンドを通信端末１００Ａへ送信する（ステップＳ３０１）。通信端末１００Ａは、“Bind”コマンドを受信すると、ＲＰＣの“Response”コマンドを通信端末１００Ｂへ返信する（ステップＳ３０２）。
【０００６】
通信端末１００Ｂは、“Response”コマンドを受信した後、ＲＰＣ用に割り当てられたバッファの記憶容量を越えるデータサイズを有し、かつ、ポート４４４４を利用したリモートシェルを起動するよう指示する不正なデータを、ＲＰＣの“Request”コマンドとともに通信端末１００Ａへ送信する（ステップＳ３０３）。これにより通信端末１００Ａでは、ＲＰＣ用のバッファのオーバフローを足掛かりにリモートシェルが起動され、通信端末１００Ｂからの遠隔制御を受け付ける状態が確立してしまう。
【０００７】
この後、通信端末１００Ｂは、パケットの宛先ポート番号を“４４４４”に設定し、ＴＦＴＰの実行を指示するコマンドを通信端末１００Ａへ送信する（ステップＳ３０４）。このコマンドの受信に応じて通信端末１００Ａは、ＴＦＴＰに従った通信処理を開始し、通信端末１００Ｂからの要求に応じて“MSBLAST.EXE”の取得要求を通信端末１００Ｂへ送信する（ステップＳ３０５）。なお、この際のパケットの宛先ポート番号は“６９”に設定されている。
【０００８】
通信端末１００Ｂは、通信端末１００Ａからの取得要求を受信すると、ポート６９を使用して“MSBLAST.EXE”の複製を通信端末１００Ａへ転送する（ステップＳ３０６）。また、通信端末１００Ａは、“MSBLAST.EXE”を受信すると、これをWindowsのシステムフォルダ内に保存する。この後、通信端末１００Ｂは、宛先ポート番号を“４４４４”に設定し、“MSBLAST.EXE”の起動を指示するコマンドを通信端末１００Ａへ送信する（ステップＳ３０７）。その結果、通信端末１００Ａにおいて“MSBLAST.EXE”が起動される。
【０００９】
【特許文献１】特開２００３−２４１９８７号公報
【特許文献２】特開平１１−１６７４８７号公報
【特許文献３】特開平０６−３３７７８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、今までとは異なるタイプのウイルスが出現すると、このウイルスに類似する亜種のウイルスが出現する。WORM_MSBLAST.Aの場合もその例外ではなく、バッファをオーバフローさせてバックドアを仕掛けるまでのアクセス手順がWORM_MSBLAST.Aと略同様の亜種のウイルスが既に複数見つかっている。
【００１１】
ここで、従来のパターンマッチング方式を用いてウイルスを検出する場合、例えば、パターンファイルにWORM_MSBLAST.A用のコードパターンのみが収められている状態では、WORM_MSBLAST.Aの亜種ウイルスが出現した場合に、この亜種ウイルスのコードパターンがWORM_MSBLAST.A用のコードパターンと一致していない限り、バックドアを仕掛けるまでのアクセス手順がWORM_MSBLAST.Aと同じであっても、この亜種ウイルスを検出することができない。また、このような亜種のウイルスまでを従来のパターンマッチング方式で検出できるようにするためには、WORM_MSBLAST.A用のコードパターンに加え、各亜種ウイルス用のコードパターンが収められたパターンファイルをコンピュータに備えておく必要がある。そのためには、パターンファイルのアップデートを頻繁に行わなければならず、煩雑で使い勝手がよくなかった。
【００１２】
さらに、従来のパターンマッチング方式では、図７において、WORM_MSBLAST.A用のコードパターンが収められたパターンファイルを通信端末１００Ａが備えていたとしても、ステップＳ３０６に示した処理が行われ、通信端末１００ＢからWORM_MSBLAST.Aの実行ファイル“MSBLAST.EXE”を受信するまでは、通信端末１００Ａにおいてウイルスを検出することができなかった。
【００１３】
本発明は、以上説明した事情に鑑みてなされたものであり、その目的は、ウイルスに対する通信端末のセキュリティを向上させることである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明は、コンピュータウイルスを通信装置に転送するため、前記通信装置にバックドアを仕掛けるアクセスの特徴を記憶する記憶手段と、
通信手段と、
前記通信手段により受信されたデータが前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データを通信制御用のアプリケーションに引き渡す前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを前記アプリケーションに引き渡すことなく破棄する破棄手段と
を備える通信装置を提供する。
【００１５】
また、本発明は、コンピュータを、
コンピュータウイルスをコンピュータに転送するため、前記コンピュータにバックドアを仕掛けるアクセスの特徴をメモリに記憶させる記憶制御手段と、
受信したデータが前記メモリに記憶されたアクセスの特徴を満たすか否かを、前記データを通信制御用のアプリケーションに引き渡す前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを前記アプリケーションに引き渡すことなく破棄する破棄手段と
として機能させるためのプログラムを提供する。
【００１６】
本発明によれば、通信装置（コンピュータ）は、受信したデータが記憶手段に記憶されているアクセスの特徴を満たす場合に、このデータを通信制御用のアプリケーションに引き渡すことなく破棄する。
【００１７】
また、本発明は、コンピュータウイルスを通信装置に転送するため、前記通信装置にバックドアを仕掛けるアクセスの特徴を記憶する記憶手段と、
通信手段と、
前記通信手段により送信されるデータが前記記憶手段に記憶されたアクセスの特徴を満たすか否かを、前記データの送信前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを破棄して当該データの送信を中止する通信制御手段と
を備える通信装置を提供する。
【００１８】
また、本発明は、コンピュータを、
コンピュータウイルスをコンピュータに転送するため、前記コンピュータにバックドアを仕掛けるアクセスの特徴をメモリに記憶させる記憶制御手段と、
送信するデータが前記メモリに記憶されたアクセスの特徴を満たすか否かを、前記データの送信前に判別する判別手段と、
前記判別手段によりアクセスの特徴を満たすと判別された場合に、前記データを破棄して当該データの送信を中止する通信制御手段と
として機能させるためのプログラムを提供する。
【００１９】
本発明によれば、通信装置（コンピュータ）は、送信するデータが記憶手段に記憶されているアクセスの特徴を満たす場合に、このデータを破棄して当該データの送信を中止する。
【発明の効果】
【００２０】
本発明によれば、ウイルスに対する通信端末のセキュリティを向上させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施形態について説明する。
［Ａ−１．実施形態の構成］
図１は、本発明を適用したコンピュータ装置１０のハードウェア構成を例示するブロック図である。このコンピュータ装置１０は、ネットワーク通信機能を有しており、例えば、ネットワーク端末や、コンテンツサーバ、ゲートウェイサーバ、プロキシサーバ等として使用される。
【００２２】
同図において、ＣＰＵ１０１は、ＲＯＭ１０２やＨＤ（ハードディスク）１０８に記憶されている各種のプログラムを実行することによってコンピュータ装置１０の各部を制御する。ＲＯＭ１０２には、コンピュータ装置１０の各部の基本制御を司るプログラム等が記憶されている。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして用いられる。ネットワーク通信部１０４は、ネットワーク接続された他のコンピュータ装置との間でＬＡＮやインターネット等を介して行われる通信を制御する。操作入力部１０５は、キーボードやマウスである。表示部１０６は、液晶ディスプレイやＣＲＴディスプレイである。ＣＤ−ＲＯＭドライブ１０７は、ＣＤ−ＲＯＭ２０に記憶されているプログラムやデータを読み出す機能を有している。また、ＣＤ−ＲＯＭ２０には、ファイアウォール用のアプリケーションソフトウェアが記憶されている。
【００２３】
このファイアウォール用のアプリケーションソフトウェアは、WORM_MSBLAST.AやCODERED.A（CODE RED、CODERED.WORM、HBC、W32/BADY.WORMとも呼ばれる）等のウイルスの侵入を、ウイルスの実行ファイルを受信するよりも前の段階で検出する機能や、コンピュータ装置１０がウイルスに感染しているか否かをチェックし、ウイルスに感染している場合は、ウイルスの実行ファイルを削除したり、ウイルスによって不正に書き替えられたレジストリ情報を復元する機能等をコンピュータ装置１０に提供する。
【００２４】
ＨＤ１０８には、コンピュータ装置１０のＯＳとして、例えば、Windows XPがインストールされている。勿論、Windows XPの代わりに、Windows NTやWindows 2000、Windows Server 2003等がインストールされていてもよい。また、ＨＤ１０８には、例えば、ＲＰＣ、ＩＩＳ、ＴＦＴＰ等の通信制御用のアプリケーション（以下、本明細書では「通信アプリケーション」と記載する）や、これらの通信アプリケーションを利用して他のコンピュータ装置との間でデータ通信を行うアプリケーションソフトウェア、ＣＤ−ＲＯＭ２０から読み出されたファイアウォール用のアプリケーションソフトウェア等がインストールされている。
【００２５】
加えて、ＨＤ１０８には、パターンファイル１０８ａが記憶されている。このパターンファイル１０８ａは、ファイアウォール用のアプリケーションソフトウェアを提供する事業者のサーバ等にアクセスしてアップデートを行うことで、最新のウイルスに対応したものに更新できる。
【００２６】
図２は、パターンファイル１０８ａのデータ構成を例示する図である。同図に示すように、パターンファイル１０８ａには、WORM_MSBLAST.AやCODERED.A等のウイルスが、自身の複製をコンピュータ装置１０へ転送するため、ＯＳや通信アプリケーションに存在するセキュリティホールを突いてコンピュータ装置１０にバックドアを仕掛ける際のアクセスパターンが登録されている。より具体的に説明すると、パターンファイル１０８ａには、ウイルス毎に、ウイルスがネットワークを介してコンピュータ装置１０へアクセスしてくる際のポート番号と、このポート番号に対応する通信アプリケーションの名称と、この通信アプリケーション用に割り当てられたバッファに入力されるデータであって、バッファをオーバフローさせてコンピュータ装置１０にバックドアを仕掛けるためのデータ（コマンド名と、このコマンドに後続するデータ）と、ウイルス名とが登録されている。
【００２７】
例えば、WORM_MSBLAST.Aは、図７に示したように、ＲＰＣ用のバッファをオーバフローさせてバックドアを仕掛ける際に“Request”コマンドを用いる。したがって、パターンファイル１０８ａには、図２に示すように、ＲＰＣに対応するポート番号“１３５”と、アプリケーション名“ＲＰＣ”と、コマンド名“Request”と、コマンドとともにバッファに入力されるデータと、ウイルス名“WORM_MSBLAST.A”とが登録される。なお、図２において、WORM_MSBLAST.Aについては、バッファに入力される具体的なデータの記載を省略している。
【００２８】
また、CODERED.Aは、ＩＩＳを利用した通信において、ＩＩＳ用のバッファをオーバフローさせてバックドアを仕掛ける際に“Get”コマンドを用いる。したがって、パターンファイル１０８ａには、図２に示すように、ＩＩＳに対応するポート番号“８０”と、アプリケーション名“ＩＩＳ”と、コマンド名“Get”と、コマンドとともにバッファに入力されるデータと、ウイルス名“CODERED.A”とが登録される。
【００２９】
なお、図２において「データ」欄には、コマンドを含むデータの全体ではなく、このコマンドを含むデータに特有な一部分のデータや、このコマンドを含むデータの特徴を示す情報が格納されていてもよい。例えば、コマンドを含む先頭から２０文字分のコードと、最後の２０文字分のコードとが「データ」欄に格納されていてもよい。
【００３０】
次に、図３は、コンピュータ装置１０におけるソフトウェアのモジュール構成を例示する図である。同図において、Firewallは、ステートフルインスペクション機能やＩＤＳ機能に加え、WORM_MSBLAST.AやCODERED.A等のウイルスの侵入を事前に遮断する機能等を有している。例えば、Firewallによる処理において、ＣＰＵ１０１は、ネットワーク通信部１０４（Network Device Driverを含む）により受信され、ＮＤＩＳによる処理を経たパケットについて、ヘッダから宛先ポート番号を取得するとともにペイロードからデータを取得する。
【００３１】
そして、ＣＰＵ１０１は、取得した宛先ポート番号およびデータと、パターンファイル１０８ａに登録されているアクセスパターンとを比較することで、このパケットによるアクセスが、ウイルスによるものであって、ウイルスをコンピュータ装置１０に転送するため、コンピュータ装置１０にバックドアを仕掛けようとする不正なアクセスであるか否かを判定する。その結果、ＣＰＵ１０１は、不正なアクセスであると判定した場合に、このパケットを破棄するとともに、このパケットを受信したコネクションを切断する。一方、不正なアクセスでないと判定されたパケットは、ＮＤＩＳ、TCP/IP StackおよびSocket I/Fによる処理を経てＡＰ（アプリケーションソフトウェア）に引き渡される。
【００３２】
逆に、コンピュータ装置１０からデータを送信する場合、Firewallによる処理において、ＣＰＵ１０１は、ＡＰ、Socket I/F、TCP/IP StackおよびＮＤＩＳによる処理を経たパケットから宛先ポート番号とデータを取得する。そして、ＣＰＵ１０１は、取得した宛先ポート番号およびデータと、パターンファイル１０８ａに登録されているアクセスパターンとを比較することで、このパケットによるアクセスが、ウイルスによるものであって、ウイルスを相手先のコンピュータ装置へ転送するため、相手先のコンピュータ装置にバックドアを仕掛けようとする不正なアクセスであるか否かを判定する。その結果、ＣＰＵ１０１は、不正なアクセスであると判定した場合に、このパケットを破棄するとともに、このパケットを送信しようとしていたコネクションを切断する。一方、不正なアクセスでないと判定されたパケットは、ＮＤＩＳによる処理を経てネットワーク通信部１０４から相手先のコンピュータ装置へ送信される。
【００３３】
なお、ＡＰＩおよびServiceは、パターンファイル１０８ａをアップデートする機能や、Firewallによって不正なアクセスが検出された場合等にその内容をユーザに報知する機能、ＯＳの種類を示す情報等を取得してFirewallへ通知したり、Firewallの起動や停止をユーザに通知する機能等を有している。
【００３４】
［Ａ−２．実施形態の動作］
図４は、パケット受信時のFirewallによる処理について例示するフローチャートである。コンピュータ装置１０は、アプリケーションソフトウェアの実行中に必要に応じてＲＰＣ、ＩＩＳ等の通信アプリケーションを起動して、相手先のコンピュータ装置との間でネットワークを介したデータ通信を開始する。そして、コンピュータ装置１０は、パケットを受信すると、ＮＤＩＳによる処理を終えた後、Firewallによる処理として同図に示す処理を開始する。
【００３５】
なお、コンピュータ装置１０において通信アプリケーションを利用した通信が開始される際には、通信アプリケーションに対して所定の記憶容量を有するバッファがＯＳにより割り当てられる。このバッファは、通信アプリケーションを利用した通信において相手先のコンピュータ装置から受信したデータを、この通信アプリケーションに従って処理するために一時的に記憶しておくメモリエリアであって、ＲＡＭ１０３あるいはＨＤ１０８に設けられる。
【００３６】
まず、ＣＰＵ１０１は、受信したパケットのヘッダから宛先ポート番号を取得するとともに（ステップＳ１０１）、このパケットのペイロードからデータを取得する（ステップＳ１０２）。次いで、ＣＰＵ１０１は、取得した宛先ポート番号およびデータを、パターンファイル１０８ａに登録されている各ウイルス用のアクセスパターン（ポート番号およびデータ）と比較する（ステップＳ１０３）。なお、パターンファイル１０８ａとの比較を行う際には、まず、ポート番号が一致しているか否かを調べ、ポート番号が一致していれば、次にコマンドが一致しているか否かを調べる。そして、コマンドが一致していれば、次にコマンド以降のデータが一致しているか否かを調べる。このように、パターンファイル１０８ａとの比較を段階的に行うようにすれば、パケット毎に行われるチェックを効率的に済ますことができる。
【００３７】
ＣＰＵ１０１は、パケットから取得した宛先ポート番号およびデータが、パターンファイル１０８ａに登録されているいずれかのウイルス用のアクセスパターンと一致した場合に（ステップＳ１０４，Ｓ１０５がともにＹＥＳ）、このパケットによるアクセスが、ウイルスによるものであって、ウイルスをコンピュータ装置１０に転送するため、コンピュータ装置１０にバックドアを仕掛けようとする不正なアクセスであると判定する。この場合、ＣＰＵ１０１は、受信したパケットを破棄するとともに（ステップＳ１０６）、このパケットを受信したコネクションを切断する（ステップＳ１０７）。
【００３８】
例えば、受信したパケットの宛先ポート番号が“８０”であり、かつ、このパケットのデータが図２に示したパターンファイル１０８ａに登録されているCODERED.A用のデータと同じであった場合、ＣＰＵ１０１は、このパケットによるアクセスが、CODERED.Aによるものであって、CODERED.Aをコンピュータ装置１０に転送するため、コンピュータ装置１０にバックドアを仕掛けようとする不正なアクセスであると判定し、受信したパケットを破棄してコネクションを切断する。
【００３９】
この後、ＣＰＵ１０１は、不正なアクセスを検出したことを示す不正アクセス検出通知をＡＰＩに送出した後（ステップＳ１０８）、図４に示した処理を終える。ＡＰＩは、不正アクセス検出通知を受け取ると、コンピュータ装置１０にウイルスが侵入しようとしたことや、そのウイルスの名称、不正なアクセスであったため通信を中止したこと等を示すメッセージを表示部１０６に表示する。勿論、これらのメッセージは音声でユーザに報知されてもよい。
【００４０】
一方、ＣＰＵ１０１は、パケットから取得した宛先ポート番号およびデータが、パターンファイル１０８ａに登録されているいずれのウイルス用のアクセスパターンとも一致しなかった場合に（ステップＳ１０４，Ｓ１０５の一方以上がＮＯ）、このパケットの通過を許可し（ステップＳ１０９）、図４に示した処理を終える。ステップＳ１０９において通過が許可されたパケットは、ＮＤＩＳ、TCP/IP StackおよびSocket I/Fによる処理を終えた後、受信データとしてＡＰ（アプリケーションソフトウェア）に引き渡され、通信アプリケーション用に割り当てられたバッファに入力される。
【００４１】
次に、図５は、パケット送信時のFirewallによる処理について例示するフローチャートである。コンピュータ装置１０は、アプリケーションソフトウェアの実行中に必要に応じてＲＰＣ、ＩＩＳ等の通信アプリケーションを起動して、相手先のコンピュータ装置との間でデータ通信を開始する。そして、コンピュータ装置１０は、相手先のコンピュータ装置に対してデータを送信する場合に、ＡＰ、Socket I/F、TCP/IP StackおよびＮＤＩＳによる処理を終えた後、Firewallによる処理として同図に示す処理を開始する。
【００４２】
なお、データを送信する際には、ＡＰによる処理にて、送信するデータや宛先ポート番号、通信アドレス等が指定され、これらに基づいてSocket I/Fによる処理にてパケットが生成される。
【００４３】
まず、ＣＰＵ１０１は、送信するパケットのヘッダから宛先ポート番号を取得するとともに（ステップＳ２０１）、このパケットのペイロードからデータを取得する（ステップＳ２０２）。次いで、ＣＰＵ１０１は、取得した宛先ポート番号およびデータを、パターンファイル１０８ａに登録されている各ウイルス用のアクセスパターン（ポート番号およびデータ）と比較する（ステップＳ２０３）。
【００４４】
その結果、ＣＰＵ１０１は、パケットから取得した宛先ポート番号およびデータが、パターンファイル１０８ａに登録されているいずれかのウイルス用のアクセスパターンと一致した場合に（ステップＳ２０４，Ｓ２０５がともにＹＥＳ）、このパケットによるアクセスが、ウイルスによるものであって、ウイルスを相手先のコンピュータ装置へ転送するため、相手先のコンピュータ装置にバックドアを仕掛けようとする不正なアクセスであると判定する。この場合、ＣＰＵ１０１は、このパケットを破棄するとともに（ステップＳ２０６）、このパケットを送信しようとしていたコネクションを切断し（ステップＳ２０７）、パケットの送信を中止する。なお、このようなパケットの送信を行おうとしていたことは、このコンピュータ装置１０が、WORM_MSBLAST.AやCODERED.A等のウイルスに感染していることを意味している。
【００４５】
この後、ＣＰＵ１０１は、不正な送信処理が行われようとしたことを示す不正送信検出通知をＡＰＩに送出した後（ステップＳ２０８）、図５に示した処理を終える。ＡＰＩは、不正送信検出通知を受け取ると、このコンピュータ装置１０がウイルスに感染していることや、そのウイルスの名称、不正な送信処理であったため通信を中止したこと等を示すメッセージを表示部１０６に表示する。また、ＣＰＵ１０１は、ＨＤ１０８にインストールされているワクチンプログラムを起動して、ウイルスの実行ファイルを削除するとともに、ウイルスによって不正に書き替えられたレジストリ情報を修復する。
【００４６】
例えば、送信するパケットの宛先ポート番号が“８０”であり、かつ、このパケットのデータが図２に示したパターンファイル１０８ａに登録されているCODERED.A用のデータと同じであった場合、ＣＰＵ１０１は、このパケットによるアクセスが、CODERED.Aによるものであって、CODERED.Aを相手先のコンピュータ装置へ転送するため、相手先のコンピュータ装置にバックドアを仕掛けようとする不正な送信処理であると判定し、このパケットの送信を中止する。加えて、ＣＰＵ１０１は、CODERED.A用のワクチンプログラムを起動して、CODERED.Aの実行ファイルを削除するとともにレジストリ情報の修復を行う。
【００４７】
なお、ワクチンプログラムに従った処理が実行される際には、ウイルスの実行ファイルの削除やレジストリ情報を修復するために必要となるデータを収めたワクチンファイルが参照される。また、これらのワクチンプログラムやワクチンファイルは、パターンファイル１０８ａと同様、アップデートを行うことで最新のウイルスに対応したものを得ることができる。
【００４８】
一方、ＣＰＵ１０１は、パケットから取得した宛先ポート番号およびデータが、パターンファイル１０８ａに登録されているいずれのウイルス用のアクセスパターンとも一致しなかった場合に（ステップＳ２０４，Ｓ２０５の一方以上がＮＯ）、このパケットの通過を許可し（ステップＳ２０９）、図５に示した処理を終える。ステップＳ２０９において通過が許可されたパケットは、ＮＤＩＳによる処理を経てネットワーク通信部１０４から相手先のコンピュータ装置へ送信される。
【００４９】
以上説明したように本実施形態によれば、コンピュータ装置１０は、ウイルスがコンピュータ装置１０にバックドアを仕掛ける際のアクセスを検出してコネクションを切断するので、WORM_MSBLAST.AやCODERED.A等のウイルスの侵入を、ウイルスの実行ファイルを受信するよりも前の段階で検出し、遮断することができる。また、コンピュータ装置１０は、バックドアを仕掛ける際のアクセスパターンがパターンファイル１０８ａに登録されているアクセスパターンと同じであれば、亜種のウイルスを検出することも可能である。
【００５０】
さらに、コンピュータ装置１０は、送信するパケットについてもパターンファイル１０８ａを用いてチェックを行っているので、万一、自装置１０がウイルスに感染していても、他のコンピュータ装置にウイルスを感染させることがない。また、コンピュータ装置１０は、送信するパケットをチェックすることで、自装置１０がウイルスに感染しているか否かをチェックすることができる。
【００５１】
［Ｂ．変形例］
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。上述した実施形態は、本発明の一態様を例示したものに過ぎず、例えば、以下に示すような変形例が考えられる。
【００５２】
上述した実施形態では、１パケット毎にパターンファイル１０８ａとの比較を行う場合について説明した。しかしながら、仮に、図６に示すように、シーケンス番号“Ｎ”のパケットとシーケンス番号“Ｎ＋１”のパケットとに跨るようにペイロードデータ“ＡＢＣＤＥＦ”が存在する一方、パターンファイル１０８ａにアクセスパターンとして“ＡＢＣＤＥＦ”が登録されている場合、上述した実施形態の構成では、これを不正なアクセスとして検出することができない。
【００５３】
そこで、図４および図５に示した処理において、ＣＰＵ１０１は、シーケンス番号の連続する２つ以上の各パケットに含まれるデータを組み立ててパターンファイル１０８ａとの比較を行うようにしてもよい。勿論、１度に組み立てるパケットの数は任意に設定できる。この場合、ＣＰＵ１０１は、宛先ポート番号および組み立てたデータが、パターンファイル１０８ａに登録されているいずれかのウイルス用のアクセスパターン（ポート番号およびデータ）と一致した場合に、データを組み立てた各パケットのいずれか１つ以上を破棄するとともに、各パケットを受信したコネクション、あるいは各パケットを送信しようとしていたコネクションを切断する。一方、ＣＰＵ１０１は、宛先ポート番号および組み立てたデータが、パターンファイル１０８ａに登録されているいずれのウイルス用のアクセスパターンとも一致しなかった場合に、データを組み立てた各パケットの通過を許可する。
【００５４】
なお、以上のように複数のパケットに含まれるデータを組み立ててパターンファイル１０８ａとの比較を行うようにすると、データの組み立て等により処理効率が低下してしまう。そこで、処理効率を落とさないようにするため、以下のようにしてパターンファイル１０８ａとの比較を行うようにしてもよい。なお、以下では宛先ポート番号の照合に関する説明を省略する。
【００５５】
ＣＰＵ１０１は、パケットから取得したデータをパターンファイル１０８ａに登録されているデータと比較する際に、パケットに含まれるデータの終了部分が、パターンファイル１０８ａに登録されているデータの先頭部分から複数コードに渡って部分一致するか否かを判定する。その結果、部分一致が認められる場合、ＣＰＵ１０１は、部分一致した複数のコードをＲＡＭ１０３に保存する。なお、このとき部分一致したパケットのシーケンス番号を“Ｎ”とする。
【００５６】
次いで、ＣＰＵ１０１は、シーケンス番号“Ｎ＋１”のパケットから取得したデータをパターンファイル１０８ａに登録されているデータと比較する際に、パターンファイル１０８ａに登録されているデータのうち、ＲＡＭ１０３に保存してある複数のコードを除いた残りの部分が、シーケンス番号“Ｎ＋１”のパケットから取得したデータの先頭部分から一致するか否かを判定する。その結果、ＣＰＵ１０１は、残りの部分についても一致が認められた場合に、シーケンス番号“Ｎ”のパケットと、シーケンス番号“Ｎ＋１”のパケットとに跨ったデータが、パターンファイル１０８ａに登録されているデータ全体と一致したと判定する。このような構成とすれば、シーケンス番号が連続する２つのパケットに跨るデータについても、処理効率を落とすことなく、パターンファイル１０８ａとの比較を行うことができる。
【００５７】
なお、上述した実施形態において、図４に示した処理は、受信したデータを通信アプリケーション用のバッファに入力する前、すなわち、受信したデータを通信アプリケーションに引き渡す前までに行えばよいから、例えば、Socket I/Fにて各パケットのデータを組み立ててから、組み立てたデータを通信アプリケーション用のバッファに入力するまでの間に行うようにしてもよい。また、図５に示した処理も、パケットを送信する前までに行えばよいから、例えば、Socket I/Fにてパケットを生成する前の段階で行うようにしてもよい。加えて、上述した実施形態において、コンピュータ装置１０は、ＣＤ−ＲＯＭ２０から読み出したプログラムに従って図４や図５に示した処理を実行するが、このような本発明に係る処理を実行するためのプログラムを、電気通信回線を介した通信によりコンピュータ装置１０に提供するようにしてもよい。また、本発明は、パケット通信やコネクション型の通信に限定されるものではない。さらに、本発明を、公衆無線ＬＡＮに収容される無線端末や、携帯電話機等のモバイルコンピュータに適用してもよい。また、記憶媒体は、ＤＶＤやフロッピー（登録商標）ディスク、メモリカード等であってもよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態に係るコンピュータ装置１０のハードウェア構成を例示するブロック図である。
【図２】同実施形態に係り、パターンファイル１０８ａのデータ構成を例示する図である。
【図３】同実施形態に係り、コンピュータ装置１０におけるソフトウェアのモジュール構成を例示する図である。
【図４】同実施形態に係り、パケット受信時のFirewallによる処理について例示するフローチャートである。
【図５】同実施形態に係り、パケット送信時のFirewallによる処理について例示するフローチャートである。
【図６】本発明の変形例に係り、シーケンス番号の連続する２つのパケットに跨ったデータが、パターンファイル１０８ａに登録されているデータと一致する場合について示す図である。
【図７】従来技術に係り、WORM_MSBLAST.Aの動作を示すシーケンスチャートである。
【符号の説明】
【００５９】
１０…コンピュータ装置、２０…ＣＤ−ＲＯＭ、１００Ａ，１００Ｂ…通信端末、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…ネットワーク通信部、１０５…操作入力部、１０６…表示部、１０７…ＣＤ−ＲＯＭドライブ、１０８…ＨＤ、１０８ａ…パターンファイル。
【図１】
2005128792.tif 000003
【図２】
2005128792.tif 000004
【図３】
2005128792.tif 000005
【図４】
2005128792.tif 000006
【図５】
2005128792.tif 000007
【図６】
2005128792.tif 000008
【図７】
2005128792.tif 000009