説明

システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法

【課題】システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法を提供すること。
【解決手段】パケットフィルタリングのためのルールDBを保存する第1保存部と、前記ルールDBを適用してパケットの送信を許容又は遮断するファイアウォールエンジンとを有するチップと、ユーザからパケットフィルタリングのためのルールを受け取って、ルールリストに保存するための形態に変換するルールコンバーターとを備え、前記チップは、前記ルールコンバーターにより変換されたルールリストを受信して、前記第1保存部にルールDBとして保存することを特徴とするデバイスが開示される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関し、さらに詳細には、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断に設定できるシステムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関する。
【背景技術】
【0002】
インターネットが広範囲に使用されるにつれて、ウォームやトロイの木馬、ウイルス、DDoSなどのような多様な形態の悪性マルウェアが登場しその被害も大きくなりつつある。そのため、ネットワーク上の情報を保護するためのネットワーク侵害対応方法及びその他の関連装置が必需となった。
【0003】
特に、モバイル機器の場合は、使用可能なリソースが制限されているため、リソースを最小限使用しながら高速でパケットをフィルタリングできる高速フィルタリング技術が必ず必要であるはずである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一実施形態によれば、ユーザインタフェースを介してユーザが入力したルールをルールコンバーターにより変換してルールリストの形態で保存することのできる方法及び装置を提供することにその目的がある。
【0005】
本発明の一実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できるデバイス及びパケットフィルタリング方法を提供することにその目的がある。
【0006】
本発明の一実施形態によれば、パケットフィルタリングのためのルールの設定時に構成ヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことのできるデバイス及びパケットフィルタリング方法を提供することにその目的がある。
【課題を解決するための手段】
【0007】
本発明の一実施形態によれば、パケットフィルタリングのためのルールDBを保存する第1保存部と、前記ルールDBを適用してパケットの送信を許容又は遮断するファイアウォールエンジンとを有するチップと、ユーザからパケットフィルタリングのためのルールを受け取って、ルールリストに保存するための形態に変換するルールコンバーターとを備え、前記チップは、前記ルールコンバーターにより変換されたルールリストを受信して、前記第1保存部にルールDBとして保存することを特徴とするデバイスが提供されている。
【0008】
本発明の一実施形態によれば、ファイアウォール機能付きチップが装着されたデバイスでのパケットフィルタリング方法であって、前記デバイスが、ユーザからパケットフィルタリングのためのルールを受け取ってルールリストの形態に変換するステップと、前記チップが、前記デバイスからルールリストを受信してルールDBの形態として保存するステップと、前記チップが、前記ルールDBを利用してパケットの送受信を許容又は遮断するステップと、を含むことを特徴とするパケットフィルタリング方法が提供されている。
【発明の効果】
【0009】
本発明の一つ以上の実施形態によれば、ユーザインタフェースを介してユーザが直接入力したルールをルールコンバーターにより変換してルールリストの形態で保存することができる。
【0010】
本発明の一つ以上の実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できる。
【0011】
本発明の一つ以上の実施形態によれば、パケットフィルタリングのためのルール設定時に構成ヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【図面の簡単な説明】
【0012】
【図1】本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図2】本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図3】本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【図4】本発明の例示的な実施形態に係る構成ヘルパーの機能を説明するための図である。
【図5】本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面を説明するための図である。
【図6】本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図である。
【図7】本発明の例示的な一実施形態に係るルールコンバーターの動作を示すフローチャートである。
【図8】本発明の例示的な一実施形態によって変換されたルールの保存方式を説明する図である。
【図9】図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施形態に限定されず、他の形態で具体化されてもよい。むしろ、ここで紹介される実施形態は、開示された内容が徹底かつ完全になるように、そして当業者に、本発明の思想を十分に理解してもらうために提供されるものである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合には、それは、他の構成要素上に直接形成される場合もあり、それらの間に第3の構成要素が介在される場合もあることを意味する。
【0014】
また、あるエレメント(または構成要素)が他のエレメント(または構成要素)上で動作または実行されると言及されるとき、そのエレメント(または構成要素)は、他のエレメント(または構成要素)が動作または実行される環境で動作または実行されるか、または他のエレメント(または構成要素)と直接または間接的に相互作用により動作または実行されると理解されなければならない。
【0015】
あるエレメント、構成要素、装置、またはシステムが、プログラム若しくはソフトウェアからなる構成要素を含むと言及される場合には、明示的な言及がなくても、そのエレメント、構成要素、装置、またはシステムは、そのプログラム若しくはソフトウェアが実行または動作するのに必要なハードウェア(例えば、メモリ、CPU(Central Processing Unit)等)や他のプログラムまたはソフトウェア(例えば、オペレーティングシステム(OS)やハードウェアを駆動するのに必要なドライバ等)を含むと理解されなければならない。
【0016】
また、あるエレメント(または構成要素)が具現化されるに当たって、特別な言及がない限り、そのエレメント(または構成要素)は、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアのうち、如何なる形態によっても具現化可能であると理解されなければならない。
【0017】
本明細書で使用された用語は、実施形態を説明するためのものであって、本発明を限定するものではない。本明細書において、単数形は、特に言及しない限り、複数形も含む。明細書で使用される「含む」と言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。
【0018】
以下、図面を参照して本発明を詳細に説明する。以下の特定の実施形態を述べるにおいて、様々に特定された内容は、発明をさらに具体的に説明し、理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような様々に特定された内容がなくても、本発明が実施可能であることを認知できる。ある場合には、周知で発明と大きく関連のない技術的内容は、本発明を説明するにあたって、特別な理由なしでも、読者の混乱を引き起こさないようにあえて述べないこともあることを予め言及しておく。
【0019】
図1は、本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0020】
図1に示すように、本発明の例示的な実施形態に係るデバイス1には、パケットをフィルタリングするファイアウォール機能付きシステムオンチップ(System On Chip)3が装着されうる。
【0021】
デバイス1は、ファイアウォール動作のためのユーザインタフェース(UI)アプリケーションを含むことができ、前記UIアプリケーションは、パケットフィルタリングのためのルール(rule)の状態をユーザに提供し、ユーザから新しいルールを受け取ることができる。
【0022】
デバイス1は、ルールコンバーター(rule converter)及びルールリスト(rule list)保存装置をさらに備えることができる。ルールコンバーターは、UIインタフェースを介してユーザから受け取ったルールをデバイス1の内部に保存可能な形式に変換し、これを既存のルールリストに追加する。ルールリストは、デバイス1の内部の保存装置又は外部の保存装置に保存されうる。
【0023】
ルールリスト保存装置に保存されたルールリストは、その後にシステムオンチップ3に送信され、システムオンチップ3は、この送信されたルールリストを自身のメモリにロードしたり、保存装置にルールDBとして保存し、ファイアウォールエンジンは、前記ルールDBを参照してパケットに対するフィルタリング動作を行う。
【0024】
デバイス1は、ネットワークを介して送受信するパケットを利用する一つ以上のネットワークアプリケーションを含むことができ、各々のアプリケーションは、一つ以上のプロセスを含むことができる。本発明の目的のために、任意のパケットに対して、このパケットを外部に送信し、又は、外部から受信して使用するプロセスをそのパケットの「オーナープロセス(owner process)」と呼ぶことにする。一実施形態においてプロセスには、各々IDが付与されているから互いに識別可能であり、各パケットには、該当パケットを使用するオーナープロセスのプロセスIDが含まれている。したがって、各パケットを使用するオーナープロセスは、各々のパケットに含まれたプロセスIDによって識別されうる。
【0025】
一実施形態でシステムオンチップ3がネットワークインタフェースカード(NIC)を備えることができ、これによりデバイス1は、システムオンチップ3を介してパケットを外部に送信し、システムオンチップ3を介してパケットを外部から受信することができる。
【0026】
システムオンチップ3がネットワークインタフェースカード(NIC)を含み、デバイス1が外部とパケットを送受信する時に、前記NICを介して通信すると仮定する場合、デバイス1は、送受信するパケットのオーナープロセスを確認し、オーナープロセスのプロセスIDを前記パケットと共にシステムオンチップに伝達する。
【0027】
一実施形態においてシステムオンチップのファイアウォールエンジンは、前記ルールDBを参照して、送受信するパケットのオーナープロセスが該当パケットを送受信することが許容されるかどうかを判断し、許容された場合にのみ該当パケットの通過を許容する。
【0028】
追加的機能として、デバイス1は、外部に送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットのオーナープロセスの実行を中断させることができる。
【0029】
図1には示していないが、システムオンチップ3は、中央処理装置(CPU)、メモリ、メモリコントローラ、及びルールDB保存部を有したハードウェア及び/ソフトウェアリソースを備えることができる。本発明の説明において、プログラムが駆動されるために必要なリソース(例えば、中央処理装置、メモリ、メモリコントローラ、ルールDB保存部)に対して明示的に表示しなくても、プログラムが駆動されるために必要なハードウェア及びソフトウェア資源、並びにその動作は、内在されると理解しなければならない。
【0030】
例えば、システムオンチップ3に備えられたファイアウォールエンジンは、ルールDBとパケットとを互いにマッチングさせるマッチャー(matcher)とこのマッチャーを動作させるファームウェアとを備えるように構成されうるが、このような場合、明示的な言及がなくてもそういうファームウェアを保存する保存部、及びファームウェアをメモリにロードさせる中央処理装置は、システムオンチップ3に内蔵されると理解しなければならない。
【0031】
このような類似の方式で本願明細書において、デバイス1があるアプリケーションやドライバを備えるように構成されると述べられた場合には、そういうアプリケーションとドライバとを動作させるためのハードウェア及び/又はソフトウェアリソースを当然備えると理解しなければならない。
【0032】
デバイス1は、スマートフォンやPDAのようなモバイル機器でありうるが、これは、例示的なものであって、デスクトップコンピュータのように固定型デバイスであっても良い。
【0033】
図2は、本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。図2の実施形態は、ファイアウォール機能がシステムオンチップ(SoC)の基盤により具現化されてデバイス200に装着された例である。
【0034】
図2に示すように、デバイス200は、機能的にアプリケーション層、カーネル層、SoC層、及びNIC層に区分されうる。実施形態によって、前記機能層の一部が省略されえ、他の機能層が追加されえ、また、各機能層の細部構成要素も変更されうることはもちろんである。したがって、図2の構成は、一実施形態に過ぎないので、本発明を図2に限定してはならない。
【0035】
図2に示すように、デバイス1は、ファイアウォールUIアプリケーション201及び各種ネットワークアプリケーション203を備えることができる。
【0036】
ファイアウォール(F/W)UIアプリケーション201は、ファイアウォール動作と関連したユーザインタフェースを提供する。例えば、ファイアウォールUIアプリケーション201は、ファイアウォール動作作業、ファイアウォール停止作業、ルール追加作業、ルール変更作業、特定ルール除去作業、全体ルール除去作業、ルール状態表示作業、各ルールに適用されたパケットログ出力作業、及び基本ルール設定変更作業などを提供できる。
【0037】
ファイアウォールUIアプリケーション201は、ユーザからパケットフィルタリングのためのルールを受け取ることができ、ファイアウォールエンジン229によるパケットフィルタリング結果をユーザに表示できる。ファイアウォールUIアプリケーション201は、パケットフィルタリングのためのルールの追加及び/又はアップデート動作を行うことができる。
【0038】
また、本発明の一実施形態によって、ファイアウォールUIアプリケーション201は、ミニポートドライバ217によるプロセス別パケットフィルタリングの結果をユーザに表示でき、ユーザからプロセス別ルールを受け取ってルールDBのアップデート動作を行うことができる。
【0039】
ルールコンバーター204は、ユーザから受け取ったルールをデバイス200の内部において使用するルール形式に変換し、複数のルールの間に衝突があるかどうかを検査する機能を果たす。仮に、ルール間に衝突が発生した場合、ルールコンバーター204は、UIアプリケーション201に衝突結果を通知し、ユーザから追加命令を受けることができる。
【0040】
ルールリスト保存装置205は、前記ルールコンバーター204により変換されたルールをリスト形態で保存する保存装置であって、任意の不揮発性メモリのうちの何れか一つになりうる。
【0041】
アンチマルウェア(AM)SoCストリームインタフェースドライバ211(以下、ストリームインタフェースドライバともする)は、ファイアウォールUIアプリケーション201からデータを受信してシステムオンチップ(SoC)のAPドライバ221に送信でき、APドライバ221からデータを受信してファイアウォールUIアプリケーション201に送信できる。
【0042】
ファイアウォール(F/W)マネジャー227は、ファイアウォールUIアプリケーション201を介して受け取ったユーザ命令を処理する機能を行い、システムオンチップ(SoC)で具現化される。ファイアウォールマネジャー227は、例えばユーザ命令によってルールDB224にルールを保存することができ、現在のルールDB224の状態を読み込んでファイアウォールUIアプリケーション201に送信することによって、ユーザに現在状態を見せることもできる。
【0043】
ネットワークアプリケーション203は、パケットフィルタリングの対象になるパケットデータを使用するアプリケーション203を含む。例えば、アプリケーション203は、ウェブブラウザ203−1、テレネット203−2、FTPサーバ203−3のうちの少なくとも一つになりえ、その他にも所定のパケットデータを使用する任意のアプリケーションのうちの一つでありうる。
【0044】
図示の一実施形態においてデバイス200のカーネル層は、デバイス200が外部から受信したパケットデータ内の情報をアプリケーション層に送信するか、又はアプリケーション層の要請によってパケットデータを生成して外部に送信する役割を果たすことができる。
【0045】
図示の一実施形態のように、データを送信するためにTCP/IPプロトコルを使用してパケットデータを送受信する場合、デバイス200は、TCP/IPプロトコルドライバ215を含む。また、デバイス200がオペレーティングシステム(OS)としてウィンドウズ(WINDOWS)を使用する場合にWinSock213を備える。TCP/IPプロトコルドライバ215とWinSock213との動作は、公知技術であるから、これらの動作については説明を省略する。
【0046】
デバイス200がTCP/IPプロトコルでない他のプロトコルを利用する場合には、その他のプロトコルの使用のためのドライバを備えることができ、またデバイス200がウィンドウズオペレーティングシステムでない他のオペレーティングシステムを使用する場合には、WinSock213でない他の構成要素を備えることができる。すなわち、図示のWinSock213及びTCP/IPプロトコルドライバ215は、実施形態によって他の構成要素で置き換えることができる。
【0047】
図示の実施形態におけるカーネル層は、ネットワークドライバインタフェース仕様(Network Driver Interface Specification:NDIS)218をさらに備え、NDIS218には、アンチマルウェアSoCミニポートドライバ217(以下、ミニポートドライバとする)を備えることができる。
【0048】
ミニポートドライバ217は、アプリケーション203からパケットデータを受信してAPドライバ221に送信するか、又はパケットデータをAPドライバ221から受信して上位階層に送信する。
【0049】
本発明の一実施形態に係るミニポートドライバ217は、また、パケットデータをAPドライバ221に送信する前にプロセス別にフィルタリングする動作を行うことができる。例えば、パケットフィルタリングのためのルールのうち、プロセス別に設定されたルールが含まれた場合、ミニポートドライバ217は、アプリケーション203からパケットを受信すると、該当パケットのオーナープロセスを確認した後にプロセス別ルールと比較してパケットを通過させるかどうかを判断できる。代案的な実施形態において、ミニポートドライバ217は、該当パケットのオーナープロセスを確認した後、前記オーナープロセスを知らせる情報(例えば、プロセスID)と共に前記パケットをシステムオンチップ(SoC)に送信し、システムオンチップ(SoC)は、前記パケットを通過させるかどうかを判断できる。
【0050】
APドライバ221は、ミニポートドライバ217からパケットデータを受信してファイアウォールエンジン229に送信する。ファイアウォールエンジン229は、パケット検証(Verification)過程を経てパケットフィルタリング動作を行うことができる。ここで、パケット検証過程は、例えばSyn Floodingのような攻撃を防止するためである。
【0051】
ファイアウォールエンジン229は、パケットに対してパケットフィルタリングのためのルールを適用して、パケットを通過させるか、又は遮断させるかを判断し、判断結果に応じてパケットを通過又は遮断できる。このとき、ファイアウォールシステムオンチップ(SoC)は、ルールDB224を含んでおり、ルールDB224に保存されたルールを利用してパケットフィルタリング動作を行うことができる。
【0052】
デバイス200の外部にパケットを送信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをNICドライバ228に送信する。NICドライバ228は、ファイアウォールエンジン229から受信したパケットをNIC231に送信する。以後、NIC231は、外部ネットワークにパケットを送信する。
【0053】
デバイス200が外部からパケットを受信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをAPドライバ221に送信し、APドライバ221は、パケットをミニポートドライバ217に送信する。
【0054】
NIC231は、パケットデータ網にパケットデータを送信するか、又はそれからパケットデータを受信するためのものであって、システムオンチップ(SoC)の一部として装着されうる。NIC231は、例えば有線又は無線ラン網を介してパケットデータを受信することができる。
【0055】
図3は、本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【0056】
本発明の例示的な実施形態によって、デバイス200のファイアウォールUIアプリケーション201は、ユーザが入力したルールをルールコンバーター204に送信でき、送信されたルールは、ルールコンバーター204によりその形式が変換されて、既保存されたルールリストに追加されて保存装置205に保存される。
【0057】
図3に示すように、ルール設定画面500は、三個のサブウィンドウ、すなわち基本設定ウィンドウ510、基本ルール設定ウィンドウ520、及びプロセス別設定ウィンドウ530を備えることができる。ユーザは、ルール設定画面500から前記3個のサブウィンドウのうち、任意のサブウィンドウを選択してルール設定を行うことができ、その中で図3は、基本設定ウィンドウ510が選択された状態を示す。
【0058】
基本設定ウィンドウ510は、例えばユーザがある特定IPアドレス又は特定ネットワーク帯域のIPアドレスに該当するサイトを許容(allow)又は遮断(block)しようとするとき、これを設定する画面である。
【0059】
図示の一実施形態において、基本設定ウィンドウ510は、構成ヘルパー(configuration helper)511の機能のための入力ウィンドウ512を備え、その下にルールネーム、IP、プロトコル、ポートなどの各種フィールドを満たすための入力ウィンドウを備えることができる。
【0060】
構成ヘルパー511は、ネットワークを全く知らないユーザを助ける機能を果たす。本発明の一実施形態において、構成ヘルパー511は、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、該選択されたネットワークアプリケーションを実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを該当フィールドの入力ウィンドウに自動的に表示できる。
【0061】
例えば、ユーザが構成ヘルパー511の入力ウィンドウ512のボタンを選択すると、図4に示すようなメニューが広まる。広まったネットワークアプリケーションのうち、ユーザが何れか一つを選択すると、図3において構成ヘルパー511の下にあるルールネーム、IP、プロトコル、ポートなどのフィールドが自動的に入力されうる。
【0062】
図4のリストには、メッセンジャー、P2P、ゲームなどのみを例示したが、実施形態によってftp、http、テレネット、ssh、プリンタ(printer)などのプロトコルも選択できるように前記リストに含むことができる。
【0063】
前記実施形態のように構成ヘルパー511を備える理由は、一般的なユーザは、特定プロトコルあるいは特定サービスのポートを全く知らない場合が多く、またネットワークをよく知るユーザであっても、例えばMSNメッセンジャーでファイルをやり取りするためには、6891〜6900番ポートと41800〜41899ポートを許容(allow)しなければならないという事実は、関連文書を検索する前には分かり難いためである。したがって、前記実施形態のように通常のユーザのための構成ヘルパー511を提供することによって、ユーザ自身の望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【0064】
また、図3に示すように、構成ヘルパー511の下部の各種フィールドの意味は、次のとおりである。
−ルールネーム(Rule Name):ルールの名称を入力するフィールドである。
−インターネットプロトコル(IP):ルールを適用するIPを設定するフィールドである。
−プロトコル(Protocol):ルールを適用するプロトコルを設定する部分である。一実施形態においてプロトコルに該当するボタンを押すと、「ALL」、「TCP」、「UDP」、「ICMP」などのメニューリストが出てくることができる。その他にも前記基本的なプロトコルだけでなく他の多様なプロトコルも支援できる。
−ポート(Port):ルールを適用するポートを設定する部分である。ユーザが直接入力することもでき、メニューボタンを押して選択することもできる。メニューボタンを押すと、ftp、http、テレネット、sshなどのようなプロトコル文字列が出、このうちの何れか一つを選択すると、最小ポート番号(min port)と最大ポート番号(max port)とが自動的に入力されるようにすることができ、ユーザが直接入力することもできる。
−パケット方向(Direction):ルールを適用するパケットの方向を指定する部分である。一実施形態において、ボタンを押すと、「ALL」、「内部→外部」、「外部→内部」のようなメニューリストが出ることができる。「内部→外部」は、デバイス200の外部に送信されるパケットにのみルールが適用されることを意味し、「外部→内部」は、デバイス200が受信するパケットにのみルールが適用されることで、「ALL」は、送信及び受信されるパケットのすべてにルールが適用されることを意味する。
−ローカルデバイス(Local Device):ルールを適用するネットワークインタフェースIPを設定する部分である。例えば、デバイス200に二つのNICが存在する場合、特定NICに入るパケットに対してルールを適用するためには、このフィールドで該当NICのIPを入力すればよい。一実施形態においてこのフィールドのボタンを押すと、「ALL」又はローカルデバイスのIPリストが列挙されて選択可能である。
−MACアドレス(MAC Address):ルールを適用するMACアドレスを設定する部分である。
−アクション(Action):該当ルールと一致するパケットが入ったときに行う動作を設定する部分である。「Nothing」、「Allow」、「Block」、「Logging」などがありうる。「Logging」は、ルールに適用されるパケットに対してログを残す機能である。
【0065】
以下、図5を参照して基本ルールを設定するための実施形態を説明する。図5は、本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面500を説明するための図であって、基本ルール設定ウィンドウ520が選択された状態を示す。
【0066】
図5の基本ルール設定は、図3の入力例によってユーザにより設定されたルールと一致しないパケットが入ったときに適用するルールのことをいう。図5に示すように、基本ルール設定ウィンドウ520は、基本ルール説明521及び現在基本ルール状態522をそれぞれ表すウィンドウを備え、またすべて遮断ボタン523及びすべて許容ボタン524を備えることができる。
【0067】
基本ルール説明521は、基本ルール設定の意味をユーザに説明する説明ウィンドウであり、現在基本ルール状態522は、現在設定されている基本ルールの状態を表すウィンドウである。
【0068】
一実施形態において基本的なデフォルト値として基本ルールは、外部に送信されるパケット(アウトゴウイングパケット)に対しては、許容(allow)に、デバイスの内部に受信されるパケット(インカミングパケット)に対しては、遮断(block)に設定されうる。すべて遮断ボタン523及びすべて許容ボタン524は、このような基本ルールの設定をアウトゴウイングパケットとインカミングパケットの両方に対して「遮断」又は「許容」に設定する機能のことをいう。
【0069】
図6は、本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図であって、プロセス別設定ウィンドウ530が選択された状態を示す。
【0070】
プロセス別設定ウィンドウ530は、アプリケーションのプロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域であって、図示の実施形態においてプロセス別設定ウィンドウ530は、プロセスリスト531、選択ウィンドウ532、遮断ボタン533、及び許容ボタン534などを備えることができる。
【0071】
ユーザは、このようなプロセス別設定ウィンドウ530を介して、例えばある特定アプリケーションのプロセスに対するファイアウォールの設定を許容することで、このプロセスが生成するすべてのソケットのパケットの通過を許容でき、反対に、ある特定アプリケーションのプロセスに対するファイアウォールの設定を遮断することで、該当プロセスが生成するすべてのソケットのパケットの通過を遮断できる。
【0072】
一方、前記実施形態においてアプリケーション(プログラム)の「プロセス」単位でパケットの許容又は遮断を設定したりプロセス自体の実行を中断すると説明したが、代案的な実施形態において、プロセスではないプログラム単位で前記動作を行っても良い。例えば、遮断された所定パケットに対してこのパケットが使用するプログラムを確認して、このプログラムの実行を中断できる。
【0073】
以下、図7ないし図8を参照してルール変換動作を説明する。
【0074】
図7は、本発明の例示的な一実施形態に係るルールコンバーターの動作を示すフローチャートである。まず、ステップS701にてファイアウォールUIアプリケーション201はユーザからルールを受け取る。
【0075】
例えば、ユーザは、ファイアウォールUIアプリケーション201から提供される設定画面500を介してパケットフィルタリングのための一つ以上のルールを入力できる。例えば、下記の表1は、ユーザが入力した複数のルールを例示的に示す。
【0076】
【表1】

【0077】
前記表において「*」の表示は、「ALL」を意味する。
【0078】
その後、ユーザが入力したルールがルールコンバーター204に送信されると、ステップS703にてルールコンバーター204が前記ルールを変換する。ここでの変換とは、ユーザから受け取ったルールをデバイス200の内部のルール形式、例えば具体的に、ルールリスト保存装置205に保存するためのルール形式に変換することを意味する。
【0079】
一実施形態において、前記ルール変換は、所定変換規則に従って行われることができ、例えばルールのフィールドのうち、「プロトコル」、「パケット方向(Direction)」、及び「アクション(Action)」は、下記の表2のような変換規則に従って変換されうる。
【0080】
【表2】

【0081】
上記のような変換規則を含んだ所定変換規則に従って、例えばユーザが入力したルールのうち、“内部2”のルール(表1の上から3番目の行のルール)を変換すると、下記の表3のように変換されうる。
【0082】
【表3】

【0083】
また、例えば、ユーザ入力ルール(表1)のうち、下から5番目の行のルールである「nate on」のルールを所定変換規則に従って変換すると、下記の表4のとおりに変換されうる。
【0084】
【表4】

【0085】
ルールコンバーター204は、ユーザが入力したすべてのルールに対して前記のような方法でルールを変換させ、これにより、例えば表1のユーザ入力ルールは、ルールコンバーター204により下記の表5のとおりに変換される。
【0086】
【表5】

【0087】
このように変換されたユーザ入力ルールは、保存装置205にルールリストの形態で保存され、これと関連して図8は、本発明の例示的な一実施形態によって変換されたルールの保存方式を説明している。
【0088】
図8に示しているように、本発明の一実施形態において各々の変換されたルールは、リンクリスト(linked list)形態で保存されうる。リンクリストは、各データを互いに連結して管理する資料構造方式であって、各データがノード(node)と呼ばれる保存単位に保存される。図示の実施形態において、例えば3個の変換されたルールがあると仮定すると、第1ないし第3の変換されたルールは、それぞれノード81、82、83に保存される。
【0089】
このとき、各ノード81、82、83は、該当ノードの次の順序のノードの位置を表すポインタ(P)を含んでおり、図8の例の場合に、各ポインタ(P)の指示によって第1変換されたルール、第2変換されたルール、及び第3変換されたルールの順にルールが保存される。したがって、今後のパケットフィルタリング時に各パケットに適用されるルールも、この順に適用されうる。
【0090】
前記実施形態において、変換されたルールをデータベース形式ではなくリスト資料構造で管理することは、管理の効率性のためである。ルール管理のために別途のデータベース(DB)を使用するためには、該当DBのライブラリーが必要となるが、このとき、互換性問題又はサイズ問題が生じる。特に、一般にルールの個数が多くないが、この場合、DB形式で管理すると、DBコード自体のサイズがルールサイズより大きくありうるので、効率的でない。さらに別途のDBを使用すると、他のオペレーティングシステムに移植(ポーティング:porting)しようとするとき、DBまで移植しなければならないという問題も生じうる。
【0091】
次に、ステップS703にてユーザ入力ルールが変換されると、該変換されたルールが既存のルールリストに追加される前に、ルールコンバーター204は、ステップS705にて前記変換されたルールが既存のルールと衝突するかどうかをチェックする。
【0092】
衝突チェックは、多様な方式により行われうる。一実施形態において、ルールコンバーター204は、前記変換されたルールと前記既存の保存されたルールリストに含まれたルールの各々と衝突されるかどうかをチェックできる。すなわち、ユーザが入力した新しく追加されるルールを既存に登録されたすべてのルールと比較する衝突チェックアルゴリズムを行って、ルールをチェックできる。
【0093】
その後、ステップS707にて、万が一、新しく追加されるユーザ入力ルールと既存に保存されたルールとの間に衝突が発生する場合、ルールコンバーター204は、予め設定された所定優先順位に従ってユーザ入力ルールの挿入位置を決定して、この位置にユーザ入力ルールを追加する。
【0094】
このときの適用される前記優先順位は、実施形態によって多様な基準によって予め設定されうる。例えば、衝突されるルールのうち、最も速く入力されたルールが優先順位を有することによって、パケットフィルタリング時にまず適用されるようにすることができ、反対に、最も後ほど入力されたルールが優先順位を有することによって、パケットフィルタリング時にまず適用されうるように設定することもできる。
【0095】
また、本発明の代案的な実施形態において、ルール衝突が発生した場合、ルールコンバーター204がユーザに衝突状況を通知できる。この場合、ルールコンバーター204がユーザに衝突事実を知らせた後に、ユーザが手作業でルールを再度設定するか、それともルールコンバーター204により自動的にルールの優先順位を定めたりルール自体を廃棄するかどうかなどを選択できる。
【0096】
上述したステップS707によってユーザ入力ルールがルールリストに追加されてルールリスト保存装置205に保存されると、その後ステップS709にて、ユーザ命令又は所定イベントに従ってルールコンバーター204が前記ルールリストをシステムオンチップ(SoC)に送信する。図2に示す一実施形態において、ルールコンバーター204は、システムオンチップのファイアウォールマネジャー227にルールリストを送信できる。
【0097】
そうすると、ステップS711にてファイアウォールマネジャー227は、ルールリストをルールDB224に保存し、今後パケットフィルタリング時に前記ルールに従ってパケットをフィルタリングできる。このとき、ファイアウォールマネジャー227が受信したルールリストは、例えばリンクリスト形式を有するデータであるから、ファイアウォールマネジャー227は、前記ルールリストをルールデータベースの形態に変換して、ルールDB224に保存することができる。
【0098】
図9は、図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、ユーザ入力ルールがパケットフィルタリング時にどのように適用されるかを一例として示している。
【0099】
図9は、一例であって、デバイス200からパケットを外部に送信する時におけるパケットフィルタリング過程を示し、図7のステップに従ってユーザ入力ルールがルールコンバーター204により変換されてルールリスト保存装置205に保存され、その後システムオンチップのルールDB224に保存されたことを前提とする。
【0100】
図9に示すように、ステップS901にて、任意のネットワークアプリケーション203によりパケットが生成されてデバイス200の外部に送信される前に、ミニポートドライバ217が前記送信されるパケットを受信する。
【0101】
ステップS903にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0102】
その後、ステップS905にて、前記パケットのオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ(SoC)に送信する。このとき、前記識別情報は、例えばプロセスIDになりうる。
【0103】
前記パケット及び識別情報(例えばプロセスID)は、システムオンチップ(SoC)のファイアウォールエンジン229に伝達され、ステップS907にて、ファイアウォールエンジン229が前記オーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわち、デバイス200がプロセス別にパケットの送受信を許容又は遮断することを定義したルールをルールDB224が含むことができ、このルールDB224に保存されたプロセス別許容及び/又は遮断ルールに従って、前記オーナープロセスがパケットを送受信することが許容されるか遮断されるかを判断する。
【0104】
前記ステップS907にて判断した結果、前記オーナープロセスがパケット送信が許容されるプロセスに属する場合に、ステップS909に進んで、ステップS909にてファイアウォールエンジン229がパケットフィルタリングを行う。すなわち、ルールDB224に保存されたパケットフィルタリングルールに従ってパケット送信の許容又は遮断を判断するフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。
【0105】
代案的な実施形態において、前記パケットフィルタリングステップS909は、前記判断するステップS907の前に行われうる。すなわち、パケットフィルタリングを経て通過されたパケットに対してのみ、前記判断ステップS907の作業を行うこともできる。
【0106】
一方、ステップS907にて、前記オーナープロセスがパケット送信が許容されないプロセスに属する場合、ステップS911に進んで、ファイアウォールエンジン229は、前記パケットをNICドライバ228側に送信しない。一実施形態において、ファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS913にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号を上位階層に送信できる。
【0107】
図9を参照して説明した前記パケットフィルタリング方法は、ルールDB224を適用してパケットをフィルタリングする一つの例示に過ぎず、ルールDB224を利用した多様な方法のパケットフィルタリング作業が行われうるもちろんである。
【0108】
一方、図2の例示的なデバイスの代案的実施形態として、デバイス200が外部と通信するための構成要素であるNIC231がシステムオンチップ(SoC)でないデバイス200の本体側に位置しており、これによりNICドライバ228もカーネル層のNDIS218内に位置できる。
【0109】
この実施形態によれば、デバイス200の内部から外部に送信されるパケット又は外部からデバイス200に受信されるパケットが全部ミニポートドライバ217に送信されうる。ミニポータードライバ217は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に送信する。その後、ファイアウォールエンジン229がプロセス別ルールを含んだルールDBを前記すべてのパケットに適用できる。
【0110】
以上説明した本発明に係る実施形態は、またコンピュータ読み取り可能な記録媒体にコンピュータが読み取ることのできるコードとして具現化することが可能である。コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読まれることができるデータが保存されるすべての種類の記録装置を含む。コンピュータ読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した送信)の形態で具現化されることも含む。また、コンピュータ読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でコンピュータが読み出すことができるコードが保存され実行されうる。
【0111】
以上、本発明は、限定された実施形態と図面により説明されたが、本発明は、上記の実施形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施形態に限定されてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められねばならない。

【特許請求の範囲】
【請求項1】
パケットフィルタリングのためのルールDBを保存する第1保存部と、前記ルールDBを適用してパケットの送信を許容又は遮断するファイアウォールエンジンとを有するチップと、
ユーザからパケットフィルタリングのためのルールを受け取って、ルールリストに保存するための形態に変換するルールコンバーターとを備え、
前記チップは、前記ルールコンバーターにより変換されたルールリストを受信して、前記第1保存部にルールDBとして保存することを特徴とするデバイス。
【請求項2】
前記ルールコンバーターによって変換されたルールリストを保存する第2保存部を備える請求項1に記載のデバイス。
【請求項3】
前記ルールコンバーターは、前記第2保存部に既保存されたルールリストに、ユーザからパケットフィルタリングのためのルールを受け取って変換した新しいルールを追加するとき、既保存されたルールリストに含まれたルールと新しいルールとが互いに衝突するかどうかをチェックすることを特徴とする請求項2に記載のデバイス。
【請求項4】
前記ルールコンバーターは、前記新しいルールと前記第2保存部に既保存されたルールリストに含まれたルールのそれぞれと衝突するかどうかをチェックすることを特徴とする請求項3に記載のデバイス。
【請求項5】
前記ルールリストは、リンクリスト(Lingked list)の形態で構成されたことを特徴とする請求項1に記載のデバイス。
【請求項6】
前記チップは、ファイアウォールマネジャーをさらに備え、前記ルールコンバーターは、前記ルールリストを前記ファイアウォールマネジャーに送信し、前記ファイアウォールマネジャーは、前記ルールリストを前記第1保存部にルールDBの形態に変換して保存することを特徴とする請求項1に記載のデバイス。
【請求項7】
IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するファイアウォールユーザインタフェースをさらに備え、
前記ルールコンバーターは、前記ルール設定画面を介してユーザから受け取ったルールをルールリストの形態に変換することを特徴とする請求項1に記載のデバイス。
【請求項8】
前記ルール設定画面は、構成ヘルパーを備え、
前記構成ヘルパーは、ネットワークアプリケーションのリストを提供し、このネットワークアプリケーションリストに含まれたアプリケーションのうち、少なくとも何れか一つがユーザにより選択されると、該選択されたアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項7に記載のデバイス。
【請求項9】
前記ルール設定画面は、
プロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項8に記載のデバイス。
【請求項10】
ファイアウォール機能付きチップが装着されたデバイスでのパケットフィルタリング方法であって、
前記デバイスが、ユーザからパケットフィルタリングのためのルールを受け取ってルールリストの形態に変換するステップと、
前記チップが、前記デバイスからルールリストを受信してルールDBの形態として保存するステップと、
前記チップが、前記ルールDBを利用してパケットの送受信を許容又は遮断するステップと、
を含むことを特徴とするパケットフィルタリング方法。
【請求項11】
前記デバイスが自身の有した保存部に前記ルールリストを保存するステップをさらに含むことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項12】
前記デバイスは、前記保存部に既保存されたルールリストに、ユーザからパケットフィルタリングのためのルールを受け取って変換した新しいルールを追加するとき、既保存されたルールリストに含まれたルールと新しいルールとが互いに衝突するかどうかをチェックすることを特徴とする請求項11に記載のパケットフィルタリング方法。
【請求項13】
前記デバイスは、前記新しいルールと前記保存部に既保存されたルールリストに含まれたルールの各々と衝突されるかどうかをチェックすることを特徴とする請求項12に記載のパケットフィルタリング方法。
【請求項14】
前記ルールリストは、リンクリスト(Lingked list)の形態で構成されたことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項15】
前記デバイスが、IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するステップをさらに含み、
前記デバイスは、前記ルール設定画面を介してユーザから受け取ったルールをルールリストの形態に変換することを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項16】
前記ルール設定画面は、構成ヘルパーを備え、
前記構成ヘルパーは、ネットワークアプリケーションのリストを提供し、このネットワークアプリケーションリストに含まれたアプリケーションのうち、少なくとも何れか一つがユーザにより選択されると、該選択されたアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項15に記載のパケットフィルタリング方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−195940(P2012−195940A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2012−59744(P2012−59744)
【出願日】平成24年3月16日(2012.3.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ウィンドウズ
2.フロッピー
3.WINDOWS
【出願人】(510294195)サムソン エスディーエス カンパニー リミテッド (33)
【Fターム(参考)】