(57)【特許請求の範囲】
【請求項１】
ＳＩＰ（セッション開始プロトコル）メッセージを解析し、ＳＩＰベースのアプリケーションに対するセキュリティリスクとなる可能性のある悪意のあるＳＩＰメッセージを識別する、ＳＩＰベースのアプリケーションを保護する方法において、
ＳＩＰメッセージ抽出手段が、所定数Ｎ個の設定可能パラメータ（以下、アイデンティティという。）を前記ＳＩＰメッセージから抽出し、
悪意レベル評価手段が、各ＳＩＰメッセージについて、Ｎ次元アイデンティティにより張られる空間における前記抽出したアイデンティティと過去のＳＩＰメッセージから抽出したアイデンティティとの間の距離に基づいて、各ＳＩＰメッセージに対する悪意レベルＭＬを評価し、
各ＳＩＰメッセージについて１個の点が前記空間に挿入され、
前記悪意レベルＭＬが前記空間内の点の間の設定可能な距離の和として計算され、
前記距離はアイデンティティのドメインが相異なる時の方が同一ドメインの時よりも大きく定義される、
ことを特徴とする、ＳＩＰベースのアプリケーションを保護する方法。
【請求項２】
前記解析および識別が、セッションボーダーコントローラ（ＳＢＣ）、アプリケーション層ファイアウォール、プロキシサーバ、バックツーバックユーザエージェント、および、クライアントから選択された少なくとも１つの装置により実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記抽出したアイデンティティがユーザ固有および／または装置固有のパラメータであることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記抽出したアイデンティティは、前記メッセージの送信者のＳＩＰ  ＵＲＩ、ＭＡＣアドレス、ホスト識別プロトコル（ＨＩＰ）識別子、ＳＩＰ  ＶＩＡヘッダフィールド値、ＳＩＰ  Ｃｏｎｔａｃｔヘッダフィールド値、および、前記送信者のＩＰアドレスおよびポートを含むＳＤＰプロトコルヘッダフィールド値から選択された２個以上の値であることを特徴とする請求項３に記載の方法。
【請求項５】
前記アイデンティティとしての前記値の１つにハッシュ関数を適用することを特徴とする請求項４に記載の方法。
【請求項６】
ｎ番目のメッセージに対する前記悪意レベルＭＬが、前記空間に挿入された過去のメッセージの点の関数ｆであることを特徴とする請求項１に記載の方法。
【請求項７】
設定可能な時間後に、前記点がその挿入順に従って前記空間から消去されることを特徴とする請求項１または６に記載の方法。
【請求項８】
挿入された点のうち、少なくとも１つのアイデンティティが、ｎ番目のメッセージの点の対応するアイデンティティと一致するような点の個数が多いほど、前記ｎ番目のメッセージの前記悪意レベルＭＬが高いことを特徴とする請求項１−７のいずれか１項に記載の方法。
【請求項９】
前記挿入された点のうちの１つとｎ番目のメッセージの点との間で一致するアイデンテ
ィティの個数が多いほど、前記ｎ番目のメッセージの前記悪意レベルＭＬが高いことを特徴とする請求項１−８のいずれか１項に記載の方法。
【請求項１０】
前記距離の個々の値が固定値であることを特徴とする請求項１に記載の方法。
【請求項１１】
前記距離の個々の値が動的に調整されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記Ｎ次元アイデンティティを保存するためにハッシュテーブルが使用されることを特徴とする請求項１−１１のいずれか１項に記載の方法。
【請求項１３】
各アイデンティティにつき１個のハッシュテーブルが使用されることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ハッシュテーブルのキー列にはそれぞれのアイデンティティの対応するハッシュ値が保存され、エントリとしてはそれぞれアイデンティティのセットが保存されることを特徴とする請求項１２または１３に記載の方法。
【請求項１５】
共通のアイデンティティのセットへのポインタがエントリとして保存されるように共通エントリが使用されることを特徴とする請求項１２または１３に記載の方法。
【請求項１６】
過去に異常の検出なしに構文解析に合格したＳＩＰメッセージのみが解析されることを特徴とする請求項１−１５のいずれか１項に記載の方法。
【請求項１７】
前記悪意レベルに対する閾値が事前に設定され、それを超過する場合にＳＩＰメッセージは悪意があると分類されることを特徴とする請求項１−１６のいずれか１項に記載の方法。
【請求項１８】
悪意があると識別されたＳＩＰメッセージがアラームを発生し、および／またはブロックされることを特徴とする請求項１−１７のいずれか１項に記載の方法。
【請求項１９】
２個以上の閾値が事前に設定され、それぞれの閾値を超過することが異なる結果に結び付けられることを特徴とする請求項１７または１８に記載の方法。
【請求項２０】
前記閾値が動的に更新されることを特徴とする請求項１７または１９のいずれか１項に記載の方法。
【請求項２１】
悪意があると識別された前記ＳＩＰメッセージがさらに解析されることを特徴とする請求項１−２０のいずれか１項に記載の方法。
【請求項２２】
少なくとも１つのクライアント装置と、前記クライアント装置の通信に関与する少なくとも１つのノードと、を含むネットワークにおけるＳＩＰベースのアプリケーションを保護するシステムにおいて、
前記少なくとも１つのノードは、
前記クライアントが交換したＳＩＰ（セッション開始プロトコル）メッセージを解析し、所定数Ｎ個の設定可能パラメータ（以下、アイデンティティという。）を前記ＳＩＰメッセージから抽出する手段と、
各ＳＩＰメッセージについて、Ｎ次元アイデンティティにより張られる空間における前記抽出したアイデンティティと過去のＳＩＰメッセージから抽出したアイデンティティとの間の距離に基づいて、各ＳＩＰメッセージに対する悪意レベルＭＬを評価する手段と、
を有し、
各ＳＩＰメッセージについて１個の点が前記空間に挿入され、
前記悪意レベルＭＬが前記空間内の点の間の設定可能な距離の和として計算され、
前記距離はアイデンティティのドメインが相異なる時の方が同一ドメインの時よりも大きく定義される、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＰ（セッション開始プロトコル）ベースのアプリケーションを保護する方法に関する。本方法によれば、ＳＩＰメッセージが解析され、ＳＩＰベースのアプリケーションにとってセキュリティリスクとなり得る悪意のあるＳＩＰメッセージが識別される。
【背景技術】
【０００２】
セッション開始プロトコル（ＳＩＰ）は、２以上の参加者間でセッションを確立するための標準化されたネットワークプロトコルである。ＳＩＰは、多くのメーカの装置でサポートされ、近年はボイスオーバーＩＰ（ＶｏＩＰ）のための広く用いられるプロトコルに発展している。ＳＩＰのアプリケーションはインターネット電話に限定されず、多様なデータストリームに対して通信セッションを確立することができる。ＳＩＰは通信セッションの確立を行うだけであり、実際の通信データの交換は、セッション記述プロトコル（ＳＤＰ）、リアルタイムトランスポートプロトコル（ＲＴＰ）等の他のプロトコルにより実行される。
【０００３】
ＳＩＰは、実装容易性、スケーラビリティ、拡張性およびフレキシビリティの点で有利であるが、アプリケーションのセキュリティおよびアイデンティティ管理に関してはかなり弱い。悪意のあるユーザがＳＩＰベースのシステムに対するセキュリティ攻撃を行う目的で安全でない情報を取得し得るという点に、セキュリティリスクが存在する。現在、ＳＩＰベースのアプリケーションにセキュリティ関連機能を追加するために、セキュリティのプロトコルおよびアプリケーションの完全なセットを標準化する作業がＩＥＴＦで行われている。しかし、たとえこれらの作業が成功したとしても、このような標準は、悪意のあるユーザが適当な知識で破ることができないような１００％のセキュリティをもたらすものではない。
【０００４】
安全なアイデンティティ管理に関しては、たとえこのような標準が利用可能となっても、ＳＩＰアイデンティティを開示しようとするＳＩＰサービスプロバイダが将来必ず現れるであろう。このような不十分なアイデンティティ管理のもとでは、悪意のあるユーザが多数のＳＩＰアイデンティティを取得し、それに基づいてＳＩＰベースのシステムに対するセキュリティ攻撃を行うというセキュリティ脅威が存在する。
【０００５】
以下で、本質的に重要な２種類のセキュリティ攻撃について詳細に検討する。第１のものは、サービスを妨害あるいは中断することを目的とした攻撃であり、ＤｏＳ（サービス拒否）攻撃として知られている。第２のものは、インターネット電話においてＳＰＩＴ（ＩＰ電話スパム、Spam over Internet Telephony）として知られているソーシャル攻撃である。ＳＰＩＴの脅威は、電子メールトラフィックにおいてスパムとして知られている脅威に相当し、ただ異なるのは、不要なメッセージが電話の形式で配信されることである。実際には、これにより、広告メッセージだけを含む電話が数百回もかかってきたり、常に呼出音が鳴るということが起こり得る。インターネット電話の急速な発展と普及を背景として、電話の世界でもＤｏＳ攻撃およびＳＰＩＴが拡大することを懸念せざるを得ない。
【０００６】
ＤｏＳ攻撃を防ぐために現在利用可能な技術は主として、ダイアログおよびトランザクションのＳＩＰプロトコルの厳格な構文解析（パーシング）に基づくものであり、これにより、プロトコルにおいて、サービスの中断を引き起こし得るような不整合を見つける。ＳＩＰ構文からの逸脱が検出されたメッセージは破棄される。
【０００７】
ＳＩＰベースのアプリケーションをＤｏＳ攻撃から保護する他の方法としては、システム過負荷がサービスの中断を引き起こし得ることに基づき、ＳＩＰトラフィックをＳＩＰメッセージに許容される最大レートに制限し、それによりＳＩＰシステムの過負荷を防ごうとするものがある。
【０００８】
ＳＰＩＴ攻撃を防ぐために現在利用可能な技術は主として、ホワイトリスト、ブラックリスト、およびコンテンツフィルタリングに基づくものである。音声電話のコンテンツフィルタリングは、発呼者が人間であるか機械であるかを判定することを目的とした一種のチューリングテストによって実行される。他の最近提案されている方法では、ユーザ間のソーシャルネットワークや、バディリストを用いたフレンド関係も考慮に入れている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のアイデンティティ管理に関して、既知の方法にはいくつかの欠点もある。例えば、電子メールシステムは、電子メールメッセージのヘッダ内にある送信者の送信元ＩＰアドレスによって送信者を識別しようとする。この情報に基づいて、電子メールシステムはＤＮＳチェックを実行する。悪意のある送信者が真のＩＰアドレスあるいはドメイン名を入力していないと、既知のシステムは正しく照合ができず問題となる。ただ、このような解析は、本発明が問題にしているリアルタイム通信の場合には、異なる時間スケールで動作するので、いずれにしても適用可能でない。例えば、電子メールアプリケーションはリアルタイムアプリケーションではないが、ＶｏＩＰは、リアルタイムアプリケーションであるので、ＤＮＳ名のチェックが終わるまで待つことはできない。また、トラフィック特性も全く異なる。というのは、多数の電子メールメッセージの同時送信は、悪意のある行動とみなすことはできず、通常の利用法であるからである。これに対して、このトラフィック特性は、ＳＩＰベースのアプリケーションの場合には、悪意の可能性が極めて高いとみなすべきである。したがって、電子メールの世界で知られているようなセキュリティおよびアイデンティティ管理の方法は、いずれにしても、ＳＩＰベースのアプリケーションに転用することができない。
【課題を解決するための手段】
【００１０】
そこで、本発明は、上記のようなＳＩＰベースのアプリケーションを保護する方法において、実装の容易な手段により非常に高度なセキュリティを実現する方法を提供するという課題を解決しようとするものである。
【００１１】
本発明によれば、上記の課題は請求項１に記載の特徴を備えた方法によって解決される。本発明により実現される方法では、常に所定数Ｎ個の設定可能パラメータ（アイデンティティ）をＳＩＰメッセージから抽出し、各ＳＩＰメッセージについてそのアイデンティティを過去のＳＩＰメッセージから抽出したアイデンティティと比較し、それに基づいて各ＳＩＰメッセージに対し悪意性の尺度（悪意レベルＭＬ(maliciousness level)）を評価する。
【００１２】
本発明により認識されたこととして、多くの異なるアイデンティティを考慮に入れた広範囲の解析の機会を設けることにより、ＳＩＰベースのアプリケーションに対する特に高度なセキュリティを実現することができる。本発明によれば、まず、所定数Ｎ個の設定可能パラメータ（以下「アイデンティティ」という）を抽出する。本発明によれば、次に、各ＳＩＰメッセージのアイデンティティを過去のＳＩＰメッセージから抽出したアイデンティティと比較することにより、各ＳＩＰメッセージに対する悪意レベルＭＬを評価する。本発明による方法では、ＳＩＰトランザクションのセキュリティに関連する複数の側面を考慮することができ、これにより、例えばＳＩＰメッセージの構文のような側面を単独で考慮する既知の方法に比べて、セキュリティが大幅に改善される。すなわち、重要な点は、単一のパラメータのみをチェックするのではなく、さらに（Ｎ−１）個のパラメータがチェックに含まれることである。したがって、本発明による方法は、特定のトラフィック特性に関して前述した問題点を解決する。というのは、そうしたトラフィック特性は、本発明により広範囲に実行されるように構成されたチェックに含まれるからである。
【００１３】
また、本発明による方法では、基本的には比較演算を実行するだけでよく、これは特殊なハードウェアをほとんど必要としないので、実装が容易である。さらに、本発明による方法は、非常に容易かつ柔軟に、解析すべきさまざまな環境に合わせることができる。例えば、セキュリティが最も優先される重要データについてのＳＩＰトランザクションの場合、Ｎを大きく選ぶことができる。すなわち、悪意のあるＳＩＰアプリケーションの識別を多様な側面から実行することができる。これに対して、セキュリティがそのように優先的な問題ではない場合や、セキュリティチェックに利用可能なリソースが非常に限られている場合には、Ｎを小さく選ぶことができる。
【００１４】
具体的には、解析および識別は、例えば、セッションボーダーコントローラ（ＳＢＣ）、アプリケーション層ファイアウォール、プロキシサーバ、バックツーバックユーザエージェント、あるいはクライアント等で実行できる。
【００１５】
抽出したアイデンティティは、一方ではユーザ固有のパラメータとし、他方では装置固有のパラメータとすることができる。特に有利な態様として、メッセージ送信側のＳＩＰ  ＵＲＩ（Uniform Resource Identifier）がアイデンティティとして抽出される。ＳＩＰ  ＵＲＩは一般に、「user@domain」の形式を有し、最も意味のあるアイデンティティであるので、抽出するアイデンティティのセットにこれを常に含めると有利であると考えられる。これに加えて（またはこの代わりに）、ＭＡＣアドレス、ホスト識別プロトコル（ＨＩＰ, host identity protocol）識別子、ＳＩＰ  Ｖｉａヘッダフィールド値、ＳＩＰ  Ｃｏｎｔａｃｔヘッダフィールド値、あるいは、送信側のＩＰアドレスやポートを含むＳＤＰプロトコルヘッダフィールド値を抽出してもよい。この列挙は完全ではなく、他のパラメータを抽出してもよいことはいうまでもない。
【００１６】
抽出したパラメータの値の保存は簡明である。すなわち、常に、抽出した値に対して実行した変換の結果が、アイデンティティとして用いられる。特に有利な態様として、変換は、ハッシュ関数の適用とすることができる。
【００１７】
特に好ましい実施形態においては、Ｎ次元超空間を構成する。ここでＮ次元空間は、与えられたアイデンティティによって張られる。すると、特に簡明な態様では、抽出したアイデンティティを超空間内のそれぞれの軸で表すことにより、各ＳＩＰメッセージを超空間内の１点として表現できる。ここで点は、対応するＳＩＰメッセージから抽出した所定のＮ個のアイデンティティの値からなるＮ次元タプルを意味する。
【００１８】
利用可能な情報をできるだけ包括的かつ効率的に用いることに関して、ｎ番目のメッセージの悪意レベルは、超空間内に表された過去のメッセージの点の関数ｆとして決定できる。ｎは、メッセージの到着時間順序を表すプレースホルダである。すなわち、ｎ番目のメッセージの悪意レベルＭＬを定義するために、１番目、２番目、...、（ｎ−１）番目のメッセージから抽出した、過去に得られた情報を用いることができる。
【００１９】
長期間にわたり多数の到着メッセージを自動的に、すなわちオペレータの介入なしに解析するためには、必要な記憶容量に限度があるので、所定期間後に超空間から挿入順に従って点を消去するのが有利である。その場合、ｎ番目のメッセージの悪意レベルＭＬを評価するために利用可能であるのは、もはやメッセージ１，２，...，ｎ−１ではなく、メッセージｉ，ｉ＋１，...，ｎ−１（１≦ｉ＜ｎ）のみである。点が超空間に保存されている期間は設定可能なパラメータであり、事前に設定してもよく、あるいは、解析中に、好ましくはデータレートを考慮して、それぞれの現在の具体的状況に合わせて動的に調整してもよい。
【００２０】
関数ｆは、比較の結果、ｎ番目の点、すなわちｎ番目のメッセージの点の少なくとも１つのアイデンティティが、挿入された点の少なくとも１つのアイデンティティと一致する場合に、ｎ番目のメッセージに対する悪意レベルＭＬがゼロとは異なるように選択できる。また、関数ｆは、挿入された点のうち、その少なくとも１つのアイデンティティがｎ番目のメッセージの点の対応するアイデンティティと一致するような点の個数が多くなるほど、ｎ番目のメッセージの悪意レベルＭＬが上昇するという特性を有することが可能である。また、関数ｆは、挿入された点のうちの１つとｎ番目のメッセージの点との間で一致するアイデンティティの個数が多いほど、ｎ番目のメッセージの悪意レベルＭＬが上昇するという特性を有することが可能である。
【００２１】
特定のアイデンティティの場合、２つの値が一致するか相違するかを知るだけでなく、さらにアイデンティティの正確な値を知ることが重要な場合がある。ＳＩＰアイデンティティは、このような場合の一例となる。例えば、ＳＩＰ  ＩＤ＿１＝ｕｓｅｒ１＠ｄｏｍａｉｎ１、ＳＩＰ  ＩＤ＿２＝ｕｓｅｒ２＠ｄｏｍａｉｎ１およびＳＩＰ  ＩＤ＿３＝ｕｓｅｒ３＠ｄｏｍａｉｎ２というアイデンティティを見れば、これらはすべて互いに異なるが、セキュリティ技術の点からは、メッセージが、異なるドメインの同一ユーザから発信されているか、それとも同一ドメインの異なるユーザから発信されているかで違いがある。
【００２２】
悪意レベルＭＬを評価する際にこれらの相違点を考慮に入れるために、距離の概念の導入が有益かつ有利である。その場合、悪意レベルＭＬは、Ｎ次元超空間内の点の間の所定の距離の和として計算できる。上記の例において、ＳＩＰ  ＩＤ＿１とＳＩＰ  ＩＤ＿２の間の距離ｄｉｓｔ（ＩＤ＿１；ＩＤ＿２）には、ＳＩＰ  ＩＤ＿１とＳＩＰ  ＩＤ＿３の間の距離ｄｉｓｔ（ＩＤ＿１；ＩＤ＿３）とは別の値を割り当てることができる。個々の距離の具体的な値は、解析の前に決めることができる。別法として、個々の距離の具体的な値は、それぞれの状況に合わせて動的に調整することも可能である。
【００２３】
Ｎ次元アイデンティティを効率的に保存するには、ハッシュテーブルを用いた実装が可能である。ハッシュテーブルによれば、一方で一致するエントリを素早く見出し、他方で保存の複雑さを制限することができる。具体的には、例えば、各アイデンティティごとに１つのハッシュテーブルを用いることができる。ハッシュテーブルのキー列にそれぞれのアイデンティティの対応するハッシュ値を保存し、アイデンティティのセット（Ｎタプル）をエントリとして保存することができる。
【００２４】
メモリに関する複雑さをさらに最適化するため、ハッシュテーブルに、いわゆる「共通エントリ」を設けることができる。この場合、ハッシュテーブルのキー列には、対応するアイデンティティのそれぞれのハッシュ値を順に保存するが、共通のアイデンティティのセット（Ｎタプル）へのポインタのみをエントリとして保存する。これにより、メモリに関する複雑さをさらに大幅に低減することができる。
【００２５】
効率をさらに向上させるには、構文的に正しいＳＩＰメッセージのみを解析するのが特に有利である。このためには、当技術分野で知られているような、構文解析（パーシング）を事前に実行し、疑わしい特徴を示さずに構文解析に合格したＳＩＰメッセージのみを解析する。
【００２６】
悪意レベルＭＬに対していくつかの閾値を設定し、それらの閾値を超過した場合に、ＳＩＰメッセージを悪意があると分類することができる。有利な態様として、フレキシビリティを最適にするため、閾値を動的に更新することができる。具体的には、閾値は、時間的に動的に更新するとよい。というのは、そうすることにより、ピーク時のデータトラフィックパターンが、夜間に観測されるようなデータトラフィックパターンとは明確に異なるという事実を考慮に入れることができるからである。動的更新は、その時までに実行した解析の効率に関して得られた値に基づいて実行することも可能である。例えば、特定の攻撃がシステムのクラッシュを引き起こした場合に、すなわち、このような攻撃からシステムをより良く保護するために、値ｚにより定義される閾値は引き下げられると考えられる。
【００２７】
システムを保護するためには、悪意があると識別されたＳＩＰメッセージがアラームを発生させ、あるいはブロックされることが可能である。また、アラームの発生は、悪意のあるメッセージをその発信元までトレースバックするためのトリガとして用いることも可能である。このためには、長時間にわたる悪意のある挙動を識別する後処理アルゴリズムを適用することができる。このような方式の簡単な実装として、悪意のある送信者を、そのＳＩＰ  ＵＲＩ、そのＩＰアドレス等により識別することが考えられる。識別の実行後、悪意のあるユーザは、そのユーザから発信されるすべてのトラフィックをブロックすることによって、被保護システムへのアクセスから（一時的に）ブロックされることが可能である。
【００２８】
有利な構成として、２個以上の閾値を設定し、それぞれの閾値の超過が異なる結果を有するようにすることができる。例えば、第１の低い閾値を超過した場合、送信者は、被保護システムへのアクセスを許可されるためには追加的テストに合格しなければならないとすることができる。第２の高い閾値を超過した場合にのみ、アクセスのブロックを引き起こす。この場合、一時的制限だけでなく、アクセスを最終的にブロックすることも可能である。
【００２９】
本発明を有利な態様で構成し実施するためのいくつかの選択肢がある。これに関しては、一方で請求項１に従属する請求項を参照し、他方で本発明によるＳＩＰアプリケーションを保護する方法の好ましい実施例に関する以下の説明を参照されたい。好ましい実施例および図面の説明においては、一般的に本発明の好ましい実施形態および改良形態も説明される。
【発明を実施するための最良の形態】
【００３０】
図１は、本発明による方法の基本的機能を示す概略図である。ネットワーク（雲のように示す）を通じてＳＩＰトランザクションにより通信する３個のＳＩＰクライアント１が示されている。悪意のあるユーザ２の攻撃からＳＩＰベースのアプリケーションを保護するため、所定数Ｎ個（Ｎ＞１）の設定可能パラメータ（いわゆるアイデンティティ）を、ＳＩＰクライアント１が相互にあるいは外部と交換したＳＩＰメッセージから抽出する。
【００３１】
各ＳＩＰメッセージについて、そのアイデンティティを、過去に交換したＳＩＰメッセージから抽出したアイデンティティと比較する。次に、各ＳＩＰメッセージについて、実行した比較結果に基づいて、悪意レベルＭＬを評価する。ＳＩＰメッセージの解析は、それらを悪意があると識別することとともに、複数の装置により実行可能である。これら複数の装置は、ＳＩＰメッセージ解析手段、アイデンティティ抽出手段、アイデンティティ比較手段および悪意レベル評価手段を含むことができる。図１では、可能な装置の例として３個だけ示している。具体的には、ファイアウォール３、バックツーバックユーザエージェント４およびプロキシサーバ５である。
【００３２】
図２に、Ｎ次元アイデンティティを保存する具体的保存態様をテーブル形式で示す。これは、データの保存にハッシュテーブルを用いる実施態様である。図２に示すテーブルは、重複エントリにより動作する。すなわち、この実施態様では、各アイデンティティごとに１つのハッシュテーブルを使用する。各ハッシュテーブルのキー列はそれぞれのアイデンティティのハッシュ値であり、エントリはアイデンティティのセットを含む。すなわち、Ｎ個のアイデンティティの場合、アイデンティティの各セット（すなわちトランザクション）はＮ重に重複している。このため、メモリに関する複雑さはＮ×ｎ×Ｎ×ａと計算される。ここでｎはエントリ数（すなわち解析されるメッセージの個数）、ａはアイデンティティ要素のサイズ、Ｎはアイデンティティの個数である。したがって、複雑さはアイデンティティ数の２乗に従う。すなわち、アイデンティティ数が２倍になると、メモリに関する複雑さは４倍になる。トランザクション数ｎに関しては、複雑さは線形である。
【００３３】
図３に、図２の実施態様と比べてメモリに関する複雑さを最適化した保存実施態様を示す。最適化は、共通エントリを使用することで達成される。各アイデンティティにつき１つのハッシュテーブルを用いるが、ハッシュテーブル内のエントリは完全なエントリを含むのではなく、共通のアイデンティティのセットへのポインタのみを含む。このような保存によるメモリに関する複雑さはＮ×ｎ＋Ｎ×ｎ×ａと計算される。ここで記号は図２に関して説明した記号と同一である。したがって、メモリに関する複雑さは、トランザクション数ｎに関してだけでなく、アイデンティティ数Ｎに関しても線形である。ハッシュテーブルにおける衝突数が無視できる（これはハッシュテーブルのサイズを十分大きく選ぶことにより実現可能である）と仮定すると、計算量（計算の複雑さ）はエントリ数／トランザクション数に関して線形となる。さらに、探索はアイデンティティ数に関して線形である。
【００３４】
図４に、本発明による方法の実施例の適用を模式的に示す。解析のために、ＳＩＰメッセージはある装置を通る。この装置は、本具体例ではプロキシサーバ５として示されている。プロキシサーバ５は、ＳＩＰメッセージから２個のアイデンティティ、すなわちＳＩＰアイデンティティ自体およびＳＩＰメッセージの送信元のＩＰアドレスを抽出する。したがってＮ＝２である。アプリケーションがＩＰレイヤの情報にアクセスできないために、受信したＳＩＰメッセージの送信元のＩＰアドレスがパラメータとして利用可能でない場合、アプリケーションはＳＩＰメッセージボディからＩＰアドレスパラメータを抽出することも可能である。この場合、ＩＰアドレスは、例えばＳＩＰ  ＶＩＡヘッダに書かれている可能性がある。
【００３５】
図５に、ＳＩＰアイデンティティを第１の抽出パラメータ（ｘ座標で表す）とし、ＩＰアドレスを第２の抽出パラメータ（ｙ座標で表す）として張られる２次元超空間（すなわち平面）を示す。全部で５個の点が示され、これらは次のような５個の解析されたＳＩＰメッセージを表す。以下では到着順を仮定する。
１．（ＳＩＰ  ＩＤ１＝ｕｓｅｒ１＠ｄｏｍａｉｎ１；ＩＰ  ＡＤＤＲ１）；
２．（ＳＩＰ  ＩＤ２＝ｕｓｅｒ２＠ｄｏｍａｉｎ１；ＩＰ  ＡＤＤＲ３）；
３．（ＳＩＰ  ＩＤ２＝ｕｓｅｒ２＠ｄｏｍａｉｎ１；ＩＰ  ＡＤＤＲ１）；
４．（ＳＩＰ  ＩＤ３＝ｕｓｅｒ３＠ｄｏｍａｉｎ２；ＩＰ  ＡＤＤＲ１）；
５．（ＳＩＰ  ＩＤ４＝ｕｓｅｒ４＠ｄｏｍａｉｎ１；ＩＰ  ＡＤＤＲ２）；
【００３６】
ｎ番目のメッセージの到着時に、以下のステップを実行する。
１．ｎ番目の点ｐn（下記の数式中で上付きバーを付したｐnと同一。本文中では上付きバーを省略する）を超空間に挿入する。この超空間は、上記のように、本具体例では平面である。
２．平面に既に挿入されている点、すなわち、過去に解析したメッセージに対応する点であって、同一のＳＩＰアイデンティティを有するか、または、ｐnと同一のＳＩＰアドレスを共有する点を識別する。
３．悪意レベルＭＬを次のように計算する。
【数１】
0004692776.tif 000002
ｋはステップ２で識別したすべての点にわたる。
【００３７】
ＭＬを計算するために、距離の概念を導入している。これにより、ＭＬを計算する際に、同一／非同一の比較だけでなく、アイデンティティの正確な値も考慮することができる。距離のとる値は、システムにおける設定可能なパラメータである。
【００３８】
図５に示した例に対して、定義した距離を図６に示す。これ以外はこれら２つの図は同一である。図示した具体例の背後にある基本原理は次の通りである。
【００３９】
基本的には、同一のＳＩＰアイデンティティから相異なるＩＰアドレスを用いて発信される複数のトランザクションは、悪意の可能性があるとみなされる。トランザクションの発信元となる相異なるＩＰアドレスの個数が多いほど、それらが悪意のあるメッセージである確率は高い。ただし、このようなトランザクションが正当であって、単に送信ユーザのモビリティ（移動）の結果である可能性もある。しかし、ユーザがモビリティ状況でＳＩＰトランザクションを実行する時間スケールは一般に、ＳＩＰトランザクションが解析される時間スケールとは異なる。本発明による方法は通常、時間スケールが短いほど特異性が発見されるように作用する。
【００４０】
一般的には、同一のＩＰアドレスから相異なるＳＩＰアイデンティティを用いて発信される複数のトランザクションもまた、悪意があるとみなすべきである。この場合も、同一のＩＰアドレスを共有するＳＩＰアイデンティティの個数が多いほど、このようなトランザクションが悪意である確率は高いということが成り立つ。
【００４１】
この主張は、複数のユーザがＮＡＴ（Network Address Translator）の背後に所在してＳＩＰトランザクションを送信する場合には無効となる。しかし、同一ＮＡＴの背後にいる複数のユーザが同じ宛先アドレスへトランザクションを送信する確率は十分に低いので、その場合には基本的な仮定は正しい。この確率が十分には低くない場合、レイヤ４のポート番号等の追加的なアイデンティティを用いることで、ＮＡＴの背後にいる正当なユーザと悪意のあるユーザとを正しく見分けることができる。
【００４２】
図６に示した値を定義する際に、相異なるドメインのＳＩＰアイデンティティ間の距離を同一ドメインのＳＩＰアイデンティティ間の距離よりも大きく定義することによって、上記の確率は既に考慮に入っている。この定義では、同一ＮＡＴの背後にいるユーザは高い確率で、そのＳＩＰ  ＵＲＩに同一ドメインを呈示すると考慮している。図６に示した例では、ＭＬの値は次のように評価される。
【００４３】
第１のメッセージの到着時には、平面上にただ１つの点しかないので、ＭＬ＝０である。メッセージ２が到着すると、抽出したアイデンティティは両方ともメッセージ１とは異なることが検出されるので、依然としてＭＬ＝０が成り立つ。メッセージ３が到着すると、メッセージ１と同じＩＰアドレスおよびメッセージ２と同じＳＩＰ  ＩＤを示していることが検出されるので、ＭＬ＝１＋３＝４となる。メッセージ４が到着すると、そのＩＰアドレスはメッセージ１および３のものと一致することが検出されるので、ＭＬについてはＭＬ＝５＋５＝１０となる。メッセージ５が到着すると、過去に解析したメッセージとの一致は検出されないので、ＭＬ＝０が成り立つ。
【００４４】
冗長さを避けるため、本発明による方法のその他の有利な実施形態に関しては、添付の特許請求の範囲とともに、本明細書の概要説明部分を参照されたい。
【００４５】
最後に、留意すべき特に重要な点であるが、上記実施例は本発明による教示の実例としての役割を果たすに過ぎず、本発明を上記実施例に限定するものでは全くない。
【図面の簡単な説明】
【００４６】
【図１】本発明によるＳＩＰベースのアプリケーションを保護する方法の実施例を示す。
【図２】重複エントリによりハッシュテーブルにアイデンティティを保存する様子を示す。
【図３】共通エントリによりハッシュテーブルにアイデンティティを保存する様子を示す。
【図４】ＳＩＰメッセージから相異なるアイデンティティを抽出する様子を示す。
【図５】次元Ｎ＝２の超空間の実施例を示す。
【図６】図５の超空間において、さらに距離を示した図である。
【符号の説明】
【００４７】
１  ＳＩＰクライアント
２  悪意のあるユーザ
３  ファイアウォール
４  バックツーバックユーザエージェント
５  プロキシサーバ
【図１】
0004692776.tif 000003
【図２】
0004692776.tif 000004
【図３】
0004692776.tif 000005
【図４】
0004692776.tif 000006
【図５】
0004692776.tif 000007
【図６】
0004692776.tif 000008