(57)【特許請求の範囲】
【請求項１】
パケットフィルタリングのためのルールＤＢを保存する第１保存部と、前記ルールＤＢを適用してパケットの送信を許容又は遮断するファイアウォールエンジンとを有するチップと、
ユーザからパケットフィルタリングのためのルールを受け取って、ルールリストに保存するための形態に変換するルールコンバーターと、
外部に送信するパケットを前記チップに送信する前に、プロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを前記外部に送信するパケットに適用してフィルタリングした後に、許容されたパケットのみを前記チップに送信するミニポートドライバと、
を備え、
前記チップは、前記ルールコンバーターにより変換されたルールリストを受信して、前記第１保存部にルールＤＢとして保存し、前記ミニポートドライバから受信したパケットに対して前記ルールＤＢを参照してフィルタリング動作を行うすることを特徴とするデバイス。
【請求項２】
前記ルールコンバーターによって変換されたルールリストを保存する第２保存部を備える請求項１に記載のデバイス。
【請求項３】
前記ルールコンバーターは、前記第２保存部に既保存されたルールリストに、ユーザからパケットフィルタリングのためのルールを受け取って変換した新しいルールを追加するとき、既保存されたルールリストに含まれたルールと新しいルールとが互いに衝突するかどうかをチェックすることを特徴とする請求項２に記載のデバイス。
【請求項４】
前記ルールコンバーターは、前記新しいルールと前記第２保存部に既保存されたルールリストに含まれたルールのそれぞれと衝突するかどうかをチェックすることを特徴とする請求項３に記載のデバイス。
【請求項５】
前記ルールリストは、リンクリスト（Ｌｉｎｋｅｄ  ｌｉｓｔ）の形態で構成されたことを特徴とする請求項１に記載のデバイス。
【請求項６】
前記チップは、ファイアウォールマネジャーをさらに備え、前記ルールコンバーターは、前記ルールリストを前記ファイアウォールマネジャーに送信し、前記ファイアウォールマネジャーは、前記ルールリストを前記第１保存部にルールＤＢの形態に変換して保存することを特徴とする請求項１に記載のデバイス。
【請求項７】
ＩＰ、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するファイアウォールユーザインタフェースをさらに備え、
前記ルールコンバーターは、前記ルール設定画面を介してユーザから受け取ったルールをルールリストの形態に変換することを特徴とする請求項１に記載のデバイス。
【請求項８】
前記ルール設定画面は、構成ヘルパーを備え、
前記構成ヘルパーは、ネットワークアプリケーションのリストを提供し、このネットワークアプリケーションリストに含まれたアプリケーションのうち、少なくとも何れか一つがユーザにより選択されると、該選択されたアプリケーションが実行するのに必要なＩＰ、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項７に記載のデバイス。
【請求項９】
前記ルール設定画面は、
プロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項８に記載のデバイス。
【請求項１０】
ファイアウォール機能付きチップが装着されたデバイスでのパケットフィルタリング方法であって、
前記デバイスが、ユーザからパケットフィルタリングのためのルールを受け取ってルールリストの形態に変換するステップと、
前記デバイスが、外部に送信するパケットを前記チップに送信する前に、プロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを前記外部に送信するパケットに適用してフィルタリングした後に、許容されたパケットのみを前記チップに送信するステップと、
前記チップが、前記デバイスからルールリストを受信してルールＤＢの形態として保存するステップと、
前記チップが、前記デバイスから受信したパケットに対して前記ルールＤＢを利用してパケットの送受信を許容又は遮断するステップと、
を含むことを特徴とするパケットフィルタリング方法。
【請求項１１】
前記デバイスが自身の有した保存部に前記ルールリストを保存するステップをさらに含むことを特徴とする請求項１０に記載のパケットフィルタリング方法。
【請求項１２】
前記デバイスは、前記保存部に既保存されたルールリストに、ユーザからパケットフィルタリングのためのルールを受け取って変換した新しいルールを追加するとき、既保存されたルールリストに含まれたルールと新しいルールとが互いに衝突するかどうかをチェックすることを特徴とする請求項１１に記載のパケットフィルタリング方法。
【請求項１３】
前記デバイスは、前記新しいルールと前記保存部に既保存されたルールリストに含まれたルールの各々と衝突されるかどうかをチェックすることを特徴とする請求項１２に記載のパケットフィルタリング方法。
【請求項１４】
前記ルールリストは、リンクリスト（Ｌｉｎｋｅｄ  ｌｉｓｔ）の形態で構成されたことを特徴とする請求項１０に記載のパケットフィルタリング方法。
【請求項１５】
前記デバイスが、ＩＰ、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するステップをさらに含み、
前記デバイスは、前記ルール設定画面を介してユーザから受け取ったルールをルールリストの形態に変換することを特徴とする請求項１０に記載のパケットフィルタリング方法。
【請求項１６】
前記ルール設定画面は、構成ヘルパーを備え、
前記構成ヘルパーは、ネットワークアプリケーションのリストを提供し、このネットワークアプリケーションリストに含まれたアプリケーションのうち、少なくとも何れか一つがユーザにより選択されると、該選択されたアプリケーションが実行するのに必要なＩＰ、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項１５に記載のパケットフィルタリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関し、さらに詳細には、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断に設定できるシステムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関する。  
【背景技術】
【０００２】
インターネットが広範囲に使用されるにつれて、ウォームやトロイの木馬、ウイルス、ＤＤｏＳなどのような多様な形態の悪性マルウェアが登場しその被害も大きくなりつつある。そのため、ネットワーク上の情報を保護するためのネットワーク侵害対応方法及びその他の関連装置が必需となった。
【０００３】
特に、モバイル機器の場合は、使用可能なリソースが制限されているため、リソースを最小限使用しながら高速でパケットをフィルタリングできる高速フィルタリング技術が必ず必要であるはずである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一実施形態によれば、ユーザインタフェースを介してユーザが入力したルールをルールコンバーターにより変換してルールリストの形態で保存することのできる方法及び装置を提供することにその目的がある。
【０００５】
本発明の一実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できるデバイス及びパケットフィルタリング方法を提供することにその目的がある。
【０００６】
本発明の一実施形態によれば、パケットフィルタリングのためのルールの設定時に構成ヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことのできるデバイス及びパケットフィルタリング方法を提供することにその目的がある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によれば、パケットフィルタリングのためのルールＤＢを保存する第１保存部と、前記ルールＤＢを適用してパケットの送信を許容又は遮断するファイアウォールエンジンとを有するチップと、ユーザからパケットフィルタリングのためのルールを受け取って、ルールリストに保存するための形態に変換するルールコンバーターとを備え、前記チップは、前記ルールコンバーターにより変換されたルールリストを受信して、前記第１保存部にルールＤＢとして保存することを特徴とするデバイスが提供されている。
【０００８】
本発明の一実施形態によれば、ファイアウォール機能付きチップが装着されたデバイスでのパケットフィルタリング方法であって、前記デバイスが、ユーザからパケットフィルタリングのためのルールを受け取ってルールリストの形態に変換するステップと、前記チップが、前記デバイスからルールリストを受信してルールＤＢの形態として保存するステップと、前記チップが、前記ルールＤＢを利用してパケットの送受信を許容又は遮断するステップと、を含むことを特徴とするパケットフィルタリング方法が提供されている。
【発明の効果】
【０００９】
本発明の一つ以上の実施形態によれば、ユーザインタフェースを介してユーザが直接入力したルールをルールコンバーターにより変換してルールリストの形態で保存することができる。
【００１０】
本発明の一つ以上の実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できる。
【００１１】
本発明の一つ以上の実施形態によれば、パケットフィルタリングのためのルール設定時に構成ヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図２】本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図３】本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【図４】本発明の例示的な実施形態に係る構成ヘルパーの機能を説明するための図である。
【図５】本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面を説明するための図である。
【図６】本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図である。
【図７】本発明の例示的な一実施形態に係るルールコンバーターの動作を示すフローチャートである。
【図８】本発明の例示的な一実施形態によって変換されたルールの保存方式を説明する図である。
【図９】図２のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施形態に限定されず、他の形態で具体化されてもよい。むしろ、ここで紹介される実施形態は、開示された内容が徹底かつ完全になるように、そして当業者に、本発明の思想を十分に理解してもらうために提供されるものである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合には、それは、他の構成要素上に直接形成される場合もあり、それらの間に第３の構成要素が介在される場合もあることを意味する。
【００１４】
また、あるエレメント（または構成要素）が他のエレメント（または構成要素）上で動作または実行されると言及されるとき、そのエレメント（または構成要素）は、他のエレメント（または構成要素）が動作または実行される環境で動作または実行されるか、または他のエレメント（または構成要素）と直接または間接的に相互作用により動作または実行されると理解されなければならない。
【００１５】
あるエレメント、構成要素、装置、またはシステムが、プログラム若しくはソフトウェアからなる構成要素を含むと言及される場合には、明示的な言及がなくても、そのエレメント、構成要素、装置、またはシステムは、そのプログラム若しくはソフトウェアが実行または動作するのに必要なハードウェア（例えば、メモリ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等）や他のプログラムまたはソフトウェア（例えば、オペレーティングシステム（ＯＳ）やハードウェアを駆動するのに必要なドライバ等）を含むと理解されなければならない。
【００１６】
また、あるエレメント（または構成要素）が具現化されるに当たって、特別な言及がない限り、そのエレメント（または構成要素）は、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアのうち、如何なる形態によっても具現化可能であると理解されなければならない。
【００１７】
本明細書で使用された用語は、実施形態を説明するためのものであって、本発明を限定するものではない。本明細書において、単数形は、特に言及しない限り、複数形も含む。明細書で使用される「含む」と言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。
【００１８】
以下、図面を参照して本発明を詳細に説明する。以下の特定の実施形態を述べるにおいて、様々に特定された内容は、発明をさらに具体的に説明し、理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような様々に特定された内容がなくても、本発明が実施可能であることを認知できる。ある場合には、周知で発明と大きく関連のない技術的内容は、本発明を説明するにあたって、特別な理由なしでも、読者の混乱を引き起こさないようにあえて述べないこともあることを予め言及しておく。
【００１９】
図１は、本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【００２０】
図１に示すように、本発明の例示的な実施形態に係るデバイス１には、パケットをフィルタリングするファイアウォール機能付きシステムオンチップ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）３が装着されうる。
【００２１】
デバイス１は、ファイアウォール動作のためのユーザインタフェース（ＵＩ）アプリケーションを含むことができ、前記ＵＩアプリケーションは、パケットフィルタリングのためのルール（ｒｕｌｅ）の状態をユーザに提供し、ユーザから新しいルールを受け取ることができる。
【００２２】
デバイス１は、ルールコンバーター（ｒｕｌｅ  ｃｏｎｖｅｒｔｅｒ）及びルールリスト（ｒｕｌｅ  ｌｉｓｔ）保存装置をさらに備えることができる。ルールコンバーターは、ＵＩインタフェースを介してユーザから受け取ったルールをデバイス１の内部に保存可能な形式に変換し、これを既存のルールリストに追加する。ルールリストは、デバイス１の内部の保存装置又は外部の保存装置に保存されうる。
【００２３】
ルールリスト保存装置に保存されたルールリストは、その後にシステムオンチップ３に送信され、システムオンチップ３は、この送信されたルールリストを自身のメモリにロードしたり、保存装置にルールＤＢとして保存し、ファイアウォールエンジンは、前記ルールＤＢを参照してパケットに対するフィルタリング動作を行う。
【００２４】
デバイス１は、ネットワークを介して送受信するパケットを利用する一つ以上のネットワークアプリケーションを含むことができ、各々のアプリケーションは、一つ以上のプロセスを含むことができる。本発明の目的のために、任意のパケットに対して、このパケットを外部に送信し、又は、外部から受信して使用するプロセスをそのパケットの「オーナープロセス（ｏｗｎｅｒ  ｐｒｏｃｅｓｓ）」と呼ぶことにする。一実施形態においてプロセスには、各々ＩＤが付与されているから互いに識別可能であり、各パケットには、該当パケットを使用するオーナープロセスのプロセスＩＤが含まれている。したがって、各パケットを使用するオーナープロセスは、各々のパケットに含まれたプロセスＩＤによって識別されうる。
【００２５】
一実施形態でシステムオンチップ３がネットワークインタフェースカード（ＮＩＣ）を備えることができ、これによりデバイス１は、システムオンチップ３を介してパケットを外部に送信し、システムオンチップ３を介してパケットを外部から受信することができる。
【００２６】
システムオンチップ３がネットワークインタフェースカード（ＮＩＣ）を含み、デバイス１が外部とパケットを送受信する時に、前記ＮＩＣを介して通信すると仮定する場合、デバイス１は、送受信するパケットのオーナープロセスを確認し、オーナープロセスのプロセスＩＤを前記パケットと共にシステムオンチップに伝達する。
【００２７】
一実施形態においてシステムオンチップのファイアウォールエンジンは、前記ルールＤＢを参照して、送受信するパケットのオーナープロセスが該当パケットを送受信することが許容されるかどうかを判断し、許容された場合にのみ該当パケットの通過を許容する。
【００２８】
追加的機能として、デバイス１は、外部に送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットのオーナープロセスの実行を中断させることができる。
【００２９】
図１には示していないが、システムオンチップ３は、中央処理装置（ＣＰＵ）、メモリ、メモリコントローラ、及びルールＤＢ保存部を有したハードウェア及び／ソフトウェアリソースを備えることができる。本発明の説明において、プログラムが駆動されるために必要なリソース（例えば、中央処理装置、メモリ、メモリコントローラ、ルールＤＢ保存部）に対して明示的に表示しなくても、プログラムが駆動されるために必要なハードウェア及びソフトウェア資源、並びにその動作は、内在されると理解しなければならない。
【００３０】
例えば、システムオンチップ３に備えられたファイアウォールエンジンは、ルールＤＢとパケットとを互いにマッチングさせるマッチャー（ｍａｔｃｈｅｒ）とこのマッチャーを動作させるファームウェアとを備えるように構成されうるが、このような場合、明示的な言及がなくてもそういうファームウェアを保存する保存部、及びファームウェアをメモリにロードさせる中央処理装置は、システムオンチップ３に内蔵されると理解しなければならない。
【００３１】
このような類似の方式で本願明細書において、デバイス１があるアプリケーションやドライバを備えるように構成されると述べられた場合には、そういうアプリケーションとドライバとを動作させるためのハードウェア及び／又はソフトウェアリソースを当然備えると理解しなければならない。
【００３２】
デバイス１は、スマートフォンやＰＤＡのようなモバイル機器でありうるが、これは、例示的なものであって、デスクトップコンピュータのように固定型デバイスであっても良い。
【００３３】
図２は、本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。図２の実施形態は、ファイアウォール機能がシステムオンチップ（ＳｏＣ）の基盤により具現化されてデバイス２００に装着された例である。
【００３４】
図２に示すように、デバイス２００は、機能的にアプリケーション層、カーネル層、ＳｏＣ層、及びＮＩＣ層に区分されうる。実施形態によって、前記機能層の一部が省略されえ、他の機能層が追加されえ、また、各機能層の細部構成要素も変更されうることはもちろんである。したがって、図２の構成は、一実施形態に過ぎないので、本発明を図２に限定してはならない。
【００３５】
図２に示すように、デバイス１は、ファイアウォールＵＩアプリケーション２０１及び各種ネットワークアプリケーション２０３を備えることができる。
【００３６】
ファイアウォール（Ｆ／Ｗ）ＵＩアプリケーション２０１は、ファイアウォール動作と関連したユーザインタフェースを提供する。例えば、ファイアウォールＵＩアプリケーション２０１は、ファイアウォール動作作業、ファイアウォール停止作業、ルール追加作業、ルール変更作業、特定ルール除去作業、全体ルール除去作業、ルール状態表示作業、各ルールに適用されたパケットログ出力作業、及び基本ルール設定変更作業などを提供できる。
【００３７】
ファイアウォールＵＩアプリケーション２０１は、ユーザからパケットフィルタリングのためのルールを受け取ることができ、ファイアウォールエンジン２２９によるパケットフィルタリング結果をユーザに表示できる。ファイアウォールＵＩアプリケーション２０１は、パケットフィルタリングのためのルールの追加及び／又はアップデート動作を行うことができる。
【００３８】
また、本発明の一実施形態によって、ファイアウォールＵＩアプリケーション２０１は、ミニポートドライバ２１７によるプロセス別パケットフィルタリングの結果をユーザに表示でき、ユーザからプロセス別ルールを受け取ってルールＤＢのアップデート動作を行うことができる。
【００３９】
ルールコンバーター２０４は、ユーザから受け取ったルールをデバイス２００の内部において使用するルール形式に変換し、複数のルールの間に衝突があるかどうかを検査する機能を果たす。仮に、ルール間に衝突が発生した場合、ルールコンバーター２０４は、ＵＩアプリケーション２０１に衝突結果を通知し、ユーザから追加命令を受けることができる。
【００４０】
ルールリスト保存装置２０５は、前記ルールコンバーター２０４により変換されたルールをリスト形態で保存する保存装置であって、任意の不揮発性メモリのうちの何れか一つになりうる。
【００４１】
アンチマルウェア（ＡＭ）ＳｏＣストリームインタフェースドライバ２１１（以下、ストリームインタフェースドライバともする）は、ファイアウォールＵＩアプリケーション２０１からデータを受信してシステムオンチップ（ＳｏＣ）のＡＰドライバ２２１に送信でき、ＡＰドライバ２２１からデータを受信してファイアウォールＵＩアプリケーション２０１に送信できる。
【００４２】
ファイアウォール（Ｆ／Ｗ）マネジャー２２７は、ファイアウォールＵＩアプリケーション２０１を介して受け取ったユーザ命令を処理する機能を行い、システムオンチップ（ＳｏＣ）で具現化される。ファイアウォールマネジャー２２７は、例えばユーザ命令によってルールＤＢ２２４にルールを保存することができ、現在のルールＤＢ２２４の状態を読み込んでファイアウォールＵＩアプリケーション２０１に送信することによって、ユーザに現在状態を見せることもできる。
【００４３】
ネットワークアプリケーション２０３は、パケットフィルタリングの対象になるパケットデータを使用するアプリケーション２０３を含む。例えば、アプリケーション２０３は、ウェブブラウザ２０３−１、テレネット２０３−２、ＦＴＰサーバ２０３−３のうちの少なくとも一つになりえ、その他にも所定のパケットデータを使用する任意のアプリケーションのうちの一つでありうる。
【００４４】
図示の一実施形態においてデバイス２００のカーネル層は、デバイス２００が外部から受信したパケットデータ内の情報をアプリケーション層に送信するか、又はアプリケーション層の要請によってパケットデータを生成して外部に送信する役割を果たすことができる。
【００４５】
図示の一実施形態のように、データを送信するためにＴＣＰ／ＩＰプロトコルを使用してパケットデータを送受信する場合、デバイス２００は、ＴＣＰ／ＩＰプロトコルドライバ２１５を含む。また、デバイス２００がオペレーティングシステム（ＯＳ）としてウィンドウズ（ＷＩＮＤＯＷＳ）を使用する場合にＷｉｎＳｏｃｋ２１３を備える。ＴＣＰ／ＩＰプロトコルドライバ２１５とＷｉｎＳｏｃｋ２１３との動作は、公知技術であるから、これらの動作については説明を省略する。
【００４６】
デバイス２００がＴＣＰ／ＩＰプロトコルでない他のプロトコルを利用する場合には、その他のプロトコルの使用のためのドライバを備えることができ、またデバイス２００がウィンドウズオペレーティングシステムでない他のオペレーティングシステムを使用する場合には、ＷｉｎＳｏｃｋ２１３でない他の構成要素を備えることができる。すなわち、図示のＷｉｎＳｏｃｋ２１３及びＴＣＰ／ＩＰプロトコルドライバ２１５は、実施形態によって他の構成要素で置き換えることができる。
【００４７】
図示の実施形態におけるカーネル層は、ネットワークドライバインタフェース仕様（Ｎｅｔｗｏｒｋ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ：ＮＤＩＳ）２１８をさらに備え、ＮＤＩＳ２１８には、アンチマルウェアＳｏＣミニポートドライバ２１７（以下、ミニポートドライバとする）を備えることができる。
【００４８】
ミニポートドライバ２１７は、アプリケーション２０３からパケットデータを受信してＡＰドライバ２２１に送信するか、又はパケットデータをＡＰドライバ２２１から受信して上位階層に送信する。
【００４９】
本発明の一実施形態に係るミニポートドライバ２１７は、また、パケットデータをＡＰドライバ２２１に送信する前にプロセス別にフィルタリングする動作を行うことができる。例えば、パケットフィルタリングのためのルールのうち、プロセス別に設定されたルールが含まれた場合、ミニポートドライバ２１７は、アプリケーション２０３からパケットを受信すると、該当パケットのオーナープロセスを確認した後にプロセス別ルールと比較してパケットを通過させるかどうかを判断できる。代案的な実施形態において、ミニポートドライバ２１７は、該当パケットのオーナープロセスを確認した後、前記オーナープロセスを知らせる情報（例えば、プロセスＩＤ）と共に前記パケットをシステムオンチップ（ＳｏＣ）に送信し、システムオンチップ（ＳｏＣ）は、前記パケットを通過させるかどうかを判断できる。
【００５０】
ＡＰドライバ２２１は、ミニポートドライバ２１７からパケットデータを受信してファイアウォールエンジン２２９に送信する。ファイアウォールエンジン２２９は、パケット検証（Ｖｅｒｉｆｉｃａｔｉｏｎ）過程を経てパケットフィルタリング動作を行うことができる。ここで、パケット検証過程は、例えばＳｙｎ  Ｆｌｏｏｄｉｎｇのような攻撃を防止するためである。
【００５１】
ファイアウォールエンジン２２９は、パケットに対してパケットフィルタリングのためのルールを適用して、パケットを通過させるか、又は遮断させるかを判断し、判断結果に応じてパケットを通過又は遮断できる。このとき、ファイアウォールシステムオンチップ（ＳｏＣ）は、ルールＤＢ２２４を含んでおり、ルールＤＢ２２４に保存されたルールを利用してパケットフィルタリング動作を行うことができる。
【００５２】
デバイス２００の外部にパケットを送信する場合、ファイアウォールエンジン２２９は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをＮＩＣドライバ２２８に送信する。ＮＩＣドライバ２２８は、ファイアウォールエンジン２２９から受信したパケットをＮＩＣ２３１に送信する。以後、ＮＩＣ２３１は、外部ネットワークにパケットを送信する。
【００５３】
デバイス２００が外部からパケットを受信する場合、ファイアウォールエンジン２２９は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをＡＰドライバ２２１に送信し、ＡＰドライバ２２１は、パケットをミニポートドライバ２１７に送信する。
【００５４】
ＮＩＣ２３１は、パケットデータ網にパケットデータを送信するか、又はそれからパケットデータを受信するためのものであって、システムオンチップ（ＳｏＣ）の一部として装着されうる。ＮＩＣ２３１は、例えば有線又は無線ラン網を介してパケットデータを受信することができる。
【００５５】
図３は、本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【００５６】
本発明の例示的な実施形態によって、デバイス２００のファイアウォールＵＩアプリケーション２０１は、ユーザが入力したルールをルールコンバーター２０４に送信でき、送信されたルールは、ルールコンバーター２０４によりその形式が変換されて、既保存されたルールリストに追加されて保存装置２０５に保存される。
【００５７】
図３に示すように、ルール設定画面５００は、三個のサブウィンドウ、すなわち基本設定ウィンドウ５１０、基本ルール設定ウィンドウ５２０、及びプロセス別設定ウィンドウ５３０を備えることができる。ユーザは、ルール設定画面５００から前記３個のサブウィンドウのうち、任意のサブウィンドウを選択してルール設定を行うことができ、その中で図３は、基本設定ウィンドウ５１０が選択された状態を示す。
【００５８】
基本設定ウィンドウ５１０は、例えばユーザがある特定ＩＰアドレス又は特定ネットワーク帯域のＩＰアドレスに該当するサイトを許容（ａｌｌｏｗ）又は遮断（ｂｌｏｃｋ）しようとするとき、これを設定する画面である。
【００５９】
図示の一実施形態において、基本設定ウィンドウ５１０は、構成ヘルパー（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｈｅｌｐｅｒ）５１１の機能のための入力ウィンドウ５１２を備え、その下にルールネーム、ＩＰ、プロトコル、ポートなどの各種フィールドを満たすための入力ウィンドウを備えることができる。
【００６０】
構成ヘルパー５１１は、ネットワークを全く知らないユーザを助ける機能を果たす。本発明の一実施形態において、構成ヘルパー５１１は、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、該選択されたネットワークアプリケーションを実行するのに必要なＩＰ、プロトコル、及びポートのうち、少なくとも何れか一つを該当フィールドの入力ウィンドウに自動的に表示できる。
【００６１】
例えば、ユーザが構成ヘルパー５１１の入力ウィンドウ５１２のボタンを選択すると、図４に示すようなメニューが広まる。広まったネットワークアプリケーションのうち、ユーザが何れか一つを選択すると、図３において構成ヘルパー５１１の下にあるルールネーム、ＩＰ、プロトコル、ポートなどのフィールドが自動的に入力されうる。
【００６２】
図４のリストには、メッセンジャー、Ｐ２Ｐ、ゲームなどのみを例示したが、実施形態によってｆｔｐ、ｈｔｔｐ、テレネット、ｓｓｈ、プリンタ（ｐｒｉｎｔｅｒ）などのプロトコルも選択できるように前記リストに含むことができる。
【００６３】
前記実施形態のように構成ヘルパー５１１を備える理由は、一般的なユーザは、特定プロトコルあるいは特定サービスのポートを全く知らない場合が多く、またネットワークをよく知るユーザであっても、例えばＭＳＮメッセンジャーでファイルをやり取りするためには、６８９１〜６９００番ポートと４１８００〜４１８９９ポートを許容（ａｌｌｏｗ）しなければならないという事実は、関連文書を検索する前には分かり難いためである。したがって、前記実施形態のように通常のユーザのための構成ヘルパー５１１を提供することによって、ユーザ自身の望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【００６４】
また、図３に示すように、構成ヘルパー５１１の下部の各種フィールドの意味は、次のとおりである。
−ルールネーム（Ｒｕｌｅ  Ｎａｍｅ）：ルールの名称を入力するフィールドである。
−インターネットプロトコル（ＩＰ）：ルールを適用するＩＰを設定するフィールドである。
−プロトコル（Ｐｒｏｔｏｃｏｌ）：ルールを適用するプロトコルを設定する部分である。一実施形態においてプロトコルに該当するボタンを押すと、「ＡＬＬ」、「ＴＣＰ」、「ＵＤＰ」、「ＩＣＭＰ」などのメニューリストが出てくることができる。その他にも前記基本的なプロトコルだけでなく他の多様なプロトコルも支援できる。
−ポート（Ｐｏｒｔ）：ルールを適用するポートを設定する部分である。ユーザが直接入力することもでき、メニューボタンを押して選択することもできる。メニューボタンを押すと、ｆｔｐ、ｈｔｔｐ、テレネット、ｓｓｈなどのようなプロトコル文字列が出、このうちの何れか一つを選択すると、最小ポート番号（ｍｉｎ  ｐｏｒｔ）と最大ポート番号（ｍａｘ  ｐｏｒｔ）とが自動的に入力されるようにすることができ、ユーザが直接入力することもできる。
−パケット方向（Ｄｉｒｅｃｔｉｏｎ）：ルールを適用するパケットの方向を指定する部分である。一実施形態において、ボタンを押すと、「ＡＬＬ」、「内部→外部」、「外部→内部」のようなメニューリストが出ることができる。「内部→外部」は、デバイス２００の外部に送信されるパケットにのみルールが適用されることを意味し、「外部→内部」は、デバイス２００が受信するパケットにのみルールが適用されることで、「ＡＬＬ」は、送信及び受信されるパケットのすべてにルールが適用されることを意味する。
−ローカルデバイス（Ｌｏｃａｌ  Ｄｅｖｉｃｅ）：ルールを適用するネットワークインタフェースＩＰを設定する部分である。例えば、デバイス２００に二つのＮＩＣが存在する場合、特定ＮＩＣに入るパケットに対してルールを適用するためには、このフィールドで該当ＮＩＣのＩＰを入力すればよい。一実施形態においてこのフィールドのボタンを押すと、「ＡＬＬ」又はローカルデバイスのＩＰリストが列挙されて選択可能である。
−ＭＡＣアドレス（ＭＡＣ  Ａｄｄｒｅｓｓ）：ルールを適用するＭＡＣアドレスを設定する部分である。
−アクション（Ａｃｔｉｏｎ）：該当ルールと一致するパケットが入ったときに行う動作を設定する部分である。「Ｎｏｔｈｉｎｇ」、「Ａｌｌｏｗ」、「Ｂｌｏｃｋ」、「Ｌｏｇｇｉｎｇ」などがありうる。「Ｌｏｇｇｉｎｇ」は、ルールに適用されるパケットに対してログを残す機能である。
【００６５】
以下、図５を参照して基本ルールを設定するための実施形態を説明する。図５は、本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面５００を説明するための図であって、基本ルール設定ウィンドウ５２０が選択された状態を示す。
【００６６】
図５の基本ルール設定は、図３の入力例によってユーザにより設定されたルールと一致しないパケットが入ったときに適用するルールのことをいう。図５に示すように、基本ルール設定ウィンドウ５２０は、基本ルール説明５２１及び現在基本ルール状態５２２をそれぞれ表すウィンドウを備え、またすべて遮断ボタン５２３及びすべて許容ボタン５２４を備えることができる。
【００６７】
基本ルール説明５２１は、基本ルール設定の意味をユーザに説明する説明ウィンドウであり、現在基本ルール状態５２２は、現在設定されている基本ルールの状態を表すウィンドウである。
【００６８】
一実施形態において基本的なデフォルト値として基本ルールは、外部に送信されるパケット（アウトゴウイングパケット）に対しては、許容（ａｌｌｏｗ）に、デバイスの内部に受信されるパケット（インカミングパケット）に対しては、遮断（ｂｌｏｃｋ）に設定されうる。すべて遮断ボタン５２３及びすべて許容ボタン５２４は、このような基本ルールの設定をアウトゴウイングパケットとインカミングパケットの両方に対して「遮断」又は「許容」に設定する機能のことをいう。
【００６９】
図６は、本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図であって、プロセス別設定ウィンドウ５３０が選択された状態を示す。
【００７０】
プロセス別設定ウィンドウ５３０は、アプリケーションのプロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域であって、図示の実施形態においてプロセス別設定ウィンドウ５３０は、プロセスリスト５３１、選択ウィンドウ５３２、遮断ボタン５３３、及び許容ボタン５３４などを備えることができる。
【００７１】
ユーザは、このようなプロセス別設定ウィンドウ５３０を介して、例えばある特定アプリケーションのプロセスに対するファイアウォールの設定を許容することで、このプロセスが生成するすべてのソケットのパケットの通過を許容でき、反対に、ある特定アプリケーションのプロセスに対するファイアウォールの設定を遮断することで、該当プロセスが生成するすべてのソケットのパケットの通過を遮断できる。
【００７２】
一方、前記実施形態においてアプリケーション（プログラム）の「プロセス」単位でパケットの許容又は遮断を設定したりプロセス自体の実行を中断すると説明したが、代案的な実施形態において、プロセスではないプログラム単位で前記動作を行っても良い。例えば、遮断された所定パケットに対してこのパケットが使用するプログラムを確認して、このプログラムの実行を中断できる。
【００７３】
以下、図７ないし図８を参照してルール変換動作を説明する。
【００７４】
図７は、本発明の例示的な一実施形態に係るルールコンバーターの動作を示すフローチャートである。まず、ステップＳ７０１にてファイアウォールＵＩアプリケーション２０１はユーザからルールを受け取る。
【００７５】
例えば、ユーザは、ファイアウォールＵＩアプリケーション２０１から提供される設定画面５００を介してパケットフィルタリングのための一つ以上のルールを入力できる。例えば、下記の表１は、ユーザが入力した複数のルールを例示的に示す。
【００７６】
【表１】
0005519718.tif 000002
【００７７】
前記表において「＊」の表示は、「ＡＬＬ」を意味する。
【００７８】
その後、ユーザが入力したルールがルールコンバーター２０４に送信されると、ステップＳ７０３にてルールコンバーター２０４が前記ルールを変換する。ここでの変換とは、ユーザから受け取ったルールをデバイス２００の内部のルール形式、例えば具体的に、ルールリスト保存装置２０５に保存するためのルール形式に変換することを意味する。
【００７９】
一実施形態において、前記ルール変換は、所定変換規則に従って行われることができ、例えばルールのフィールドのうち、「プロトコル」、「パケット方向（Ｄｉｒｅｃｔｉｏｎ）」、及び「アクション（Ａｃｔｉｏｎ）」は、下記の表２のような変換規則に従って変換されうる。
【００８０】
【表２】
0005519718.tif 000003
【００８１】
上記のような変換規則を含んだ所定変換規則に従って、例えばユーザが入力したルールのうち、“内部２”のルール（表１の上から３番目の行のルール）を変換すると、下記の表３のように変換されうる。
【００８２】
【表３】
0005519718.tif 000004
【００８３】
また、例えば、ユーザ入力ルール（表１）のうち、下から５番目の行のルールである「ｎａｔｅ  ｏｎ」のルールを所定変換規則に従って変換すると、下記の表４のとおりに変換されうる。
【００８４】
【表４】
0005519718.tif 000005
【００８５】
ルールコンバーター２０４は、ユーザが入力したすべてのルールに対して前記のような方法でルールを変換させ、これにより、例えば表１のユーザ入力ルールは、ルールコンバーター２０４により下記の表５のとおりに変換される。
【００８６】
【表５】
0005519718.tif 000006
【００８７】
このように変換されたユーザ入力ルールは、保存装置２０５にルールリストの形態で保存され、これと関連して図８は、本発明の例示的な一実施形態によって変換されたルールの保存方式を説明している。
【００８８】
図８に示しているように、本発明の一実施形態において各々の変換されたルールは、リンクリスト（ｌｉｎｋｅｄ  ｌｉｓｔ）形態で保存されうる。リンクリストは、各データを互いに連結して管理する資料構造方式であって、各データがノード（ｎｏｄｅ）と呼ばれる保存単位に保存される。図示の実施形態において、例えば３個の変換されたルールがあると仮定すると、第１ないし第３の変換されたルールは、それぞれノード８１、８２、８３に保存される。
【００８９】
このとき、各ノード８１、８２、８３は、該当ノードの次の順序のノードの位置を表すポインタ（Ｐ）を含んでおり、図８の例の場合に、各ポインタ（Ｐ）の指示によって第１変換されたルール、第２変換されたルール、及び第３変換されたルールの順にルールが保存される。したがって、今後のパケットフィルタリング時に各パケットに適用されるルールも、この順に適用されうる。
【００９０】
前記実施形態において、変換されたルールをデータベース形式ではなくリスト資料構造で管理することは、管理の効率性のためである。ルール管理のために別途のデータベース（ＤＢ）を使用するためには、該当ＤＢのライブラリーが必要となるが、このとき、互換性問題又はサイズ問題が生じる。特に、一般にルールの個数が多くないが、この場合、ＤＢ形式で管理すると、ＤＢコード自体のサイズがルールサイズより大きくありうるので、効率的でない。さらに別途のＤＢを使用すると、他のオペレーティングシステムに移植（ポーティング：ｐｏｒｔｉｎｇ）しようとするとき、ＤＢまで移植しなければならないという問題も生じうる。
【００９１】
次に、ステップＳ７０３にてユーザ入力ルールが変換されると、該変換されたルールが既存のルールリストに追加される前に、ルールコンバーター２０４は、ステップＳ７０５にて前記変換されたルールが既存のルールと衝突するかどうかをチェックする。
【００９２】
衝突チェックは、多様な方式により行われうる。一実施形態において、ルールコンバーター２０４は、前記変換されたルールと前記既存の保存されたルールリストに含まれたルールの各々と衝突されるかどうかをチェックできる。すなわち、ユーザが入力した新しく追加されるルールを既存に登録されたすべてのルールと比較する衝突チェックアルゴリズムを行って、ルールをチェックできる。
【００９３】
その後、ステップＳ７０７にて、万が一、新しく追加されるユーザ入力ルールと既存に保存されたルールとの間に衝突が発生する場合、ルールコンバーター２０４は、予め設定された所定優先順位に従ってユーザ入力ルールの挿入位置を決定して、この位置にユーザ入力ルールを追加する。
【００９４】
このときの適用される前記優先順位は、実施形態によって多様な基準によって予め設定されうる。例えば、衝突されるルールのうち、最も速く入力されたルールが優先順位を有することによって、パケットフィルタリング時にまず適用されるようにすることができ、反対に、最も後ほど入力されたルールが優先順位を有することによって、パケットフィルタリング時にまず適用されうるように設定することもできる。
【００９５】
また、本発明の代案的な実施形態において、ルール衝突が発生した場合、ルールコンバーター２０４がユーザに衝突状況を通知できる。この場合、ルールコンバーター２０４がユーザに衝突事実を知らせた後に、ユーザが手作業でルールを再度設定するか、それともルールコンバーター２０４により自動的にルールの優先順位を定めたりルール自体を廃棄するかどうかなどを選択できる。
【００９６】
上述したステップＳ７０７によってユーザ入力ルールがルールリストに追加されてルールリスト保存装置２０５に保存されると、その後ステップＳ７０９にて、ユーザ命令又は所定イベントに従ってルールコンバーター２０４が前記ルールリストをシステムオンチップ（ＳｏＣ）に送信する。図２に示す一実施形態において、ルールコンバーター２０４は、システムオンチップのファイアウォールマネジャー２２７にルールリストを送信できる。
【００９７】
そうすると、ステップＳ７１１にてファイアウォールマネジャー２２７は、ルールリストをルールＤＢ２２４に保存し、今後パケットフィルタリング時に前記ルールに従ってパケットをフィルタリングできる。このとき、ファイアウォールマネジャー２２７が受信したルールリストは、例えばリンクリスト形式を有するデータであるから、ファイアウォールマネジャー２２７は、前記ルールリストをルールデータベースの形態に変換して、ルールＤＢ２２４に保存することができる。
【００９８】
図９は、図２のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、ユーザ入力ルールがパケットフィルタリング時にどのように適用されるかを一例として示している。
【００９９】
図９は、一例であって、デバイス２００からパケットを外部に送信する時におけるパケットフィルタリング過程を示し、図７のステップに従ってユーザ入力ルールがルールコンバーター２０４により変換されてルールリスト保存装置２０５に保存され、その後システムオンチップのルールＤＢ２２４に保存されたことを前提とする。
【０１００】
図９に示すように、ステップＳ９０１にて、任意のネットワークアプリケーション２０３によりパケットが生成されてデバイス２００の外部に送信される前に、ミニポートドライバ２１７が前記送信されるパケットを受信する。
【０１０１】
ステップＳ９０３にてミニポートドライバ２１７は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスＩＤ（ＩＤ）から確認されうる。
【０１０２】
その後、ステップＳ９０５にて、前記パケットのオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ（ＳｏＣ）に送信する。このとき、前記識別情報は、例えばプロセスＩＤになりうる。
【０１０３】
前記パケット及び識別情報（例えばプロセスＩＤ）は、システムオンチップ（ＳｏＣ）のファイアウォールエンジン２２９に伝達され、ステップＳ９０７にて、ファイアウォールエンジン２２９が前記オーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールＤＢが利用されうる。すなわち、デバイス２００がプロセス別にパケットの送受信を許容又は遮断することを定義したルールをルールＤＢ２２４が含むことができ、このルールＤＢ２２４に保存されたプロセス別許容及び／又は遮断ルールに従って、前記オーナープロセスがパケットを送受信することが許容されるか遮断されるかを判断する。
【０１０４】
前記ステップＳ９０７にて判断した結果、前記オーナープロセスがパケット送信が許容されるプロセスに属する場合に、ステップＳ９０９に進んで、ステップＳ９０９にてファイアウォールエンジン２２９がパケットフィルタリングを行う。すなわち、ルールＤＢ２２４に保存されたパケットフィルタリングルールに従ってパケット送信の許容又は遮断を判断するフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。
【０１０５】
代案的な実施形態において、前記パケットフィルタリングステップＳ９０９は、前記判断するステップＳ９０７の前に行われうる。すなわち、パケットフィルタリングを経て通過されたパケットに対してのみ、前記判断ステップＳ９０７の作業を行うこともできる。
【０１０６】
一方、ステップＳ９０７にて、前記オーナープロセスがパケット送信が許容されないプロセスに属する場合、ステップＳ９１１に進んで、ファイアウォールエンジン２２９は、前記パケットをＮＩＣドライバ２２８側に送信しない。一実施形態において、ファイアウォールエンジン２２９は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップＳ９１３にてファイアウォールエンジン２２９は、オーナープロセスの実行の中断を要請する信号を上位階層に送信できる。
【０１０７】
図９を参照して説明した前記パケットフィルタリング方法は、ルールＤＢ２２４を適用してパケットをフィルタリングする一つの例示に過ぎず、ルールＤＢ２２４を利用した多様な方法のパケットフィルタリング作業が行われうるもちろんである。
【０１０８】
一方、図２の例示的なデバイスの代案的実施形態として、デバイス２００が外部と通信するための構成要素であるＮＩＣ２３１がシステムオンチップ（ＳｏＣ）でないデバイス２００の本体側に位置しており、これによりＮＩＣドライバ２２８もカーネル層のＮＤＩＳ２１８内に位置できる。
【０１０９】
この実施形態によれば、デバイス２００の内部から外部に送信されるパケット又は外部からデバイス２００に受信されるパケットが全部ミニポートドライバ２１７に送信されうる。ミニポータードライバ２１７は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのＩＤを確認した後、このプロセスＩＤを該当パケットと共にシステムオンチップ（ＳｏＣ）に送信する。その後、ファイアウォールエンジン２２９がプロセス別ルールを含んだルールＤＢを前記すべてのパケットに適用できる。
【０１１０】
以上説明した本発明に係る実施形態は、またコンピュータ読み取り可能な記録媒体にコンピュータが読み取ることのできるコードとして具現化することが可能である。コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読まれることができるデータが保存されるすべての種類の記録装置を含む。コンピュータ読み取り可能な記録媒体の例には、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク、光データ保存装置などがあり、またキャリアウェーブ（例えば、インターネットを介した送信）の形態で具現化されることも含む。また、コンピュータ読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でコンピュータが読み出すことができるコードが保存され実行されうる。
【０１１１】
以上、本発明は、限定された実施形態と図面により説明されたが、本発明は、上記の実施形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施形態に限定されてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められねばならない。
【図１】
0005519718.tif 000007
【図２】
0005519718.tif 000008
【図３】
0005519718.tif 000009
【図４】
0005519718.tif 000010
【図５】
0005519718.tif 000011
【図６】
0005519718.tif 000012
【図７】
0005519718.tif 000013
【図８】
0005519718.tif 000014
【図９】
0005519718.tif 000015