(57)【要約】【課題】ネットワークのボトルネックに設けられた探知装置を介してボトルネックを通過するＴＣＰパケットを監視し、外向きパケットがインターネットワームにより生成されたパケットであるか否かを判定し、通報及び該当パケットの通過を遮断することを可能にして、インターネットワームによるネットワーク資源の消失被害を最小化することのできる悪性コード探知装置及び方法を提供する。【解決手段】外部網から内部網に入るＴＣＰ連結設定パケットの情報を登録すると共に、登録した連結についてのＴＣＰデータパケットの内容を格納し、前記外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックデータに登録されている場合に、該当パケットを悪性コードと判定する構成とする。【選択図】図５
2006135963.tif 000002
【特許請求の範囲】
【請求項１】
外部網から内部網に入るＴＣＰ連結設定パケットの情報を登録すると共に、登録した連結についてのＴＣＰデータパケットのコンテンツを格納する、内向きＴＣＰトラフィックの登録過程と、
内部網から外部網に向かうＴＣＰ連結設定のうち、予め決めた所定時間内に前記内向きＴＣＰトラフィックと同じ特徴を有するトラフィック連結を要請するものと判定される連結である場合には、該当ＴＣＰ連結についてのデータを格納する、外向きＴＣＰトラフィックの登録過程と、
前記外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックの登録過程を通じて既に登録されている場合に、該当パケットを悪性コードと判定する過程と、を備えることを特徴とする悪性コード検出方法。
【請求項２】
前記内向きＴＣＰトラフィックは、内向きＴＣＰ連結テーブルに格納され、前記外向きＴＣＰトラフィックは、外向きＴＣＰ連結テーブルに格納されることを特徴とする請求項１に記載の悪性コード検出方法。
【請求項３】
前記内向きＴＣＰ連結テーブルは、ソースＩＰアドレス、宛先ＩＰアドレス、ソースＴＣＰポート番号、宛先ＴＣＰポート番号、エントリー登録時間及び少なくとも１つ以上のデータパケット格納領域を含む、少なくとも１つ以上のエントリーを備えていることを特徴とする請求項２に記載の悪性コード検出方法。
【請求項４】
前記外向きＴＣＰ連結テーブルは、ソースＩＰアドレス、宛先ＩＰアドレス、ソースＴＣＰポート番号、宛先ＴＣＰポート番号、エントリー登録時間及び少なくとも１つ以上のデータパケット格納領域を含む、少なくとも１つ以上のエントリーを備えていることを特徴とする請求項２に記載の悪性コード検出方法。
【請求項５】
前記内向きＴＣＰ連結データの登録過程は、
前記内向きトラフィックがＴＣＰ ＳＹＮパケットであると共に、当該パケットが内向きＴＣＰ連結データに登録されていない場合には、該当内向きトラフィックを、内向きＴＣＰ連結テーブルに登録することを特徴とする請求項２に記載の悪性コード検出方法。
【請求項６】
前記内向きトラフィックにおけるＴＣＰ ＳＹＮパケットのヘッダー情報のうち、ソースＩＰアドレス、宛先ＩＰアドレス、ソースＴＣＰポート、及び宛先ＴＣＰポート情報は、前記内向きＴＣＰ連結テーブルにおける同じ項目にそのまま登録し、前記内向きＴＣＰ連結テーブルのエントリー登録時間には、前記ＴＣＰ ＳＹＮパケットを登録する時点の時刻を登録し、前記内向きＴＣＰ連結テーブルのデータ格納領域には、何らのデータも登録しないことを特徴とする請求項５に記載の悪性コード検出方法。
【請求項７】
前記内向きＴＣＰ連結データの登録過程は、
前記内向きトラフィックがＴＣＰデータパケットである場合には、該当パケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの各エントリーの同一項目とを比較して、該当トラフィックが内向きＴＣＰ連結テーブルに登録されているトラフィックであるか否かを判定する過程と、
前記判定の結果、前記内向きＴＣＰデータパケットと一致するエントリーが登録されていると判定した場合には、前記内向きＴＣＰデータパケットの純粋データの情報を、該当エントリーのデータパケット格納領域に登録する過程と、を備えることを特徴とする請求項２に記載の悪性コード検出方法。
【請求項８】
前記データパケット格納領域は、システム運用者によって変更可能な数値の範囲における最大値に設定される、少なくとも１つの格納領域であることを特徴とする請求項７に記載の悪性コード検出方法。
【請求項９】
前記内向きＴＣＰデータパケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの各エントリーの同一項目との比較は、ソースＩＰアドレス、ターゲットＩＰアドレス、ソースＴＣＰポート、及びターゲットＴＣＰポートの情報を互いに比較し、比較した全ての項目が一致する場合にのみ、前記内向きＴＣＰデータパケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの情報とが同じであると判定することを特徴とする請求項７に記載の悪性コード検出方法。
【請求項１０】
前記外向きＴＣＰ連結データの登録過程は、
前記外向きトラフィックがＴＣＰ ＳＹＮパケットである場合には、当該ＴＣＰ ＳＹＮパケットの情報と、前記内向きＴＣＰ連結テーブルに登録されている各エントリーとを比較し、同じ情報を含むエントリーが登録されていると判定した場合には、前記ＴＣＰ ＳＹＮパケットの情報を前記外向き連結テーブルに登録することを特徴とする請求項２に記載の悪性コード検出方法。
【請求項１１】
前記ＴＣＰ ＳＹＮパケットと、前記内向きＴＣＰ連結テーブルのエントリーの情報が一致するトラフィックであるか否かは、
（ａ）ＴＣＰ ＳＹＮパケットのソースＩＰアドレスと、内向きＴＣＰ連結テーブルのエントリーのターゲットＩＰアドレス、及び
（ｂ）前記ＴＣＰ ＳＹＮパケットのターゲットＴＣＰポート番号と、前記ＴＣＰ連結テーブルのエントリーのターゲットＴＣＰポート番号を比較して一致するか否かで判定することを特徴とする請求項１０に記載の悪性コード検出方法。
【請求項１２】
前記外向きＴＣＰ連結データの登録過程は、
前記外向きトラフィックがＴＣＰデータパケットである場合には、
該当パケットのヘッダーと、前記外向きＴＣＰ連結テーブルの各エントリーの情報とを比較する過程と、
前記外向きＴＣＰデータパケットと同じトラフィックであると判定されるエントリー情報が登録されている場合に、前記外向きＴＣＰデータパケットの純粋データのコンテンツと、該当エントリーのデータ格納領域に格納されているデータパケットのコンテンツとを比較する過程と、
前記パケットのコンテンツを比較した結果、双方のデータが一致する場合には、前記外向きＴＣＰトラフィックが悪性コードにより生成されたものであると判定する過程と、を備えることを特徴とする請求項２に記載の悪性コード検出方法。
【請求項１３】
前記内向きＴＣＰテーブル又は前記外向きＴＣＰテーブルの各エントリーは、エントリー登録時間から一定時間が経過すると、該当テーブルから削除することを特徴とする請求項２に記載の悪性コード検出方法。
【請求項１４】
前記データ格納領域に格納される情報は、伝送される純粋データのチェックサム（Checksum）値であることを特徴とする請求項３又は４に記載の悪性コード検出方法。
【請求項１５】
外部網から内部網に入るＵＤＰ連結を登録すると共に、登録した連結についてのＵＤＰデータパケットのコンテンツを格納する、内向きＵＤＰトラフィックの登録過程と、
内部網から外部網に向かうＵＤＰ連結が、外部から連結要請を受けて外部との連結があった内部ホストが予め決めた所定時間内に同じターゲットＵＤＰポートに連結を要請するものであると判定される場合には、該当ＵＤＰ連結についてのデータを格納する、外向きＵＤＰトラフィックの登録過程と、
前記外向きＵＤＰ連結のデータパケット及び前記内向き連結データに登録されたパケットの中に同じパケットがある場合、該当パケットを悪性コードとして判断する過程とを備えることを特徴とする悪性コード探知方法。
【請求項１６】
前記ＵＤＰデータの登録及び格納は、特定のデータパケットについて、それ以前におけるＵＤＰセッションのセッションタイムアウト時間内に同じデータパケットが受信されていない場合には、ＵＤＰテーブルへのエントリーを生成して、該当データパケットを格納することを特徴とする請求項１５に記載の悪性コード検出方法。
【請求項１７】
外部網から内部網に入るＴＣＰ連結設定パケットの情報を登録すると共に、登録した連結についてのＴＣＰデータパケットのコンテンツを格納する、内向きＴＣＰ連結テーブルと、内部網から外部網に向かうＴＣＰ連結が外部から連結要請を受けて外部との連結があった内部ホストが、予め決めた所定時間内に同じターゲットＴＣＰポートに連結を要請するものであると判定される場合に、該当ＴＣＰ連結についてのデータを格納する、外向きＴＣＰ連結テーブルと、を含むデータベースと、
前記内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブルに連結され、前記各種データの登録、比較及び格納を制御する機能を有し、外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックの登録過程を通じて既に登録されている場合に、該当パケットを悪性コードとして判定する制御部と、を備えることを特徴とする悪性コード検出装置。
【請求項１８】
前記悪性コード検出装置は、内部網と外部網との間のボトルネックに位置することを特徴とする請求項１７に記載の悪性コード検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、悪性コードの検出に関し、より詳細には、ネットワーク上のパケットの移動を監視することにより、未知のインターネットワームを最大限早期に検出し、それを報告することによって、インターネットワームの拡散を防止する、悪性コード検出装置及び検出方法に関する。
【背景技術】
【０００２】
インターネット技術の発展に伴って、インターネットに対する威嚇要素も増加している。代表的な威嚇要素には、悪性コードが挙げられる。悪性コードは、一般的に、理論的定義と実質的定義とに分けて説明することができる。
【０００３】
理論的定義は、他人に被害を与えるための目的で考案される全てのコンピュータプログラムまたは実行可能な部分を意味する。また実質的定義は、他人に心理的又は実質的な被害を与えるコンピュータプログラムまたは実行可能な部分を意味する。プログラマーの誤りによるバグは悪性コードから除外されるが、これらバグも広範囲な被害が予想される場合には悪性コードに含まれる。
【０００４】
悪性コードの代表的な例としては、コンピュータウイルスやインターネットワームなどが挙げられる。
【０００５】
コンピュータウイルスは、プログラムの形態を有し、感染対象プログラムに自分のコード及び変形コードを感染させ、感染ファイルが実行されると、ネットワーク及びコンピュータシステムに拡散させる。
【０００６】
インターネットワームは、プロセスの形態で存在し、ネットワーク上の他のホストにてワームプロセスを動作させる方法で感染させる。インターネットワームの感染条件として人的動作は必要とされず、感染により多量のトラフィックが生成されるので、感染されていないホストもインターネットの利用が不可能となり、インターネットに大きな乱れを引き起こす。１９８８年に広く拡散して被害を与えたモリスワームを始めとして、多くのワームが作られて大きい被害を与えている。
【０００７】
インターネットワーム（Internet Worm）は、既存のコンピュータウイルスとは異なり、ネットワークを介して自ら増殖（自己増殖）する特徴を持っている。コンピュータウイルスが正常なファイルを削除及び変更するなどの被害を与えるのに対し、インターネットウォームは、その爆発的な拡散特性により、ネットワーク資源を枯渇させ、正常なネットワークサービスを妨害するという被害を与える。
【０００８】
従って、国内（韓国内）や外国のいろいろな企業では、アンチウイルス（Anti-Virus）製品の導入を行っている。これら製品のほとんどは、既に知られたコンピュータウイルス及びワームのパターンを格納しているデータベース（ＤＢ）を有しており、疑わしいファイル及びプロセスとデータベースに格納されたパターンとのパターンマッチング技法を使用することにより、ウイルスの威嚇を検出している。
【０００９】
既存のアンチウイルス製品は、既に知られたウイルスについてのプログラム上の特定文字列（パターン）を収集してパターンデータベースを構築する手法で具現されており、既に知られたウイルスに対しては効果的な防御策になり得る。しかしながら、未知のウイルスやウォームに対しては無防備であり、ホスト及び内部網の保護を主目的としているので、攻撃トラフィックによるネットワーク資源の消失を防止できないという短所を有する。
【００１０】
前述したように、既に知られたパターンのデータベースによるパターンマッチング技法を使用するアンチウイルス製品は、既に知られたコンピュータウイルス及びインターネットワームを検出するのに用いることが可能であるが、未知のインターネットワームを検出するのには効果的に適用することができない。
【００１１】
また、このようなアンチウイルス製品のほとんどは、端末に位置しており、危害を与える威嚇から該当端末を保護することを目的としている。このような方式を用いる場合、ネットワーク網を介して攻撃パケットが該当端末まで伝送されるのを防止することができないため、ネットワーク資源は依然として消失されてしまう。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、前述のような問題点を解決するためになされたものであり、その目的は、ネットワークのボトルネックに設けられた検出装置を用いて、ボトルネックを通過するＴＣＰパケットを検査し、外向きパケットがインターネットウォームにより生成されたパケットであるか否かを検査し、警報発生及び該当パケットの通過を遮断することによって、インターネットワームによるネットワーク資源の消失被害を最小化することが可能な悪性コード検出装置及び検出方法を提供することにある。
【課題を解決するための手段】
【００１３】
前記目的を達成するために、本発明の一態様に係る悪性コード検出方法は、外部網から内部網に入るＴＣＰ連結設定パケットの情報を登録すると共に、登録した連結についてのＴＣＰデータパケットのコンテンツを格納する、内向きＴＣＰトラフィックの登録過程と、内部網から外部網に向かうＴＣＰ連結設定のうち、予め決めた所定時間内に前記内向きＴＣＰトラフィックと同じ特徴を有するトラフィック連結を要請するものと判定される連結である場合には、該当ＴＣＰ連結についてのデータを格納する、外向きＴＣＰトラフィックの登録過程と、前記外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックの登録過程を通じて既に登録されている場合に、該当パケットを悪性コードと判定する過程と、を備える。
【００１４】
前記内向きＴＣＰトラフィックは、内向きＴＣＰ連結テーブルに格納され、前記外向きＴＣＰトラフィックは、外向きＴＣＰ連結テーブルに格納される。
【００１５】
前記内向きＴＣＰ連結テーブル及び前記外向きＴＣＰ連結テーブルは、それぞれ、ソースＩＰアドレス、宛先ＩＰアドレス、ソースＴＣＰポート番号、宛先ＴＣＰポート番号、エントリー登録時間及び少なくとも１つ以上のデータパケット格納領域を含む、少なくとも１つ以上のエントリーを備えている。
【００１６】
また、前記内向きＴＣＰテーブル又は前記内向きＴＣＰテーブルの各エントリーは、エントリー登録時間から一定時間が経過すると、該当テーブルから削除され、前記データ格納領域に格納される情報は、伝送される純粋データのチェックサム（Checksum）値である。
【００１７】
前記内向きＴＣＰ連結データの登録過程は、前記内向きトラフィックがＴＣＰ ＳＹＮパケットであると共に、当該パケットが内向きＴＣＰ連結データに登録されていない場合には、該当内向きトラフィックを、内向きＴＣＰ連結テーブルに登録する。
【００１８】
前記内向きトラフィックにおけるＴＣＰ ＳＹＮパケットのヘッダー情報のうち、ソースＩＰアドレス、宛先ＩＰアドレス、ソースＴＣＰポート、及び宛先ＴＣＰポート情報は、前記内向きＴＣＰ連結テーブルにおける同じ項目にそのまま登録し、前記内向きＴＣＰ連結テーブルのエントリー登録時間には、前記ＴＣＰ ＳＹＮパケットを登録する時点の時刻を登録し、前記内向きＴＣＰ連結テーブルのデータ格納領域には、何らのデータも登録しない。
【００１９】
前記内向きＴＣＰ連結データの登録過程は、前記内向きトラフィックがＴＣＰデータパケットである場合には、該当パケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの各エントリーの同一項目とを比較して、該当トラフィックが内向きＴＣＰ連結テーブルに登録されているトラフィックであるか否かを判定する過程と、前記判定の結果、前記内向きＴＣＰデータパケットと一致するエントリーが登録されていると判定した場合には、前記内向きＴＣＰデータパケットの純粋データの情報を、該当エントリーのデータパケット格納領域に登録する過程と、を備える。
【００２０】
前記データパケット格納領域は、システム運用者によって変更可能な数値の範囲における最大値に設定される、少なくとも１つの格納領域である。
【００２１】
前記内向きＴＣＰデータパケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの各エントリーの同一項目との比較は、ソースＩＰアドレス、ターゲットＩＰアドレス、ソースＴＣＰポート、及びターゲットＴＣＰポートの情報を互いに比較し、比較した全ての項目が一致する場合にのみ、前記内向きＴＣＰデータパケットのヘッダー情報と、前記内向きＴＣＰ連結テーブルの情報とが同じであると判定する。
【００２２】
前記外向きＴＣＰ連結データの登録過程は、前記外向きトラフィックがＴＣＰ ＳＹＮパケットである場合には、当該ＴＣＰ ＳＹＮパケットの情報と、前記内向きＴＣＰ連結テーブルに登録されている各エントリーとを比較し、同じ情報を含むエントリーが登録されていると判定した場合には、前記ＴＣＰ ＳＹＮパケットの情報を前記外向き連結テーブルに登録する。
【００２３】
前記ＴＣＰ ＳＹＮパケットと、前記内向きＴＣＰ連結テーブルのエントリーの情報が一致するトラフィックであるか否かは、（ａ）ＴＣＰ ＳＹＮパケットのソースＩＰアドレスと、内向きＴＣＰ連結テーブルのエントリーのターゲットＩＰアドレス、及び（ｂ）前記ＴＣＰ ＳＹＮパケットのターゲットＴＣＰポート番号と、前記ＴＣＰ連結テーブルのエントリーのターゲットＴＣＰポート番号を比較して一致するか否かで判定する。
【００２４】
前記外向きＴＣＰ連結データの登録過程は、前記外向きトラフィックがＴＣＰデータパケットである場合には、該当パケットのヘッダーと、前記外向きＴＣＰ連結テーブルの各エントリーの情報とを比較する過程と、前記外向きＴＣＰデータパケットと同じトラフィックであると判定されるエントリー情報が登録されている場合に、前記外向きＴＣＰデータパケットの純粋データのコンテンツと、該当エントリーのデータ格納領域に格納されているデータパケットのコンテンツとを比較する過程と、前記パケットのコンテンツを比較した結果、双方のデータが一致する場合には、前記外向きＴＣＰトラフィックが悪性コードにより生成されたものであると判定する過程と、を備える。
【００２５】
また、本発明の他の態様に係る悪性コード検出方法は、外部網から内部網に入るＵＤＰ連結を登録すると共に、登録した連結についてのＵＤＰデータパケットのコンテンツを格納する、内向きＵＤＰトラフィックの登録過程と、内部網から外部網に向かうＵＤＰ連結が、外部から連結要請を受けて外部との連結があった内部ホストが予め決めた所定時間内に同じターゲットＵＤＰポートに連結を要請するものであると判定される場合には、該当ＵＤＰ連結についてのデータを格納する、外向きＵＤＰトラフィックの登録過程と、前記外向きＵＤＰ連結のデータパケット及び前記内向き連結データに登録されたパケットの中に同じパケットがある場合、該当パケットを悪性コードとして判断する過程とを備える。
【００２６】
前記ＵＤＰデータの登録及び格納は、特定のデータパケットについて、それ以前におけるＵＤＰセッションのセッションタイムアウト時間内に同じデータパケットが受信されていない場合には、ＵＤＰテーブルへのエントリーを生成して、該当データパケットを格納する。
【００２７】
また、本発明のさらに他の態様に係る悪性コード検出装置は、外部網から内部網に入るＴＣＰ連結設定パケットの情報を登録すると共に、登録した連結についてのＴＣＰデータパケットのコンテンツを格納する、内向きＴＣＰ連結テーブルと、内部網から外部網に向かうＴＣＰ連結が外部から連結要請を受けて外部との連結があった内部ホストが、予め決めた所定時間内に同じターゲットＴＣＰポートに連結を要請するものであると判定される場合に、該当ＴＣＰ連結についてのデータを格納する、外向きＴＣＰ連結テーブルと、を含むデータベースと、前記内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブルに連結され、前記各種データの登録、比較及び格納を制御する機能を有し、外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックの登録過程を通じて既に登録されている場合に、該当パケットを悪性コードとして判定する制御部と、を備える。
【００２８】
前記悪性コード検出装置は、内部網と外部網との間のボトルネックに位置する。
【発明の効果】
【００２９】
本発明は、既存のアンチウイルス製品とは異なって、知られたパターンデータベースを利用したマッチング技法を使用することなく、ただネットワーク上のパケットだけでワームを検出することによって、未知のインターネットワームに対しても検出が可能であり、誤った警告を最小化すると同時に、インターネットワームを効果的に検出することができ、外向きパケットに対して検出を行うので、該当ネットワークによる全体インターネットネットワーク資源の消失被害を防止することができるという利点を有する。
【発明を実施するための最良の形態】
【００３０】
以下、添付図面を参照しながら本発明の好適な実施形態について詳細に説明する。
【００３１】
図１は、インターネットワームの増殖ダイヤグラムを示す図である。
【００３２】
インターネットワームの増殖において、ターゲットホスト１１が攻撃ホスト１０に感染されると、今度は、当該ターゲットホスト１１が他のホストを感染させる主体となる。これを「再増殖」と呼び、ターゲットホストでの「再感染遅延」とは、ターゲットホストの感染時刻から、当該ターゲットホストが最初の再感染を試みる時刻までにかかった時間を意味する。
【００３３】
図１におけるそれぞれのホストを基準にした縦垂線は時間軸を示すものであり、それぞれの矢印は、連結を試みたことを示す。また「Ｘ」の意味は、ターゲットＩＰが存在しないなどの理由により、ターゲットホストに対する感染の試みが失敗したことを示す。
【００３４】
図１は、主としてＴＣＰプロトコルを用いたインターネットワームの増殖経路を中心にして説明することができ、攻撃ホスト１０による連結の試み（ＳＹＮパケットを介して）については細い矢印で示し、一旦連結が成功した後のワームデータの伝送については太い矢印で示している。
【００３５】
インターネットワームの増殖において、ターゲットホスト１１による再増殖時間は非常に短く、１秒もかからないうちに他のホストを再感染させる。また、感染及び再増殖過程で使われるＴＣＰポート番号は、常に同一であることに注目すべきである。
【００３６】
図１を参照しながらワームトラフィックの特徴について以下に説明する。
【００３７】
第一に、感染の初期段階では、外部から内部にトラフィックが移動する、内向きトラフィックの傾向がある。
【００３８】
第二に、他のホストへの再増殖時間が非常に短い（１秒以内）。
【００３９】
第三に、ワームデータが重複する（ＴＣＰプロトコルの場合には、ターゲットポートが同一に維持される）。
【００４０】
本発明による悪性コード検出装置は、上述のワームトラフィックの特徴を利用して、効果的なワームトラフィック装置及び検出方法を具現する。
【００４１】
本発明による悪性コード検出装置は、ネットワークから内向き及び外向きトラフィックを検出するために、ネットワークのボトルネックに配置されている。ネットワークのボトルネックとは、ネットワークの外部で生成され、ネットワークの内部に向かう全ての内向きパケットと、ネットワーク内部で生成され、ネットワークの外部に向かう全ての外向きパケットが通過するリンクを言い、アクセスルータ（Access Router）などがこの位置にあると言える。
【００４２】
図２は、ネットワークにおける本発明の実施形態に従う悪性コード検出装置の位置を示している。
【００４３】
図２に示すように、本発明による悪性コード検出装置２０は、インターネットと内部網とのボトルネックに位置しており、外部網から内部網へ伝送される内向きトラフィック及び、内部網から外部網へ伝送される外向きトラフィックの監視、及び悪性コードの検出を行うことが可能な構成である。
【００４４】
このように、本発明による悪性コード検出装置２０は、データベース及び制御部を備えており、このデータベースは、内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブを含む。
【００４５】
内向きＴＣＰ連結テーブルは、内部網に向かう内向きＴＣＰ連結を登録し、登録した連結についてのＴＣＰデータパケットのコンテンツを格納している。外向きＴＣＰ連結テーブルは、内部網から外部網に向かうＴＣＰ連結が外部から連結要請を受けて外部との連結があった内部ホストが、予め決められた所定時間内に同じターゲットＴＣＰポートに連結を要請するものであると判定される場合には、該当ＴＣＰ連結についてのデータを格納する。
【００４６】
一方、制御部は、内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブルに連結されており、前記各種データの登録、比較及び格納を行う。前記外向きＴＣＰトラフィックのデータパケットと同じパケットが前記内向きＴＣＰトラフィックデータとして格納されている場合、制御部は、該当パケットをワームトラフィックと判定し、適切な措置を行う役割を有する。
【００４７】
図３は、本発明の実施形態に従うＴＣＰ連結テーブルの構造を示す。
【００４８】
本発明の実施形態に従う悪性コード検出装置２０は、内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブルを有し、各テーブルの１つのエントリー（Entry）には、ソースＩＰアドレス３１、ターゲットＩＰアドレス３２（すなわち、宛先ＩＰアドレス）、ソースＴＣＰポート番号３３、ターゲットＴＣＰポート番号３４、最大データパケット（ＭＡＸ＿ＤＡＴＡ＿ＰＡＣＫＥＴ）のためのパケット格納領域３６、エントリー登録時間３５の情報が含まれる。
【００４９】
内向きＴＣＰ連結テーブル及び外向きＴＣＰ連結テーブルは、いずれも図３に示すような形式と同一の構造であり、後述する悪性コード検出方法において重要な役割をする。
【００５０】
図４は、チェックサム（Checksum）に用いるＴＣＰ連結テーブルの構造を示す。
【００５１】
図４のテーブルが図３のテーブルと異なるのは、データ格納領域に実際にＴＣＰパケットを介して伝送されるデータではなく、該当データのチェックサム値を格納している点である。
【００５２】
図４の実施形態で使用するチェックサムは、ＴＣＰチェックサムにおいて、パケットヘッダーの部分を除いた純粋なデータについてのチェックサムを意味する。
【００５３】
ＴＣＰチェックサムは、臨時ＩＰヘッダーとＴＣＰヘッダー、そしてデータに対して１の補数の和を取ることによって求めることができる。ＴＣＰヘッダーは、送信側のポート番号、ターゲットポート番号（すなわち、受信側のポート番号）、送信用の順序番号、応答確認番号、ヘッダー長、コードビット、ウィンドウ（Window）、チェックサム（Checksum）、緊急ポインタ（Urgent Pointer)などを含んでいる。
【００５４】
したがって、ＴＣＰヘッダーのチェックサム項目に含まれている値から、臨時ＩＰヘッダーとＴＣＰヘッダーとを足したコンテンツの１の補数を差し引くと、該当データに対する１の補数の和を求めることができる。
【００５５】
図３に示す全体データを全て格納する代わりに、上述のようにして求めたチェックサム値を格納する場合には、１つのパケット当たり４バイトの空間があれば、該当データについての情報を格納することができ、さらに他のパケットとの比較および検索が非常に簡単になる。
【００５６】
図５は、本発明の実施形態に従う悪性コード検出方法についての概略的なフローチャートを示す。
【００５７】
本発明による悪性コード検出方法に従えば、様々な種類の内部網とのＴＣＰ連結を内向き連結テーブルに登録する（ステップＳ５１）。登録した連結についてのデータパケットを格納する（ステップＳ５２）。内部網から外部網へ向かう外向きＴＣＰ連結のうち、１）外部からの連結要請を受けて外部との連結があったホストが、２）一定時間内に、３）同じターゲットＴＣＰポートに連結を要請するものであると判定される場合には、該当ＴＣＰ連結についてのデータを外向き連結テーブルに登録する（ステップＳ５３）。
【００５８】
外向き連結テーブルに登録された連結に対応するデータパケットを監視し、その中に内向き連結テーブルに登録されたデータパケットと同じパケットがある場合、このデータパケットをワームトラフィックであると判定し（ステップＳ５４）、ネットワーク管理者に警告メッセージを送ったり、ワームトラフィックと判定したトラフィックを廃棄させたりなどの必要な措置を行う。
【００５９】
図６は、本発明の実施形態に従う悪性コード検出装置によるパケットの分別の流れを示すフローチャートである。
【００６０】
悪性コード検出装置２０には、ＴＣＰパケットを受信すると、これが内部網からインターネットなどの外部網に向かう外向きトラフィックであるか、あるいは外部網から内部網に向かう内向きトラフィックであるかを判定する（ステップＳ６１０）。
【００６１】
そして、前述のトラフィックの方向を判定した後、内向きトラフィック又は外向きトラフィックの各々の場合について、ＴＣＰ ＳＹＮパケットであるか、又はＴＣＰデータパケットであるかをさらに分類する（ステップＳ６２０、Ｓ６３０）。
【００６２】
図６では、内向きトラフィックについて、ＴＣＰ ＳＹＮパケットの場合には「Ａ」過程（ステップＳ６２１）に進行し、ＴＣＰデータパケットの場合には「Ｂ」過程（ステップＳ６２２）に進行すると定義し、外向きトラフィックについて、ＴＣＰ ＳＹＮパケットの場合には「Ｃ」過程（ステップＳ６３１）に進行し、ＴＣＰデータパケットの場合には「Ｄ」過程（ステップＳ６３２）を進行すると定義した。
【００６３】
上記したそれぞれの過程についての具体的なフローチャートについては、図７〜図１０を参照して詳細に説明する。図７〜図１０は、図６における「Ａ」〜「Ｄ」の各過程に分けられたパケットの各々についての処理の流れを示している。
【００６４】
図７は、内向きＴＣＰ ＳＹＮパケットの処理の流れを示すフローチャートである。
【００６５】
検出したトラフィックが内向きＴＣＰ ＳＹＮパケットである場合、本発明の実施形態に従う悪性コード検出装置２０は、このパケットが内向きＴＣＰ連結テーブルが既に登録されているか否かをまず確認判定する（ステップＳ７１）。そして登録されていると判定した場合には、同じトラフィックを登録する必要はないので処理を終了するが、登録されていないと判定した場合には、新規のトラフィックであるので、該当トラフィックを内向きＴＣＰ連結テーブルに登録する（ステップＳ７２）。
【００６６】
この際、図３に示したＴＣＰ連結テーブルのエントリーのうち、ソースＩＰアドレス３１、ターゲットＩＰアドレス３２、ソースＴＣＰポート３３、及びターゲットＴＣＰポート３４は、ＳＹＮパケットのＴＣＰヘッダーに含まれる情報をそのまま該当項目に登録する。一方、最大データパケット（ＭＡＸ＿ＤＡＴＡ＿ＰＡＣＫＥＴ）の個数だけ設定されたデータパケット格納領域は、純粋データを格納するための領域であるので、ＳＹＮパケットの場合には、登録する必要がない。またエントリー登録時間は、ＴＣＰ ＳＹＮパケットを登録する時点の時刻を登録する。
【００６７】
図８は、内向きＴＣＰデータパケットの処理の流れを示すフローチャートである。
【００６８】
図８は、図７と同じく内向きトラフィックを検出した場合の処理の流れを示しているが、トラフィックの種類がＳＹＮパケットでなく、データパケットである場合の処理の流れである。ここで、内向きＴＣＰデータパケットとは、内向きＴＣＰパケットのうちＳＹＮパケットを除く全てのパケットを意味する。
【００６９】
悪性コード検出装置２０が内向きＴＣＰデータパケットを検出した場合、該当データパケットのヘッダー情報を内向きＴＣＰ連結テーブルに格納している各項目と比較して、該当トラフィックが内向きＴＣＰ連結テーブルに既に登録されているトラフィックであるか否かを判定する（ステップＳ８１）。
【００７０】
この際、データパケットのヘッダー情報を内向きＴＣＰ連結テーブルの各エントリーについてのソースＩＰアドレス、ターゲットＩＰアドレス、ソースＴＣＰポート、ターゲットＴＣＰポートと比較し、これら全ての項目が一致するエントリーを探さなければならない。仮にそのようなエントリーが存在した場合、そのエントリーのデータパケット格納領域に空き領域があるか否かを判定し（ステップＳ８２）、当該領域の全部が満たされていない場合には、データパケットの純粋データの情報を該当エントリーの空きのあるデータパケット格納領域に登録する（ステップＳ８３）。
【００７１】
データパケット格納領域は、最大データパケットの個数だけ設定されているが、この値は運用者によって変更可能である。参考として、本発明の実施形態による悪性コード検出方法のシミュレーションでは、最大データパケットの値を５に設定した。
【００７２】
図９は、外向きＴＣＰ ＳＹＮパケットの処理の流れを示すフローチャートである。
【００７３】
以下では、外向きトラフィックの処理の流れについて説明する。
【００７４】
検出されたトラフィックが外向きＴＣＰ ＳＹＮパケットである場合、本発明の実施形態に従う悪性コード検出装置２０は、まず該当パケットの情報を、内向きＴＣＰ連結テーブルに登録された各エントリーと比較する（ステップＳ９１）。この際、比較するのは、（１）ＳＹＮパケットのソースＩＰアドレスと、内向きＴＣＰ連結テーブルエントリーのターゲットＩＰアドレス及び、（２）ＳＹＮパケットのターゲットＴＣＰポート番号と、ＴＣＰ連結テーブルのエントリーのターゲットＴＣＰポート番号、の２種類である。
【００７５】
前記２種類の比較項目が共に同じ場合とは、内向きトラフィックとして登録されたトラフィックデータと外向きトラフィックとが一致する場合であるので、ＳＹＮパケットの情報を外向き連結テーブルに登録する（ステップＳ９２）。
【００７６】
この際、外向き連結テーブルのエントリーのソースＩＰアドレス、ターゲットＩＰアドレス、ソースＴＣＰポート、ターゲットＴＣＰポートは、ＳＹＮパケットのＴＣＰヘッダーに含まれる情報をそのまま登録し、データパケット格納領域は、同じトラフィックを含んでいるものと判定された内向きＴＣＰ連結テーブルのエントリーのデータパケット格納領域の内容を、そのまま複写する。
【００７７】
エントリー登録時間は、ＴＣＰ ＳＹＮパケットを登録する時点の時刻を登録する。
【００７８】
図１０は、外向きＴＣＰデータパケットの処理の流れを示すフローチャートである。
【００７９】
外向きＴＣＰデータパケットとは、外向きＴＣＰパケットのうちＳＹＮパケットを除く全てのパケットを言う。本発明の実施形態に従う悪性コード検出装置２０が外向きＴＣＰデータパケットを検出した場合、このデータパケットのヘッダーの情報と、外向きＴＣＰ連結テーブルの各エントリーのソースＩＰアドレス、ターゲットＩＰアドレス、ソースＴＣＰポート番号、及びターゲットＴＣＰポート番号とを比較し、各項目が全て一致するエントリーを検索する（ステップＳ１０１）。
【００８０】
上述の条件を満たすエントリーが存在する場合、データパケットの内容と該当するエントリーのデータ格納領域に格納されたデータパケットの内容とを比較する（ステップＳ１０２）。その中に正確に一致するパケットを発見した場合、この外向きＴＣＰパケットは、インターネットワームにより生成されたパケットであると判定する（ステップＳ１０３）。インターネットワームを検出した検出装置２０は、システム管理者に該当パケット及びエントリーの内容、該当ソースＩＰアドレスで発生する外向きＴＣＰトラフィックの全部を予め指定した情報センターに通報する方式によって、インターネットワームトラフィックが発見されたことを警告したり、該当パケットを遮断したりなどの対応措置を行う（ステップＳ１０４）。
【００８１】
一方、内向きまたは外向きＴＣＰデータテーブルの各々のエントリーは、登録時刻から一定時間（ＥＮＴＲＹ＿ＴＩＭＥＯＵＴ）が経過すれば、該当テーブルから削除されるが、これは、ワームトラフィックの再感染遅延の時間が非常に速いことを勘案し、登録時刻から一定時間が経過したものについては、ワームトラフィックであると判断し難いからである。
【００８２】
これは、また各テーブルのエントリー数を低減することによって、各テーブルにエントリーが増加するに従い、検索時間及び処理時間が増加し、全体システムにロード（load）の負荷がかかるという短所を軽減することが可能になる。
【００８３】
検知装置２０に用いられる、２つのテーブルに含まれる最大データパケット個のデータ格納領域は、データパケットの純粋データの全体を格納することを基本とし、比較検索する場合には全体文字列（String）が比較対象となる。
【００８４】
しかしながら、データ全体を比較することは、格納時間及び検索時間が遅延することとなるので、これを軽減するさらに効率的な手法として、本発明の実施形態ではＴＣＰチェックサムを用いた手法を用いる。このＴＣＰチェックサムについて詳しくは、図４で説明した通りであり、これを利用することにより、４バイトの格納領域だけで１つのパケットを格納することができるので、比較および検索を非常に簡単にすることが可能である。
【００８５】
ここで、上述したＴＣＰを基盤とするインターネットワームの検出方法は、ＵＤＰ（User datagram protocol）にも拡張して適用できる。
【００８６】
基本的な処理は、ＴＣＰの場合と同様であるが、但しＵＤＰの場合には、ＴＣＰのＳＹＮパケットのように明示的に連結を要請するパケットがないため、内向き／外向きＵＤＰ連結テーブルを構成する際に、ＳＹＮパケットの代わりに一般的なデータパケットを監視してテーブルエントリーを生成しなければならない。
【００８７】
そして、あるデータパケットを受信したとき、それ以前においてＵＤＰセッションタイムアウト時間内に同じソースＩＰ及びターゲットＩＰ並びにソースＵＤＰポート及びターゲットＵＤＰポート番号を有するデータパケットが受信されていなければ、該データパケットは、ＴＣＰ ＳＹＮパケットのように動作して、テーブルエントリーを生成できると共に、最初のデータパケットとして格納されなければならない。
【００８８】
本発明に属する技術分野における通常の知識を有する者であれば、前述したようにＵＤＰセッションタイムアウトのようなタイマーを利用すれば、ＵＤＰ処理を区分することは容易に導き出すことができ、ＴＣＰを主な基盤とする本発明から容易にＵＤＰ基盤の悪性コード検出方法及び検出システムを類推することができるだろう。
【図面の簡単な説明】
【００８９】
【図１】インターネットワームの伝搬ダイヤグラムである。
【図２】ネットワークにおける、本発明の実施形態に従う悪性コード検出装置の配置位置を示す図である。
【図３】本発明の実施形態に従うＴＣＰ連結テーブルの構造を示す図である。
【図４】本発明の実施形態に従うチェックサム（Checksum）を用いたＴＣＰ連結テーブルの構造を示す図である。
【図５】本発明の実施形態に従う悪性コード検出方法の概略的な流れを示す図である。
【図６】本発明の実施形態に従う悪性コード検出装置によるパケットの分離の流れを示す図である。
【図７】本発明の実施形態に従う内向きＴＣＰＳＹＮパケットの処理の流れを示す図である。
【図８】本発明の実施形態に従う内向きＴＣＰデータパケットの処理の流れを示す図である。
【図９】本発明の実施形態に従う外向きＴＣＰＳＹＮパケットの処理の流れを示す図である。
【図１０】本発明の実施形態に従う外向きＴＣＰデータパケットの処理の流れを示す図である。
【符号の説明】
【００９０】
１０  攻撃ホスト
１１  ターゲットホスト
１２  再感染ターゲットホスト
２０  悪性コード検出装置
２１  インターネット網
２２  内部網
３１  ソースＩＰアドレス
３２  ターゲットＩＰアドレス
３３  ソースＴＣＰポート
３４  ターゲットＴＣＰポート
３５  エントリー登録時間
３６  データ格納領域
４０  チェックサム値格納領域
【図１】
2006135963.tif 000003
【図２】
2006135963.tif 000004
【図３】
2006135963.tif 000005
【図４】
2006135963.tif 000006
【図５】
2006135963.tif 000007
【図６】
2006135963.tif 000008
【図７】
2006135963.tif 000009
【図８】
2006135963.tif 000010
【図９】
2006135963.tif 000011
【図１０】
2006135963.tif 000012