システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法
【課題】システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法を提供すること。
【解決手段】本発明の一実施形態によれば、ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うデバイスが開示される。
【解決手段】本発明の一実施形態によれば、ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うデバイスが開示される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関し、さらに詳細には、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断に設定できるシステムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関する。
【背景技術】
【0002】
インターネットが広範囲に使用されるにつれて、ウォームやトロイの木馬、ウイルス、DDoSなどのような多様な形態の悪性マルウェアが登場しその被害も大きくなりつつある。そのため、ネットワーク上の情報を保護するためのネットワーク侵害対応方法及びその他の関連装置が必需となった。
【0003】
特に、モバイル機器の場合は、使用可能なリソースが制限されているため、リソースを最小限使用しながら高速でパケットをフィルタリングできる高速フィルタリング技術が必ず必要であるはずである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できるデバイス及びパケットフィルタリング方法を提供することを目的とする。
【0005】
本発明の一実施形態によれば、パケットフィルタリングのためのルール設定時にコンフィギュレーションヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができるデバイス及びパケットフィルタリング方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うことを特徴とするデバイスが提供されている。
【0007】
本発明の他の一実施形態によれば、システムオンチップが装着され、ネットワークプロセスを備えたデバイスでのパケットフィルタリング方法であって、前記デバイスが、送信するパケットのオーナープロセスを確認し、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記システムオンチップに送信するステップと、前記システムオンチップは、前記デバイスから受け取ったパケットに対して、パケットフィルタリングのためのルールを適用してパケットフィルタリング動作を行うステップとを含むことを特徴とするパケットフィルタリング方法が提供されている。
【0008】
本発明のさらに他の一実施形態によれば、コンピュータに、外部に送信するパケットのオーナープロセスを確認するステップと、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップとを含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体が提供されている。
【0009】
本発明のさらに他の一実施形態によれば、ファイアウォールエンジンを備えたチップと、ドライバを備えたデバイスであって、前記ドライバは、外部に送信するパケットに対するオーナープロセスIDを獲得し、前記送信するパケットとそのオーナープロセスIDとを前記チップに送信し、前記チップに備えられたファイアウォールエンジンは、パケットフィルタリングのためのルールDBを利用して前記チップから受信したパケットに対してフィルタリング動作を行うことを特徴とするデバイスが提供されている。
【0010】
本発明のさらに他の一実施形態によれば、コンピュータに、外部に送信するパケットのオーナープロセスを確認するステップと、外部に送信するパケットに対するオーナープロセスIDを獲得するステップと、前記外部に送信するパケットとそのオーナープロセスIDを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップとを含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体が提供されている。
【発明の効果】
【0011】
本発明の一つ以上の実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できる。
【0012】
本発明の一つ以上の実施形態によれば、パケットフィルタリングのためのルール設定時にコンフィギュレーションヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【図面の簡単な説明】
【0013】
【図1】本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図2】本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図3A】図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図3B】図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図4】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図5】本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【図6】本発明の例示的な実施形態に係るコンフィギュレーションヘルパーの機能を説明するための図である。
【図7】本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面を説明するための図である。
【図8】本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図である。
【図9】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図10】図9のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図11】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図12】図11のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図13】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【発明を実施するための形態】
【0014】
以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施形態に限定されず、他の形態で具体化されてもよい。むしろ、ここで紹介される実施形態は、開示された内容が徹底かつ完全になるように、そして当業者に、本発明の思想を十分に理解してもらうために提供されるものである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合には、それは、他の構成要素上に直接形成される場合もあり、それらの間に第3の構成要素が介在される場合もあることを意味する。
【0015】
また、あるエレメント(または構成要素)が他のエレメント(または構成要素)上で動作または実行されると言及されるとき、そのエレメント(または構成要素)は、他のエレメント(または構成要素)が動作または実行される環境で動作または実行されるか、または他のエレメント(または構成要素)と直接または間接的に相互作用により動作または実行されると理解されなければならない。
【0016】
あるエレメント、構成要素、装置、またはシステムが、プログラム若しくはソフトウェアからなる構成要素を含むと言及される場合には、明示的な言及がなくても、そのエレメント、構成要素、装置、またはシステムは、そのプログラム若しくはソフトウェアが実行または動作するのに必要なハードウェア(例えば、メモリ、CPU(Central Processing Unit)等)や他のプログラムまたはソフトウェア(例えば、オペレーティングシステム(OS)やハードウェアを駆動するのに必要なドライバ等)を含むと理解されなければならない。
【0017】
また、あるエレメント(または構成要素)が具現化されるに当たって、特別な言及がない限り、そのエレメント(または構成要素)は、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアのうち、如何なる形態によっても具現化可能であると理解されなければならない。
【0018】
本明細書で使用された用語は、実施形態を説明するためのものであって、本発明を限定するものではない。本明細書において、単数形は、特に言及しない限り、複数形も含む。明細書で使用される「含む」と言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。
【0019】
以下、図面を参照して本発明を詳細に説明する。以下の特定の実施形態を述べるにおいて、様々に特定された内容は、発明をさらに具体的に説明し、理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような様々に特定された内容がなくても、本発明が実施可能であることを認知できる。ある場合には、周知で発明と大きく関連のない技術的内容は、本発明を説明するにあたって、特別な理由なしでも、読者の混乱を引き起こさないようにあえて述べないこともあることを予め言及しておく。
【0020】
図1は、本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0021】
図1に示すように、本発明の例示的な実施形態に係るデバイス1には、パケットをフィルタリングするファイアウォール機能付きシステムオンチップ(System On Chip)3が装着されうる。
【0022】
デバイス1は、ネットワークを介して送受信するパケットを利用する一つ以上のネットワークアプリケーションを含むことができ、各々のアプリケーションは、一つ以上のプロセスを含むことができる。本発明の目的のために、任意のパケットに対して、このパケットを外部に送信したり又は外部から受信して使用するプロセスをそのパケットの「オーナープロセス(owner process)」と呼ぶことにする。一実施形態においてプロセスには、各々IDが付与されているから互いに識別可能であり、各パケットには、該当パケットを使用するオーナープロセスのプロセスIDが含まれている。したがって、各パケットを使用するオーナープロセスは、各々のパケットに含まれたプロセスIDによって識別されうる。
【0023】
一実施形態でシステムオンチップ3がネットワークインタフェースカード(NIC)を備えることができ、これによりデバイス1は、システムオンチップ3を介してパケットを外部に送信し、システムオンチップ3を介してパケットを外部から受信することができる。
【0024】
システムオンチップ3は、パケットの遮断又は許容の基準になるルール(rule)を保存する保存部、及び前記ルールを適用してパケットの送受信を遮断又は許容するファイアウォールエンジンを備えることができる。この構成において、システムオンチップ3がデバイス1からパケットを受信すると、システムオンチップ3に保存されたルールデータベース(DB)を適用して、パケットを外部に送信又は遮断する。また、システムオンチップ3は、外部からパケットを受信すると、前記ルールDBを適用してパケットをデバイス1に送信又は遮断できる。
【0025】
一方、デバイス1が外部にパケットを送信する際には、例えば以下のように動作できる。
【0026】
システムオンチップ3がネットワークインタフェースカード(NIC)を備え、デバイス1が外部とパケットを送受信する際に前記NICを介して通信すると仮定する場合、デバイス1は、送信するパケットのオーナープロセスを確認し、送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合のみに該当パケットをシステムオンチップ3に送信する。
【0027】
システムオンチップ3は、予め定義されたルールをルールDBに保存し、前記ルールを適用して外部にパケットを送信することを許容又は遮断する。システムオンチップ3は、このためにハードウェア的及び/又はソフトウェア的に構成されたファイアウォールエンジンを備えることができる。
【0028】
デバイス1は、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを備えることができる。また、デバイス1は、外部に送信されるパケットに含まれたオーナープロセスのプロセスIDを獲得し、プロセス別ルールDBを参照して、オーナープロセスが外部にパケットを送信することが許容されたかどうかをを判断し、許容された場合にのみ該当パケットをシステムオンチップ3に送信する。
【0029】
また、デバイス1は、外部に送信するパケットに対してプロセス別ルールを適用した結果、送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットをシステムオンチップ3に送信しない。
【0030】
追加的機能として、デバイス1は、外部に送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットのオーナープロセスの実行を中断させることができる。
【0031】
デバイス1が外部からパケットを受信するときには、例えば次の通りに動作できる。
【0032】
システムオンチップ3がNICを備えており、外部からパケットが前記NICを介して受信される場合、システムオンチップ3は、外部から受信したパケットに対してシステムオンチップ3内のルールDBを適用してパケットを通過させるか又は遮断するかを決定する。
【0033】
システムオンチップ3は、ルールを適用した結果、前記パケットを通過させることと決定した場合にのみ、該当パケットをデバイス1に送信する。
【0034】
一実施形態においてデバイス1は、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを備えている。これにより、デバイス1がシステムオンチップ3から受信したパケットをオーナープロセスに送信する前に、受信したパケットに対してプロセス別ルールを適用できる。
【0035】
プロセス別ルールを適用した結果、システムオンチップ3から受信したパケットのオーナープロセスが受信の禁止されたプロセスに該当する場合、該当パケットをオーナープロセスに提供せずに捨てる(discard)。一実施形態において、デバイス1は、捨てたパケットに対するオーナープロセスの動作を中断させうる。
【0036】
一方、デバイス1は、ユーザからルールを設定されうるルール設定画面を提供できる。ここで、ルール設定画面は、IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含むことができる。ルール設定画面については後述する。
【0037】
デバイス1は、ルール設定画面を介してユーザから受け取ったルールをシステムオンチップ3に送信し、システムオンチップ3は、デバイス1から送信されたルールを自身3の保存部に保存されたルールDBに反映できる。
【0038】
デバイス1は、ユーザから入力されたルールのうち、プロセス別ルールは、システムオンチップ3に送信せずに、デバイス1自身が保存部(図示せず)に保存させうる。以後、デバイス1は、デバイス1自身の保存部(図示せず)に保存されたプロセス別ルールを使用して、プロセス別にパケットを遮断又は許容することができる。
【0039】
図1には示していないが、システムオンチップ3は、中央処理装置(CPU)、メモリ、メモリコントローラ、及びルールDB保存部を有したハードウェア及び/ソフトウェアリソースを備えることができる。本発明の説明において、プログラムが駆動されるために必要なリソース(例えば、中央処理装置、メモリ、メモリコントローラ、ルールDB保存部)に対して明示的に言及されなくても、プログラムが駆動されるために必要なハードウェア及びソフトウェア資源及びその動作は、内在されると理解しなければならない。例えば、システムオンチップ3に備えられたファイアウォールエンジンは、ルールDBとパケットとを互いにマッチングさせるマッチャー(matcher)と、このマッチャーを動作させるファームウェアを備えるように構成されうるが、このような場合、明示的言及がなくてもそういうファームウェアを保存する保存部、及びファームウェアをメモリにロードさせる中央処理装置は、システムオンチップ3に内蔵されると理解しなければならない。
【0040】
このような類似の方式で本願明細書において、デバイス1があるアプリケーションやドライバを備えるように構成されると述べられた場合には、そういうアプリケーションとドライバとを動作させるためのハードウェア及び/又はソフトウェアリソースを当然に備えると理解しなければならない。
【0041】
デバイス1は、スマートフォンやPDAのようなモバイル機器でありうるが、これは、例示に過ぎず、デスクトップパソコンのように固定型デバイスであっても良い。
【0042】
図2は、本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。図2の実施形態は、ファイアウォールシステムオンチップ(SoC)の基盤により具現化されて、デバイス200に装着された例である。
【0043】
図2に示すように、デバイス200は、機能的にアプリケーション層、カーネル層、SoC層、及びNIC層に区分されうる。実施形態によって前記機能層の一部が省略されえ、他の機能層が追加されえ、また各機能層の細部構成要素も変更されうることはもちろんである。したがって、図2の構成は、一実施形態に過ぎないので、本発明的概念を図2に限定してはならず、以下では、図2の実施形態に基づいて本発明的概念を例示する。
【0044】
図2に示すように、アプリケーション層は、アプリケーション203を備えることができる。アプリケーション層は、デバイス200の最上位機能層に該当し、パケットフィルタリングの対象になるパケットデータを使用するアプリケーション203を備える。例えば、アプリケーション203は、ウェブブラウザ203−1、テレネット203−2、FTPサーバ203−3のうち、少なくとも一つになりえ、その他にも所定のパケットデータを使用する任意のアプリケーションのうちの何れか一つでありうる。
【0045】
図示の一実施形態でデバイス200のカーネル層は、デバイス200が外部から受信したパケットデータ内の情報をアプリケーション層に伝達したりアプリケーション層の要請によってパケットデータを生成して外部に送信する役割をすることができる。
【0046】
図示の一実施形態のように、データの送信のためにTCP/IPプロトコルを使用してパケットデータを送受信する場合、デバイス200は、TCP/IPプロトコルドライバ215を備える。また、デバイス200がオペレーティングシステム(OS)としてウィンドウ(WINDOWS)を使用する場合にWinSock213を備える。TCP/IPプロトコルドライバ215とWinSock213の動作は、従来より周知のものであるから、これらの動作については説明しない。
【0047】
デバイス200がTCP/IPプロトコルでない他のプロトコルを利用する場合であると、その他のプロトコルの使用のためのドライバを備えることができ、またデバイス200がウィンドウズオペレーティングシステムでない他のオペレーティングシステムを使用する場合には、WinSock213でない他の構成要素を備えうることはもちろんである。
【0048】
図示の実施形態におけるカーネル層は、ネットワークドライバインタフェース仕様(Network Driver Interface Specification:NDIS)218をさらに備え、NDIS218には、アンチマルウェアSoCミニポートドライバ217(以下、ミニポートドライバとする)を備えることができる。
【0049】
ミニポートドライバ217は、アプリケーション203からパケットデータを受信してAPドライバ221に送信するか、APドライバ221からパケットデータを受信して上位階層に送信する。
【0050】
本発明の一実施形態に係るミニポートドライバ217は、また、パケットデータをAPドライバ221に送信する前に、プロセス別にフィルタリングする動作を行うことができる。ユーザの設定したルールのうち、プロセス別に設定されたルールがある場合に、その該当ルールは、カーネルが管理する領域に保存される。図示の実施形態において前記プロセス別ルールは、ルールDB219に保存されうる。ここで、ルールDB219は、前記プロセス別ルールDBのみを保存することもでき、パケットをフィルタリングする際に用いられるルールをさらに備えうる。ミニポートドライバ217は、アプリケーション203からパケットデータを受信すると、オーナープロセスを把握した後にプロセス別ルールと比較してパケットを通過させるかどうかを判断する。前記動作については、図3を参照して後述する。
【0051】
図2の実施形態において、デバイス200に装着されるシステムオンチップ(SoC)は、APドライバ221、ファイアウォールエンジン229、NICドライバ228、及びNIC231を備える。
【0052】
APドライバ221は、ミニポートドライバ217からデータを受信してファイアウォールエンジン229に送信する。ファイアウォールエンジン229は、パケット検証(Verification)過程を経てパケットフィルタリング動作を行うことができる。ここで、パケット検証過程は、例えばSyn Floodingのような攻撃を防止するためである。
【0053】
ファイアウォールエンジン229は、パケットデータに対してフィルタリングルールを適用してパケットデータの通過又は遮断如何を判断し、判断結果に従ってパケットデータを通過又は遮断するフィルタリング動作を行うことができる。システムオンチップ(SoC)は、ルールDB224を備えており、ファイアウォールエンジン229は、ルールDB224に保存されたルールを利用してパケットフィルタリング動作を行うことができる。
【0054】
デバイス200の外部にパケットを送信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをNICドライバ228に送信する。NICドライバ228は、ファイアウォールエンジン229から受信したパケットをNIC231に送信する。以後、NIC231は、外部ネットワークにパケットを送信する。
【0055】
デバイス200が外部からパケットを受信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをAPドライバ221に送信し、APドライバ221は、パケットをミニポートドライバ217に送信する。
【0056】
NIC231は、パケットデータ網にパケットデータを送信するか、又はそれから受信するためのものであって、システムオンチップ(SoC)の一部として装着されうる。NIC231は、例えば有線又は無線ラン網を介してパケットデータを受信することができる。
【0057】
このような構成において本発明の一実施形態に係るパケットフィルタリング動作を図3を参照して説明する。
【0058】
図3は、本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、図3Aは、デバイス200からパケットを外部に送信する時のパケットフィルタリングのフローチャートであり、図3Bは、デバイス200が外部からパケットを受信する時のフローチャートである。
【0059】
図3Aに示すように、ステップS101にて、任意のアプリケーション203によりパケットが生成されてデバイス200の外部に送信される前に、ミニポートドライバ217は前記送信されるパケットを受信する。
【0060】
ステップS103にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスIDから確認されうる。
【0061】
その後、ステップS105にて、前記確認されたオーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわち、デバイス200がプロセス別にパケットの送受信を許容又は遮断することを定義したルールDB219を備えることができ、このルールDB219に保存されたプロセス別ルールに応じて、前記オーナープロセスがパケットを送信することが許容されるかどうかを判断する。
【0062】
前記ステップS105にて判断した結果、前記オーナープロセスがパケットを送信することが許容される場合、ステップS107に進んでミニポートドライブ217は、前記パケットをシステムオンチップ(SoC)に送信する。
【0063】
システムオンチップ(SoC)は、前記デバイスからパケットを受け取ると、ステップS109にてパケットフィルタリングを行う。例えば、ファイアウォールエンジン229でパケットフィルタリングを行うことができ、その結果に応じて、パケットの送信を許容又は遮断する。このとき、ファイアウォールエンジン229は、ルールDB224に保存された既定義されたルールを適用してフィルタリングを行うことができる。
【0064】
一方、ステップS105にて、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS111に進んで、ミニポートドライバ217は、前記パケットをシステムオンチップ(SoC)に送信しない。すなわち、一実施形態においてミニポートドライバ217が前記パケットを廃棄できる。そして、追加的なステップとして、ステップS113にてオーナープロセスの実行までも中断させうる。
【0065】
一方、デバイス200が外部からパケットを受信する時は、図3Bの流れによってパケットフィルタリングが行われることができる。
【0066】
図3Bに示すように、ステップS201にて、外部から送信されたパケットがデバイス200のミニポートドライバ217に受信される。図2の実施形態の場合、パケットがまずシステムオンチップ(SoC)を経てミニポートドライバ217に送信されるが、実施形態によってシステムオンチップ(SoC)を経なくても良い。また、システムオンチップ(SoC)を経る場合、システムオンチップ内のファイアウォールエンジン229がパケットフィルタリングを行い、このパケットフィルタリングを通過したパケットがミニポートドライバ217に送信されるが、実施形態によって、ファイアウォールエンジンによるパケットフィルタリングを経ずにミニポートドライバ217に送信されうる。
【0067】
ステップS203にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0068】
その後、ステップS205にて、前記確認されたオーナープロセスが前記パケットを受信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわち、デバイス200がルールDB219を備える場合、このルールDB219に保存されたプロセス別ルールに従って、前記オーナープロセスがパケットを受信することが許容されるかどうかを判断する。
【0069】
前記ステップS205での判断結果、前記オーナープロセスがパケットを受信することが許容される場合、ステップS207に進んで、ミニポートドライブ217は、前記パケットをオーナープロセスに伝達する。
【0070】
しかしながら、ステップS205にて前記オーナープロセスがパケットを受信することが許容されない場合、ステップS209に進んで、ミニポートドライバ217は、前記パケットをオーナープロセスに送信しない。一実施形態において、ミニポートドライバ217は、前記パケットを廃棄できる。そして、追加的なステップとしてステップS211にてオーナープロセスの実行を中断させうる。
【0071】
図4は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0072】
図2に比べて図4の実施形態に係るデバイス200は、ファイアウォールユーザインタフェース(UI)アプリケーション201及びアンチマルウェア(AM)SoCストリームインタフェースドライバ211をさらに備え、システムオンチップ(SoC)は、ファイアウォールマネジャー227をさらに備える。その他の残りの構成要素の構成と機能は、図2と同一又は類似している。
【0073】
ファイアウォールUIアプリケーション201は、ファイアウォール動作と関わったユーザインタフェースを提供する。例えば、ファイアウォールUIアプリケーション201は、ファイアウォール動作作業、ファイアウォール停止作業、ルール追加作業、ルール変更作業、特定ルール除去作業、全体ルール除去作業、ルール状態表示作業、各ルールに適用されたパケットログ出力作業、及び基本ルール設定変更作業などを提供できる。
【0074】
ファイアウォールUIアプリケーション201は、ユーザからパケットデータフィルタリングに対するルールを受け取ることができ、ファイアウォールエンジン229によったパケットデータフィルタリング結果をユーザに表示できる。ファイアウォールUIアプリケーション201は、ルールDB224に対するアップデート動作を行うことができる。
【0075】
また、本発明の一実施形態によって、ファイアウォールUIアプリケーション201は、ミニポートドライバ217によるプロセス別パケットフィルタリングの結果をユーザに表示でき、ユーザからプロセス別ルールを受け取ってルールDB219のアップデート動作を行うことができる。
【0076】
アンチマルウェアSoCストリームインタフェースドライバ211(以下、ストリームインタフェースドライバとする)は、ファイアウォールUIアプリケーション201からデータを受信してシステムオンチップ(SoC)のAPドライバ221に送信でき、APドライバ221からデータを受信してファイアウォールUIアプリケーション201に送信できる。
【0077】
ファイアウォールマネジャー227は、ファイアウォールUIアプリケーション201を介して受け取ったユーザ命令を処理する機能を行う。例えば、ユーザ命令に応じてルールDB224にルールを追加又は変更でき、現在ルールDB224の状態を読み込んでファイアウォールUIアプリケーション201に送信することによって、ユーザに現在状態を見せることもできる。
【0078】
前記説明したファイアウォールUIアプリケーション201、ストリームインタフェースドライバ211、及びファイアウォールマネジャー227以外の残りの構成要素は、構成や機能が図2に示したものと同一又は類似しているので、その説明を省略する。
【0079】
このような図4の構成において、ユーザがファイアウォールUIアプリケーション201を介してルールDB219及び/又はルールDB224のルール設定を変更でき、以下、図5ないし図8を参照して後述する。
【0080】
図5は、本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【0081】
本発明の例示的な実施形態によって、デバイス200のファイアウォールUIアプリケーション201は、ユーザによるルールDB219及び/又はルールDB224の設定のためのルール設定画面500をユーザに提供できる。
【0082】
デバイス200は、ルール設定画面500を介してユーザから受け取ったルールをシステムオンチップ(SoC)に送信し、前記システムオンチップは、デバイスから送信されたルールを自身の保存部に保存されたルールDBに反映できる。
【0083】
図5に示すように、ルール設定画面500は、三個のサブウィンドウ、すなわち基本設定ウィンドウ510、基本ルール設定ウィンドウ520、及びプロセス別設定ウィンドウ530を備える。ユーザは、ルール設定画面500から前記3個のサブウィンドウのうち、任意のサブウィンドウを選択してルール設定を行うことができ、図5は、基本設定ウィンドウ510が選択された状態を示す。
【0084】
図5に示す基本設定ウィンドウ510は、例えばユーザがある特定IPアドレス又は特定ネットワーク帯域のIPアドレスに該当するサイトを許容(allow)又は遮断(block)しようとするときにこれを設定する画面である。
【0085】
図示の一実施形態において基本設定ウィンドウ510は、コンフィギュレーションヘルパー(configuration helper)511機能のための入力ウィンドウ512を備え、その下にルールネーム、IP、プロトコル、ポートなどの各種フィールドを満たすための入力ウィンドウを備えることができる。
【0086】
コンフィギュレーションヘルパー511は、ネットワークを全く知らないユーザを助ける機能を果たす。本発明の一実施形態においてコンフィギュレーションヘルパー511は、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、該選択されたネットワークアプリケーションを実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを該当フィールドの入力ウィンドウに自動的に表示できる。
【0087】
例えば、ユーザがコンフィギュレーションヘルパー511の入力ウィンドウ512のボタンを選択すると、図6に示したようなメニューが広まる。広まったネットワークアプリケーションのうち、ユーザが何れか一つを選択すると、図5においてコンフィギュレーションヘルパー511の下にあるルールネーム、IP、プロトコル、ポートなどのフィールドに該当する値が自動的に入力されるようになる。
【0088】
図6のリストには、メッセンジャー、P2P、ゲームなどのみを例示しましたが、実施形態によってftp、http、テレネット、ssh、printerなどのプロトコルも選択できるように前記リストに含まれうる。
【0089】
前記実施形態のように、コンフィギュレーションヘルパー511を備えるのは、一般的なユーザは、特定プロトコルあるいは特定サービスのポートを全く知らない場合が多く、またネットワークをよく知っているユーザであっても、例えばMSNメッセンジャーでファイルをやり取りするために6891〜6900番ポートと41800〜41899番ポートとを許容しなければならないという事実を、関連文書を探す前には分かり難いためである。したがって、前記実施形態のように、通常のユーザのためのコンフィギュレーションヘルパー511を提供することによって、ユーザ自身の望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【0090】
図5を再度参照して、コンフィギュレーションヘルパー511の下部の各種フィールドについて説明する。
【0091】
−ルールネーム(Rule Name):ルールの名称を入力するフィールドである。
【0092】
−インターネットプロトコル(IP):ルールを適用するIPを設定するフィールドである。一実施形態においてIPフィールドには、下記の表1に例示したタイプの設定が可能である。
【0093】
【表1】
【0094】
前記表1の入力例では、「192.168.*.*」の表記のように「*」表記法を使用できるようにした。「192.168.*.*」の表記は、特定ネットワーク帯域を意味するという点で「192.168.0.0/255.255.0.0」の表記又は「192.168.0.0/16」の表記と同一である。しかしながら、一般ユーザには、「192.168.0.0/255.255.0.0」の表記や「192.168.0.0/16」の表記よりは、「192.168.*.*」のような表記がより理解しやすいために、前記実施形態は、「192.168.*.*」のような表記も許容する。
【0095】
ただし「192.168.*.*」のような表記でネットワーク帯域を指定する場合、サブネットマスクを指定できないために、「192.168.0.0/255.255.0.0」又は「192.168.0.0/16」のような表記方法も共に使用できるようにする。
【0096】
また、前記表1の入力例は、ネットマスク(netmask)フィールドがなく、その代わりにIPフィールドに統合された。ネットワークを全く知らないユーザであってもIPとポート程度は分かるが、ネットマスクの意味や使用法は、分からない可能性が大きいためである。
【0097】
−プロトコル(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」は、ルールに適用されるパケットに対してログを残す機能である。
【0098】
以下、図7を参照して基本ルール設定のための実施形態を説明する。図7は、本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面500を説明するための図であって、基本ルール設定ウィンドウ520が選択された状態を示す。
【0099】
図7の基本ルール設定は、図5の入力例によって設定されたルールと一致しないパケットが入った時の適用するルールのことを意味する。図7に示すように、基本ルール設定ウィンドウ520は、基本ルール説明521及び現在基本ルール状態522をそれぞれ表すウィンドウを備え、またすべて遮断ボタン523及びすべて許容ボタン524を備えることができる。
【0100】
基本ルール説明521は、基本ルール設定の意味をユーザに説明する説明ウィンドウであり、現在基本ルール状態522は、現在設定されている基本ルールの状態を示すウィンドウである。
【0101】
一実施形態において基本的なデフォルト値として基本ルールは、外部に送信されるパケット(アウトゴウイングパケット)に対しては、許容(allow)に、デバイスの内部に受信されるパケット(インカミングパケット)に対しては、遮断(block)に設定されていることができる。すべて遮断ボタン523及びすべて許容ボタン524は、このような基本ルールの設定をアウトゴウイングパケットとインカミングパケットの両方に対して「遮断」又は「許容」に設定する機能のことを意味する。
【0102】
一方、一実施形態において、設定画面500の基本設定ウィンドウ510や基本ルール設定ウィンドウ520においてユーザが入力したルール設定情報は、ストリームインタフェースドライバ211を経てシステムオンチップ(SoC)のファイアウォールマネジャー227に送信され、ファイアウォールマネジャー227により前記ルール設定情報がルールDB224に反映されることによって、ルールDBがアップデートされる。
【0103】
図8は、本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図であって、プロセス別設定ウィンドウ530が選択された状態を示す。
【0104】
プロセス別設定ウィンドウ530は、アプリケーションのプロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域であって、図示の実施形態においてプロセス別設定ウィンドウ530は、プロセスリスト531、選択ウィンドウ532、遮断ボタン533、及び許容ボタン534などを備えることができる。
【0105】
ユーザは、このようなプロセス別設定ウィンドウ530を介して例えばある特定アプリケーションのプロセスに対するファイアウォールの設定を許容(allow)することで、このプロセスが生成するすべてのソケットのパケットの通過を許容(allow)でき、反対に、ある特定アプリケーションのプロセスに対するファイアウォールの設定を遮断(block)することで、該当プロセスが生成するすべてのソケットのパケットの通過を遮断できる。
【0106】
一実施形態において、設定画面500のプロセス別設定ウィンドウ530でユーザが入力したルール設定情報は、ストリームインタフェースドライバ211により前記ルール設定情報がルールDB219に反映されることによって、プロセス別ルールDBがアップデートされうる。しかしながら、代案的な実施形態によってファイアウォールUIアプリケーション201又は他の構成要素によりルールDB219がアップデートされうる。
【0107】
図9は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0108】
図4に比べて図9の実施形態では、カーネル層のルールDB(図4の219)が選択的である。したがって、図9では、前記ルールDB219が存在しないと仮定した。その他の残りの構成要素の機能や役割は、図4とすべて同一又は似ているので説明は省略する。
【0109】
図9の実施形態においてミニポートドライバ217は、ルールDBからプロセス別ルールDBを受けてパケットと直接比較する動作を行わない。その代りに、例えば、デバイス200がパケットを外部に送信する場合、ミニポートドライバ217は、所定パケットを受信すると、該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に送信し、システムオンチップ(SoC)上でプロセス別ルールDBをパケットに適用する。
【0110】
すなわち、図示の一実施形態においてルールDB224がプロセス別ルールDBをさらに含み、このとき、プロセス別ルールDBは、プロセス別にパケットの送受信を許容又は遮断することを定義したルールDBを含んでいる。これにより、例えばファイアウォールエンジン229に任意のパケットが送信されてくるとき、ファイアウォールエンジン229は、ルールDB224に保存されたプロセス別ルールに従って、前記パケットのオーナープロセスがパケットを送受信することが許容されるかどうかを判断し、判断結果に応じて前記パケットの通過を許容又は遮断し、なお前記オーナープロセス自体の実行中断を要請できる。
【0111】
このようなパケットフィルタリングの動作を図10を参照して説明する。
【0112】
図10は、図9のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、デバイス200からパケットを外部に送信する時のパケットフィルタリング過程を示す。
【0113】
図10に示すように、ステップS1001にて任意のアプリケーション203によりパケットが生成されてデバイス200の外部に送信される前に、ミニポートドライバ217が前記送信されるパケットを受信する。
【0114】
ステップS1003にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0115】
その後、ステップS1005にて、前記パケットを使用するオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ(SoC)に送信する。このとき、前記識別情報は、例えばプロセスIDになりうる。
【0116】
前記パケット及び識別情報(例えば、プロセスID)は、システムオンチップ(SoC)のファイアウォールエンジン229に送信され、ステップS1007にてファイアウォールエンジン229が前記オーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわちデバイス200がプロセス別にパケットの送受信を許容又は遮断することを定義したルールをルールDB224が備えることができ、前記プロセス別ルールに従って、前記オーナープロセスがパケットを送信することが許容されるかどうかを判断する。
【0117】
前記ステップS1007にて判断した結果、前記オーナープロセスがパケットを送信することが許容される場合、ステップS1009に進んで、ファイアウォールエンジン229がステップS1009にてパケットフィルタリングを行う。すなわち、ルールDB224に保存されたパケットフィルタリングルールに従ってパケット送信の許容又は遮断を判断するフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。
【0118】
代案的な実施形態において、前記パケットフィルタリングステップS1009は、前記判断するステップS1007の前に行われうる。すなわち、パケットフィルタリングを経て通過されたパケットに対してのみ前記判断ステップS1007を行うこともできる。
【0119】
一方、ステップS1007にて、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS1011に進んで、ファイアウォールエンジン229は、前記パケットをNICドライバ228側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1013にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0120】
図11は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0121】
図9に比べて図11の実施形態は、デバイス200が外部と通信するための構成要素であるNICドライバ228及びNIC231の位置が図9の実施形態と異なる。図11に示すように、NIC231がシステムオンチップ(SoC)でないデバイス200の本体側に位置しており、NICドライバ228もカーネル層のNDIS218に位置する。その他の残りの構成要素の機能や役割は、図9と同一又は似ているので、説明を省略する。
【0122】
前記構成によれば、デバイス200の内部から外部に送信されるパケット又は外部からデバイス200に受信されるパケットがミニポートドライバ217に送信されうる。したがって、ミニポータードライバ217は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に伝達し、システムオンチップ(SoC)上でプロセス別ルールDBを前記パケットに適用できる。
【0123】
このようなパケットフィルタリングの動作を図12を参照して説明する。図12は、図11のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【0124】
図12に示すように、ステップS1201にて、送信又は受信されるパケットがミニポートドライバ217に送信され、ステップS1203にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0125】
その後、ステップS1205にて、前記パケットを使用するオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ(SoC)に送信する。このとき、前記識別情報は、例えばプロセスIDになりうる。
【0126】
前記パケット及び識別情報(例えばプロセスID)は、システムオンチップ(SoC)のファイアウォールエンジン229に送信され、ステップS1207にて、ファイアウォールエンジン229は、プロセス別ルールDBを利用して、前記オーナープロセスが前記パケットを外部に送信又は受信することが許容されるかどうかを判断する。すなわち、外部に送信されるパケットに対しては、該当パケットのオーナープロセスがこのパケットを送信することが許容されるかどうかを判断し、外部から受信するパケットに対しては、該当パケットのオーナープロセスがこのパケットを受信することが許容されるかどうかを判断できる。
【0127】
前記ステップS1207にて判断した結果、前記オーナープロセスがパケット送信(又は受信)が許容されるプロセスに属する場合、ステップS1209に進んで、ファイアウォールエンジン229がステップS1209にてパケットフィルタリングを行う。すなわち、ルールDB224に保存されたパケットフィルタリングルールに従ってパケットフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。代案的な実施形態において、前記パケットフィルタリングステップS1209は、前記判断するステップS1207の前に行われうる。
【0128】
一方、ステップS1207にて、外部に送信されるパケットの場合、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS1211に進んで、ファイアウォールエンジン229は、前記パケットをNICドライバ228側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1213にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0129】
万一、ステップS1207にて、デバイス外部から受信するパケットの場合、前記オーナープロセスがパケットを受信することが許容されないと、ステップS1211に進んで、ファイアウォールエンジン229は、前記パケットをアプリケーション203側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1213にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0130】
図13は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0131】
図11に比べて図13の実施形態は、システムオンチップ(SoC)がハードウェア的構成要素のみを備えているという点で図11と異なる。すなわち、図示の実施形態においてシステムオンチップ(SoC)は、デバイス200のカーネル層と通信するためのAPドライバ221及びファイアウォールエンジン229を備える。一実施形態においてファイアウォールエンジン229は、メモリ241及びマッチャー(matcher)242を備えることができる。
【0132】
メモリ241は、デバイス200の任意の保存装置に保存されているルールDBをロードして一時的に保存するためのメモリであって、揮発性保存装置でありうる。マッチャー242は、パケットをルールDBのパケットフィルタリングルール及び/又はプロセス別ルールと比較してパケットの遮断又は許容を判断できる。その他の残り構成要素の機能や役割は、図11と同一又は似ているので説明を省略する。
【0133】
前記実施形態に係るパケットフィルタリング動作は、基本的に図12と同一又は似ている。ただし、ファイアウォールエンジン229によるパケットフィルタリングを行う前にデバイス200の保存装置に保存されているルールDB219がシステムオンチップ(SoC)のメモリ241にロードされる。その後、ミニポータードライバ217は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に伝達し、システムオンチップ(SoC)のファイアウォールエンジン229は、プロセス別ルールを含んだパケットフィルタリングルールを適用する。
【0134】
一方、以上で説明した実施形態では、アプリケーション(プログラム)の「プロセス」単位でパケットの許容又は遮断を設定するか、又はプロセス自体の実行を中断すると説明したが、実施形態によって、プロセスでないプログラム単位で前記動作を行うこともできる。例えば、遮断された所定パケットに対してこのパケットのオーナープログラムを確認してこのオーナープログラムの実行を中断できる。すなわち、前記図面を参照して説明した実施形態において「プロセス」を「プログラム」に置き換えても本発明的概念に含まれうる。
【0135】
以上説明した本発明に係る実施形態は、またコンピュータ読み取り可能な記録媒体にコンピュータが読み取ることのできるコードとして具現化することが可能である。コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読まれることができるデータが保存されるすべての種類の記録装置を含む。コンピュータ読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した送信)の形態で具現化されることも含む。また、コンピュータ読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でコンピュータが読み出すことができるコードが保存され実行されうる。
【0136】
以上、本発明は、限定された実施形態と図面により説明されたが、本発明は、上記の実施形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施形態に限定されてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められねばならない。
【技術分野】
【0001】
本発明は、システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関し、さらに詳細には、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断に設定できるシステムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法に関する。
【背景技術】
【0002】
インターネットが広範囲に使用されるにつれて、ウォームやトロイの木馬、ウイルス、DDoSなどのような多様な形態の悪性マルウェアが登場しその被害も大きくなりつつある。そのため、ネットワーク上の情報を保護するためのネットワーク侵害対応方法及びその他の関連装置が必需となった。
【0003】
特に、モバイル機器の場合は、使用可能なリソースが制限されているため、リソースを最小限使用しながら高速でパケットをフィルタリングできる高速フィルタリング技術が必ず必要であるはずである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できるデバイス及びパケットフィルタリング方法を提供することを目的とする。
【0005】
本発明の一実施形態によれば、パケットフィルタリングのためのルール設定時にコンフィギュレーションヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができるデバイス及びパケットフィルタリング方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うことを特徴とするデバイスが提供されている。
【0007】
本発明の他の一実施形態によれば、システムオンチップが装着され、ネットワークプロセスを備えたデバイスでのパケットフィルタリング方法であって、前記デバイスが、送信するパケットのオーナープロセスを確認し、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記システムオンチップに送信するステップと、前記システムオンチップは、前記デバイスから受け取ったパケットに対して、パケットフィルタリングのためのルールを適用してパケットフィルタリング動作を行うステップとを含むことを特徴とするパケットフィルタリング方法が提供されている。
【0008】
本発明のさらに他の一実施形態によれば、コンピュータに、外部に送信するパケットのオーナープロセスを確認するステップと、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップとを含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体が提供されている。
【0009】
本発明のさらに他の一実施形態によれば、ファイアウォールエンジンを備えたチップと、ドライバを備えたデバイスであって、前記ドライバは、外部に送信するパケットに対するオーナープロセスIDを獲得し、前記送信するパケットとそのオーナープロセスIDとを前記チップに送信し、前記チップに備えられたファイアウォールエンジンは、パケットフィルタリングのためのルールDBを利用して前記チップから受信したパケットに対してフィルタリング動作を行うことを特徴とするデバイスが提供されている。
【0010】
本発明のさらに他の一実施形態によれば、コンピュータに、外部に送信するパケットのオーナープロセスを確認するステップと、外部に送信するパケットに対するオーナープロセスIDを獲得するステップと、前記外部に送信するパケットとそのオーナープロセスIDを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップとを含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体が提供されている。
【発明の効果】
【0011】
本発明の一つ以上の実施形態によれば、ネットワークアプリケーションのプロセス別にファイアウォールの設定を許容又は遮断することによって、このプロセスが生成するすべてのパケットに対して許容又は遮断を設定できる。
【0012】
本発明の一つ以上の実施形態によれば、パケットフィルタリングのためのルール設定時にコンフィギュレーションヘルパーを提供することによって、ユーザの望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【図面の簡単な説明】
【0013】
【図1】本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図2】本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図3A】図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図3B】図2のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図4】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図5】本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【図6】本発明の例示的な実施形態に係るコンフィギュレーションヘルパーの機能を説明するための図である。
【図7】本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面を説明するための図である。
【図8】本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図である。
【図9】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図10】図9のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図11】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【図12】図11のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【図13】本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【発明を実施するための形態】
【0014】
以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関連した以下の好ましい実施形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施形態に限定されず、他の形態で具体化されてもよい。むしろ、ここで紹介される実施形態は、開示された内容が徹底かつ完全になるように、そして当業者に、本発明の思想を十分に理解してもらうために提供されるものである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合には、それは、他の構成要素上に直接形成される場合もあり、それらの間に第3の構成要素が介在される場合もあることを意味する。
【0015】
また、あるエレメント(または構成要素)が他のエレメント(または構成要素)上で動作または実行されると言及されるとき、そのエレメント(または構成要素)は、他のエレメント(または構成要素)が動作または実行される環境で動作または実行されるか、または他のエレメント(または構成要素)と直接または間接的に相互作用により動作または実行されると理解されなければならない。
【0016】
あるエレメント、構成要素、装置、またはシステムが、プログラム若しくはソフトウェアからなる構成要素を含むと言及される場合には、明示的な言及がなくても、そのエレメント、構成要素、装置、またはシステムは、そのプログラム若しくはソフトウェアが実行または動作するのに必要なハードウェア(例えば、メモリ、CPU(Central Processing Unit)等)や他のプログラムまたはソフトウェア(例えば、オペレーティングシステム(OS)やハードウェアを駆動するのに必要なドライバ等)を含むと理解されなければならない。
【0017】
また、あるエレメント(または構成要素)が具現化されるに当たって、特別な言及がない限り、そのエレメント(または構成要素)は、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアのうち、如何なる形態によっても具現化可能であると理解されなければならない。
【0018】
本明細書で使用された用語は、実施形態を説明するためのものであって、本発明を限定するものではない。本明細書において、単数形は、特に言及しない限り、複数形も含む。明細書で使用される「含む」と言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。
【0019】
以下、図面を参照して本発明を詳細に説明する。以下の特定の実施形態を述べるにおいて、様々に特定された内容は、発明をさらに具体的に説明し、理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような様々に特定された内容がなくても、本発明が実施可能であることを認知できる。ある場合には、周知で発明と大きく関連のない技術的内容は、本発明を説明するにあたって、特別な理由なしでも、読者の混乱を引き起こさないようにあえて述べないこともあることを予め言及しておく。
【0020】
図1は、本発明の例示的な一実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0021】
図1に示すように、本発明の例示的な実施形態に係るデバイス1には、パケットをフィルタリングするファイアウォール機能付きシステムオンチップ(System On Chip)3が装着されうる。
【0022】
デバイス1は、ネットワークを介して送受信するパケットを利用する一つ以上のネットワークアプリケーションを含むことができ、各々のアプリケーションは、一つ以上のプロセスを含むことができる。本発明の目的のために、任意のパケットに対して、このパケットを外部に送信したり又は外部から受信して使用するプロセスをそのパケットの「オーナープロセス(owner process)」と呼ぶことにする。一実施形態においてプロセスには、各々IDが付与されているから互いに識別可能であり、各パケットには、該当パケットを使用するオーナープロセスのプロセスIDが含まれている。したがって、各パケットを使用するオーナープロセスは、各々のパケットに含まれたプロセスIDによって識別されうる。
【0023】
一実施形態でシステムオンチップ3がネットワークインタフェースカード(NIC)を備えることができ、これによりデバイス1は、システムオンチップ3を介してパケットを外部に送信し、システムオンチップ3を介してパケットを外部から受信することができる。
【0024】
システムオンチップ3は、パケットの遮断又は許容の基準になるルール(rule)を保存する保存部、及び前記ルールを適用してパケットの送受信を遮断又は許容するファイアウォールエンジンを備えることができる。この構成において、システムオンチップ3がデバイス1からパケットを受信すると、システムオンチップ3に保存されたルールデータベース(DB)を適用して、パケットを外部に送信又は遮断する。また、システムオンチップ3は、外部からパケットを受信すると、前記ルールDBを適用してパケットをデバイス1に送信又は遮断できる。
【0025】
一方、デバイス1が外部にパケットを送信する際には、例えば以下のように動作できる。
【0026】
システムオンチップ3がネットワークインタフェースカード(NIC)を備え、デバイス1が外部とパケットを送受信する際に前記NICを介して通信すると仮定する場合、デバイス1は、送信するパケットのオーナープロセスを確認し、送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合のみに該当パケットをシステムオンチップ3に送信する。
【0027】
システムオンチップ3は、予め定義されたルールをルールDBに保存し、前記ルールを適用して外部にパケットを送信することを許容又は遮断する。システムオンチップ3は、このためにハードウェア的及び/又はソフトウェア的に構成されたファイアウォールエンジンを備えることができる。
【0028】
デバイス1は、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを備えることができる。また、デバイス1は、外部に送信されるパケットに含まれたオーナープロセスのプロセスIDを獲得し、プロセス別ルールDBを参照して、オーナープロセスが外部にパケットを送信することが許容されたかどうかをを判断し、許容された場合にのみ該当パケットをシステムオンチップ3に送信する。
【0029】
また、デバイス1は、外部に送信するパケットに対してプロセス別ルールを適用した結果、送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットをシステムオンチップ3に送信しない。
【0030】
追加的機能として、デバイス1は、外部に送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、該当パケットのオーナープロセスの実行を中断させることができる。
【0031】
デバイス1が外部からパケットを受信するときには、例えば次の通りに動作できる。
【0032】
システムオンチップ3がNICを備えており、外部からパケットが前記NICを介して受信される場合、システムオンチップ3は、外部から受信したパケットに対してシステムオンチップ3内のルールDBを適用してパケットを通過させるか又は遮断するかを決定する。
【0033】
システムオンチップ3は、ルールを適用した結果、前記パケットを通過させることと決定した場合にのみ、該当パケットをデバイス1に送信する。
【0034】
一実施形態においてデバイス1は、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを備えている。これにより、デバイス1がシステムオンチップ3から受信したパケットをオーナープロセスに送信する前に、受信したパケットに対してプロセス別ルールを適用できる。
【0035】
プロセス別ルールを適用した結果、システムオンチップ3から受信したパケットのオーナープロセスが受信の禁止されたプロセスに該当する場合、該当パケットをオーナープロセスに提供せずに捨てる(discard)。一実施形態において、デバイス1は、捨てたパケットに対するオーナープロセスの動作を中断させうる。
【0036】
一方、デバイス1は、ユーザからルールを設定されうるルール設定画面を提供できる。ここで、ルール設定画面は、IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含むことができる。ルール設定画面については後述する。
【0037】
デバイス1は、ルール設定画面を介してユーザから受け取ったルールをシステムオンチップ3に送信し、システムオンチップ3は、デバイス1から送信されたルールを自身3の保存部に保存されたルールDBに反映できる。
【0038】
デバイス1は、ユーザから入力されたルールのうち、プロセス別ルールは、システムオンチップ3に送信せずに、デバイス1自身が保存部(図示せず)に保存させうる。以後、デバイス1は、デバイス1自身の保存部(図示せず)に保存されたプロセス別ルールを使用して、プロセス別にパケットを遮断又は許容することができる。
【0039】
図1には示していないが、システムオンチップ3は、中央処理装置(CPU)、メモリ、メモリコントローラ、及びルールDB保存部を有したハードウェア及び/ソフトウェアリソースを備えることができる。本発明の説明において、プログラムが駆動されるために必要なリソース(例えば、中央処理装置、メモリ、メモリコントローラ、ルールDB保存部)に対して明示的に言及されなくても、プログラムが駆動されるために必要なハードウェア及びソフトウェア資源及びその動作は、内在されると理解しなければならない。例えば、システムオンチップ3に備えられたファイアウォールエンジンは、ルールDBとパケットとを互いにマッチングさせるマッチャー(matcher)と、このマッチャーを動作させるファームウェアを備えるように構成されうるが、このような場合、明示的言及がなくてもそういうファームウェアを保存する保存部、及びファームウェアをメモリにロードさせる中央処理装置は、システムオンチップ3に内蔵されると理解しなければならない。
【0040】
このような類似の方式で本願明細書において、デバイス1があるアプリケーションやドライバを備えるように構成されると述べられた場合には、そういうアプリケーションとドライバとを動作させるためのハードウェア及び/又はソフトウェアリソースを当然に備えると理解しなければならない。
【0041】
デバイス1は、スマートフォンやPDAのようなモバイル機器でありうるが、これは、例示に過ぎず、デスクトップパソコンのように固定型デバイスであっても良い。
【0042】
図2は、本発明の例示的な実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。図2の実施形態は、ファイアウォールシステムオンチップ(SoC)の基盤により具現化されて、デバイス200に装着された例である。
【0043】
図2に示すように、デバイス200は、機能的にアプリケーション層、カーネル層、SoC層、及びNIC層に区分されうる。実施形態によって前記機能層の一部が省略されえ、他の機能層が追加されえ、また各機能層の細部構成要素も変更されうることはもちろんである。したがって、図2の構成は、一実施形態に過ぎないので、本発明的概念を図2に限定してはならず、以下では、図2の実施形態に基づいて本発明的概念を例示する。
【0044】
図2に示すように、アプリケーション層は、アプリケーション203を備えることができる。アプリケーション層は、デバイス200の最上位機能層に該当し、パケットフィルタリングの対象になるパケットデータを使用するアプリケーション203を備える。例えば、アプリケーション203は、ウェブブラウザ203−1、テレネット203−2、FTPサーバ203−3のうち、少なくとも一つになりえ、その他にも所定のパケットデータを使用する任意のアプリケーションのうちの何れか一つでありうる。
【0045】
図示の一実施形態でデバイス200のカーネル層は、デバイス200が外部から受信したパケットデータ内の情報をアプリケーション層に伝達したりアプリケーション層の要請によってパケットデータを生成して外部に送信する役割をすることができる。
【0046】
図示の一実施形態のように、データの送信のためにTCP/IPプロトコルを使用してパケットデータを送受信する場合、デバイス200は、TCP/IPプロトコルドライバ215を備える。また、デバイス200がオペレーティングシステム(OS)としてウィンドウ(WINDOWS)を使用する場合にWinSock213を備える。TCP/IPプロトコルドライバ215とWinSock213の動作は、従来より周知のものであるから、これらの動作については説明しない。
【0047】
デバイス200がTCP/IPプロトコルでない他のプロトコルを利用する場合であると、その他のプロトコルの使用のためのドライバを備えることができ、またデバイス200がウィンドウズオペレーティングシステムでない他のオペレーティングシステムを使用する場合には、WinSock213でない他の構成要素を備えうることはもちろんである。
【0048】
図示の実施形態におけるカーネル層は、ネットワークドライバインタフェース仕様(Network Driver Interface Specification:NDIS)218をさらに備え、NDIS218には、アンチマルウェアSoCミニポートドライバ217(以下、ミニポートドライバとする)を備えることができる。
【0049】
ミニポートドライバ217は、アプリケーション203からパケットデータを受信してAPドライバ221に送信するか、APドライバ221からパケットデータを受信して上位階層に送信する。
【0050】
本発明の一実施形態に係るミニポートドライバ217は、また、パケットデータをAPドライバ221に送信する前に、プロセス別にフィルタリングする動作を行うことができる。ユーザの設定したルールのうち、プロセス別に設定されたルールがある場合に、その該当ルールは、カーネルが管理する領域に保存される。図示の実施形態において前記プロセス別ルールは、ルールDB219に保存されうる。ここで、ルールDB219は、前記プロセス別ルールDBのみを保存することもでき、パケットをフィルタリングする際に用いられるルールをさらに備えうる。ミニポートドライバ217は、アプリケーション203からパケットデータを受信すると、オーナープロセスを把握した後にプロセス別ルールと比較してパケットを通過させるかどうかを判断する。前記動作については、図3を参照して後述する。
【0051】
図2の実施形態において、デバイス200に装着されるシステムオンチップ(SoC)は、APドライバ221、ファイアウォールエンジン229、NICドライバ228、及びNIC231を備える。
【0052】
APドライバ221は、ミニポートドライバ217からデータを受信してファイアウォールエンジン229に送信する。ファイアウォールエンジン229は、パケット検証(Verification)過程を経てパケットフィルタリング動作を行うことができる。ここで、パケット検証過程は、例えばSyn Floodingのような攻撃を防止するためである。
【0053】
ファイアウォールエンジン229は、パケットデータに対してフィルタリングルールを適用してパケットデータの通過又は遮断如何を判断し、判断結果に従ってパケットデータを通過又は遮断するフィルタリング動作を行うことができる。システムオンチップ(SoC)は、ルールDB224を備えており、ファイアウォールエンジン229は、ルールDB224に保存されたルールを利用してパケットフィルタリング動作を行うことができる。
【0054】
デバイス200の外部にパケットを送信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをNICドライバ228に送信する。NICドライバ228は、ファイアウォールエンジン229から受信したパケットをNIC231に送信する。以後、NIC231は、外部ネットワークにパケットを送信する。
【0055】
デバイス200が外部からパケットを受信する場合、ファイアウォールエンジン229は、パケットフィルタリングの結果、「通過」と判断されたパケットのみをAPドライバ221に送信し、APドライバ221は、パケットをミニポートドライバ217に送信する。
【0056】
NIC231は、パケットデータ網にパケットデータを送信するか、又はそれから受信するためのものであって、システムオンチップ(SoC)の一部として装着されうる。NIC231は、例えば有線又は無線ラン網を介してパケットデータを受信することができる。
【0057】
このような構成において本発明の一実施形態に係るパケットフィルタリング動作を図3を参照して説明する。
【0058】
図3は、本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、図3Aは、デバイス200からパケットを外部に送信する時のパケットフィルタリングのフローチャートであり、図3Bは、デバイス200が外部からパケットを受信する時のフローチャートである。
【0059】
図3Aに示すように、ステップS101にて、任意のアプリケーション203によりパケットが生成されてデバイス200の外部に送信される前に、ミニポートドライバ217は前記送信されるパケットを受信する。
【0060】
ステップS103にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスIDから確認されうる。
【0061】
その後、ステップS105にて、前記確認されたオーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわち、デバイス200がプロセス別にパケットの送受信を許容又は遮断することを定義したルールDB219を備えることができ、このルールDB219に保存されたプロセス別ルールに応じて、前記オーナープロセスがパケットを送信することが許容されるかどうかを判断する。
【0062】
前記ステップS105にて判断した結果、前記オーナープロセスがパケットを送信することが許容される場合、ステップS107に進んでミニポートドライブ217は、前記パケットをシステムオンチップ(SoC)に送信する。
【0063】
システムオンチップ(SoC)は、前記デバイスからパケットを受け取ると、ステップS109にてパケットフィルタリングを行う。例えば、ファイアウォールエンジン229でパケットフィルタリングを行うことができ、その結果に応じて、パケットの送信を許容又は遮断する。このとき、ファイアウォールエンジン229は、ルールDB224に保存された既定義されたルールを適用してフィルタリングを行うことができる。
【0064】
一方、ステップS105にて、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS111に進んで、ミニポートドライバ217は、前記パケットをシステムオンチップ(SoC)に送信しない。すなわち、一実施形態においてミニポートドライバ217が前記パケットを廃棄できる。そして、追加的なステップとして、ステップS113にてオーナープロセスの実行までも中断させうる。
【0065】
一方、デバイス200が外部からパケットを受信する時は、図3Bの流れによってパケットフィルタリングが行われることができる。
【0066】
図3Bに示すように、ステップS201にて、外部から送信されたパケットがデバイス200のミニポートドライバ217に受信される。図2の実施形態の場合、パケットがまずシステムオンチップ(SoC)を経てミニポートドライバ217に送信されるが、実施形態によってシステムオンチップ(SoC)を経なくても良い。また、システムオンチップ(SoC)を経る場合、システムオンチップ内のファイアウォールエンジン229がパケットフィルタリングを行い、このパケットフィルタリングを通過したパケットがミニポートドライバ217に送信されるが、実施形態によって、ファイアウォールエンジンによるパケットフィルタリングを経ずにミニポートドライバ217に送信されうる。
【0067】
ステップS203にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0068】
その後、ステップS205にて、前記確認されたオーナープロセスが前記パケットを受信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわち、デバイス200がルールDB219を備える場合、このルールDB219に保存されたプロセス別ルールに従って、前記オーナープロセスがパケットを受信することが許容されるかどうかを判断する。
【0069】
前記ステップS205での判断結果、前記オーナープロセスがパケットを受信することが許容される場合、ステップS207に進んで、ミニポートドライブ217は、前記パケットをオーナープロセスに伝達する。
【0070】
しかしながら、ステップS205にて前記オーナープロセスがパケットを受信することが許容されない場合、ステップS209に進んで、ミニポートドライバ217は、前記パケットをオーナープロセスに送信しない。一実施形態において、ミニポートドライバ217は、前記パケットを廃棄できる。そして、追加的なステップとしてステップS211にてオーナープロセスの実行を中断させうる。
【0071】
図4は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0072】
図2に比べて図4の実施形態に係るデバイス200は、ファイアウォールユーザインタフェース(UI)アプリケーション201及びアンチマルウェア(AM)SoCストリームインタフェースドライバ211をさらに備え、システムオンチップ(SoC)は、ファイアウォールマネジャー227をさらに備える。その他の残りの構成要素の構成と機能は、図2と同一又は類似している。
【0073】
ファイアウォールUIアプリケーション201は、ファイアウォール動作と関わったユーザインタフェースを提供する。例えば、ファイアウォールUIアプリケーション201は、ファイアウォール動作作業、ファイアウォール停止作業、ルール追加作業、ルール変更作業、特定ルール除去作業、全体ルール除去作業、ルール状態表示作業、各ルールに適用されたパケットログ出力作業、及び基本ルール設定変更作業などを提供できる。
【0074】
ファイアウォールUIアプリケーション201は、ユーザからパケットデータフィルタリングに対するルールを受け取ることができ、ファイアウォールエンジン229によったパケットデータフィルタリング結果をユーザに表示できる。ファイアウォールUIアプリケーション201は、ルールDB224に対するアップデート動作を行うことができる。
【0075】
また、本発明の一実施形態によって、ファイアウォールUIアプリケーション201は、ミニポートドライバ217によるプロセス別パケットフィルタリングの結果をユーザに表示でき、ユーザからプロセス別ルールを受け取ってルールDB219のアップデート動作を行うことができる。
【0076】
アンチマルウェアSoCストリームインタフェースドライバ211(以下、ストリームインタフェースドライバとする)は、ファイアウォールUIアプリケーション201からデータを受信してシステムオンチップ(SoC)のAPドライバ221に送信でき、APドライバ221からデータを受信してファイアウォールUIアプリケーション201に送信できる。
【0077】
ファイアウォールマネジャー227は、ファイアウォールUIアプリケーション201を介して受け取ったユーザ命令を処理する機能を行う。例えば、ユーザ命令に応じてルールDB224にルールを追加又は変更でき、現在ルールDB224の状態を読み込んでファイアウォールUIアプリケーション201に送信することによって、ユーザに現在状態を見せることもできる。
【0078】
前記説明したファイアウォールUIアプリケーション201、ストリームインタフェースドライバ211、及びファイアウォールマネジャー227以外の残りの構成要素は、構成や機能が図2に示したものと同一又は類似しているので、その説明を省略する。
【0079】
このような図4の構成において、ユーザがファイアウォールUIアプリケーション201を介してルールDB219及び/又はルールDB224のルール設定を変更でき、以下、図5ないし図8を参照して後述する。
【0080】
図5は、本発明の例示的な実施形態に係るファイアウォールインタフェースが提供するルール設定画面を説明するための図である。
【0081】
本発明の例示的な実施形態によって、デバイス200のファイアウォールUIアプリケーション201は、ユーザによるルールDB219及び/又はルールDB224の設定のためのルール設定画面500をユーザに提供できる。
【0082】
デバイス200は、ルール設定画面500を介してユーザから受け取ったルールをシステムオンチップ(SoC)に送信し、前記システムオンチップは、デバイスから送信されたルールを自身の保存部に保存されたルールDBに反映できる。
【0083】
図5に示すように、ルール設定画面500は、三個のサブウィンドウ、すなわち基本設定ウィンドウ510、基本ルール設定ウィンドウ520、及びプロセス別設定ウィンドウ530を備える。ユーザは、ルール設定画面500から前記3個のサブウィンドウのうち、任意のサブウィンドウを選択してルール設定を行うことができ、図5は、基本設定ウィンドウ510が選択された状態を示す。
【0084】
図5に示す基本設定ウィンドウ510は、例えばユーザがある特定IPアドレス又は特定ネットワーク帯域のIPアドレスに該当するサイトを許容(allow)又は遮断(block)しようとするときにこれを設定する画面である。
【0085】
図示の一実施形態において基本設定ウィンドウ510は、コンフィギュレーションヘルパー(configuration helper)511機能のための入力ウィンドウ512を備え、その下にルールネーム、IP、プロトコル、ポートなどの各種フィールドを満たすための入力ウィンドウを備えることができる。
【0086】
コンフィギュレーションヘルパー511は、ネットワークを全く知らないユーザを助ける機能を果たす。本発明の一実施形態においてコンフィギュレーションヘルパー511は、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、該選択されたネットワークアプリケーションを実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを該当フィールドの入力ウィンドウに自動的に表示できる。
【0087】
例えば、ユーザがコンフィギュレーションヘルパー511の入力ウィンドウ512のボタンを選択すると、図6に示したようなメニューが広まる。広まったネットワークアプリケーションのうち、ユーザが何れか一つを選択すると、図5においてコンフィギュレーションヘルパー511の下にあるルールネーム、IP、プロトコル、ポートなどのフィールドに該当する値が自動的に入力されるようになる。
【0088】
図6のリストには、メッセンジャー、P2P、ゲームなどのみを例示しましたが、実施形態によってftp、http、テレネット、ssh、printerなどのプロトコルも選択できるように前記リストに含まれうる。
【0089】
前記実施形態のように、コンフィギュレーションヘルパー511を備えるのは、一般的なユーザは、特定プロトコルあるいは特定サービスのポートを全く知らない場合が多く、またネットワークをよく知っているユーザであっても、例えばMSNメッセンジャーでファイルをやり取りするために6891〜6900番ポートと41800〜41899番ポートとを許容しなければならないという事実を、関連文書を探す前には分かり難いためである。したがって、前記実施形態のように、通常のユーザのためのコンフィギュレーションヘルパー511を提供することによって、ユーザ自身の望むサービスに対してファイアウォールの設定作業をより容易に行うことができる。
【0090】
図5を再度参照して、コンフィギュレーションヘルパー511の下部の各種フィールドについて説明する。
【0091】
−ルールネーム(Rule Name):ルールの名称を入力するフィールドである。
【0092】
−インターネットプロトコル(IP):ルールを適用するIPを設定するフィールドである。一実施形態においてIPフィールドには、下記の表1に例示したタイプの設定が可能である。
【0093】
【表1】
【0094】
前記表1の入力例では、「192.168.*.*」の表記のように「*」表記法を使用できるようにした。「192.168.*.*」の表記は、特定ネットワーク帯域を意味するという点で「192.168.0.0/255.255.0.0」の表記又は「192.168.0.0/16」の表記と同一である。しかしながら、一般ユーザには、「192.168.0.0/255.255.0.0」の表記や「192.168.0.0/16」の表記よりは、「192.168.*.*」のような表記がより理解しやすいために、前記実施形態は、「192.168.*.*」のような表記も許容する。
【0095】
ただし「192.168.*.*」のような表記でネットワーク帯域を指定する場合、サブネットマスクを指定できないために、「192.168.0.0/255.255.0.0」又は「192.168.0.0/16」のような表記方法も共に使用できるようにする。
【0096】
また、前記表1の入力例は、ネットマスク(netmask)フィールドがなく、その代わりにIPフィールドに統合された。ネットワークを全く知らないユーザであってもIPとポート程度は分かるが、ネットマスクの意味や使用法は、分からない可能性が大きいためである。
【0097】
−プロトコル(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」は、ルールに適用されるパケットに対してログを残す機能である。
【0098】
以下、図7を参照して基本ルール設定のための実施形態を説明する。図7は、本発明の例示的な実施形態に係る基本ルールを設定できるルール設定画面500を説明するための図であって、基本ルール設定ウィンドウ520が選択された状態を示す。
【0099】
図7の基本ルール設定は、図5の入力例によって設定されたルールと一致しないパケットが入った時の適用するルールのことを意味する。図7に示すように、基本ルール設定ウィンドウ520は、基本ルール説明521及び現在基本ルール状態522をそれぞれ表すウィンドウを備え、またすべて遮断ボタン523及びすべて許容ボタン524を備えることができる。
【0100】
基本ルール説明521は、基本ルール設定の意味をユーザに説明する説明ウィンドウであり、現在基本ルール状態522は、現在設定されている基本ルールの状態を示すウィンドウである。
【0101】
一実施形態において基本的なデフォルト値として基本ルールは、外部に送信されるパケット(アウトゴウイングパケット)に対しては、許容(allow)に、デバイスの内部に受信されるパケット(インカミングパケット)に対しては、遮断(block)に設定されていることができる。すべて遮断ボタン523及びすべて許容ボタン524は、このような基本ルールの設定をアウトゴウイングパケットとインカミングパケットの両方に対して「遮断」又は「許容」に設定する機能のことを意味する。
【0102】
一方、一実施形態において、設定画面500の基本設定ウィンドウ510や基本ルール設定ウィンドウ520においてユーザが入力したルール設定情報は、ストリームインタフェースドライバ211を経てシステムオンチップ(SoC)のファイアウォールマネジャー227に送信され、ファイアウォールマネジャー227により前記ルール設定情報がルールDB224に反映されることによって、ルールDBがアップデートされる。
【0103】
図8は、本発明の例示的な実施形態に係るプロセス別ルールを設定できるルール設定画面を説明するための図であって、プロセス別設定ウィンドウ530が選択された状態を示す。
【0104】
プロセス別設定ウィンドウ530は、アプリケーションのプロセス別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域であって、図示の実施形態においてプロセス別設定ウィンドウ530は、プロセスリスト531、選択ウィンドウ532、遮断ボタン533、及び許容ボタン534などを備えることができる。
【0105】
ユーザは、このようなプロセス別設定ウィンドウ530を介して例えばある特定アプリケーションのプロセスに対するファイアウォールの設定を許容(allow)することで、このプロセスが生成するすべてのソケットのパケットの通過を許容(allow)でき、反対に、ある特定アプリケーションのプロセスに対するファイアウォールの設定を遮断(block)することで、該当プロセスが生成するすべてのソケットのパケットの通過を遮断できる。
【0106】
一実施形態において、設定画面500のプロセス別設定ウィンドウ530でユーザが入力したルール設定情報は、ストリームインタフェースドライバ211により前記ルール設定情報がルールDB219に反映されることによって、プロセス別ルールDBがアップデートされうる。しかしながら、代案的な実施形態によってファイアウォールUIアプリケーション201又は他の構成要素によりルールDB219がアップデートされうる。
【0107】
図9は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0108】
図4に比べて図9の実施形態では、カーネル層のルールDB(図4の219)が選択的である。したがって、図9では、前記ルールDB219が存在しないと仮定した。その他の残りの構成要素の機能や役割は、図4とすべて同一又は似ているので説明は省略する。
【0109】
図9の実施形態においてミニポートドライバ217は、ルールDBからプロセス別ルールDBを受けてパケットと直接比較する動作を行わない。その代りに、例えば、デバイス200がパケットを外部に送信する場合、ミニポートドライバ217は、所定パケットを受信すると、該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に送信し、システムオンチップ(SoC)上でプロセス別ルールDBをパケットに適用する。
【0110】
すなわち、図示の一実施形態においてルールDB224がプロセス別ルールDBをさらに含み、このとき、プロセス別ルールDBは、プロセス別にパケットの送受信を許容又は遮断することを定義したルールDBを含んでいる。これにより、例えばファイアウォールエンジン229に任意のパケットが送信されてくるとき、ファイアウォールエンジン229は、ルールDB224に保存されたプロセス別ルールに従って、前記パケットのオーナープロセスがパケットを送受信することが許容されるかどうかを判断し、判断結果に応じて前記パケットの通過を許容又は遮断し、なお前記オーナープロセス自体の実行中断を要請できる。
【0111】
このようなパケットフィルタリングの動作を図10を参照して説明する。
【0112】
図10は、図9のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートであって、デバイス200からパケットを外部に送信する時のパケットフィルタリング過程を示す。
【0113】
図10に示すように、ステップS1001にて任意のアプリケーション203によりパケットが生成されてデバイス200の外部に送信される前に、ミニポートドライバ217が前記送信されるパケットを受信する。
【0114】
ステップS1003にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0115】
その後、ステップS1005にて、前記パケットを使用するオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ(SoC)に送信する。このとき、前記識別情報は、例えばプロセスIDになりうる。
【0116】
前記パケット及び識別情報(例えば、プロセスID)は、システムオンチップ(SoC)のファイアウォールエンジン229に送信され、ステップS1007にてファイアウォールエンジン229が前記オーナープロセスが前記パケットを外部に送信することが許容されるかどうかを判断する。このとき、この判断過程にプロセス別ルールDBが利用されうる。すなわちデバイス200がプロセス別にパケットの送受信を許容又は遮断することを定義したルールをルールDB224が備えることができ、前記プロセス別ルールに従って、前記オーナープロセスがパケットを送信することが許容されるかどうかを判断する。
【0117】
前記ステップS1007にて判断した結果、前記オーナープロセスがパケットを送信することが許容される場合、ステップS1009に進んで、ファイアウォールエンジン229がステップS1009にてパケットフィルタリングを行う。すなわち、ルールDB224に保存されたパケットフィルタリングルールに従ってパケット送信の許容又は遮断を判断するフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。
【0118】
代案的な実施形態において、前記パケットフィルタリングステップS1009は、前記判断するステップS1007の前に行われうる。すなわち、パケットフィルタリングを経て通過されたパケットに対してのみ前記判断ステップS1007を行うこともできる。
【0119】
一方、ステップS1007にて、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS1011に進んで、ファイアウォールエンジン229は、前記パケットをNICドライバ228側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1013にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0120】
図11は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0121】
図9に比べて図11の実施形態は、デバイス200が外部と通信するための構成要素であるNICドライバ228及びNIC231の位置が図9の実施形態と異なる。図11に示すように、NIC231がシステムオンチップ(SoC)でないデバイス200の本体側に位置しており、NICドライバ228もカーネル層のNDIS218に位置する。その他の残りの構成要素の機能や役割は、図9と同一又は似ているので、説明を省略する。
【0122】
前記構成によれば、デバイス200の内部から外部に送信されるパケット又は外部からデバイス200に受信されるパケットがミニポートドライバ217に送信されうる。したがって、ミニポータードライバ217は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に伝達し、システムオンチップ(SoC)上でプロセス別ルールDBを前記パケットに適用できる。
【0123】
このようなパケットフィルタリングの動作を図12を参照して説明する。図12は、図11のデバイスにおける本発明の例示的な実施形態に係るパケットフィルタリング方法を説明するためのフローチャートである。
【0124】
図12に示すように、ステップS1201にて、送信又は受信されるパケットがミニポートドライバ217に送信され、ステップS1203にてミニポートドライバ217は、このパケットのオーナープロセスを確認する。一実施形態において、オーナープロセスは、前記パケットに含まれたプロセスID(ID)から確認されうる。
【0125】
その後、ステップS1205にて、前記パケットを使用するオーナープロセスを識別する情報を生成して、前記パケットと共にシステムオンチップ(SoC)に送信する。このとき、前記識別情報は、例えばプロセスIDになりうる。
【0126】
前記パケット及び識別情報(例えばプロセスID)は、システムオンチップ(SoC)のファイアウォールエンジン229に送信され、ステップS1207にて、ファイアウォールエンジン229は、プロセス別ルールDBを利用して、前記オーナープロセスが前記パケットを外部に送信又は受信することが許容されるかどうかを判断する。すなわち、外部に送信されるパケットに対しては、該当パケットのオーナープロセスがこのパケットを送信することが許容されるかどうかを判断し、外部から受信するパケットに対しては、該当パケットのオーナープロセスがこのパケットを受信することが許容されるかどうかを判断できる。
【0127】
前記ステップS1207にて判断した結果、前記オーナープロセスがパケット送信(又は受信)が許容されるプロセスに属する場合、ステップS1209に進んで、ファイアウォールエンジン229がステップS1209にてパケットフィルタリングを行う。すなわち、ルールDB224に保存されたパケットフィルタリングルールに従ってパケットフィルタリング作業を行うことができ、その結果に応じてパケットの送信を許容又は遮断する。代案的な実施形態において、前記パケットフィルタリングステップS1209は、前記判断するステップS1207の前に行われうる。
【0128】
一方、ステップS1207にて、外部に送信されるパケットの場合、前記オーナープロセスがパケットを送信することが許容されない場合、ステップS1211に進んで、ファイアウォールエンジン229は、前記パケットをNICドライバ228側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1213にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0129】
万一、ステップS1207にて、デバイス外部から受信するパケットの場合、前記オーナープロセスがパケットを受信することが許容されないと、ステップS1211に進んで、ファイアウォールエンジン229は、前記パケットをアプリケーション203側に送信しない。一実施形態においてファイアウォールエンジン229は、前記パケットを廃棄できる。そして、追加的なステップとして、ステップS1213にてファイアウォールエンジン229は、オーナープロセスの実行の中断を要請する信号をカーネル側に送信できる。
【0130】
図13は、本発明の他の例示的実施形態に係るシステムオンチップが装着されるデバイスを説明するための図である。
【0131】
図11に比べて図13の実施形態は、システムオンチップ(SoC)がハードウェア的構成要素のみを備えているという点で図11と異なる。すなわち、図示の実施形態においてシステムオンチップ(SoC)は、デバイス200のカーネル層と通信するためのAPドライバ221及びファイアウォールエンジン229を備える。一実施形態においてファイアウォールエンジン229は、メモリ241及びマッチャー(matcher)242を備えることができる。
【0132】
メモリ241は、デバイス200の任意の保存装置に保存されているルールDBをロードして一時的に保存するためのメモリであって、揮発性保存装置でありうる。マッチャー242は、パケットをルールDBのパケットフィルタリングルール及び/又はプロセス別ルールと比較してパケットの遮断又は許容を判断できる。その他の残り構成要素の機能や役割は、図11と同一又は似ているので説明を省略する。
【0133】
前記実施形態に係るパケットフィルタリング動作は、基本的に図12と同一又は似ている。ただし、ファイアウォールエンジン229によるパケットフィルタリングを行う前にデバイス200の保存装置に保存されているルールDB219がシステムオンチップ(SoC)のメモリ241にロードされる。その後、ミニポータードライバ217は、送信又は受信されるすべてのパケットに対して該当パケットのオーナープロセスのIDを確認した後、このプロセスIDを該当パケットと共にシステムオンチップ(SoC)に伝達し、システムオンチップ(SoC)のファイアウォールエンジン229は、プロセス別ルールを含んだパケットフィルタリングルールを適用する。
【0134】
一方、以上で説明した実施形態では、アプリケーション(プログラム)の「プロセス」単位でパケットの許容又は遮断を設定するか、又はプロセス自体の実行を中断すると説明したが、実施形態によって、プロセスでないプログラム単位で前記動作を行うこともできる。例えば、遮断された所定パケットに対してこのパケットのオーナープログラムを確認してこのオーナープログラムの実行を中断できる。すなわち、前記図面を参照して説明した実施形態において「プロセス」を「プログラム」に置き換えても本発明的概念に含まれうる。
【0135】
以上説明した本発明に係る実施形態は、またコンピュータ読み取り可能な記録媒体にコンピュータが読み取ることのできるコードとして具現化することが可能である。コンピュータ読み取り可能な記録媒体は、コンピュータシステムによって読まれることができるデータが保存されるすべての種類の記録装置を含む。コンピュータ読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した送信)の形態で具現化されることも含む。また、コンピュータ読み取り可能な記録媒体は、ネットワークで接続されたコンピュータシステムに分散されて、分散方式でコンピュータが読み出すことができるコードが保存され実行されうる。
【0136】
以上、本発明は、限定された実施形態と図面により説明されたが、本発明は、上記の実施形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施形態に限定されてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められねばならない。
【特許請求の範囲】
【請求項1】
ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、
前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、
前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うことを特徴とするデバイス。
【請求項2】
プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールデータベース(DB)を保存する保存部をさらに備え、
前記ドライバは、送信するパケットに含まれたオーナープロセスIDを獲得し、前記プロセス別ルールDBを参照して、前記オーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたものであるかどうかを判断し、許容された場合にのみ前記パケットを前記チップに送信することを特徴とする請求項1に記載のデバイス。
【請求項3】
前記ドライバは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記パケットを前記チップに送信しないことを特徴とする請求項1に記載のデバイス。
【請求項4】
前記ドライバは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記オーナープロセスの実行を中断させることを特徴とする請求項3に記載のデバイス。
【請求項5】
前記チップは、ネットワークインタフェースカードをさらに備え、前記ネットワークインタフェースカードを介して受信されたパケットに対して前記ルールを適用して前記パケットを前記ドライバに送信するか、又は送信しないことを特徴とする請求項1に記載のデバイス。
【請求項6】
前記ドライバは、また、前記チップから送信されたパケットのオーナープロセスを確認した後、前記チップから受信したパケットのオーナープロセスが外部からパケットを受信することが許容された場合にのみ、前記パケットを前記オーナープロセスに提供することを特徴とする請求項5に記載のデバイス。
【請求項7】
IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するファイアウォールユーザインタフェースをさらに備え、
前記ファイアウォールユーザインタフェースは、前記ルール設定画面を介してユーザから受け取ったルールを前記チップに送信し、前記チップは、前記ファイアウォールユーザインタフェースから送信されたルールを利用してパケットフィルタリング動作を行うことを特徴とする請求項1に記載のデバイス。
【請求項8】
前記ルール設定画面は、コンフィギュレーションヘルパーを備え、
前記コンフィギュレーションヘルパーは、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、選択されたネットワークアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項7に記載のデバイス。
【請求項9】
前記ルール設定画面は、
プログラム別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項7に記載のデバイス。
【請求項10】
システムオンチップが装着され、ネットワークプロセスを備えたデバイスでのパケットフィルタリング方法であって、
前記デバイスが、送信するパケットのオーナープロセスを確認し、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記システムオンチップに送信するステップと、
前記システムオンチップは、前記デバイスから受け取ったパケットに対して、パケットフィルタリングのためのルールを適用してパケットフィルタリング動作を行うステップと
を含むことを特徴とするパケットフィルタリング方法。
【請求項11】
前記デバイスは、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを保存し、
前記デバイスは、前記パケットに含まれたオーナープロセスIDを獲得し、前記プロセス別ルールDBを参照して、前記オーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたかどうかを判断し、許容された場合にのみ前記パケットを前記チップに送信することを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項12】
前記デバイスは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記パケットを前記システムオンチップに送信しないことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項13】
前記デバイスは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記オーナープロセスの実行を中断させることを特徴とする請求項12に記載のパケットフィルタリング方法。
【請求項14】
前記システムオンチップは、ネットワークインタフェースカードをさらに備え、前記ネットワークインタフェースカードを介して受信されたパケットに対して前記ルールを適用してパケットフィルタリング動作を行うことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項15】
前記デバイスは、また、前記システムオンチップから受信したパケットのオーナープロセスを確認した後、前記システムオンチップから受信したパケットのオーナープロセスが外部からパケットを受信することが許容された場合にのみ、前記パケットを前記オーナープロセスに提供することを特徴とする請求項14に記載のパケットフィルタリング方法。
【請求項16】
前記デバイスは、IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するステップと、
前記デバイスは、前記ルール設定画面を介してユーザから受け取ったルールを前記システムオンチップに送信し、前記システムオンチップは、前記デバイスから受信したルールを利用してパケットフィルタリング動作を行うステップと
をさらに含むことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項17】
前記ルール設定画面は、コンフィギュレーションヘルパーを含み、
前記コンフィギュレーションヘルパーは、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、選択されたネットワークアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項16に記載のパケットフィルタリング方法。
【請求項18】
前記ルール設定画面は、
プログラム別にパケットの送信又は受信を許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項17に記載のパケットフィルタリング方法。
【請求項19】
コンピュータに、
外部に送信するパケットのオーナープロセスを確認するステップと、
前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップと
を含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【請求項20】
ファイアウォールエンジンを備えたチップと、ドライバを備えたデバイスであって、
前記ドライバは、外部に送信するパケットに対するオーナープロセスIDを獲得し、前記送信するパケットとそのオーナープロセスIDとを前記チップに送信し、
前記チップに備えられたファイアウォールエンジンは、パケットフィルタリングのためのルールDBを利用して前記ドライバから受信したパケットに対してフィルタリング動作を行うことを特徴とするデバイス。
【請求項21】
前記チップに備えられたファイアウォールエンジンは、
前記パケットフィルタリングのためのルールDBを適用して、前記ドライバから受信したオーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたかどうかを判断することを特徴とする請求項20に記載のデバイス。
【請求項22】
ネットワークインタフェースカードをさらに備え、
前記ドライバは、また、前記ネットワークインタフェースカードを介して受信したパケットに対してオーナープロセスIDを獲得し、このオーナープロセスIDと前記受信したパケットとを前記チップに送信することを特徴とする請求項20に記載のデバイス。
【請求項23】
前記ルールDBは、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールを備えることを特徴とする請求項20に記載のデバイス。
【請求項24】
コンピュータに、
外部に送信するパケットのオーナープロセスを確認するステップと、
外部に送信するパケットに対するオーナープロセスIDを獲得するステップと、
前記外部に送信するパケットとそのオーナープロセスIDを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップと
を含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【請求項25】
前記ネットワークインタフェースカードを介して受信したパケットに対してオーナープロセスIDを獲得し、このオーナープロセスIDと前記受信したパケットを前記チップに送信するステップをさらに含むことを特徴とする請求項24に記載のプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【請求項1】
ファイアウォールエンジンを備えたチップとドライバとを有するデバイスであって、
前記ドライバは、送信するパケットのオーナープロセスを確認し、前記オーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記チップにパケットを送信し、
前記チップは、前記ドライバから受信したパケットに対してパケットフィルタリングのためのルールを適用してフィルタリング動作を行うことを特徴とするデバイス。
【請求項2】
プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールデータベース(DB)を保存する保存部をさらに備え、
前記ドライバは、送信するパケットに含まれたオーナープロセスIDを獲得し、前記プロセス別ルールDBを参照して、前記オーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたものであるかどうかを判断し、許容された場合にのみ前記パケットを前記チップに送信することを特徴とする請求項1に記載のデバイス。
【請求項3】
前記ドライバは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記パケットを前記チップに送信しないことを特徴とする請求項1に記載のデバイス。
【請求項4】
前記ドライバは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記オーナープロセスの実行を中断させることを特徴とする請求項3に記載のデバイス。
【請求項5】
前記チップは、ネットワークインタフェースカードをさらに備え、前記ネットワークインタフェースカードを介して受信されたパケットに対して前記ルールを適用して前記パケットを前記ドライバに送信するか、又は送信しないことを特徴とする請求項1に記載のデバイス。
【請求項6】
前記ドライバは、また、前記チップから送信されたパケットのオーナープロセスを確認した後、前記チップから受信したパケットのオーナープロセスが外部からパケットを受信することが許容された場合にのみ、前記パケットを前記オーナープロセスに提供することを特徴とする請求項5に記載のデバイス。
【請求項7】
IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するファイアウォールユーザインタフェースをさらに備え、
前記ファイアウォールユーザインタフェースは、前記ルール設定画面を介してユーザから受け取ったルールを前記チップに送信し、前記チップは、前記ファイアウォールユーザインタフェースから送信されたルールを利用してパケットフィルタリング動作を行うことを特徴とする請求項1に記載のデバイス。
【請求項8】
前記ルール設定画面は、コンフィギュレーションヘルパーを備え、
前記コンフィギュレーションヘルパーは、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、選択されたネットワークアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち、少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項7に記載のデバイス。
【請求項9】
前記ルール設定画面は、
プログラム別にパケットを許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項7に記載のデバイス。
【請求項10】
システムオンチップが装着され、ネットワークプロセスを備えたデバイスでのパケットフィルタリング方法であって、
前記デバイスが、送信するパケットのオーナープロセスを確認し、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記システムオンチップに送信するステップと、
前記システムオンチップは、前記デバイスから受け取ったパケットに対して、パケットフィルタリングのためのルールを適用してパケットフィルタリング動作を行うステップと
を含むことを特徴とするパケットフィルタリング方法。
【請求項11】
前記デバイスは、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールDBを保存し、
前記デバイスは、前記パケットに含まれたオーナープロセスIDを獲得し、前記プロセス別ルールDBを参照して、前記オーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたかどうかを判断し、許容された場合にのみ前記パケットを前記チップに送信することを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項12】
前記デバイスは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記パケットを前記システムオンチップに送信しないことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項13】
前記デバイスは、また、前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容されない場合には、前記オーナープロセスの実行を中断させることを特徴とする請求項12に記載のパケットフィルタリング方法。
【請求項14】
前記システムオンチップは、ネットワークインタフェースカードをさらに備え、前記ネットワークインタフェースカードを介して受信されたパケットに対して前記ルールを適用してパケットフィルタリング動作を行うことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項15】
前記デバイスは、また、前記システムオンチップから受信したパケットのオーナープロセスを確認した後、前記システムオンチップから受信したパケットのオーナープロセスが外部からパケットを受信することが許容された場合にのみ、前記パケットを前記オーナープロセスに提供することを特徴とする請求項14に記載のパケットフィルタリング方法。
【請求項16】
前記デバイスは、IP、プロトコル、及びポートのうち、少なくとも何れか一つの情報をユーザから受け取ることができる領域を含んだルール設定画面を提供するステップと、
前記デバイスは、前記ルール設定画面を介してユーザから受け取ったルールを前記システムオンチップに送信し、前記システムオンチップは、前記デバイスから受信したルールを利用してパケットフィルタリング動作を行うステップと
をさらに含むことを特徴とする請求項10に記載のパケットフィルタリング方法。
【請求項17】
前記ルール設定画面は、コンフィギュレーションヘルパーを含み、
前記コンフィギュレーションヘルパーは、ネットワークアプリケーションに対するリストを提供し、このリストに含まれたネットワークアプリケーションのうち、少なくとも何れか一つのネットワークアプリケーションがユーザにより選択されると、選択されたネットワークアプリケーションが実行するのに必要なIP、プロトコル、及びポートのうち少なくとも何れか一つを前記領域に自動的に入力することを特徴とする請求項16に記載のパケットフィルタリング方法。
【請求項18】
前記ルール設定画面は、
プログラム別にパケットの送信又は受信を許容又は遮断することを定義したプロセス別ルールを入力できる領域を備えることを特徴とする請求項17に記載のパケットフィルタリング方法。
【請求項19】
コンピュータに、
外部に送信するパケットのオーナープロセスを確認するステップと、
前記送信するパケットのオーナープロセスが外部にパケットを送信することが許容された場合にのみ、前記パケットを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップと
を含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【請求項20】
ファイアウォールエンジンを備えたチップと、ドライバを備えたデバイスであって、
前記ドライバは、外部に送信するパケットに対するオーナープロセスIDを獲得し、前記送信するパケットとそのオーナープロセスIDとを前記チップに送信し、
前記チップに備えられたファイアウォールエンジンは、パケットフィルタリングのためのルールDBを利用して前記ドライバから受信したパケットに対してフィルタリング動作を行うことを特徴とするデバイス。
【請求項21】
前記チップに備えられたファイアウォールエンジンは、
前記パケットフィルタリングのためのルールDBを適用して、前記ドライバから受信したオーナープロセスIDを有したプロセスが外部にパケットを送信することが許容されたかどうかを判断することを特徴とする請求項20に記載のデバイス。
【請求項22】
ネットワークインタフェースカードをさらに備え、
前記ドライバは、また、前記ネットワークインタフェースカードを介して受信したパケットに対してオーナープロセスIDを獲得し、このオーナープロセスIDと前記受信したパケットとを前記チップに送信することを特徴とする請求項20に記載のデバイス。
【請求項23】
前記ルールDBは、プロセス別にパケットの送受信を許容又は遮断することを定義したプロセス別ルールを備えることを特徴とする請求項20に記載のデバイス。
【請求項24】
コンピュータに、
外部に送信するパケットのオーナープロセスを確認するステップと、
外部に送信するパケットに対するオーナープロセスIDを獲得するステップと、
前記外部に送信するパケットとそのオーナープロセスIDを前記コンピュータに装着されたパケットフィルタリング機能付きチップに送信するステップと
を含む方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【請求項25】
前記ネットワークインタフェースカードを介して受信したパケットに対してオーナープロセスIDを獲得し、このオーナープロセスIDと前記受信したパケットを前記チップに送信するステップをさらに含むことを特徴とする請求項24に記載のプログラムが記録されたコンピュータで読み取り可能な記録媒体。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−195943(P2012−195943A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2012−60195(P2012−60195)
【出願日】平成24年3月16日(2012.3.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.ウィンドウズ
3.フロッピー
【出願人】(510294195)サムソン エスディーエス カンパニー リミテッド (33)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成24年3月16日(2012.3.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.ウィンドウズ
3.フロッピー
【出願人】(510294195)サムソン エスディーエス カンパニー リミテッド (33)
【Fターム(参考)】
[ Back to top ]