(57)【要約】【課題】ポート番号を利用せずにネットワークアプリケーションを弁別する方法を提供する。【解決手段】ネットワークトラヒックからパケットを取得するパケット観測プロセス11と、パケット観測プロセス11で取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出プロセス12と、ヒストグラム抽出プロセス12で生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価プロセス13と、類似性評価プロセス13で評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知プロセス15と、を有し、前記の各プロセスを順次実行することで、ネットワークアプリケーションの弁別を行う。【選択図】図１
2008141618.tif 000002
【特許請求の範囲】
【請求項１】
送受信データの構造変化を利用したネットワークアプリケーション弁別方法であって、
(1) ネットワークトラヒックからパケットを取得するパケット観測プロセスと、
(2) 前記パケット観測プロセスで取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出プロセスと、
(3) 前記ヒストグラム抽出プロセスで生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価プロセスと、
(4) 前記類似性評価プロセスで評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知プロセスと、
を有し、前記(1)〜(4)の各プロセスを順次実行することで、ネットワークアプリケーションの弁別を行うことを特徴とするネットワークアプリケーション弁別方法。
【請求項２】
前記パケット観測プロセスは、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得することを特徴とする請求項１に記載のネットワークアプリケーション弁別方法。
【請求項３】
前記ヒストグラム抽出プロセスは、前記パケット観測プロセスで取得した同一フロー内のk個のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成することを特徴とする請求項１に記載のネットワークアプリケーション弁別方法。
【請求項４】
前記類似性評価プロセスは、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出プロセスを有し、該距離算出プロセスで算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価することを特徴とする請求項１に記載のネットワークアプリケーション弁別方法。
【請求項５】
前記距離算出プロセスは、前記ヒストグラム抽出プロセスで生成しk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出することを特徴とする請求項４に記載のネットワークアプリケーション弁別方法。
【請求項６】
前記距離算出プロセスは、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出することを特徴とする請求項４に記載のネットワークアプリケーション弁別方法。
【請求項７】
前記検知プロセスは、前記類似性評価プロセスで算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことを特徴とする請求項１に記載のネットワークアプリケーション弁別方法。
【請求項８】
前記検知プロセスは、前記類似性評価プロセスで算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行うことを特徴とする請求項７に記載のネットワークアプリケーション弁別方法。
【請求項９】
請求項１乃至請求項８に記載のネットワークアプリケーション弁別方法を用いて不正アクセスを検出するシステムであって、ネットワークトラヒックからパケットを取得するパケット観測手段と、前記パケット観測手段で取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出手段と、前記ヒストグラム抽出手段で生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価手段と、前記類似性評価手段で評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知手段と、を備えたことを特徴とする不正アクセス検出システム。
【請求項１０】
前記パケット観測手段は、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得することを特徴とする請求項９に記載の不正アクセス検出システム。
【請求項１１】
前記ヒストグラム抽出手段は、前記パケット観測手段で取得した同一フロー内のk個のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成することを特徴とする請求項９に記載の不正アクセス検出システム。
【請求項１２】
前記類似性評価手段は、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出手段を有し、該距離算出手段で算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価することを特徴とする請求項９に記載の不正アクセス検出システム。
【請求項１３】
前記距離算出手段は、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出することを特徴とする請求項１２に記載の不正アクセス検出システム。
【請求項１４】
前記距離算出手段は、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出することを特徴とする請求項１２に記載の不正アクセス検出システム。
【請求項１５】
前記検知手段は、前記類似性評価手段で算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことを特徴とする請求項９に記載の不正アクセス検出システム。
【請求項１６】
前記検知手段は、前記類似性評価手段で算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行うことを特徴とする請求項１５に記載の不正アクセス検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送受信データの構造変化を利用してネットワークアプリケーションを弁別する方法、およびその方法を用いて不正アクセスを検出するシステムに関するものである。
【背景技術】
【０００２】
サーバを利用しない効率的なデータ通信を可能にしたP2Pネットワークが盛んに利用されるようになり，個人対個人での簡便な情報共有が実現している。しかし、P2P ネットワーク上で蔓延する不正アクセスによる情報流出などが新しい社会問題となっている。2005 年に起きたネットワークを経由した情報漏洩は、報道されているだけでも約130 件程度であるとの報告もある[非特許文献１]。同報告書では、ネットワーク以外の流出経路を含めた場合の情報漏洩に対する損害賠償額が7000億円を超えると試算している。情報流出は、経済的な被害だけではなく、個人のプライベートに関わる問題でもあり、速やかに取り組むべき問題であると言える。
【０００３】
ネットワークを経由する情報流出としては、メールソフトの設定ミスなどの原因もあるが、近年では、P2P ソフトウエアの不適切な利用が原因となっている事故が増えている。P2P ソフトウエアによる情報流出の場合、情報が外部へ洩れたことを利用者が気付かない場合があり、更に問題が深刻となり得る。P2P ソフトウエアによる情報流出を防ぐには、そのトラヒックを検知し遮断する必要があるが、P2P ネットワークを構築するソフトウエアでは、通信に利用するポート番号を改竄することが可能であるため、ポート番号によるP2P アプリケーションの特定は不可能である。また、それらソフトウエアのプロトコルが未公開であったり、暗号通信の利用などによって、効果的な対策が更に困難となっている。
【０００４】
この問題に対し、パケットサイズやタイプなどの遷移や接続要求の発生状況を統計的にモデル化し、アプリケーションの弁別を試みる研究が行われている[非特許文献２、非特許文献３、非特許文献４、非特許文献５]。これらの研究は、パケットのヘッダの情報を利用する通信の秘匿性を考慮した方法であり、実用的観点から有用な研究であると言える。
【０００５】
【非特許文献１】2005 年度情報セキュリティインシデントに関する調査報告書.日本ネットワークセキュリティ協会セキュリティ被害調査ワーキンググループ, 2005
【非特許文献２】太井優樹, 阿多信吾, 岡育生. フロー統計情報によるバルク・リアルタイムトラヒック分別法. 信学技報, Vol. NS2006−28, pp.29−32, 5 2006.
【非特許文献３】北村強, 静野隆之, 岡部稔哉. パケットタイプ遷移パターン分析を用いたトラフィック識別手法. 信学技報, Vol. NS2006−27, pp.25−28, 5 2006.
【非特許文献４】松田崇, 中村文隆, 若原恭, 田中良明. CP セッション統計によるP2P トラヒック弁別手法. 電子情報通信学会総合大会,pp.121−121,B-6-121,Mar.,2005
【非特許文献５】中村文隆, 松田崇, 若原恭, 田中良明. トラヒック特徴量解析とアプリケーション弁別. 信学技報, Vol. NS2007−80, pp. 57−62, 92006.
【非特許文献６】和泉勇治, 辻雅史, 根元義章. パケットペイロードのクラスタリングによる拡散型不正アクセス検知方式に関する一考察. 信学技報, Vol. CS2005−19, pp. 19−24, 9 2005.
【非特許文献７】辻雅史, 和泉勇治, 角田裕, 根元義章. フローペイロードの類似性に基づく拡散型ワーム検出方式に関する一検討. 信学技報, Vol.NS2005−112, pp. 9−12, 11 2005.
【非特許文献８】K. Simkhada, H. Tsunoda, Y. Waizumi, and Y. Nemoto.Differencing worm flows and normal flows for automatic generation of worm signatures. In Proc. of the Seventh IEEE International Symposium on Multimedia, 12 2005.
【非特許文献９】K. Simkhada, T. Taleb, Y. Waizumi, A. Jamalipour, N. Kato, and Y. Nemoto. An efficient signature-based approach for automatic detection of internet worms over largescale networks. In Proc. of IEEE Int. Conf. Commun. (ICC 2006), 6 2006.
【非特許文献１０】K. Simkhada, T. Taleb, Y. Waizumi, A. Jamalipour, N. Kato, and Y. Nemoto. A multi-level security based autonomic parameter selection approach for an effective and early detection of internet worms. In Proc. of IEEE Globecom’ 06, 11 2006.
【非特許文献１１】T.Kohonen. The self-organizing map. In Proc.IEEE, Vol. 78, pp. 1464−1480, 1990.
【非特許文献１２】T.Kohonen. Self-organization and Associate Memory (2nd Edition). Spring-verlag, 1998.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、アプリケーションを特定するために多数のパケットやフローを観測する必要があることや、観測対象の情報が限定されているために、手法単体での弁別の精度が不十分であるなどの課題もあると考えられる。
【０００７】
そこで、我々は、パケットのヘッダ情報ではなく、ペイロードに含まれる文字コードの出現頻度のヒストグラムを利用した不正アクセスの検知方式を提案した[非特許文献６、非特許文献７、非特許文献８、非特許文献９、非特許文献10]。この方式は、前述のヘッダ情報のみを利用する手法と同様に、通信の秘匿性を考慮し、ペイロード部のデータを直接評価せず、文字コードの出現確率のヒストグラムを用いてペイロード部のデータを数値化するものである。これらの研究から、ペイロード部の文字コードの出現確率のヒストグラムの形状に不正アクセスの特徴が保存されていることが判明している。
【０００８】
本発明は、ペイロード部の文字コードの出現確率のヒストグラムの形状に不正アクセスの特徴が保存されていることに着目して、ポート番号を利用せずに、パケットペイロード部のデータの構成変化をペイロード部の文字コードの出現確率のヒストグラムの変化として評価するアプリケーションの弁別方法を提供する。本発明のアプリケーション弁別方法は、アプリケーションが送受信するデータの変化に何らかの法則性があることを仮定し、その法則性を、パケットペイロードのコード分布の変化により評価するものである。また観測対象にパケットのペイロード部も含まれているが、ペイロードの内容を直接保存せず、文字コードの出現確率のヒストグラムとして扱うため、通信の秘匿性を守ることが可能とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に記載のネットワークアプリケーション弁別方法は、送受信データの構造変化を利用したネットワークアプリケーション弁別方法であって、
(1) ネットワークトラヒックからパケットを取得するパケット観測プロセスと、
(2) 前記パケット観測プロセスで取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出プロセスと、
(3) 前記ヒストグラム抽出プロセスで生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価プロセスと、
(4) 前記類似性評価プロセスで評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知プロセスと、
を有し、前記(1)〜(4)の各プロセスを順次実行することで、ネットワークアプリケーションの弁別を行うことを特徴とする。
【００１０】
請求項２に記載のネットワークアプリケーション弁別方法は、前記パケット観測プロセスが、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得することを特徴とする。すなわち、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得する。
【００１１】
請求項３に記載のネットワークアプリケーション弁別方法は、前記ヒストグラム抽出プロセスが、前記パケット観測プロセスで取得した同一フロー内のk個のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成することを特徴とする。すなわち、ここではパケット数(k個)分のヒストグラムを生成する。
【００１２】
請求項４に記載のネットワークアプリケーション弁別方法は、前記類似性評価プロセスが、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出プロセスを有し、該距離算出プロセスで算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価することを特徴とする。
【００１３】
請求項５に記載のネットワークアプリケーション弁別方法は、前記距離算出プロセスが、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出することを特徴とする。
【００１４】
請求項６に記載のネットワークアプリケーション弁別方法は、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出することを特徴とする。
【００１５】
請求項７に記載のネットワークアプリケーション弁別方法は、前記検知プロセスが、前記類似性評価プロセスで算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことを特徴とする。
【００１６】
請求項８に記載のネットワークアプリケーション弁別方法は、前記検知プロセスが、前記類似性評価プロセスで算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行うことを特徴とする。
【００１７】
請求項９に記載の不正アクセス検出システムは、請求項１乃至請求項８に記載のネットワークアプリケーション弁別方法を用いて不正アクセスを検出するシステムであって、ネットワークトラヒックからパケットを取得するパケット観測手段と、前記パケット観測手段で取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出手段と、前記ヒストグラム抽出手段で生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価手段と、前記類似性評価手段で評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知手段と、を備えたことを特徴とする。
【００１８】
請求項１０に記載の不正アクセス検出システムは、前記パケット観測手段が、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得することを特徴とする。すなわち、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得する。
【００１９】
請求項１１に記載の不正アクセス検出システムは、前記ヒストグラム抽出手段が、前記パケット観測手段で取得した同一フロー内のk個のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成することを特徴とする。すなわち、ここではパケット数(k個)分のヒストグラムを生成する。
【００２０】
請求項１２に記載の不正アクセス検出システムは、前記類似性評価手段が、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出手段を有し、該距離算出手段で算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価することを特徴とする。
【００２１】
請求項１３に記載の不正アクセス検出システムは、前記距離算出手段が、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出することを特徴とする。
【００２２】
請求項１４に記載の不正アクセス検出システムは、前記距離算出手段が、前記ヒストグラム抽出手段で生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出することを特徴とする。
【００２３】
請求項１５に記載の不正アクセス検出システムは、前記検知手段が、前記類似性評価手段で算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことを特徴とする。
【００２４】
請求項１６に記載の不正アクセス検出システムは、前記検知手段が、前記類似性評価手段で算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行うことを特徴とする。
【発明の効果】
【００２５】
請求項１に係る発明によれば、ポート番号を利用せずに、パケットペイロード部のコードのヒストグラム間の距離を利用し、ペイロード部のデータの遷移に基づいた弁別を行うことで、個々のネットワークフローの最初の数パケットを観測すればアプリケーションの弁別が可能になること、および高精度なアプリケーションの弁別を実現することが可能になる。P2P トラヒックを含む検証実験においては約99%程度の正解率でアプリケーションの弁別を実現することが検証された。したがってP2P ソフトウエアを特定することで、P2P ソフトウエアによる情報流出を防ぐことも可能になる。
【００２６】
請求項２に係る発明によれば、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得することで、アプリケーション単位でのパケット取得が可能になる。
【００２７】
請求項３に係る発明によれば、フロー内の解析の対象となる個々のパケットから一つずつのヒストグラムを算出することで、ヒストグラムを用いた解析を行うことが可能になり、パケットペイロード部の構成変化を評価することが可能になる。
【００２８】
請求項４乃至請求項６に係る発明によれば、パケットペイロード部のデータの構造変化を数値化することで、個々のネットワークフローの特徴を定量的に把握することが可能になり、パケットペイロード部の構成変化を評価することが可能になる。
【００２９】
請求項７または請求項８に係る発明によれば、ヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことで、高精度なアプリケーションの弁別を実現することが可能になる。P2P トラヒックを含む検証実験においては約99%程度の正解率でアプリケーションの弁別を実現することが検証された。したがってP2P ソフトウエアを特定することで、P2P ソフトウエアによる情報流出を防ぐことも可能になる。
【００３０】
請求項９に係る発明によれば、ポート番号を利用せずに、パケットペイロード部のコードのヒストグラム間の距離を利用し、ペイロード部のデータの遷移に基づいた弁別を行うことで、個々のネットワークフローの最初の数パケットを観測すればアプリケーションの弁別が可能になること、および高精度なアプリケーションの弁別を実現することが可能になる。P2P トラヒックを含む検証実験においては約99%程度の正解率でアプリケーションの弁別を実現することが検証された。したがってP2P ソフトウエアを特定することで、P2P ソフトウエアによる情報流出を防ぐことも可能になる。
【００３１】
請求項１０に係る発明によれば、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得することで、アプリケーション単位でのパケット取得が可能になる。
【００３２】
請求項１１に係る発明によれば、フロー内の解析の対象となる個々のパケットから一つずつのヒストグラムを算出することで、ヒストグラムを用いた解析を行うことが可能になり、パケットペイロード部の構成変化を評価することが可能になる。
【００３３】
請求項１２乃至請求項１４に係る発明によれば、パケットペイロード部のデータの構造変化を数値化することで、個々のネットワークフローの特徴を定量的に把握することが可能になり、パケットペイロード部の構成変化を評価することが可能になる。
【００３４】
請求項１５または請求項１６に係る発明によれば、ヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行うことで、高精度なアプリケーションの弁別を実現することが可能になる。P2P トラヒックを含む検証実験においては約99%程度の正解率でアプリケーションの弁別を実現することが検証された。したがってP2P ソフトウエアを特定することで、P2P ソフトウエアによる情報流出を防ぐことも可能になる。
【発明を実施するための最良の形態】
【００３５】
次に、本発明の実施の形態に係るネットワークアプリケーション弁別方法、およびこの方法を用いた不正アクセス検出システムについて図面に基づいて説明する。なお、この実施の形態により本発明が限定されるものではない。
【００３６】
図１は、本発明の実施の形態に係るネットワークアプリケーション弁別方法のプロセスを示す図である。図１に示すように、ネットワークアプリケーション弁別方法は、ネットワークトラヒックからパケットを取得するパケット観測プロセス11と、パケット観測プロセス11で取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出プロセス12と、ヒストグラム抽出プロセス12で生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価プロセス13と、類似性評価プロセス13で評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知プロセス15と、を有し、前記の各プロセスを順次実行することで、ネットワークアプリケーションの弁別を行う。
【００３７】
パケット観測プロセス11は、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得する。すなわち、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得する。
【００３８】
ヒストグラム抽出プロセス12は、パケット観測プロセス11で取得した同一フロー内のk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成する。すなわち、ここではパケット数(k個)分のヒストグラムを生成する。
【００３９】
ここでパケットのペイロード部を分割するビット長を8ビット( n=8 )とした場合、ヒストグラムを算出するパケットは、1 バイト以上のペイロードを有しているもののみとし、フラグのみなどのパケットは処理対象から除外する。抽出されるヒストグラムは、256 階級により構成され、フロー内の解析の対象となる個々のパケットから一つずつのヒストグラムを算出する。
【００４０】
類似性評価プロセス13は、ヒストグラム抽出プロセス12で生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出プロセス14を有し、距離算出プロセス14で算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価する。
【００４１】
ここでパケットのペイロード部を分割するビット長を8ビット( n=8 )とした場合、このヒストグラムを256 次元のベクトルと見なし、ベクトル間の距離によりパケットペイロードの構成変化を評価する。あるフローi を構成するパケットj のヒストグラムをhi,j とし、パケットjとパケットk 間の距離をdj,k を次式のように定義する。式(1)のhi,j,l はヒストグラムhi.j の第l クラスを表す。
2008141618.tif 000003
【００４２】
距離算出プロセス14では、次に示す2種類の算出方法を考慮する（図２）。またパケットの発生順は、TCP のsequence number に基づき1 バイト以上のペイロードを持つパケットを配置する。
【００４３】
第1の方法は、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出する。すなわち、あるフローi を構成するパケットj のヒストグラムをhi,j とし、最初のパケットのヒストグラムhi,1を基準にそれ以降のパケットのヒストグラム(hi,2 〜hi,k )との距離(Cdist : Commensurate Distances )をベクトル間の距離として算出する。
【００４４】
第2の方法は、ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出する。すなわち、あるフローi を構成するパケットj のヒストグラムをhi,j とし、隣接するパケットのヒストグラム間の距離(Adist: Adjancent Distances) をベクトル間の距離として算出する。
【００４５】
次に、検知プロセス15について説明する。検知プロセス15は、類似性評価プロセス13で算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行う。具体的な１手法として、検知プロセス15は、類似性評価プロセス13で算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行う。
【００４６】
距離算出プロセス14で算出したヒストグラム間の距離の遷移系列をベクトルと見なし、遷移ベクトルとして次式により定義する。ここで、VA,i とVC,i は、それぞれフローi のAdist とCdistの系列を表す。またN は、ベクトルを構成する際に利用するパケット数である。
2008141618.tif 000004
【００４７】
検知プロセス15では、式(2)および式(3)を用いて、予め検知したいアプリケーションの遷移ベクトルを学習し、それを参照ベクトルとしてデータベースに保存する。新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を算出し、その距離が予め設定された閾値以下の参照ベクトルが存在した場合、新たに観測された該トラヒックは該参照ベクトルのアプリケーションであると推定する。ここで距離の算出方法には、ユークリッド距離、重み付きユークリッド距離、マンハッタン距離、シティーブロック距離などの方法があるが、本発明ではユークリッド距離を用いている。
【００４８】
次に、前記で説明したネットワークアプリケーション弁別方法を用いて不正アクセスを検出する不正アクセス検出システムについて説明する。図３は、本発明の実施の形態に係る不正アクセス検出システムの構成を示すブロック図である。
【００４９】
図３に示すように、不正アクセス検出システムは、ネットワークトラヒックからパケットを取得するパケット観測手段31と、パケット観測手段31で取得したk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長のコードに分割し、分割して得られたコード毎の出現頻度を用いてヒストグラムを生成するヒストグラム抽出手段32と、ヒストグラム抽出手段32で生成したk個のヒストグラム間のコード分布の変化に基づき、パケットペイロード部の構成変化を評価する類似性評価手段33と、類似性評価手段33で評価したパケットペイロード部の構成変化に基づきアプリケーション種別を特定する検知手段34と、を備えたことを特徴とする。
【００５０】
パケット観測手段31は、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、およびプロトコルの５要素が同一であるパケットの集合と、プロトコルが同一で送受信IPアドレスおよび送受信ポート番号が逆転したパケットの集合と、を同一フローと定義し、ネットワーク上の任意の観測点において、ネットワークを流れるパケットをフロー単位に取得する。すなわち、送受信双方向のパケットの集合を一つのフローと見なして、観測点ではネットワークを流れるパケットをフロー単位に取得する。
【００５１】
ヒストグラム抽出手段32は、パケット観測手段31で取得した同一フロー内のk個( k：2以上の自然数)のパケットについて、パケット単位に、パケットのペイロード部を任意のビット長(n)のコードに分割し、分割して得られたコード毎に出現確率を算出し、その出現確率を用いて2n 階級のヒストグラムを生成する。すなわち、ここではパケット数(k個)分のヒストグラムを生成する。
【００５２】
ここでパケットのペイロード部を分割するビット長を8ビット( n=8 )とした場合、ヒストグラムを算出するパケットは、1 バイト以上のペイロードを有しているもののみとし、フラグのみなどのパケットは処理対象から除外する。抽出されるヒストグラムは、256 階級により構成され、フロー内の解析の対象となる個々のパケットから一つずつのヒストグラムを算出する。
【００５３】
類似性評価手段33は、ヒストグラム抽出手段32で生成したk個のヒストグラムを2n 次元ベクトルで表し、k個のベクトルについてベクトル間の距離を算出する距離算出手段を有し、該距離算出手段で算出されたベクトル間の距離の遷移に基づきパケットペイロード部の構成変化を評価する。
【００５４】
ここでパケットのペイロード部を分割するビット長を8ビット( n=8 )とした場合、このヒストグラムを256 次元のベクトルと見なし、ベクトル間の距離によりパケットペイロードの構成変化を評価する。あるフローi を構成するパケットj のヒストグラムをhi,j とし、パケットjとパケットk 間の距離をdj,k を、前記の式(1)で定義する。式(1)のhi,j,l はヒストグラムhi.j の第l クラスを表す。
【００５５】
前記距離算出手段では、次に示す2種類の算出方法を考慮する（図２）。またパケットの発生順は、TCP のsequence number に基づき1 バイト以上のペイロードを持つパケットを配置する。
【００５６】
第1の方法は、前記ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の最初のパケットのヒストグラムを基準にそれ以降のパケットのヒストグラムとの距離をベクトル間の距離として算出する。すなわち、あるフローi を構成するパケットj のヒストグラムをhi,j とし、最初のパケットのヒストグラムhi,1を基準にそれ以降のパケットのヒストグラム(hi,2 〜hi,k )との距離(Cdist : Commensurate Distances )をベクトル間の距離として算出する。
【００５７】
第2の方法は、ヒストグラム抽出プロセスで生成したk個のヒストグラムを2n 次元ベクトルで表し、フロー内の隣接するパケットのヒストグラム間の距離をベクトル間の距離として算出する。すなわち、あるフローi を構成するパケットj のヒストグラムをhi,j とし、隣接するパケットのヒストグラム間の距離(Adist: Adjancent Distances) をベクトル間の距離として算出する。
【００５８】
前記第1および第2の方法を用いてヒストグラム間の距離を算出し、その遷移を表した例を図４〜図７に示す。グラフ中一つの線が一つのフローに対応している。図４〜図５はpop3 を利用したメールの受信例であり、図６〜図７はwinny による通信の例であり、それぞれ横軸は1 バイト以上のペイロードを持つパケット発生順を示している。winny に関しては、コンテンツの検索を行わず、winnyのネットワークに中継ノードとしてのみ参加した場合のトラヒックを観測したものである。また、観測開始以前に通信を始めていたトラヒックも含まれている。図４〜図７より、最初の3〜5 パケット目までは、複数のフローで類似した距離の変化が確認でき、アプリケーションに対応した何らかの法則性を、この距離の変化により抽出出来ていることが予想される。
【００５９】
次に、検知手段34について説明する。検知手段34は、類似性評価手段33で算出したヒストグラム間の距離の遷移を用いて、予め設定された条件に基づきアプリケーション種別の特定を行う。具体的な１手段として、検知手段34は、類似性評価手段33で算出したヒストグラム間の距離の遷移系列を遷移ベクトルとして定義し、予め検知したいアプリケーションの遷移ベクトルを参照ベクトルとして学習するとともに、新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を評価することによりアプリケーション種別の特定を行う。
【００６０】
前記距離算出手段で算出したヒストグラム間の距離の遷移系列をベクトルと見なし、遷移ベクトルとして、前記の式(2)および式(3)により定義する。ここで、VA,i とVC,i は、それぞれフローi のAdist とCdistの系列を表す。またN は、ベクトルを構成する際に利用するパケット数である。
【００６１】
検知手段34では、式(2)および式(3)を用いて、予め検知したいアプリケーションの遷移ベクトルを学習し、それを参照ベクトルとしてデータベースに保存する。新たに観測されたトラヒックの遷移ベクトルと前記参照ベクトル間の距離を算出し、その距離が予め設定された閾値以下の参照ベクトルが存在した場合、新たに観測された該トラヒックは該参照ベクトルのアプリケーションであると推定する。ここで距離の算出方法には、ユークリッド距離、重み付きユークリッド距離、マンハッタン距離、シティーブロック距離などの方法があるが、本発明ではユークリッド距離を用いている。
【００６２】
図８、図９にN = 5 とした場合のベクトルVC,i とベクトルVA,i の分布をSelf-Organizing Map(SOM) [非特許文献11] によって可視化したものを示す。SOM は、対象データを参照ベクトルによって量子化し、クラスタリングを行うモデルである。参照ベクトル間には、通常2次元での隣接関係(位相) が定義されており、多次元空間での隣接関係をある程度保持し、2 次元への写像が可能である。SOMを利用することにより、任意次元の空間内のクラスタの分布を2 次元のマップとして可視化可能となる。本実験では，SOM の参照ベクトルを16x16 に配置したモデルを利用した。解析対象には、表1 に示すアプリケーションを用いた。
【表１】
2008141618.tif 000005
【００６３】
図８、図９から、それぞれのアプリケーション毎にクラスタを生成して分布していることが分かる。http トラヒックは、通信開始後にGET メソッドなどのURL を指定するペイロード部のバリエーションが多くなる通信を行うため、クラスタが広範囲に分布していると思われる。一方、pop3 においては、ユーザ名やパスワードなどの不定な文字列が含まれるが、認証結果の送信など定型文も多く含まれることから、http などに比べ狭い範囲で分布していると考えられる。winny のトラヒックにおいても同様に、暗号通信を確立するための情報交換が行われているため、局所的にベクトルが分布していると推定出来る。
【００６４】
図10には、P2P ソフトウエアであるWinny とShare のN = 5でのCdist の分布を示す。Winny とShare の分布間にグレーの領域が生成されていることから、5 次元空間において、異なる領域に、それぞれのトラヒックから抽出したベクトルが分布していることが分かる。これらから、適切なクラスタリングやルールを適用することにより、このベクトルからアプリケーションの弁別が可能であると考えられる。すなわち、異なる種別のアプリケーションのトラヒックから生成したベクトルは、異なる領域にクラスタを生成し分布していることが明らかとなった。通信データのバリエーションが多いと考えられるhttpは広範囲に分布していると考えられるが、pop3 などの定型文を多くやり取りするアプリケーションは、比較的狭い範囲に分布しているため、高精度な弁別が期待できるこが分かった。
【００６５】
次に、検知手段34に、教師あり学習モデルであるLearning VectorQuantization(LVQ) [非特許文献12] を利用して実験した結果について説明する。LVQ は、SOM と同様にベクトル量子化を行うが、SOMとは異なり、参照ベクトル間の位相の保存は行わず、投入されたベクトルのカテゴリを考慮した教師あり学習により判別境界を設定するモデルである。予め収集したラベル付きのデータを利用し、LVQ により参照ベクトルを学習し、新たに観測されたトラヒックと参照ベクトル間のユークリッド距離を評価することにより弁別を行う。
【００６６】
まず、トラヒックを発生させたアプリケーション名を前節で提案したヒストグラム間距離の遷移ベクトルのラベルとして学習用データセットを作成する。このデータセットを利用し、LVQ2.1 により参照ベクトルを学習する。実験では、インターネットに接続した3 台のPC のうち1 台でWinny、Share を稼働させ、その他のアプリケーションとしては、Web アクセス、pop3 によるメールの送受信、skype を利用した。Winny とShare に関しては、利用可能帯域を1kbps、3kbps、5kbps、7kbps、無制限と設定し通信を行った。WinnyとShare のトラヒックは、ファイルの検索を行わず、各ソフトウエアの起動のみを行い観測したものであるため、ファイル転送の中継のみのトラヒックが対象となっている。ヒストグラム間の距離の算出方法は、フローのペイロードを持つ最初のパケットからの距離(Cdist) を利用し，距離の系列の長さをN = 3、N = 5、N = 10 とした場合について弁別を行った。観測されたフローの構成は表２のようになった。
【表２】
2008141618.tif 000006
【００６７】
表３、表４、表５に、それぞれ、N = 3，N = 5，N = 10 とした場合の学習データとテストデータの弁別結果を示す。全体の正解率としては、N = 5とN = 10 の場合に99%以上の高い弁別性能を得ることが出来た。P2P ソフトウエアであるShare に関しては、テストデータにおいても98% 以上の高い正解率で検知が可能であるが、Winny は正解率が低下してしまっている。特に、N = 10 の場合、Winny の検知精度65.52%と他に比べ低下の幅が大きくなっている。これは、利用する距離の系列が長くなると、通信開始時の定型文のやり取りのみでなく、コンテンツの通信に利用されているパケットも距離の算出対象になるため、8bit コードのバリエーションが増加し、アプリケーション間の有意な差位が減少することが原因であると考えられる。一方、一部のアプリケーションに対しては、100%の正解率を得ているものがあり、本発明の方法が良好に機能していることが分かる。
【表３】
2008141618.tif 000007
【表４】
2008141618.tif 000008
【表５】
2008141618.tif 000009
【００６８】
LVQ2.1 の学習によって得られた参照ベクトルを図11に示す。LVQ2.1 は、教師あり学習を行い、異なるカテゴリ間の差位を強調する学習を行うことが可能であるため、学習により得られた参照ベクトルの形状からカテゴリ間の観測量の違いを確認することが可能である。図11 のhttp トラヒックから得られた参照ベクトルは、各要素が0.0 から0.05 付近までしか分布しておらず、Winny とShareの参照ベクトルと比べて、各要素の絶対値が小さくなる傾向がある。これは、パケットのペイロードを構成する文字コード分布が似ていることを示しており、html で記述されたコンテンツの送受信では、タグなどの類似したトークンが頻繁にやり取りされていることを示していると考えられる。しかし、http では、多様な情報のやり取りが行われていることから、更に多くのトラヒックを利用した検証が必要であると言える。
【００６９】
図12 にWinny トラヒックから得られた参照ベクトルを示す。Winny トラヒックに関しては、通信開始直後のパケットペイロード間の距離は比較的小さくなっていることが分かる。これは、暗号通信を行うための鍵交換が行われている様子を示していると考えられる。観測したトラヒックのパケットサイズの調べたところ、100 バイト程度のパケットが連続しており、バリエーションの少ない情報の交換が行われている箇所を参照ベクトルが抽出していると推定出来る。
【００７０】
図13 にShare トラヒックから得られた参照ベクトルを示す。Share トラヒックに関しては、詳細が不明ではあるが、通信開始直後からhttp やWinny と比較してサイズの大きいパケットの送受信が行われていた。そのために、ペイロードにバリエーションの大きいデータが記録され、パケットのヒストグラム間の距離が大きくなり、参照ベクトルの値も他のアプリケーションと比べて大きくなっていると考えられる。
【００７１】
以上から、本発明に係るネットワークアプリケーション弁別方法を用いて不正アクセスを検出する不正アクセス検出システムは、パケットペイロード部のコードのヒストグラム間の距離を利用し、ペイロード部のデータの遷移に基づいた弁別を行うことで、個々のネットワークフローの最初の数パケットを観測すればアプリケーションの弁別が可能になること、および高精度なアプリケーションの弁別を実現することが可能になることが判明した。特にP2P トラヒックを含む検証実験においては約99%程度の正解率でアプリケーションの弁別を実現することが確認され、本発明の高い弁別性能が証明された。したがってP2P ソフトウエアなどの不正アクセスを特定することが可能となり、例えばP2P ソフトウエアによる情報流出を防ぐことも可能になる。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態に係るネットワークアプリケーション弁別方法のプロセスを示す図である。
【図２】ヒストグラム間の距離を算出する方法を説明する図である。
【図３】本発明の実施の形態に係る不正アクセス検出システムの構成を示すブロック図である。
【図４】pop3通信のヒストグラム間の距離（Cdist）の遷移を示す図である。
【図５】pop3通信のヒストグラム間の距離（Adist）の遷移を示す図である。
【図６】winny通信のヒストグラム間の距離（Cdist）の遷移を示す図である。
【図７】winny通信のヒストグラム間の距離（Adist）の遷移を示す図である。
【図８】SOMによりベクトルVC,iの分布(N=5, N：パケット数)を可視化した図である。
【図９】SOMによりベクトルVA,iの分布(N=5, N：パケット数)を可視化した図である。
【図１０】SOMによりWinnyとShareのベクトルVC,iの分布(N=5, N：パケット数)を可視化した図である。
【図１１】httpトラヒックから得られた参照ベクトルを示す図である。
【図１２】Winnyトラヒックから得られた参照ベクトルを示す図である。
【図１３】Shareトラヒックから得られた参照ベクトルを示す図である。
【符号の説明】
【００７３】
１１  パケット観測プロセス
１２  ヒストグラム抽出プロセス
１３  類似性評価プロセス
１４  距離算出プロセス
１５  検知プロセス
３１  パケット観測手段
３２  ヒストグラム抽出手段
３３  類似性評価手段
３４  検知手段
【図１】
2008141618.tif 000010
【図２】
2008141618.tif 000011
【図３】
2008141618.tif 000012
【図４】
2008141618.tif 000013
【図５】
2008141618.tif 000014
【図６】
2008141618.tif 000015
【図７】
2008141618.tif 000016
【図８】
2008141618.tif 000017
【図９】
2008141618.tif 000018
【図１０】
2008141618.tif 000019
【図１１】
2008141618.tif 000020
【図１２】
2008141618.tif 000021
【図１３】
2008141618.tif 000022