(57)【要約】      （修正有）【課題】通信エンドポイントにおける組み込みファイアウォールの実装を可能とする方法を提供する。【解決手段】すべてエンドポイントに常駐している、アプリケーション、ファイアウォール・エンジン、およびパケット分類ルール・データベースの間の関係を扱う。アプリケーションは、（ｉ）ローカルなメッセージ・パッシングを通してなどで、一緒に常駐しているファイアウォール・エンジンと直接交信し、（ｉｉ）メモリをファイアウォール・エンジンと共有し、かつ（ｉｉｉ）オペレーティング・システムに対してソケット・コールを行い、そのソケット・コールはミドルウェア層により傍受され、続いてミドルウェア層はそのソケット・コールに応じてルール・データベースを修正する。アプリケーション、ファイアウォール・エンジン、およびルール・データベースがエンドポイントに一緒に常駐している。【選択図】図２
2008154236.tif 000002
【特許請求の範囲】
【請求項１】
通信エンドポイントでイングレス・パケットを処理する方法であって、
前記エンドポイントでファイアウォール・エンジンおよびアプリケーションを実行するステップと、
前記アプリケーションの動作状態における状態変化が前記アプリケーションの実行中に起きるとき、前記ファイアウォール・エンジンに前記状態変化を通知するステップと、
第１のルールを備える第１のセットのパケット分類ルールに基づき少なくとも１つの前記イングレス・パケットをフィルターするステップであって、前記第１のセットのパケット分類ルールの選択は前記状態変化に基づく、フィルターするステップと
を備える方法。
【請求項２】
前記アプリケーションが、その実行中に前記イングレス・パケットが所定の特性を示すものであると単独で予想するとき、前記第１のセットのパケット分類ルールの一部として第２のルールを前記ファイアウォール・エンジンに利用可能にするステップをさらに備える、請求項１に記載の方法。
【請求項３】
前記アプリケーションによりその実行中に行われる第１のソケット・ライブラリ・コールが検知されるとき、前記第１のソケット・ライブラリ・コールを傍受するステップと、
前記第１のソケット・ライブラリ・コールが傍受されたとき、前記第１のソケット・ライブラリ・コールに基づく第３のルールを設定するステップとをさらに備え、
前記第３のルールは前記第１のセットのパケット分類ルールの一部である、請求項２に記載の方法。
【請求項４】
前記第１のセットのパケット分類ルールもまた前記遷移状態に基づく、請求項１に記載の方法。
【請求項５】
前記状態変化の結果として、前記アプリケーションは、前記エンドポイントにおけるオンフック状態に対応する第１の状態から前記エンドポイントにおけるオフフック状態に対応する第２の状態に遷移する、請求項４に記載の方法。
【請求項６】
前記エンドポイントにおけるパケット攻撃を検知するステップと、
前記パケット攻撃の前記検知に基づき、第１の時間間隔で前記エンドポイントにおけるネットワーク・インターフェースを使用不可にするステップであって、前記ネットワーク・インターフェースは前記イングレス・パケット受信するためのものである、使用不可にするステップと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記時間間隔は前記パケット攻撃の第１の特性に基づく、請求項６に記載の方法。
【請求項８】
前記第１の特性は前記パケット攻撃の強度に基づく、請求項７に記載の方法。
【請求項９】
通信エンドポイントでイングレス・パケットを処理する方法であって、
前記エンドポイントでファイアウォール・エンジンおよびアプリケーションを実行するステップと、
前記アプリケーションが、その実行中に前記イングレス・パケットが所定の特性を示すものであると単独で予想するとき、第１のルールを前記ファイアウォール・エンジンに利用可能にするステップと、
前記第１のルールを備える第１のセットのパケット分類ルールに基づき少なくとも１つの前記イングレス・パケットをフィルターするステップと
を備える方法。
【請求項１０】
前記アプリケーションによりその実行中に行われる第１のソケット・ライブラリ・コールが検知されるとき、前記第１のソケット・ライブラリ・コールを傍受するステップと、
前記第１のソケット・ライブラリ・コールが傍受されたとき、前記第１のソケット・ライブラリ・コールに基づく第２のルールを設定するステップとをさらに備え、
前記第２のルールは前記第１のセットのパケット分類ルールの一部である、請求項９に記載の方法。
【請求項１１】
前記所定の特性は暗号化である、請求項９に記載の方法。
【請求項１２】
前記イングレス・パケットはＳｅｃｕｒｅ  Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌに準拠してフォーマット化される、請求項１１に記載の方法。
【請求項１３】
前記エンドポイントにおけるパケット攻撃を検知するステップと、
前記パケット攻撃の前記検知に基づき、第１の時間間隔で前記エンドポイントにおけるネットワーク・インターフェースを使用不可にするステップであって、前記ネットワーク・インターフェースは前記イングレス・パケットを受信するためのものである、使用不可にするステップと
をさらに備える、請求項９に記載の方法。
【請求項１４】
前記時間間隔は前記パケット攻撃の第１の特性に基づく、請求項１３に記載の方法。
【請求項１５】
前記第１の特性は前記パケット攻撃の強度に基づく、請求項１４に記載の方法。
【請求項１６】
通信エンドポイントでイングレス・パケットを処理する方法であって、
前記エンドポイントでファイアウォール・エンジンおよびアプリケーションを実行するステップと、
前記アプリケーションによりその実行中に行われる第１のソケット・ライブラリ・コールが検知されるとき、前記第１のソケット・ライブラリ・コールを傍受するステップと、
前記第１のソケット・ライブラリ・コールが傍受されたとき、前記第１のソケット・ライブラリ・コールに基づく第１のルールを設定するステップと、
前記第１のルールを備える第１のセットのパケット分類ルールに基づき、少なくとも１つの前記イングレス・パケットをフィルターするステップと
を備える方法。
【請求項１７】
前記アプリケーションの動作状態における状態変化が前記アプリケーションの実行中に起きるとき、前記ファイアウォール・エンジンに前記状態変化を通知するステップをさらに備え、
前記第１のセットのパケット分類ルールの選択は前記状態変化に基づく、請求項１６に記載の方法。
【請求項１８】
前記第１のルールは、前記第１のソケット・ライブラリ・コール内に指定されるリモート・アドレスからの前記イングレス・パケットを許可する、請求項１６に記載の方法。
【請求項１９】
前記第１のルールは、前記第１のソケット・ライブラリ・コール内に指定されるポートに行く前記イングレス・パケットを許可する、請求項１６に記載の方法。
【請求項２０】
前記アプリケーションによりその実行中に行われる第２のソケット・ライブラリ・コールが検知され、前記第２のソケット・ライブラリ・コールがソケットを閉じるためであるとき、前記第１のルールを前記第１のセットのパケット分類ルールから削除するステップをさらに備える、請求項１６に記載の方法。
【請求項２１】
ミドルウェア層が前記第１のソケット・ライブラリ・コールおよび前記第２のソケット・ライブラリ・コールの検知を実行する、請求項２０に記載の方法。
【請求項２２】
前記エンドポイントでパケット攻撃を検知するステップと、
第１の時間間隔で、前記パケット攻撃の前記検知に基づき前記エンドポイントでのネットワーク・インターフェースを使用不可にするステップであって、前記ネットワーク・インターフェースは前記イングレス・パケットを受信するためのものである、使用不可にするステップと
をさらに備える、請求項１６に記載の方法。
【請求項２３】
前記時間間隔は前記パケット攻撃の第１の特性に基づく、請求項２２に記載の方法。
【請求項２４】
前記第１の特性は前記パケット攻撃の強度に基づく、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に通信に関し、より詳細には、通信エンドポイントにおける組み込みファイアウォールを提供することに関する。
【背景技術】
【０００２】
以下の出願の基本的概念は、本明細書に参照により組み込まれるが、用語に関しては必ずしも組み込まれるわけではない。
２００５年６月２１日に出願された米国特許出願第１１／１５７８８０号。本出願の特許請求の範囲の解釈に影響を与える可能性がある、用語における何らかの矛盾または不一致が本出願と参照により組み込まれている出願との間に存在する場合、本出願の特許請求の範囲は、本出願の用語と一致するものと解釈されるべきである。
【０００３】
図１は、従来技術における通信システム１００の概略図を示す。システム１００は、音声の会話、またはビデオなどの他の種類のメディアを通信エンドポイントなどのネットワーク要素間でルーティングする。通信システム１００は、次のものを備える。
ｉ．基幹パケット・ネットワーク１０１。
ｉｉ．ローカル・エリア・ネットワーク（ＬＡＮ）１０２−１から１０２−Ｑ。ただしＱは自然数である。
ｉｉｉ．他のプロバイダ・ネットワーク１０３−１から１０３−Ｒ。ただしＲは自然数である。
ｉｖ．通信エンドポイント１０４−１から１０４−Ｓ。ただしＳは自然数である。
ｖ．ルータ１０５−１から１０５−Ｑ。
ｖｉ．ゲートウェイ１０６−１から１０６−Ｒ。
図１に示された要素のすべては図示のように互いに接続されている。図で示すように、システム１００は、基幹パケット・ネットワーク１０１、ローカル・エリア・ネットワーク１０２−ｑ（ｑ＝１からＱ）、および他のプロバイダ・ネットワーク１０３−ｒ（ｒ＝１からＲ）を含む、複数の異なる種類のネットワークを備える。
【０００４】
基幹パケット・ネットワーク１０１を用いて、特定のサービス・プロバイダの加入者のために、Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（または「ＶｏＩＰ」）などの１つまたは複数の種類のメディアを搬送する。ネットワーク１０１自体は、データ・パケット（例えば、音声パケットなど）を１つまたは複数のソースからそれらのパケットの適切な送付先に導くために用いられるルータなどの１つまたは複数の伝送関連のノードを備える。ネットワーク１０１は、システム１００全体にわたる様々な通信エンドポイントおよびゲートウェイなど、ネットワーク１０１にアクセスするネットワーク要素間で送信されるインターネット・プロトコルベースのメッセージを処理することができる。図示のようにネットワーク１０１は、Ｖｏｉｃｅ−ｏｖｅｒ−ＩＰサービス・プロバイダのネットワークであるが、ネットワーク１０１は代替としてインターネットまたは何らかの他の種類のインターネット・プロトコルベースのネットワークである可能性がある。
【０００５】
ローカル・エリア・ネットワーク（または「ＬＡＮ」）１０２−ｑは、企業システム内などの信号のローカルな配送を行い、基幹パケット・ネットワーク１０１と通信エンドポイント１０４−１から１０４−Ｓとの間のハブ、ブリッジ、およびスイッチなどのネットワーク機器を備える。ＬＡＮ１０２は、イーサーネットまたはＩＥＥＥ８０２．３などのネットワーク・プロトコルに準拠して動作する。
【０００６】
他のプロバイダ・ネットワーク１０３−ｒを用いて、基幹ネットワーク１０１のプロバイダとは異なるサービス・プロバイダの加入者のために、Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（または「ＶｏＩＰ」）などの１つまたは複数の種類のメディアを搬送し、この場合各ネットワーク１０３−ｒは、互いに異なるサービス・プロバイダに属することができる。ネットワーク１０３−ｒは、信号を１つまたは複数のソースからそれらの信号の適切な送付先に導くために用いられるルータまたはスイッチなど、１つまたは複数の伝送関連のノードを備える。例えば、ネットワーク１０３−１は公衆交換電話ネットワーク（ＰＳＴＮ：Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ）であってよく、これは、装置間の回線交換方式の通話でアナログまたはデジタルのどちらかの伝達情報を処理することができ、一方、ネットワーク１０３−２は、インターネット・プロトコルベースのネットワークまたはまったく異なるプロトコルに基づくネットワークなどの、別の種類の回線ベースまたはパケットベースのネットワークであってよいなどである。
【０００７】
基幹１０１は、ルータおよびゲートウェイなどの異なる種類のネットワーク装置を介して様々な他のネットワークと接続される。ルータ１０５−ｑは、データ・パケットを２つのネットワーク間で転送することにより、対応するＬＡＮ１０２−ｑに基幹１０１を接続するネットワーク装置である。ルータ１０５−ｑは、パケットを開放型システム間相互接続（ＯＳＩ：Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのネットワーク層（すなわち、第３層）でルーティングする。一方、ゲートウェイ１０６−ｒは、データ・パケットを２つのネットワーク間で転送することにより、基幹１０１をゲートウェイの対応するネットワーク１０３−ｒと接続するネットワーク装置である。ゲートウェイ１０６−ｒは、ゲートウェイが２つの異なる種類のネットワーク間の変換装置として働く点でルータ１０５−ｑと異なる。例えば、ゲートウェイ１０６−１は、パケット交換ネットワークである基幹ネットワーク１０１と前に説明した回線交換方式のＰＳＴＮである他のプロバイダ・ネットワーク１０３−１とを相互接続し、これら２つのネットワークの間の変換装置として働く。ゲートウェイ１０６−ｒは２つの異なる種類のネットワークを結び付けるため、その主要な機能の１つは、この２つのネットワークを跨いで使用される異なる伝送および符号化の技術間の変換を行うことである。
【０００８】
通信エンドポイント１０４−ｓ（ｓ＝１からＳ）は、デスクセット、会議装置、無線端末、デスクトップまたはポータブル・コンピュータ（すなわち、「ソフトフォン」）、インターネット電話等などの通信機器である。図示のように、エンドポイント１０４−ｓは、ローカル・エリア・ネットワーク内で動作する。エンドポイント１０４−ｓは、そのユーザからの音声信号をデジタル化し、このデジタル化した信号を伝送可能なデータ・パケットにオーディオ圧縮／解凍（または「ＣＯＤＥＣ」）回路を通してフォーマット化することができる。同様に、エンドポイント１０４−ｓのＣＯＤＥＣ回路はデータ・パケットを受信し、それらのパケット中に含まれている情報をエンドポイントのユーザによって理解可能な音声信号に変換することもできる。
【０００９】
通信エンドポイント１０４−ｓは、パーソナル・コンピュータが情報を他のコンピュータとインターネットを通して交換することができる方法と同じようなやり方で、情報を通信システム１００内の任意の他の装置と交換することができるパケットベースの装置である。その結果、エンドポイント１０４−ｓは、「サービス妨害」（ＤｏＳ）攻撃など、パーソナル・コンピュータと同一または類似のパケット攻撃の多くに対して脆弱である。図１に明らかであるように、システム１００内の任意のネットワークの中からエンドポイント１０４−ｓに向けられる可能性がある潜在的なパケット攻撃のソースが多く存在する。また、パーソナル・コンピュータと比較すると、エンドポイント１０４−ｓは、エンドポイントはネットワーキング機能と処理能力との間が本来不均衡であるために、特に脆弱である。この不均衡は、パケットの殺到が、電話のネットワーキング機能が損なわれる前にパケットベースの電話のプロセッサを容易に中断させることができることを意味する。
【００１０】
ファイアウォールは、コンピュータ・データ・ネットワーク内で使用される方法と同様に、いくつかの悪意あるパケットを除去でき、ＶｏＩＰネットワーク内で使用可能である。ファイアウォールは、実際にはソフトウェアまたはハードウェアのどちらかであり、エンドポイントに達する悪意あるパケットの量を限定することを試みるために、主にネットワークの周辺部（すなわち、「ネットワーク端」）に配置され、例えば、ファイアウォールは、ルータ１０５−１から１０５−Ｑおよびゲートウェイ１０６−１から１０６−Ｒに配置可能である。しかし、ファイアウォールをネットワーク端の装置に実装することは、様々な理由で不都合である。第１に、ネットワーク端のファイアウォールは、そのネットワーク自体の中でなく、ネットワークの端の外で発生する悪意あるトラフィックから保護することのみが可能である。第２に、Ｖｏｉｃｅ−ｏｖｅｒ−ＩＰエンドポイントを不通にするために加えられたネットワーク・トラフィックをほとんど取得できないことが多いため、ネットワーク端のファイアウォールは、特定区域内のいかなるエンドポイントに対してもトラフィックを監視するには不十分である可能性がある。また第３に、ネットワーク端のファイアウォールは、エンドポイントのみが有する可能性がある具体的な知識に欠け、その結果、ネットワーク端のファイアウォールを不完全なパケット監視装置にしてしまう。このため、エンドポイント自体に「組み込まれた」ファイアウォールが、悪意あるパケット攻撃を効果的に阻止するためにますます必要になってきている。
【００１１】
エンドポイントの性能に対する任意の悪影響を回避または最小化するようなやり方で、エンドポイントで実行するソフトウェア・ファイアウォール処理をエンドポイントに前から存在する電話通信アプリケーションに統合することが重要である。
【特許文献１】米国特許出願第１１／１５７８８０号
【発明の開示】
【課題を解決するための手段】
【００１２】
本発明は、通信エンドポイントにおける組み込みファイアウォールの実装を可能にする。具体的には、本発明の例示の実施形態は、すべてエンドポイントに常駐している、アプリケーション、ファイアウォール・エンジン、およびパケット分類ルール・データベースの間の関係を扱う。本明細書で説明する例示の実施形態の変形では、アプリケーションは、（ｉ）ローカルなメッセージ・パッシングを通してなどで、一緒に常駐しているファイアウォール・エンジンと直接交信し、（ｉｉ）メモリをファイアウォール・エンジンと共有し、かつ（ｉｉｉ）オペレーティング・システムに対してソケット・コールを行い、そのソケット・コールはミドルウェア層により傍受され、続いてミドルウェア層はそのソケット・コールに応じてルール・データベースを修正する。これらの技術の共通の特徴は、アプリケーション、ファイアウォール・エンジン、およびルール・データベースがエンドポイントに一緒に常駐していることであり、これは以下に説明されるように組み込みファイアウォールの実装に好都合である。
【００１３】
しばしば、エンドポイントに組み込まれたファイアウォールにより保護されているアプリケーションは、どの種類のトラフィックが正当であるかに関する最適な知識を有し、したがってこの知識に基づきファイアウォールを直接制御できる。アプリケーションおよびファイアウォール・エンジンのソフトウェア要素が一緒に常駐しているため、それらの間の交信は、この２つのソフトウェア要素が別々のネットワーク要素に常駐した場合より効率がより良いものである。例えば、アプリケーション・ソフトウェアは、暗号化されたパケットのロックを解除するように設計された認証コードなどの情報を外部のソースから受信することを許可されている、エンドポイントで唯一の要素であると想定されたい。例示の実施形態によると、アプリケーションは、エンドポイントに内蔵されている共有メモリを通してファイアウォール・エンジンに認証コードを容易に提供することが可能である。それに対して、従来技術におけるネットワーク端のファイアウォールは、エンドポイントのローカル・メモリにアクセスできず、したがって、端のファイアウォールは共有キーおよび認証コードを認識せず、その結果、暗号化されているように見える悪意あるパケットを除去できない。
【００１４】
アプリケーション・ソフトウェアに対する変更を回避または最小化するために、ミドルウェア層がエンドポイントでアプリケーションとオペレーティング・システムの間に挿入され、このミドルウェア層は、ソケット・コールを傍受してこの傍受されたソケット・コールに基づきルール・データベースに動的な変化を起こす。それに対して、従来技術におけるネットワーク端のファイアウォールも変更可能なルールを設定できるが、端のファイアウォールがアプリケーションと一緒に常駐していないため、ソケット・コールを捕獲することによってではなく、パケット・ストリームに基づき接続状態を探知することによりこのルール設定を行う。従来技術におけるネットワーク端のファイアウォールは、アプリケーションに対して外付けである装置により開始された接続に対してではなく、アプリケーションにより開始された外へ向かう接続に対して、変更可能なルールを設定できるだけであるということを意味しているようである。
【００１５】
本発明の例示の実施形態は、イングレス・パケットが受信され処理されるエンドポイントでファイアウォール・エンジンおよびアプリケーションを実行することと、アプリケーションの動作状態における状態変化がこのアプリケーションの実行中に起きるとき、ファイアウォール・エンジンにこの状態変化を通知することと、第１のルールを含む第１のセットのパケット分類ルールに基づき、少なくとも１つのイングレス・パケットをフィルターすることとを備え、この第１のセットのパケット分類ルールの選択はこの状態変化に基づく。
【発明を実施するための最良の形態】
【００１６】
図２は、本発明の例示の実施形態による高度な通信エンドポイント２０４−ｓの主要なハードウェア要素を図示する。エンドポイント２０４−ｓは、ネットワーク・インターフェース２０１、プロセッサ２０２、およびメモリ２０３を備え、これらは図示され以下に説明されるように相互接続されている。高度なエンドポイント２０４−ｓは、エンドポイント１０４−ｓがそのユーザのためにシステム１００にアクセスする方法とほぼ同様のやり方で、そのユーザのために通信システムにアクセスする通信機器である。例示の実施形態では、エンドポイント２０４−ｓは、ローカル・エリア・ネットワーク（すなわち、ネットワーク１０２−ｑ）内で動作し、いくつかの他の実施形態では、このエンドポイントは、異なる種類のネットワーク（例えば携帯電話等）内で動作する。エンドポイント２０４−ｓは、デスクセット、会議装置、携帯電話、デスクトップまたはポータブル・コンピュータ（すなわち、「ソフトフォン」）などを含む、様々な種類の通信機器の１つであってよい。エンドポイント１０４−ｓと同様に、通信エンドポイント２０４−ｓは、そのユーザからの音声信号をデジタル化し、そのデジタル化した信号を伝送可能なデータ・パケットへオーディオ圧縮／解凍（または「ＣＯＤＥＣ」）回路を通してフォーマット化することができる。同様に、エンドポイント２０４−ｓのＣＯＤＥＣ回路は、データ・パケットを受信し、それらのパケット中に含まれる情報をエンドポイントのユーザに理解可能な音声信号へ変換することもできる。
【００１７】
従来技術のエンドポイント１０４−ｓで示された機能に加え、通信エンドポイント２０４−ｓはさらに、本発明の例示の実施形態によれば、以下に説明され図６から図８に関するタスクを実行することができる。
【００１８】
ネットワーク・インターフェース２０１は、他のインターネット・プロトコル対応の装置からの着信パケットなど、パケット信号をその対応したネットワークから受信し、よく知られた方法でその信号内に符号化された情報をプロセッサ２０２に転送することができる。またネットワーク・インターフェース２０１は、情報をプロセッサ２０２から受信し、この情報を符号化する信号を他のインターネット・プロトコル対応の装置にネットワークを介してよく知られた方法で送信することができる。本明細書を読んだ後には、ネットワーク・インターフェース２０１を作成し使用する方法が当業者にとって明白であろう。
【００１９】
プロセッサ２０２は、インターフェース２０１からの情報の受信と、メモリ２０３内に格納された命令の実行と、メモリ２０３からのデータの読み込みおよびメモリ２０３へのデータの書き込みと、以下に説明され図６から図８に関するタスクの実行と、インターフェース２０１への情報の送信とを行うことができる汎用プロセッサである。本発明のいくつかの他の実施形態では、プロセッサ２０２は特殊用途のプロセッサであってよい。どちらの場合も、本明細書を読んだ後には、プロセッサ２０２を作成し使用する方法が当業者にとって明白であろう。
【００２０】
メモリ２０３は、プロセッサ２０２により使用される命令およびデータを格納する。より具体的には、メモリは、以下に図３から図５に関して説明され、プロセッサ２０２により実行および使用される、ソフトウェア・アプリケーション、ファイアウォール・エンジン、ルール・データベース、ミドルウェア層、およびオペレーティング・システムを格納する。メモリ２０３は、ダイナミック・ランダムアクセス・メモリ（ＲＡＭ）、フラッシュ・メモリ、ディスク・ドライブ・メモリなどの任意の組合せであってよい。本明細書を読んだ後には、メモリ２０３を作成し使用する方法が当業者にとって明白であろう。
【００２１】
図３から図５は、本発明の例示の実施形態の異なる変形による、高度な通信エンドポイント２０４−ｓの主要なソフトウェア要素を図示する。各図は、アプリケーション、ファイアウォール・エンジン、およびルール・データベースを図示し、これらすべては、エンドポイント２０４−ｓに常駐している。図示されたアプリケーションは、エンドポイントにより処理される通話のための通話制御を行うなど、エンドポイント自体の目的と一致するいくつかの有用なタスクまたはタスク群を実行する。図示されたファイアウォール・エンジンは、エンドポイント２０４−ｓが攻撃にさらされることを抑えるために、イングレス（すなわち着信）パケット、およびおそらくエグレス（すなわち発信）パケットのフィルターとして機能する。図示されたパケット分類ルール・データベースは、フィールド、値、および各パケット分類のためのアクションで構成され、ファイアウォールにより使用されて各パケットを調べる方法およびとるべき適切なアクションを決定する。
【００２２】
図３から図５のそれぞれは、存在する他のソフトウェア要素に対して、組み込みファイアウォールが実装できる方法の異なる変形を表す。図３は、アプリケーションがその現在の状態をファイアウォール・エンジンに信号で伝える機能を有する第１の変形を表す。図４は、アプリケーションがルール・データベースにデータを追加する機能を有する第２の変形を表す。また図５は、ミドルウェア層または同等物がルール・データベースにデータを追加する機能を有する第３の変形を表す。本明細書を読んだ後に当業者が理解するように、１つまたは複数の説明した変形が、同一のエンドポイントに存在でき、互いにやり取りすることができる。さらに、１つまたは複数の説明された変形は、エンドポイントに他のソフトウェア要素と共に組み込まれたファイアウォールの他の変形と共に存在できる。
【００２３】
図３は、本発明の例示の実施形態の第１の変形による、高度な通信エンドポイント２０４−ｓの主要なソフトウェア要素を図示する。エンドポイント２０４−ｓは、アプリケーション３０１、ファイアウォール・エンジン３０２、およびルール・データベース３０３を備え、これらは、図示され以下に説明されるように相互に関係している。
【００２４】
この第１の変形では、アプリケーション３０１は異なった動作状態を有し、ファイアウォールのルールの異なるセットが各状態に適用される。アプリケーション３０１は、状態の変化をファイアウォール・エンジン３０２に信号で伝えることができる。エンジン３０２は、各着信パケットに適用されるルール・データベース３０３からのルールを現在の状態に適用するサブセットにのみに限定し、またエンジン３０２は、適用可能なルール・セットにより明示的に許可されないパケットを放棄する。ファイアウォール・エンジン３０２が処理する必要があるルールのセットの減少は、ファイアウォールの効率を増加させる。
【００２５】
例えば、エンドポイント２０４−ｓで稼動している電話のアプリケーションは、少なくとも以下の動作状態を呈することができる。
ｉ．アプリケーション３０１の起動状態であり、この状態では、ゲートキーパなどの特定のネットワーク・ノードからのシグナリング・メッセージ、およびおそらく新しいロード・イメージを含むトリビアル・ファイル転送プロトコル（ＴＦＴＰ：ｔｒｉｖｉａｌ  ｆｉｌｅ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）パケットのみが受け入れられるものとする。
ｉｉ．ディスカバリ状態であり、この状態では、ゲートキーパを探して登録するエンドポイント２０４−ｓと一致するシグナリング・メッセージのみが受け入れられるものとする。
ｉｉｉ．オンフック状態であり、この状態では、ゲートキーパからのシグナリング・メッセージ（例えばハートビートなど）のみが受け入れられるものとする。
ｉｖ．オフフック状態であり、この状態では、メディアおよびシグナリングのトラフィックのみが許可されるものとする。
【００２６】
図４は、本発明の例示の実施形態の第２の変形による、高度な通信エンドポイント２０４−ｓの主要なソフトウェア要素を図示する。エンドポイント２０４−ｓは、アプリケーション３０１、ファイアウォール・エンジン３０２、およびルール・データベース３０３を備え、これらは図示され以下に説明されるように相互に関係している。
【００２７】
この第２の変形では、アプリケーション３０１は、どのパケットが正当であるかを決定するためのそれ自体のルールを有しており、したがって、それらのパケットを特定することができる唯一のエンティティである。この変形では、アプリケーション３０１は、ルール・データベース３０３に直接データを追加し、それによりこれらのルールを実施できる。例として、音声パケットの信頼性、完全性、および秘密を保証するメカニズムであるＳｅｃｕｒｅ  Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（ＳＲＴＰ）を考えられたい。アプリケーション３０３は、すべての音声パケットに対して、通話準備の間にネゴシエーションされた共有キーに基づく４バイトの認証コードを受信することを期待する。パケットで受信される認証コードが期待されたものでない場合、そのパケットは不当であると考えられ、放棄される。これはファイアウォール・ルールとして直接実装でき、着信音声パケットはその認証コードがルールで指定されているもののうちの１つと一致する場合のみ許可される。例示の実施形態によると、アプリケーション３０１は、ファイアウォール・エンジン３０２によりアクセス可能なメモリ内のルール・データベース３０３に認証コードのルールを書き込む。エンジンは、様々なパケットの認証コードをそのリストに対して一致させる。
【００２８】
図５は、本発明の例示の実施形態の第３の変形による、高度な通信エンドポイント２０４−ｓの主要なソフトウェア要素を図示する。エンドポイント２０４−ｓは、アプリケーション３０１、ファイアウォール・エンジン３０２、ルール・データベース３０３、ミドルウェア層５０４、およびオペレーティング・システム層５０５を備え、これらは、図示され以下に説明されるように相互に関係している。
【００２９】
この第３の変形では、アプリケーション３０１およびファイアウォール３０２は一緒に常駐しており、したがってエンドポイント２０４−ｓでミドルウェア層５０４が存在することが可能となる。ミドルウェア層５０４は、当技術分野で知られるように、オペレーティング・システム層５０５へアプリケーション３０１により行われるソケット・ライブラリ・コールを傍受することにより、動的にルール・データベース３０３にデータを追加する。
【００３０】
一例として、アプリケーション３０１がリモート装置に接続するために「ｃｏｎｎｅｃｔ（ｓｏｃｋｅｔ，ｉｐ，ｐｏｒｔ）」コールを送出すると、ミドルウェア５０４は、このコールを傍受して、ｒｅｍｏｔｅ（ｉｐ、ｐｏｒｔ）アドレスからのパケットを許可するために一時的にデータベース３０３にルールを設定する。接続ハンドシェイクが成功する場合、ミドルウェア層５０４はルールが存続することを許すが、その他の場合は、ミドルウェア層５０４はデータベースからルールを削除する。同様に、アプリケーション３０１が後にソケットを閉じるためにコールを送出すると、ミドルウェア層５０４は、ルールを削除する。
【００３１】
第二の例として、アプリケーション３０１がポート１２３４上でパケットを受信可能にするために「ｂｉｎｄ（ｓｏｃｋｅｔ，ｐｏｒｔ＝１２３４）」コールを行うと、ミドルウェア層５０４は、そのコールを傍受してポート１２３４でその装置行きのパケットを許可するためにルール・データベース３０３にルールを追加する。アプリケーション３０１が後にそのソケットを閉じるためにコールを送出すると、ミドルウェア層５０４はそのルールをデータベースから削除する。このように、ミドルウェア層５０４は、アプリケーション・プログラマに負荷をかけることなく、データベース３０３にルールを追加し、またはデータベース３０３からルールを削除することができる。
【００３２】
図６から図８は、本発明の例示の実施形態による、通信エンドポイント２０４−ｓにより実行される主要なタスクの流れ図を図示する。これらの主要なタスクは、エンドポイント２０４−ｓでのイングレス・パケットの処理に関わる。当業者が理解するように、図６から図８にあらわれるタスクのいくつかは、並列にまたは図示されたものとは異なる順序で実行可能である。
【００３３】
図６は、ファイアウォール・エンジン３０２またはルール・データベース３０３がアップデートされるべきかを決定する際にエンドポイント２０４−ｓにより実行されるタスクの主なセットを図示する。タスク６０１で、エンドポイント２０４−ｓはファイアウォール・エンジン３０２およびアプリケーション３０１の実行を開始し、エンジン３０２は少なくとも１つのルールを含むルール・データベース３０３を使用する。
【００３４】
タスク６０２で、エンドポイント２０４−ｓはエンジン３０２またはデータベース３０３がアップデートされる必要があるかを調べる。アップデートが起きる必要があるかをエンドポイント２０４−ｓが調べる時点は、例えば、２００５年６月２１日に出願され、本明細書に参照により組み込まれる米国特許出願第１１／１５７８８０号に説明されている速度ベース・ルール・アップデート技術に基づくことができる。エンジン３０２またはデータベース３０３がアップデートされる必要がある場合、タスク実行はタスク６０３に進む。その他の場合、タスク実行はタスク６０４に進む。
【００３５】
タスク６０３で、エンドポイント２０４−ｓはエンジン３０２またはデータベース３０３をアップデートする。タスク６０３は以下に図７に関して詳細に説明される。
タスク６０４で、エンドポイント２０４−ｓのファイアウォール・エンジン３０２は１つまたは複数のパケットにアクションを行う。タスク６０４は以下に図８に関して詳細に説明される。次にタスク実行はタスク６０２に戻る。
【００３６】
図７は、上述のタスク６０３の主要なサブタスクを図示し、これらのサブタスクは、ファイアウォール・エンジン３０２およびルール・データベース３０３のうちの１つまたは両方をアップデートすることに関わる。タスク７０１で、アプリケーション３０１は状態変化がその動作状態に起こったかを決定する。状態変化が起こっている場合、タスク実行はタスク７０２に進む。その他の場合、タスク実行はタスク７０３に進む。
【００３７】
タスク７０２で、アプリケーション３０１は、上述され図３に関して説明されたように、ファイアウォール・エンジン３０２にこの状態変化を通知する。いくつかの実施形態では、この通知は、ファイアウォール・エンジン３０２が知る必要がある状態変化のそれぞれに対して、その状態変化が起こるアプリケーション・プログラムに追加のコマンド・ラインを加えることにより可能となる。
【００３８】
タスク７０３で、アプリケーション３０１が、ネットワークから受信しているイングレス・パケットがこれから先も所定の特性を示すものであると予想する場合、タスク実行はタスク７０４に進む。言い換えれば、アプリケーション３０１は場合によっては、ファイアウォール・エンジン３０２が認識していないパケット・トラフィックの特性を認識することができる。いくつかの実施形態では、この所定の特性は暗号化であり、イングレス・パケットは暗号化ベース・プロトコル（例えば、Ｓｅｃｕｒｅ  Ｒｅａｌ−ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌなど）に準拠してフォーマット化される。アプリケーション３０１が所定の特性を持つパケットを予想していない場合、タスク実行は代わりにタスク７０５に進む。
【００３９】
タスク７０４で、アプリケーション３０１は、パケット・トラフィックに関して知る位置にいる唯一のものであり、上述され図４に関して説明されたように、ルールをデータベース３０３に格納することによりエンジン３０２が利用可能なルール（例えば、「特定の認証コードを示すパケットを許可する」など）を作成する。
【００４０】
タスク７０５で、ソケット・コールが行われたことをミドルウェア層５０４が検知する場合、タスク実行はタスク７０６に進む。その他の場合、タスク実行はタスク６０４に進む。
【００４１】
タスク７０６で、ミドルウェア層５０４はアプリケーション３０１により行われるソケット・コールを傍受する。言い換えれば、層５０４は、オペレーティング・システム層５０５へのソケット・コールを完了させることに加えて、ルール・データベース３０３に関するアクションを行う。
【００４２】
タスク７０７で、ミドルウェア層５０４は、上述され図５に関して説明されたように、ソケット・コールに基づくルールをデータベース３０３に設定するアクションを行う。タスク実行は次にタスク６０４に進む。
【００４３】
図８は上述のタスク６０４の主要なサブタスクを図示し、これらのサブタスクは、１つまたは複数のパケットに対してアクションを行うことに関わる。タスク８０１で、ファイアウォール・エンジン３０２は、前に説明したように、設定され、エンジン３０２に利用可能な１つまたは複数のルールを備えているパケット分類ルールのセットに基づき、１つまたは複数のイングレス・パケットをフィルターする。
【００４４】
いくつかの実施形態では、使用するパケット分類ルールの特定のセットの選択は、エンジン３０２がタスク７０２で通知される状態変化に基づく。いくつかの他の実施形態では、使用されるルールの特定のセットは、遷移状態（例えば、エンドポイント２０４−ｓでのオンフック状態からオフフック状態へ、など）にも基づく。フィルターされたパケットは、パケット分類ルールにより通過を許可されるか放棄されるかのどちらかであることができる。
【００４５】
タスク８０２で、いくつかの実施形態ではエンジン３０２は、外付けの侵入検知システムまたは侵入防止システムなどの、エンドポイント２０４−ｓに外付けである装置に通知する。次に外付けシステムは、ネットワーク管理者に警告するか、または危険なネットワーク・トラフィックをルーティングし、攻撃を受けているネットワーク領域を迂回させるなどの適切なアクションを行うことができる。
【００４６】
タスク８０３で、いくつかの実施形態ではエンジン３０２は、エンドポイント２０４−ｓでネットワーク・インターフェースと一緒に常駐しているということをうまく利用して、それによりパケット攻撃がエンドポイント２０４−ｓで起こっていることを検知し、その結果、ネットワーク・インターフェース２０１を使用不可にする。この使用不可にすることにより、エンドポイント２０４−ｓが攻撃トラフィック負荷のこの上ない強度により圧倒されることを防ぐ。エンジン３０２は、周期的にネットワーク・インターフェースを開いて攻撃トラフィックが強度において軽減されたかを決定でき、決定されると通常の操作が再開できる。
【００４７】
いくつかの実施形態ではエンジン３０２は、特定の時間間隔でネットワーク・インターフェース２０１を使用不可にする。例えばこの時間間隔は、パケット攻撃の強度などの検知されたパケット攻撃の特性に基づくことができる。
【００４８】
タスク８０４で、いくつかの実施形態ではエンジン３０２は、アプリケーション３０１が新たな脆弱性を有していると決定されているときに、かつアプリケーション３０１がこの脆弱性を修復するためにパッチをあてられる前に、一時的な手段として攻撃パケットをブロックする新しいルールを受け入れる。このアプリケーションがパッチをあてられると、このルールはもはや必要ではなく、エンジン３０２はこのルールを削除できる。
【００４９】
タスク８０５で、エンジン３０２は、外部システムにエンドポイント２０４−ｓで実行されているソフトウェアの現在の状態に関して報告する。この状態は、エンドポイント２０４−ｓで稼動しているソフトウェアのバージョン番号などのものを表す。この外部システムは、この情報を既知の脆弱性のデータベースに対して一致させ、それによりエンドポイント２０４−ｓで稼動しているこのソフトウェアが任意の攻撃に影響を受けやすいかを決定することができる。この情報を使用して、脆弱な装置を隔離することができる。例えば、脆弱なエンドポイントは、ゲートキーパに登録することは許可されず、登録することを控えなければならない。
【００５０】
上述の実施形態は単に本発明の例示であり、上述の実施形態の多くの変形は本発明の範囲から逸脱することなく当業者により考案可能であることが理解されよう。例えば、本明細書では、多数の具体的な詳細が本発明の例示の実施形態の十分な説明および理解を与えるために提供される。しかし、当業者は、本発明が１つまたは複数のそれらの詳細なしに、または他の方法、材料、構成要素等と共に実施可能であることを理解されよう。
【００５１】
さらに、いくつかの具体例では、よく知られた構造、材料または操作は、例示の実施形態の態様を曖昧にすることを避けるために、詳細に図示または説明されない。図に示された様々な実施形態は例示であり、正確に描かれているわけではないことが理解されよう。本明細書にわたる「一実施形態」または「実施形態」または「いくつかの実施形態」という言及は、実施形態（群）と関連して説明された特定の機能、構造、材料または特性が本発明の少なくとも１つの実施形態に含まれるが、すべての実施形態に含まれるわけではないことを意味する。したがって、本明細書にわたる様々な場所の「一実施形態において」、「実施形態において」、または「いくつかの実施形態では」という言葉の出現は、すべて同一の実施形態を指しているわけではない。さらに、この特定の機能、構造、材料または特性は、１つまたは複数の実施形態において任意のふさわしい方法で結合可能である。したがって、このような変形は、特許請求の範囲およびその均等物の範囲の中に含まれることを意図する。
【図面の簡単な説明】
【００５２】
【図１】従来技術における通信システム１００の概略図である。
【図２】本発明の例示の実施形態による、高度な通信エンドポイント２０４−ｓの主要なハードウェア要素を示す図である。
【図３】例示の実施形態の第１の変形による、エンドポイント２０４−ｓの主要なソフトウェア要素を示す図である。
【図４】例示の実施形態の第２の変形による、エンドポイント２０４−ｓの主要なソフトウェア要素を示す図である。
【図５】例示の実施形態の第３の変形による、エンドポイント２０４−ｓの主要なソフトウェア要素を示す図である。
【図６】本発明の例示の実施形態による、常駐しているファイアウォール・エンジンまたはルール・データベースがイングレス・パケットを管理する目的でアップデートされるべきであると決定する際に、エンドポイント２０４−ｓにより実行されるタスクのセットを示す図である。
【図７】常駐しているファイアウォール・エンジンおよびルール・データベースのうちの１つまたは両方をアップデートすることに関わる主要なタスクを示す図である。
【図８】１つまたは複数のイングレス・パケットに対してアクションを行うことに関わる主要なサブタスクを示す図である。
【図１】
2008154236.tif 000003
【図２】
2008154236.tif 000004
【図３】
2008154236.tif 000005
【図４】
2008154236.tif 000006
【図５】
2008154236.tif 000007
【図６】
2008154236.tif 000008
【図７】
2008154236.tif 000009
【図８】
2008154236.tif 000010