(58)【調査した分野】(Int.Cl.,DB名)
論理回路が、第1のネットワーク通信を分析して、サービス、前記サービスに関連するアドレス、および前記サービスにより使用され且つネットワークの第1の部分及び第2の部分の間の通信が許可されるように開いているポートを識別し、前記第1のネットワーク通信は、セキュリティの第1のレベルを有するネットワークの第1の部分内から発信され且つ前記第1のレベルとは異なるセキュリティの第2のレベルを有する前記ネットワークの第2の部分へ送信されることと、
前記論理回路が、ファイアウォールによる使用のための、通信を許可するために開くポートを示す例外リストへのエントリとして、前記サービスの識別子、前記アドレス、および前記ポートを格納することと、
前記論理回路が、前記エントリが前記例外リストに存在していた時間の量を閾値時間と比較することと、
前記論理回路が、前記エントリが前記例外リストに存在していた時間の量が前記閾値時間を超えた時に、前記閾値時間に基づいて、前記例外リストから前記エントリを除去することと、
第1のネットワーク通信が、前記アドレスおよび第1のポートに合致し、かつ前記サービスの前記識別子に合致しないとき、アクティブでない前記第1のネットワーク通信の閾値時間および有効でないpingフラグに基づき、前記第1のネットワーク通信を、前記第1のネットワーク通信により特定されたアドレスおよび第2のポートへ転送することと、
を含む方法。
前記ネットワークの前記第1の部分の外側から受信された第2のネットワーク通信を、前記サービスの前記識別子、前記アドレス、および前記ポートと比較することをさらに含む、請求項1に記載の方法。
前記第2のネットワーク通信が、前記サービスの前記識別子、前記アドレス、および前記ポートに合致するとき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定されたアドレスおよびポートへ転送することをさらに含む、請求項2に記載の方法。
前記第2のネットワーク通信が、前記アドレスおよび前記ポートに合致し、かつ前記識別子に合致しないとき、前記第1のネットワーク通信の閾値時間またはpingフラグのうち少なくとも1つに基づき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定されたアドレスおよび前記ポートへ転送することをさらに含む、請求項2に記載の方法。
前記第2のネットワーク通信が、前記サービスに対応する前記アドレスおよび前記ポートに合致しないとき、前記第2のネットワーク通信を放棄することをさらに含む、請求項2に記載の方法。
前記通信フィルタが、前記ネットワークの前記第1の部分の外側から受信された第2のネットワーク通信を、前記例外リストの前記エントリと比較する、請求項7に記載の機器。
前記通信フィルタが、前記第2のネットワーク通信が前記例外リストの前記エントリに合致するとき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定されたアドレスおよびポートへ転送する、請求項8に記載の機器。
前記通信フィルタが、前記第2のネットワーク通信が前記アドレスおよび前記ポートに合致し、かつ前記識別子に合致しないとき、前記第1のネットワーク通信の閾値時間またはpingフラグのうち少なくとも1つに基づき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定された前記アドレスおよび前記ポートへ転送する、請求項8に記載の機器。
前記通信パーサが、前記第1のネットワーク通信に基づき、前記pingフラグの値を識別し、かつ前記ファイアウォール例外発生器が前記第1のネットワーク通信に基づき、前記pingフラグの値を格納する、請求項10に記載の機器。
前記指示が、前記プロセッサに、前記ネットワークの前記第1の部分の外側から受信された第2のネットワーク通信を、前記サービスの前記識別子、前記アドレス、および前記ポートと比較することをさらに実行させる、請求項14に記載の記憶媒体。
前記指示が、前記プロセッサに、前記第2のネットワーク通信が、前記サービスの前記識別子、前記アドレス、および前記ポートに合致するとき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定されたアドレスおよびポートへ転送することをさらに実行させる、請求項15に記載の記憶媒体。
前記指示が、前記プロセッサに、前記第2のネットワーク通信が、前記アドレスおよび前記ポートに合致し、かつ前記識別子に合致しないとき、前記第1のネットワーク通信の閾値時間またはpingフラグのうち少なくとも1つに基づき、前記第2のネットワーク通信を、前記第2のネットワーク通信により特定された前記アドレスおよび前記ポートへ転送することをさらに実行させる、請求項15に記載の記憶媒体。
前記指示が、前記プロセッサに、前記第2のネットワーク通信が、前記サービスに対応する前記アドレスおよび前記ポートに合致しないとき、前記第2のネットワーク通信を放棄することをさらに実行させる、請求項15に記載の記憶媒体。
【発明を実施するための形態】
【0014】
他のコンポーネントの中でも、ハードウェア上で実行されるソフトウェアおよび/またはファームウェアを含む、例示の方法、装置、および製品を以下に説明するが、これらの例は説明のためにすぎず、限定とみなされるべきものではない。たとえば、任意の、またはすべてのハードウェア、ソフトウェア、およびファームウェアコンポーネントは、それらをハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアの任意の組み合わせで具現化できる可能性があることが想定される。したがって、例示の方法、装置、および製品を以下に説明しているが、当業者によって容易に理解されるように、ここに示された例は、それらの方法、装置、および製品を実装する唯一の方法ではない。
【0015】
ファイアウォールは、通信ネットワークにセキュリティを提供するために広く利用されており、一般に、別のネットワークおよび/または装置を発信元とする通信による通信ネットワークへの不正アクセスを防止する目的で使用される。典型的には、ファイアウォールは、保護対象の、または相対的にセキュリティレベルが高いネットワークを相対的にセキュリティレベルが低い別のネットワークに接続する地点に、物理的または論理的に配置される。いくつかのシステムまたはネットワークでは、複数のセキュリティレベルが関与しており、したがって、複数のファイアウォールおよび/またはその他のセキュリティ設備を含むことがある。典型的には、これらのより複雑なシステムまたはネットワークにおいて、複数のセキュリティレベルは、安全性を高めた異なるレイヤーまたはゾーンとみなされる。連続する各レイヤー、ゾーンまたはレベルに対してセキュリティレベルが高くなると、どのエンティティが次のより高いセキュリティレイヤー、ゾーンまたはレベルと通信してもよいかということに関連した制限が強まり、したがって、通信を許可されるエンティティの数が一般的に減少する。
【0016】
企業の情報技術(IT)ネットワークで一般的に使用されている汎用ファイアウォールは非常に複雑な装置であり、その導入、構成および保守を適切に行うためにはITに関する相当な経験が必要とされる。たとえば、そのような汎用ファイアウォールは、どの通信が無許可であり、したがってブロックすべきかを判断するためのセキュリティ機構として、通信ルールを使用する。より具体的には、ファイアウォールを横断しようとする(すなわちファイアウォールの一方の側のより低いセキュリティレベルからファイアウォールによって保護された高セキュリティ側に通過しようとする)各通信パケットについて、ファイアウォールの内部で確立されたルールに照らした問い合わせおよび評価が実行される。ファイアウォールを通過することが許可される通信パケットのルールを満たさないパケットはすべて拒否されてブロックされる。
【0017】
これらの汎用ファイアウォールによって使用されるルールは、ファイアウォールのセキュア側にあるアプリケーション、コンピュータおよび/または装置にアクセスする各アプリケーション、コンピュータまたはその他の装置について、経験的に作成される。そのようなルール作成は、ファイアウォール構成プロセスの一部とみなされてもよいものであり、高度に熟練したIT要員および/またはネットワーク構築/データ分析の相当な経験を有するその他の要員によって実行されてもよい。そのルール作成プロセスは、多くの場合、制限されていない動作モードにおける通信トラフィックを監視して、許可された通信の各々の特徴を判定したのち、ファイアウォールが使用するための適切なルールを作成することを含む。そのルールに基づき、これらの許可された通信だけがファイアウォールを通過できることになる。より一般的には、このルール作成プロセスは、ルールに組み込まれたものとして、許可された各通信タイプに関するフィンガープリントまたは署名の作成とともに、それらのフィンガープリントまたは署名を使用して無許可の通信の問い合わせおよびブロックを実行することを目指す。
【0018】
上記のルール作成プロセスにより、ほとんどすべての種類のネットワーク、システムまたはアプリケーションに汎用ファイアウォールを適用できるかなりの柔軟性が提供されるが、ファイアウォールが誤って構成されない(たとえばルールが適切に作成される)ようにするためには相当な技術が必要とされる。ファイアウォールの不適切な構成は、場合によっては、ファイアウォールによって保護すべきネットワークへの不正アクセスおよび/または許可された通信のブロックを引き起こすことがある。さらに、特定目的ファイアウォールが使用されてもよい対象が絞られたアプリケーションでは、汎用ファイアウォールによって提供される柔軟性または汎用性は必要とされない。
【0019】
プロセス制御システムの場合には、汎用ファイアウォールを使用して、たとえば、プロセス制御システムネットワークと、そのプロセス制御システムに関連した工場または企業内部のより汎用的なネットワークネットワーク間のセキュリティを提供することは、汎用ファイアウォールに関する上述の困難を生じさせる。しかし、プロセス制御環境においては、これらの問題がさらに悪化する。多くの場合、これらの汎用ファイアウォールがプロセス区域の外部(たとえば遠隔地)のITその他の要員によって保守され、したがって、プロセス制御システムのタイムクリティカルなプロセスを維持する必要に応じて利用できるとはかぎらないためである。
【0020】
したがって、本明細書に説明する例示の方法、装置、および製品は、プロセス制御システムまたは環境で使用するための特定目的ファイアウォールを提供するものである。より具体的には、本明細書に説明する例示ファイアウォールにより、汎用ファイアウォールに関して先に述べたようにファイアウォールを構成するためにルールを作成する必要性が排除される。それに代わるものとして、本ファイアウォールは、アプリケーションと装置間の通信接続を確立するために使用される情報を含むアプリケーションのリストを(たとえばメモリ内に)保持する。それらのアプリケーションおよび装置は、典型的にはプロセス制御システムまたは工場全体に分散されている。そのリストのアプリケーション内部に格納される情報は、他のデータの中でも、許可された各通信タイプに関する通信を特徴づける情報(たとえばルール)を含んでもよい。
【0021】
いくつかの例において、その構成プロセスには、利用可能なアプリケーションのグラフィックおよび/またはテキストリスト(たとえばドロップダウンリスト)を提示するためのグラフィカルユーザーインタフェースが含まれ、提示される各アプリケーションは、ファイアウォールの反対側にあるアプリケーション、コンピュータおよび/または装置間の特定の通信接続に対応している。ファイアウォールを構成する場合、ユーザーは1つ以上のアプリケーションを単純に選択(たとえばマウスまたはその他のポインティングデバイスを使用)すればよく、これに応答して、ファイアウォールがその選択アプリケーションに関するルールのインスタンスを作成する。グラフィカルユーザーインタフェースは、アウトバウンドおよびインバウンド接続、侵入防止、スキャン保護などの各種の接続に関するさまざまな選択を提供してもよい。さらに、各選択アプリケーションについて、グラフィカルユーザーインタフェースは、選択アプリケーションに関する通信をロギングすること、および/または特定の時間(すなわち一時的に許可された接続)の後で選択アプリケーション(およびそのルール)を失効させることをユーザーが指定できるようにしてもよい。
【0022】
アプリケーションのリストをファイアウォールに(たとえば製造時に)事前投入してもよく、あるいは、たとえばファイアウォールが接続されたセキュアな通信ネットワーク経由、構成ステーション経由、ハンドヘルド装置経由などで、あとからファイアウォールにダウンロードしてもよい。また、本明細書に説明する例示ファイアウォールにより、ユーザーはアプリケーションのリストに追加するためのアプリケーションを作成することができる。汎用ファイアウォールに関して上述のようにルールを作成したのち、そのルールをファイアウォールにロードすることによって、かかる追加アプリケーションを追加してもよい。これにより、ファイアウォールは、グラフィカルユーザーインタフェースの手段により、それらの追加アプリケーションを事前投入アプリケーションとともに提示することができる。
【0023】
本明細書に説明する例示ファイアウォールは、分散コンポーネントオブジェクトモデル(DCOM)通信も処理する。そのためにファイアウォール内の未使用ポートを開いて露出する必要はない。汎用ファイアウォールでは、DCOM通信が従来の方法で処理され、動的な(恒久的ではない)ポート割り当てプロセスを容易にする目的でファイアウォール内の多数のポートが開いたままにされてもよい。これは従来のDCOM接続の確立の一部である。言い換えれば、汎用ファイアウォールは、DCOM通信の処理のためのルールを含んでもよく、そのルールはその目的のためにファイアウォール内で開放されたままになっているポートを動的に割り当てる。しかし、その目的で多数のポートを開いたままにすると、ファイアウォールを抜けて不正アクセスを得るために使用される可能性があるポートを露出させることになる。
【0024】
上述のようなファイアウォール内でDCOM通信を処理するための既知の手法とは対照的に、本明細書に説明する例示ファイアウォールは、ファイアウォールを通じてDCOM通信が確立される際にそれを自動的に検出し、所定のポートを動的に開いたのち、通信が終了した時点でそのポートを閉じる。このようにして、上述の既知の手法のように、その後の動的割り当てのためにファイアウォール内で複数のポートが開放されたたままにされることはない。結果的に、本明細書に説明する例示ファイアウォールは、セキュリティが大幅に向上したシステムを提供する。
【0025】
次に
図1に移ると、プロセス制御環境100は、本明細書に説明する例示ファイアウォール102を含む。例示ファイアウォール102は、プロセス制御環境100のプロセス区域またはレベル104と工場または企業レベル106との間の通信を仲介する。より具体的には、例示ファイアウォール102は、プロセスレベル104と関連づけられた相対的に高セキュリティのネットワーク112に向けて、相対的に低セキュリティのネットワーク108および110を介してファイアウォール102に送られる、無許可の通信をブロックする。より低セキュリティのネットワーク108および110は、もっとも低いセキュリティレベルの企業ネットワーク110、次にもっとも高いセキュリティレベルの工場ネットワーク108、および最高セキュリティレベルのプロセス制御ネットワーク112に対応する。
【0026】
プロセスレベル104には、コントローラ、入出力装置、およびフィールド装置116に、それらの装置専用のローカルエリアネットワーク118を介して通信可能に結合された、1つ以上のワークステーションまたはアプリケーションステーション114が含まれてもよい。工場または企業レベル106には、各種のデータサービス(たとえばヒストリアンサービス、アンチウイルスサービス、ソフトウェアパッチサービスなど)を実行してもよい、制御アクセスワークステーション120および122ならびに1つ以上のサーバー124、126および128が含まれてもよい。工場または企業レベル106には、会計機能、企業統合機能などを実行してもよい、企業レベルワークステーション130および132も含まれてもよい。また、汎用ファイアウォール134は、企業レベルワークステーション130および132と、制御アクセスワークステーション120、122およびサーバー124、126、128と関連づけられたネットワークとの間の通信を仲介してもよい。
【0027】
したがって、
図1の例示プロセス制御環境100は3つのセキュリティレベルを含む。すなわち、もっとも低いセキュリティレベルは企業レベルのワークステーション130および132に対応し、次にもっとも高いセキュリティレベルは制御アクセスワークステーション120、122およびサーバー124、126、128に対応し、最高レベルのセキュリティはプロセス区域104に対応する。本開示の教示に従い、例示ファイアウォール102は、上述の、および詳しくは
図2〜
図8に関連して説明する機能を提供する。さらに、例示ファイアウォール102は
図1のプロセス制御環境100に関連して説明されているが、任意の他の既存のプロセス制御環境または今後開発されるプロセス制御環境に対して、例示ファイアウォール102をより一般的に実施されてもよい。
【0028】
図2は、
図1の例示ファイアウォール102を構成するために使用されてもよい例示グラフィカルユーザーインタフェース200を示す。より具体的には、例示グラフィカルユーザーインタフェース200は、ファイアウォール102のメモリ(図示せず)に格納された命令、コードまたはソフトウェアをファイアウォール102の処理ユニットまたはプロセッサを介して実行することによって生成されてもよい。1つの例では、コンピュータ(たとえばラップトップ、ハンドヘルド装置など)を(たとえば有線接続、無線などを介して)ファイアウォール102に結合し、ユーザーが例示グラフィカルユーザーインタフェース200を視認できるようにしてもよい。代替的または追加的に、ユーザーがワークステーション120、122、130、および/もしくは132ならびに/またはアプリケーションステーション114など、
図1に示した1つ以上のコンピューティング装置を介し、ユーザーインタフェース200を呼び出して視認できるようにしてもよい。
【0029】
いずれの場合も、例示グラフィカルユーザーインタフェース200により、ユーザーは、プルダウンリストまたはメニュー204を介して1つ以上のアプリケーション202を選択することができる。利用可能な各アプリケーション202は、許可された通信接続に対応するとともに、許可されたそれぞれの通信がファイアウォール102を横断できるようにするためにファイアウォール102が使用する基本的なルールまたはルールセットに対応している。アプリケーション202は、ファイアウォール102の製造時またはその他ファイアウォール102の構成以前の任意の時点で、ファイアウォール102に事前投入または格納されてもよい。さらに、既知の手法でルールを作成したのち、ユーザーは1つ以上のプルダウンリスト204内のアプリケーション202を追加することができる。
【0030】
例示グラフィカルユーザーインタフェース200は、ユーザーが選択して、任意の選択された接続またはアプリケーション202をロギングさせてもよいログチェックボックス206も含む。さらに、グラフィカルユーザーインタフェース200は、選択されたアプリケーションを有効化するためのユーザー選択であってもよい有効化チェックボックス208、および1つ以上の選択されたアプリケーション(たとえばルール)202を所定の(たとえばユーザー指定の)時間後に無効化するために選択されてもよい「失効」チェックボックス210も含んでもよい。
【0031】
図3は概略
図300を示し、
図4は
図1の例示ファイアウォール102により、DCOM通信が処理されてもよい例示の方法またはプロセスを示すフローチャートである。
図3と
図4の両方を参照すると、最初にネットワーク管理者302がファイアウォール102(
図1)と通信可能に結合され、ファイアウォール102の特定のポートを介して、相対的に低セキュリティの外部ネットワーク306から、あるいはネットワークのセキュリティ保護部分の外部から、内部もしくは高セキュリティのネットワーク304またはネットワークのセキュリティ保護部分にアクセスできるようにファイアウォール102が構成される(ブロック400)。
【0032】
高セキュリティの内部ネットワーク304に接続されたサーバー308は、ファイアウォール102を通じて、外部の、より低セキュリティのネットワーク306に接続された外部コンピュータ310に通信309を送る(ブロック402)。この通信309には、外部コンピュータ310に関する情報が含まれる。これは、内部ネットワーク304、具体的にはサーバー308との通信にブロック400で指定されたポートを使用するようコンピュータ310に指示するための情報である。さらに、ファイアウォール102は、この通信309を解析するとともに、解析済みの通信309から抽出された情報に基づき、指定ポート上の一時的接続を介して、ファイアウォール102が外部ネットワーク306と内部ネットワーク304の通信を一時的に可能にするようにさせる(ブロック404)。より具体的には、ブロック404における通信309の解析は、要求された通信がDCOM通信であるという自動的な判定を含んでもよい。
【0033】
次に外部コンピュータ310が指定のポートを介してサーバー308に接続し、サーバー308内部のDCOMサービスへの接続要求312を行う(ブロック406)。ファイアウォール102はその接続を許可し、したがって、外部コンピュータ310とサーバー308は、ファイアウォール102を通じてDCOM通信314を交換することができる(ブロック406)。
【0034】
図3および
図4の例は、保護された、またはより高セキュリティのネットワークと相対的に低セキュリティのネットワークの間で、ファイアウォール102の複数のポートを開放または露出する必要なしに、DCOM通信を確立するために例示ファイアウォール102を使用してもよい1つの態様を表しているにすぎない。結果的に、例示ファイアウォール102は、上記のような既知の汎用ファイアウォールよりも大幅に高いレベルのネットワークセキュリティを提供する場合がある。ファイアウォール102を使用してネットワークをセキュリティ保護する、より詳細な例を以下に説明する。
【0035】
図5は、
図1の例示ファイアウォール102のより詳細なブロック図である。
図5の例示ファイアウォール102を使用して、たとえば、ネットワーク(たとえばより高セキュリティのネットワーク112)のある部分をネットワークの別の部分(たとえばより低セキュリティのネットワーク108、110)に対して相対的にセキュリティ保護してもよい。
【0036】
図5の例示ファイアウォール102は、通信フィルタ502、通信パーサー504、ファイアウォール例外発生器506、および記憶装置508を含む。
【0037】
図5の例示通信フィルタ502は、ネットワークのセキュリティ保護部分(たとえばプリケーションステーション114、フィールド装置116など)から、そのネットワークのセキュリティ保護部分の外部の宛先に送信するための通信を受け取る。例示通信フィルタ502は、ネットワークのセキュリティ保護部分の外部の装置から、そのネットワークのセキュリティ保護部分の内部の宛先に送信するための通信も受け取る。いくつかの例において、ファイアウォール102を横断する通信には、DCOM通信が含まれ、かつ/あるいはサービスおよび/またはリモートプロシージャコールに関連した通信が含まれる。
【0038】
ネットワークのセキュリティ保護部分のセキュリティを確保するため、例示通信フィルタ502は、そのセキュリティ保護部分とそのセキュリティ保護部分の外部のリソースとの間のネットワーク通信を分析して、その通信が所望されるかどうか判定する。いくつかの例において、ファイアウォール102は、セキュリティ保護されたネットワークを未使用の通信ポート上の攻撃に不必要にさらすことなく所望のサービスを動作できるようにする目的で、ネットワークのセキュリティ保護部分にセキュリティ保護部分の外部のリソースから送られてきた通信(たとえばDCOM通信)を動的に許可する。
【0039】
通信を動的に許可するために、例示通信フィルタ502は、ネットワークのセキュリティ保護部分の中を発信元とし、かつネットワークのセキュリティ保護部分の外部の宛先に送られるネットワーク通信(たとえば
図3の通信309)を分析する。例示通信パーサー504は、その通信を解析して、その通信に関連したサービス(たとえばDCOMサービスのインタフェースユニバーサル識別子)を特定し、その通信に基づくセキュアネットワーク内部の装置のアドレス(たとえばネットワークのセキュリティ保護部分の外部から受け取る動的に許可された通信が送信されるIPアドレス)を特定するとともに、動的に許可された通信のために開放されるポートのサブセットを特定する。
【0040】
例示の通信パーサ504は、解析されたネットワーク通信内のそのような情報の存在を、通信のペイロード内のマーカー(例えばマーカー文字列)を識別することにより、すみやかに認識されてもよい。マーカーが存在しなければ、通信パーサ504は通信の検索を中止してもよい。他方で、マーカーが存在すれば、例示のファイアウォール例外発生器506は、ネットワーク通信から、サービス識別子(例えば、UID)、アドレス、およびポートを抽出する。例示のファイアウォール例外発生器506は、サービス識別子、アドレス、およびポートを、例外として記憶装置508内に格納された例外リスト510内に格納する。いくつかの例では、ファイアウォール例外発生器506は、pingフラグまたは変数が第1の値(例えば、可能、不可能)を持つかどうかを判断する。pingフラグを、ネットワーク通信に基き、さらなるサービス(例えば動的に許可されたサービスに関連するサービス)の許可を可能にするため使用してもよい。
【0041】
例外が許可されている間、例示のファイアウォール102は、ネットワークのセキュリティ保護された部分の外側からネットワークのセキュリティ保護部分に向けられた、1つまたは複数のネットワーク通信を受信する(例えば
図3の通信312、314)。例示の通信フィルタ502は、ネットワーク通信を、(例えば記憶装置508内の)例外リスト510内のエントリのサービス識別子、アドレス、およびポートと比較し、合致を識別する。合致があれば、例示の通信フィルタ502は通信を転送する。
【0042】
通信フィルタ502が、通信がアドレスおよびポートで例外と合致するが、サービス識別子と合致しないと判断する場合、例示の通信フィルタ502は、マスタ接続がなおアクティブであるかどうか(例えば通信309が時間切れまたは切断したかどうか)判断する。マスタ接続がアクティブであれば、例示の通信フィルタ502は装置へ通信を転送してもよい。他方で、マスタ接続が非アクティブであれば、例示の通信フィルタ502は、pingフラグが有効かどうか判断してもよい。pingフラグが無効であれば、例示の通信フィルタ502は、装置への通信を進めてもよい。しかし、マスタ接続が非アクティブでpingフラグが有効であれば、通信フィルタ502は通信をフィルタリングまたは放棄する。
【0043】
図5の例示のファイアウォール102のコンポーネントおよび機能は前述した。例示のファイアウォール102は、さらに標準ファイアウォール機能のような他のファイアウォール機能を実行してもよい。これらの機能は、例を曖昧にするのを避けるため述べない。さらに、
図1〜
図5の例示のファイアウォール102を分離したファイアウォールとして記載する一方で、例示のファイアウォール102を、計算装置の保護のためネットワーク内の計算装置でソフトウェアファイアウォールとして実施してもよい。
【0044】
図1のファイアウォール102の実施方法の例を
図5で示したが、
図5に示した要素、プロセスおよび/または装置の1つまたは複数は、組み合わされ、分割され、再配置され、省略され、除去され、かつ/またはあらゆる他の方法で実施されてもよい。さらに、
図1および/または
図5の例示の通信フィルタ502、例示の通信パーサ504、例示のファイアウォール例外発生器506、例示の記憶装置508および/または、より一般的に、例示のファイアウォール102は、ハードウェア、ソフトウェア、ファームウェアおよび/または、ハードウェア、ソフトウェアおよび/またはファームウェアのいかなる組み合わせで実施されてもよい。よって、例えば、例示の通信フィルタ502、例示の通信パーサ504、例示のファイアウォール例外発生器506、例示の記憶装置508および/または、より一般的に、例示のファイアウォール102のいずれも、1つまたは複数の回路、プログラム可能なプロセッサ、特定用途集積回路(ASIC)、プログラム可能な論理装置(PLD)および/またはフィールドプログラム可能な論理装置(FPLD)、などにより実施することが可能である。この特許の任意の機器またはシステムの請求項が純粋にソフトウェアおよび/またはファームウェアの実装を包含すると読まれるとき、例示の通信フィルタ502、例示の通信パーサ504、例示のファイアウォール例外発生器506、および/または例示の記憶装置508のうち少なくとも1つを、ソフトウェアおよび/またはファームウェアを格納するメモリ、DVD、CD、ブルーレイなどのような有形のコンピュータ可読な媒体を含むものとして本明細書に明示的に定義する。さらになお、
図1および/または
図5の例示のファイアウォール102は、
図5に示されたものに加え、またはその代わりに、1つまたは複数の要素、プロセスおよび/または装置を含んでもよく、かつ/または示された要素、プロセスおよび装置の任意の2つ以上または全てを含んでもよい。
【0045】
図1および/または
図5のファイアウォール102を実施する方法の例を表すフローチャートを、
図4および
図6〜
図8に示す。これらの例で、方法を、
図9と関連して後述する、例示の処理プラットフォーム900に示されたプロセッサ912のようなプロセッサが実行するプログラムを含む機械可読な指示を用いて、実施してもよい。プログラムを、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)、ブルーレイディスク、またはプロセッサ912に関連するメモリのような有形のコンピュータ可読な媒体に格納されたソフトウェア内で実現してもよいが、プログラムの全体および/またはその部分を、プロセッサ912以外の装置が代わりに実行する、および/またはファームウェアまたは専用ハードウェア内で実現することが可能である。さらに、例示のプログラムは
図4および
図6〜
図8に示されるフローチャートを参照して記載するが、例示のファイアウォール102を実施する多くの他の方法を代わりに使用してもよい。例えば、ブロックの実行命令を変更してもよく、かつ/または記載されたいくつかのブロックを変更、削除、または組み合わせてもよい。
【0046】
前述のように、
図4および
図6〜
図8の例示のプロセスを、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)および/または任意の持続時間の間(例えば、延長された時間の間、永続的に、短い瞬間、一時的バッファリングの間、および/または情報のキャッシュの間)情報が格納される任意の他の記憶媒体のような有形のコンピュータ可読な媒体に格納されたコード化された指示(例えば、コンピュータ可読な指示)を使用して実施してもよい。本明細書で使用される場合、有形のコンピュータ可読な媒体の語は、あらゆるタイプのコンピュータ可読な記憶装置を含み、伝搬している信号を除いて明示的に定義される。加えてまたは代わりに、
図4および
図6〜
図8の例示のプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および/または任意の持続時間の間(例えば、延長された時間の間、永続的に、短い瞬間、一時的バッファリングの間、および/または情報のキャッシュの間)情報が格納される任意の他の記憶媒体のような非一時的コンピュータ可読な媒体に格納されたコード化された指示(例えば、コンピュータ可読な指示)を使用して実施されてもよい。本明細書で使用される場合、非一時的コンピュータ可読な媒体の語は、あらゆるタイプのコンピュータ可読な記憶媒体を含み、伝搬している信号を除いて明示的に定義される。本明細書で使用される場合、「少なくとも」の語句が請求項の前提部分内に移行の語として使用されるとき、それは「備える(comprising)」の語がオープンエンドであるのと同様にオープンエンドである。よって、「少なくとも」をその前提事項内に移行の語として使用する請求項は、請求項に明示的に列挙されるものに加えて要素を含んでもよい。
【0047】
図6は、サービスの例外を動的に生成する、
図1および
図5のファイアウォール102を実施する例示の方法600のフローチャートの典型である。例示の方法600を、ファイアウォール102がネットワーク(例えば
図1のネットワーク112)のセキュリティ保護された部分内の装置からネットワークのセキュリティ保護された部分の外部の装置へ向けられたネットワーク通信を受信するとき、実行してもよい。
【0048】
例示の方法600は、ネットワークのセキュリティ保護された部分からネットワークのセキュリティ保護された部分の外側の位置または装置へ向けられたネットワーク通信を(例えば、
図5の通信フィルタ502を介して)、分析することで開始する(ブロック602)。例示の通信パーサ504は、ネットワーク通信内にマーカーが存在するかどうか判断する(ブロック604)。マーカーが存在する場合(ブロック604)、例示のファイアウォール例外発生器506は、サービスのUID、アドレス(例えば、
図3のサーバ308のIPアドレス)、およびサーバ308のポートをネットワーク通信から識別する(ブロック606)。例示のファイアウォール例外発生器506は、UID、アドレス、およびポートを、(例えば、
図5の記憶装置508内の例外リスト510に)格納する(ブロック608)。
図6の例では、ファイアウォール例外発生器506はまた、pingフラグ値も格納する(ブロック610)。例示の方法600は、それから終了する。
【0049】
図7は、サービスの通信が、ネットワークのセキュリティ保護された部分を通過するのを選択的に認める、
図1および
図5のファイアウォール102を実施する例示の方法700のフローチャートの典型である。例えば、ネットワークのセキュリティ保護された部分への送信のため通信が受信されるとき(例えば、
図3の通信312、314)、例示の方法700を、例示のファイアウォール102が実行してもよい。
【0050】
例示の方法700は、ネットワークのセキュリティ保護された部分の外側から受信されたネットワーク通信を、(例えば、
図5の通信フィルタ502を介して)分析することで開始する(ブロック702)。例示の通信フィルタ502は、ネットワーク通信の宛先アドレスおよびポートを判断する(ブロック704)。
【0051】
例示の通信フィルタ502は、ネットワーク通信が例外リスト(例えば
図5の例外リスト510)内のアドレスおよびアドレスに対応するポートに合致するかどうか判断する(ブロック706)。ネットワーク通信が例外リスト510内のいずれのアドレスおよび対応するポートに合致しなければ(ブロック706)、例示の通信フィルタ502はネットワーク通信を放棄する(ブロック716)。
【0052】
他方で、通信フィルタ502がネットワーク通信がアドレスおよび対応するポートに合致すると判断する場合、例示の通信フィルタ502は、ネットワーク通信が、合致したアドレスおよびポートに対応する例外リスト510内のサービス識別子(例えば、UID)に合致するかどうか判断する(ブロック708)。ネットワーク通信がサービス識別子に合致すれば(ブロック708)、例示の通信フィルタ502は、ネットワークのセキュリティ保護された部分内のアドレスおよびポートへネットワーク通信を転送する(ブロック714)。
【0053】
ネットワーク通信がアドレスおよび対応するポートに合致するがサービス識別子と合致しない場合(ブロック708)、例示の通信フィルタ502は、ネットワーク通信のマスタ接続がアクティブかどうか判断する(ブロック710)。マスタ通信は、例外リスト510内のマッチング例外が生じたネットワーク通信(例えば
図3の通信312、314に対するネットワーク通信309)であってもよい。マスタ接続がアクティブであれば(ブロック710)、例示の通信フィルタ502は、ネットワーク通信を転送してもよい(ブロック714)。マスタ接続がアクティブでなければ(ブロック710)、例示の通信フィルタ502は、マスタ接続に対するpingフラグが有効かどうか判断する(ブロック712)。例えば、通信フィルタ502は、アドレスおよびポートに合致するエントリに対して例外リスト510をチェックし、pingフラグの値または変数を判断してもよい。マスタ接続に対するpingフラグが有効であれば(ブロック712)、例示の通信フィルタ502はネットワーク通信をフィルタリングまたは放棄する。他方で、pingフラグが無効であれば(ブロック712)、例示の通信フィルタ502はネットワークのセキュリティ保護された部分内のアドレスおよびポートへネットワーク通信を転送する(ブロック714)。
【0054】
ネットワーク通信を転送した(ブロック714)またはネットワーク通信を放棄した(ブロック716)後、例示の方法700は終了してもよい。
【0055】
図8は、サービスの動的例外を管理する
図1および
図5のファイアウォール102を実施する例示の方法800のフローチャートの典型である。
図8の例示の方法800は、周期的、非周期的、オンデマンドで、事象に対応して、および/または任意の他の時間に、動的例外を管理するため実行されてもよい。
【0056】
図5の例示のファイアウォール例外発生器506は、(例えば、記憶装置508内の)例外リスト510内のエントリを選択する(ブロック802)。例示のファイアウォール例外発生器506は、選択されたエントリが例外リスト510内に時間の閾値の間存在したかどうか判断する(ブロック804)。閾値時間は、経験的に判断、ポリシーにより設定、および/またはネットワークのセキュリティ保護された部分の管理者が設定してもよい。選択されたエントリが例外リスト510内に閾値時間の間存在した場合(ブロック804)、例示のファイアウォール例外発生器506は例外リストからエントリを削除する(ブロック806)。例外エントリの削除は、ファイアウォール102内のオープンだが未使用のポートの数を減少させることにより、ネットワークのセキュリティ保護された部分のセキュリティを向上する場合がある。選択されたエントリが例外リスト510内に閾値時間未満の間存在した場合(ブロック804)、またはエントリ削除後の場合(ブロック806)、例示の方法800は終了してもよい。いくつかの例では、ファイアウォール例外発生器506は、例外リスト510内のそれぞれのエントリに対し方法800を繰り返す。
【0057】
図9は、
図1および/または
図5のファイアウォール102を実施する、
図4および
図6〜
図8の指示を実行可能な例示の処理プラットフォーム900のブロック図である。処理プラットフォーム900は、例えば、ファイアウォール装置、サーバ、パーソナルコンピュータ、または任意の他のタイプの計算装置またはインターネット装置とすることができる。
【0058】
この例の処理プラットフォーム900は、プロセッサ912を含む。例えば、プロセッサ912は、任意の所望のファミリまたは製造者からの1つまたは複数のマイクロプロセッサまたはコントローラによって実施することができる。
【0059】
プロセッサ912はローカルメモリ913(例えば、キャッシュ)を含み、バス918を介して揮発性メモリ914および不揮発性メモリ916を含むメインメモリと通信している。揮発性メモリ914は、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)および/または任意の他のタイプのランダムアクセスメモリ装置により実装されてもよい。不揮発性メモリ916は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリ装置により実装されてもよい。メインメモリ914、916へのアクセスは、メモリコントローラにより制御される。
【0060】
処理プラットフォーム900はまた、インタフェース回路920も有する。インタフェース回路920は、イーサネット(登録商標)インタフェース、汎用シリアルバス(USB)、および/またはPCIエクスプレスインタフェースのような、任意のタイプのインタフェース規格により実装されてもよい。
【0061】
1つまたは複数の入力装置922が、インタフェース回路920に接続される。入力装置922は、ユーザがプロセッサ912内へデータおよびコマンドを入力するのを認める。入力装置は、例えば、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、イソポイント(isopoint)および/または音声認識システムにより実装することができる。
【0062】
1つまたは複数の出力装置924もまた、インタフェース回路920に接続される。出力装置924は、例えば、ディスプレイ装置(例えば、液晶ディスプレイ、陰極線管ディスプレイ(CRT)、など)により実施することができる。インタフェース回路920は、よって、通常はグラフィックドライバカードを含む。
【0063】
インタフェース回路920は、ネットワーク926(例えばイーサネット(登録商標)接続、デジタル加入者回線(DSL)、電話線、同軸ケーブル、セルラー電話システム、など)を介した外部のコンピュータとのデータ交換を容易にする、モデムまたはネットワークインタフェースカードのような通信装置も有する。
【0064】
処理プラットフォーム900は、ソフトウェアおよびデータを格納する1つまたは複数の大容量記憶装置928も有する。そのような大容量記憶装置928の例は、フロッピー(登録商標)ディスクドライブ、ハードドライブディスク、コンパクトディスクドライブおよびデジタル多用途ディスク(DVD)ドライブを含む。大容量記憶装置928は、
図5の例示の記憶装置508を実装してもよい。
【0065】
図4および
図6〜
図8の方法を実施するためのコード化された指示932を、大容量記憶装置928内、揮発性メモリ914内、不揮発性メモリ916内、および/またはCDまたはDVDのような着脱可能な記憶媒体に格納してもよい。
【0066】
特定の例示の方法、機器および製品を本明細書に記載したが、本特許の対象の範囲はこれらに限定されない。反対に、本特許は、本特許の請求項の範囲内に正当に含まれる全ての方法、機器および製造の物品を包含する。