パケットルールに基づいて、パケットデータに対するフィルタリング動作を行うステップと、前記フィルタリング動作中であるパケットデータに対して、ウイルススキャニング動作を行うステップとを含むことを特徴とするアンチマルウェアシステムにおける動作方法。前記フィルタリング動作中であるパケットデータにウイルススキャニングするデータが含まれているかどうかを判断するステップをさらに含み、前記ウイルススキャニング動作を行うステップは、前記パケットデータにウイルススキャニングするデータがあると判断される場合にのみ行われることを特徴とするアンチマルウェアシステムにおける請求項1に記載の動作方法。前記フィルタリング動作の遂行結果、前記パケットデータがパケットルールを満たし、前記ウイルススキャニング動作の遂行結果、前記パケットデータにウイルスが含まれていないと判断されると、前記パケットデータを外部又は前記パケットデータを使用するアプリケーション部に送信することを特徴とする請求項2に記載のアンチマルウェアシステムにおける動作方法。前記フィルタリング動作の遂行結果、前記パケットデータがパケットルールを満たす場合でも、前記ウイルススキャニング動作の遂行結果、前記パケットデータにウイルスが含まれたと判断されると、前記パケットデータを外部又は前記パケットデータを使用するアプリケーション部に送信しないことを特徴とする請求項2に記載のアンチマルウェアシステムにおける動作方法。前記フィルタリング動作を行うステップにて前記パケットデータが前記パケットルールを満たすと判断される場合、前記パケットルールを満たすパケットデータを待機バッファに格納するステップをさらに含むことを特徴とする請求項2に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニング動作を行うステップは、前記待機バッファに格納されたパケットデータに対して前記ウイルススキャニング動作を行うことを特徴とする請求項5に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニング動作を行うステップは、前記待機バッファに格納されたパケットデータにウイルススキャニングするデータが含まれている場合にのみ行うことを特徴とする請求項5に記載のアンチマルウェアシステムにおける動作方法。前記フィルタリング動作を行うステップにて前記パケットデータが前記パケットルールを満たすと判断される場合、前記パケットルールを満たすパケットデータを待機バッファに格納するステップと、前記判断するステップにて、前記パケットルールを満たすパケットデータに前記ウイルススキャニングするデータが含まれていると判断された場合、前記パケットデータを補助バッファに複写して格納するステップとをさらに含むことを特徴とする請求項2に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニング動作を行うステップは、前記補助バッファに格納されたパケットデータに対して行うことを特徴とする請求項8に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニング動作の対象になるパケットデータを前記ウイルススキャニング動作を行うことができる形態に変換するステップをさらに含み、前記ウイルススキャニング動作は、前記変換されたパケットデータに対して行われることを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記判断するステップにて、前記パケットデータに前記ウイルススキャニングするデータが含まれていると判断された場合、前記ウイルススキャニングするデータの種類を決定するステップをさらに含むことを特徴とする請求項2に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニングするデータが第1種類に該当すると判断されると、前記パケットデータを待機バッファに格納し、前記ウイルススキャニングするデータの種類が第2種類に該当すると判断されると、補助バッファに格納するステップをさらに含むことを特徴とする請求項11に記載のアンチマルウェアシステムにおける動作方法。前記ウイルススキャニング動作を行うステップは、前記待機バッファ又は補助バッファに格納されたデータパケットに対して前記ウイルススキャニング動作を行うことを特徴とする請求項12に記載のアンチマルウェアシステムにおける動作方法。前記フィルタリング動作を行うステップは、前記ルールパターンと前記パケットデータとをマッチングさせるステップと、前記マッチング結果によって前記パケットデータの許容有無を判断するステップとを含み、前記ウイルススキャニング動作を行うステップは、予め設定されたウイルスパターンと前記パケットデータとをマッチングさせるステップと、前記マッチング結果によってウイルスを含むかどうかを判断するステップとを含むことを特徴とする請求項1に記載のアンチマルウェアシステムにおける動作方法。前記マッチングさせるステップは、各々別のハードウェアで具現されることを特徴とする請求項14に記載のアンチマルウェアシステムにおける動作方法。前記マッチングさせるステップは、共通のハードウェアで具現されることを特徴とする請求項14に記載のアンチマルウェアシステムにおける動作方法。パケットルールに基づいてパケットデータに対するフィルタリング動作を行い、前記パケットデータにウイルススキャニングするデータが含まれているかどうかを判断する防火壁エンジンFirewallengineと、前記防火壁エンジンにより前記パケットデータにウイルススキャニングするデータがあると判断される場合、前記パケットデータに対するウイルススキャニング動作を行うアンチウイルスエンジンAnti-virusengineとを備えることを特徴とするアンチマルウェアシステム。前記防火壁エンジンは、前記パケットルールを満たすパケットデータに対してのみ前記ウイルススキャニングするデータを含んでいるかどうかを判断することを特徴とする請求項17に記載のアンチマルウェアシステム。待機バッファをさらに備え、前記防火壁エンジンは、前記パケットルールを満たすパケットデータを前記待機バッファに格納することを特徴とする請求項17に記載のアンチマルウェアシステム。前記アンチウイルスエンジンは、前記待機バッファに格納されたパケットデータに対してウイルススキャニング動作を行うことを特徴とする請求項19に記載のアンチマルウェアシステム。前記アンチウイルスエンジンは、前記待機バッファに格納されたパケットデータにウイルススキャニングするデータが含まれている場合にのみ行うことを特徴とする請求項19に記載のアンチマルウェアシステム。待機バッファと補助バッファとをさらに備え、前記防火壁エンジンは、前記パケットデータが前記パケットルールを満たすと判断される場合、前記パケットルールを満たすパケットデータを前記待機バッファに格納し、前記パケットルールを満たすパケットデータに前記ウイルススキャニングするデータが含まれていると判断された場合、前記パケットデータを補助バッファに格納することを特徴とする請求項17に記載のアンチマルウェアシステム。前記アンチウイルスエンジンは、前記補助バッファに格納されたパケットデータに対して行うことを特徴とする請求項22に記載のアンチマルウェアシステム。前記ウイルススキャニング動作の対象になるパケットデータを前記ウイルススキャニング動作を行うことができる形態に変換するアンチマルウェアマネジャーをさらに備え、前記ウイルススキャニング動作は、前記変換されたパケットデータに対して行われることを特徴とする請求項17に記載のアンチマルウェアシステム。前記防火壁エンジンから前記パケットデータにウイルススキャニングするデータが含まれているという通知を受信して、前記パケットデータにウイルススキャニングするデータがあることを前記アンチウイルスエンジンに通知するアンチウイルスインスペクターinspectorをさらに備えることを特徴とする請求項17に記載のアンチマルウェアシステム。前記防火壁エンジンは、前記パケットデータにスキャニングするデータが含まれていることを前記アンチウイルスインスペクターに通知し、前記パケットデータを補助バッファに格納し、前記アンチウイルスエンジンは、前記補助バッファに格納されたパケットデータに対して前記ウイルススキャニング動作を行うことを特徴とする請求項25に記載のアンチマルウェアシステム。前記アンチウイルスインスペクターは、前記補助バッファにパケットデータが格納されたことを確認した後、前記アンチウイルスエンジンにウイルススキャニングするデータがあることを通知することを特徴とする請求項26に記載のアンチマルウェアシステム。前記アンチウイルスエンジンは、前記補助バッファに格納されたパケットデータに対するウイルススキャニング動作の結果を前記アンチウイルスインスペクターに知らせることを特徴とする請求項27に記載のアンチマルウェアシステム。前記防火壁エンジン及び前記アンチウイルスエンジンから各々の動作結果を受信するアンチマルウェアマネジャーをさらに備えることを特徴とする請求項27に記載のアンチマルウェアシステム。前記アンチウイルスエンジンは、前記補助バッファに格納されたパケットデータに対するウイルススキャニング動作の結果を前記アンチウイルスインスペクターに通知し、前記アンチウイルスインスペクターは、前記ウイルススキャニング動作の結果を前記アンチマルウェアマネジャに通知することを特徴とする請求項29に記載のアンチマルウェアシステム。パケットルールに基づいてパケットデータに対するフィルタリング動作を行い、前記パケットデータにウイルススキャニングするデータが含まれているかどうかを判断する防火壁エンジン。本発明の一実施の形態によれば、本発明の目的は、高速でパケットデータをフィルタリングできるアンチマルウェアシステム及びその動作方法を提供することにある。本発明の一実施の形態によれば、本発明の他の目的は、パケットデータに対してフィルタリングとウイルススキャニングとを並行して行うことができるアンチマルウェアシステム及びその動作方法を提供することにある。本発明の一実施の形態によれば、パケットルールに基づいて、パケットデータに対するフィルタリング動作を行うステップと、前記フィルタリング動作中であるパケットデータに対して、ウイルススキャニング動作を行うステップとを含むことを特徴とするアンチマルウェアシステムにおける動作方法が提供される。本発明の他の実施の形態によれば、パケットルールに基づいてパケットデータに対するフィルタリング動作を行い、前記パケットデータにウイルススキャニングするデータが含まれているかどうかを判断する防火壁エンジンFirewallengineと、前記防火壁エンジンにより前記パケットデータにウイルススキャニングするデータがあると判断される場合、前記パケットデータに対するウイルススキャニング動作を行うアンチウイルスエンジンAnti-virusengineとを備えることを特徴とするアンチマルウェアシステムが提供される。本発明の一実施の形態によれば、高速でパケットデータをフィルタリングできる。本発明の一実施の形態によれば、パケットデータに対してフィルタリングとウイルススキャニングとを並行して行うことができる。以上の本発明の目的、他の目的、特徴及び利点は、添付された図面と関わった以下の好ましい実施の形態により容易に理解されるはずである。しかしながら、本発明は、ここで説明される実施の形態に限定されずに他の形態で具体化されることもできる。むしろ、ここで紹介される実施の形態は、開示された内容が徹底かつ完全になるように、そして当業者に本発明の思想を十分に送信させるために提供されることである。本明細書において、ある構成要素が他の構成要素上にあると言及される場合に、それは、他の構成要素上に直接形成されうるか、又はそれらの間に第3の構成要素が介在されうることを意味する。本明細書で使用された用語は、実施の形態を説明するためのもので、本発明を制限しようとするものではない。本明細書において、単数型は、特に言及しない限り、複数型も含む。明細書で使用される含むcomprises及び/又は含むcomprisingと言及された構成要素は、一つ以上の他の構成要素の存在又は追加を排除しない。以下、図面を参照して本発明を詳細に説明する。以下の特定実施の形態を述べるにおいて、色々な特定な内容は、発明をさらに具体的に説明し理解を助けるために作成された。しかしながら、本発明を理解することができる程度のこの分野における知識を有した読者は、このような色々な特定な内容がなくても使用されうることを認知できる。ある場合には、発明を述べるにおいて周知で発明と大きく関連のない部分は、本発明を説明するにおいて特別な理由なしで混乱を引き起こすことを防止するために述べないことを予め言及しておく。図1は、本発明の一実施の形態に係るアンチマルウェアシステムのブロック図である。本実施の形態に係るアンチマルウェアシステム100は、SoCSystemonChip形態で具現されるか、又はPC、モバイル機器などネットワーク通信が可能な機器自体に搭載されることができる。図1に示すように、本発明の一実施の形態に係るアンチマルウェアシステム100は、通信部110、ルールパターンデータベースDatabase:DB120、防火壁エンジン130、ウイルスパターンDB140、及びアンチウイルスエンジン150、及びマネジャー160を備えることができる。説明の便宜のために、図1にドライバー200とアプリケーション部300とを共に示しており、ドライバー200とアプリケーション部300とは、アンチマルウェアシステム100が装着されるデバイスの構成要素である。ドライバー200は、アンチマルウェアシステム100とアプリケーション部300との間のインターフェースを支援できる。ドライバー200は、アプリケーション部300からの命令、ルールパターンDB120又はウイルスパターンDB140のアップデート命令などをマネジャー160に案内できる。アプリケーション部300は、アンチウイルスUIアプリケーション、防火壁UIアプリケーション、ウェブブラウザ、及びネットワークアプリケーションを含むことができる。本願明細書では、アンチウイルスUIアプリケーションと防火壁UIアプリケーションとを通称してAMアプリケーションと呼ぶことにし、ただし両方を区別する実益がある場合にはその限りでない。通信部110は、ネットワークを介して外部からパケットデータを受信する。このために、通信部110は、WiFiWirelessfidelityモジュール、LANLocalAreaNetworkモジュール、OTAOvertheairモジュール、ブルートゥースBluetoothモジュール、及び4Gモジュールのうち、少なくとも一つを含むことができる。通信部110は、外部からパケットデータを受信すると、この受信されたパケットデータは、防火壁エンジン130に送信される。ルールパターンDB120は、パケットルールを含むデータベースである。パケットルールは、外部から流入したパケットデータの遮断及び通過有無を決定するために用いられる。ここで、パケットルールは、ユーザにより直接設定されるか、又はデフォルトとして設定されたものでありうる。ユーザにより設定されたルールは、本アンチマルウェアシステム100で使用することができる形態に変換されて、ルールパターンDB120のような形態で具現されることができる。防火壁エンジン130は、パケットルールに基づいてパケットデータに対するフィルタリング動作と、パケットデータにスキャニングするデータが含まれているかどうかを判断できる。すなわち、本発明の一実施の形態に係る防火壁エンジン130は、フィルタリング動作とパケットデータにスキャニングするデータが含まれているかどうかを判断する動作とも行うことができる。このような実施の形態で、アンチウイルスエンジン150は、防火壁エンジン130がスキャニングするデータが含まれていると判断したパケットデータに対してウイルススキャニング動作を行う。ここで、ウイルススキャニング動作は、防火壁エンジン130によるフィルタリング動作が行われる前又はフィルタリング動作と同時に行われるか、又はフィルタリング動作が行われた後に行われることができる。一方、防火壁エンジン130は、パケットデータに対するフィルタリング動作は行うが、パケットデータにウイルススキャニングするデータが含まれているかどうかに対する判断はしなくてもよい。このような実施の形態において、アンチウイルスエンジン150は、防火壁エンジン130がフィルタリング中であるパケットデータを区分せずにすべてのパケットデータに対してウイルススキャニング動作を行う。又は、アンチウイルスエンジン150は、フィルタリング動作が行われる前のパケットデータに対してウイルススキャニング動作を行うことができ、フィルタリング動作が行われた後のパケットデータに対してウイルススキャニング動作を行うことができる。防火壁エンジン130のフィルタリング動作は、従来の周知の方法、未来に開発される方法又は本明細書に記載された方法のうちの何れかの方法でも具現されることができる。アンチウイルスエンジン150によるウイルススキャニング動作もやはり従来の周知の方法、未来に開発される方法又は本明細書に記載された方法のうちの何れかの方法でも具現されうる。以下、本発明の一実施の形態に係る防火壁エンジン130のフィルタリング動作を説明する。防火壁エンジン130は、パケットデータとルールパターンDB120とのマッチング動作を介してパケットデータがパケットルールを満たしているかどうかを判断できる。本発明の一実施の形態によれば、防火壁エンジン130は、パケットデータのヘッダに含まれた情報IPaddress、プロトコル、ポートとルールパターンDB120とのマッチング動作を介して、パケットデータがパケットルールを満たしているかどうかを判断する。具体的に、防火壁エンジン130は、パケットデータのヘッダに含まれた情報IPaddress、プロトコル、ポートと、ハッシュマッチャーテーブル及びサブマッチャーテーブルとのマッチング動作を介して、パケットデータがパケットルールを満たしているかどうかを判断する。本発明の一実施の形態によれば、防火壁エンジン130は、ルールパターンのハッシュ値とパケットデータのハッシュ値とを利用して、マッチング動作を行うことができる。図示していないが、本発明の一実施の形態に係るアンチマルウェアシステム100は、ハッシュ関数を適用してパケットデータとルールパターンDB120との間のマッチング動作を行うことができる。例えば、防火壁エンジン130は、ルールパターンのハッシュ値とパケットデータの少なくとも一部のハッシュ値とをマッチングして成功した場合にのみ、再度ルールパターンとパケットデータとをマッチングできる。防火壁エンジン130により行われるフィルタリング動作の例は、図11~15を参照して詳細に後述する。一方、上述したように、本発明の一実施の形態に係る防火壁エンジン130は、パケットデータにウイルススキャニングするデータが含まれているかどうかを判断できる。防火壁エンジン130によりパケットデータにウイルススキャニング対象になるデータが含まれていると判断された場合、そういうスキャニング対象データに対してアンチウイルスエンジン150は、ウイルススキャニング動作を行うことができる。これと関連しては、図4と図5を参照して後述する。本発明の他の実施の形態に係る防火壁エンジン130は、パケットデータにウイルススキャニング対象になるデータが含まれているかどうかと、ひいては、そういうスキャニング対象になるデータの種類を決定できる。ここで、データの種類には、ファイルデータと非ファイルデータがありえ、ファイルデータには、またスクリプターファイルデータと一般ファイルデータがありうる。このような種類は、例示に過ぎないものであって、これと異なってデータの種類が定義されることも可能でありうる。防火壁エンジン130がデータの種類を区分した実施の形態は、図6を参照して後述する。本発明のさらに他の実施の形態によれば、防火壁エンジン130は、パケットデータに対するフィルタリング動作を行う前に、パケットデータにウイルススキャニングの対象になるデータが含まれているかどうかを判断できる。防火壁エンジン130が、パケットデータにウイルススキャニングの対象になるデータが含まれていると判断した場合、アンチウイルスエンジン150は、そういうパケットデータに対してウイルススキャニング動作を行い、防火壁エンジン130は、そういうパケットデータに対してフィルタリング動作を行う。これらのスキャニング動作とフィルタリング動作とは、必ず同時に行われる必要はなく、順次に行われることもできる。ウイルスパターンDB140は、少なくとも一つ以上のウイルスパターンを含むデータベースである。また、本発明の一実施の形態に係る、ウイルスパターンDB140は、文法的に単純なウイルスパターン及び/又は文法的に複雑なウイルスパターンを含むことができる。文法的に単純なウイルスパターン及び/又は文法的に複雑なウイルスパターンは、韓国特許出願番号10-2010-00495662010年5月27日付出願、韓国特許出願番号10-2010-00529812010年6月4日付出願に記載されており、これらの文献に記載された内容は、本願発明に相反しない範囲で本願明細書の一部として結合される。アンチウイルスエンジン150は、ウイルスパターンDB140を利用してスキャニング対象データにウイルスが存在しているかどうかを判断できる。本発明によれば、スキャニング対象になるデータは、ドライバー200を介して受信したデータでありうるが、防火壁エンジンから受信したパケットデータも該当することができる。アンチウイルスエンジン150は、パケットデータに対してウイルススキャニングを行うことができるが、パケットデータに対する前処理Pre-processing動作が必要となりうる。例えば、前処理動作として、パケットデータを最小限の意味のある単位バッファ分だけのデータにスクリプト形式のウイルスパターンがあるかを探す動作が行われることができる。他の例として、前処理動作として、特定形式のファイルを含むパケットデータに対しては、パケットデータを集めてファイル形式を確認する動作が行われることができ、アンチウイルスエンジン150は、最小限の意味のある単位分だけのファイルに対してウイルスパターンがあるかどうかを確認するスキャニング動作を行うことができる。そういう前処理の具体的な動作は、アンチウイルスエンジン150のスキャニング方式やウイルスパターンDBの形態により異なりうる。ただし、本発明の要旨が不必要に不明確になるのを防止するために、本発明の実施の形態において、アンチウイルスエンジン150がパケットデータに対してウイルススキャニング動作を行う際には、事前処理に対する明示的な言及がなくても必要な事前処理動作は行われるのが前提になる。図1を続いて述べると、アンチウイルスエンジン150は、ウイルスパターンDB140を利用して通信部110を介して受信されたパケットデータに対してもウイルススキャニング動作を行うことができる。本発明の一実施の形態に係るアンチウイルスエンジン150によるスキャニング動作は、防火壁エンジン130のフィルタリング動作と並行されるか、フィルタリング動作が行われる前、又はフィルタリング動作が行われた後に行われることができる。例えば、通信部110を介して受信したパケットデータに対してアンチウイルスエンジン150と防火壁エンジン130とは、同時又は互いに時間差をおいてそれぞれスキャニングとフィルタリング動作とを行うことができる。一方、アンチウイルスエンジン150は、アプリケーション部300の指示によって、ドライバー200を介して受信されるデータに対してもウイルススキャニング動作を行うことができる。本発明の一実施の形態に係るアンチウイルスエンジン150は、ウイルスパターンDB140とパケットデータとをマッチングさせることによって、パケットデータにウイルスが含まれているかどうかを判断できる。一実施の形態によれば、アンチウイルスエンジン150は、ハッシュ値を利用してウイルススキャニング動作を行うことができる。例えば、アンチウイルスエンジン150は、ウイルスパターンのハッシュ値とパケットデータのハッシュ値とをマッチングするハッシュ値マッチング動作を行った後、ハッシュ値がマッチングされると、パターンデータの一部とウイルスパターンとをマッチングさせるライトパターンマッチングを行い、ライトパターンマッチングが成功した場合、ウイルスパターンとパケットデータ全体とを精密にマッチングする精密パターンマッチングを行うことができる。マネジャー160は、アプリケーション部300から受信される命令を解析して、スキャニングと関わったものであるか、それとも防火壁と関わったものであるかを判断して、それに応じる動作を行うことができる。例えば、マネジャー160は、アップデート用ウイルスパターンDBをアプリケーション部300から受信した場合には、ウイルスパターンDB140にアップデート用ウイルスパターンDBをロードさせることができる。また、マネジャー160は、アプリケーション部300からスキャニング命令を受けることができ、そういうスキャニング命令にしたがってアンチウイルスエンジン150がスキャニング動作を行うようにする。また、マネジャー160は、アンチウイルスエンジン150のスキャニング結果をアンチウイルスエンジン150から受けてアプリケーション部300に通知することができる。一実施の形態によれば、マネジャー160は、アップデートのためのルールパターンリストをアプリケーション部300から受信した場合、そういうルールパターンリストに基づいてルールパターンDB120を生成できる。また、マネジャー160は、フィルタリング結果を防火壁エンジン130から受けて、アプリケーション部300に通知することができる。本実施の形態では、防火壁エンジン130とアンチウイルスエンジン150とを一つのマネジャー160が管理すると示しているが、これは例示に過ぎず機能別にマネジャーを構成することも可能である。例えば、フィルタリング動作と関わった防火壁マネジャー、スキャニング動作と関わったアンチウイルスマネジャー、及び防火壁マネジャーとアンチウイルスマネジャーとを管理するマルウェアマネジャーのように構成することも可能である。このような構成において、マルウェアマネジャーは、アプリケーション部から受信するデータや命令が防火壁と関わったものであるかどうか、それともアンチウイルスと関わったものであるかどうかを判断し、それに該当するマネジャーに送信する。例えば、マルウェアマネジャーは、ルールパターンリストをアプリケーション部から受信した場合には、防火壁マネジャーに伝達する。これに、防火壁マネジャーは、ルールパターンリストからルールパターンDBを構成する。また、マルウェアマネジャーは、スキャニング命令を受信した場合には、アンチウイルスマネジャーにスキャニング命令を送信する。アンチウイルスマネジャーは、アンチウイルスエンジンにスキャニング動作を行うことを指示し、これによりアンチウイルスエンジンは、スキャニング動作を行う。図2は、本発明のさらに他の実施の形態に係るアンチマルウェアシステムのブロック図である。図2に示すように、図1の実施の形態と類似の構成を有する。理解の便宜上、図1と図2において同一又は類似の機能を行う構成要素に対しては、同じ図面番号を付し、以下では、特に差異を中心に説明する。本実施の形態は、アンチウイルスエンジン150のウイルスパターンマッチング動作と防火壁エンジン130のルールパターンマッチング動作とが一つの共通したハードウェアにより行われる例である。本発明の一実施の形態に係るマッチング部165は、ウイルスパターンとパケットデータとをマッチングする動作を行うことができ、一方、ルールパターンとパケットデータとをマッチングする動作も行うことができる。すなわち、マッチング部165は、ある時刻にはアンチウイルスエンジンの一部として動作し、他の時刻には、防火壁エンジンの一部として動作する。例えば、マッチング部165がアンチウイルスエンジンの一部として動作する場合には、ウイルスパターンDB140とスキャニング対象データとをマッチングさせることができる。この場合、マッチング部165は、ウイルスパターンDB140とスキャニング対象データとの間に、ハッシュ値マッチング、ライトパターンマッチング、及び精密パターンマッチング動作を行うことができる。一方、マッチング部165が防火壁エンジンの一部として動作する場合には、ルールパターンDBとパケットデータとをマッチングさせることができる。この場合、マッチング部165は、ルールパターンDB120とパケットデータとの間にハッシュ値マッチング、ライトパターンマッチング、及び精密パターンマッチング動作を行うことができる。マッチング部165でのハッシュ値マッチング、ライトパターンマッチング、及び精密パターンマッチング動作は、図7を参照して説明する。図3は、本発明のさらに他の実施の形態に係るアンチマルウェアシステムのブロック図である。図3に示すように、本実施の形態に係るアンチマルウェアシステム100は、図1又は図2と類似の構成を有する。したがって、同一又は類似の機能を果たす構成要素に対しては、同じ図面番号を付し、以下では、差異点を中心に説明する。本実施の形態では、アンチウイルスエンジン150と防火壁エンジン130がそれぞれウイルスパターンマッチング動作とルールパターンマッチング動作を行う別のハードウェアを備えた例である。図3に示すように、防火壁エンジン130は、ルールパターンマッチング動作を行う第1マッチング部152を含み、アンチウイルスエンジン150は、ウイルスパターンマッチング動作を行う第2マッチング部154を備える。第1マッチング部152は、ルールパターンDB120とパケットデータとの間のマッチング動作を行い、第2マッチング部154は、ウイルスパターンDB140とパケットデータとの間のマッチング動作を行う。ここで、第1マッチング部152と第2マッチング部154とは、それぞれハッシュ値マッチング、ライトパターンマッチング、及び精密パターンマッチング動作を行うことができる。ひいては、文法的に複雑なウイルスパターンの場合には、フルパターンマッチング動作まで行うことができる。図4は、本発明の一実施の形態に係るアンチマルウェアシステムにおける動作を説明するための図である。図4に示すように、本アンチマルウェアシステムは、通信部110、防火壁エンジン130、アンチウイルスエンジン150、アンチマルウェアマネジャー161、防火壁マネジャー162、アンチウイルスマネジャー164、アンチウイルスインスペクター170、補助バッファ180、第1バッファ182、第2バッファ184、第3バッファ185、送信機TX、及び受信機RXを備えることができる。ここで、通信部110は、外部にデータを送信するか、又は外部からデータを受信することができる。以下では、上述した実施の形態との差異点を中心に説明する。本発明の一実施の形態によれば、パケットデータに対してフィルタリング動作を行いつつ、これと並行してウイルススキャニング動作を行うことができる。ここで、フィルタリング動作とウイルススキャニング動作とは、正確に同じ時間に行われることもできるが、いずれか一方が先に行われることもできる。本実施の形態に係る防火壁エンジン130は、パケットデータを受信した場合、フィルタリング動作を行いつつ又はフィルタリング動作を行った直後にそのパケットデータにウイルススキャニング対象になるデータがあるかどうかを判断できる。仮に、ウイルススキャニング対象になるデータがパケットデータに含まれていると判断されると、防火壁エンジン130は、パケットデータを送信せずに一時的に待機させる。例えば、待機バッファのような所にパケットデータを格納させることができる。待機バッファに格納されたパケットデータは、パケットデータに対するウイルススキャニング結果を受信するまで待機する。本発明の一実施の形態に係る防火壁エンジン130は、ウイルスが存在しないという結果を受信すると、待機中であったパケットデータを送信用バッファに送信する。もちろん、送信用バッファに送信されるパケットデータは、パケットルールにも違反しないことを前提とする。送信用バッファに送信されたパケットデータは、送信機TXを介して該当アプリケーション又は外部に送信されることができる。一方、ウイルスが存在するという結果を受信した場合には、防火壁エンジン130は、待機中であったパケットデータを送信用バッファに送信せずに廃棄する。本実施の形態において、防火壁マネジャー162は、パケットデータに対するフィルタリング結果とウイルススキャニング結果とをユーザアプリケーションに通知することができる。本発明の一実施の形態に係るアンチウイルスインスペクター170は、防火壁エンジン130からウイルススキャニング対象になるデータがあると通知された場合、アンチウイルスエンジン150にそういう事実を通知する。そして、アンチウイルスエンジン150からスキャニング結果を受けて、防火壁エンジン130と防火壁マネジャー162とに通知する。以後、防火壁エンジン130は、スキャニング結果に基づいて待機中であったパケットデータを送信用バッファに送信又は廃棄する。以下、図4の実施の形態を参照して、データパケットに対するフィルタリングとスキャニングを併行する実施の形態を説明する。図4に示すように、アンチマルウェアシステム100の構成要素間の動作を番号を付して表示した。これらの番号は、説明の便宜のために表記したものであり、これらの番号が動作の遂行順位を定義したことではないことを明らかにする。防火壁エンジン130は、第1バッファ182に格納したパケットデータを読んでフィルタリング動作を行い、フィルタリング動作中又はフィルタリング動作を完了した後には、パケットデータにウイルススキャニングするデータが含まれているかどうか以下、スキャニング有無を判断する。防火壁エンジン130は、ウイルススキャニングの対象になるデータが含まれていない以下、スキャニング不必要と判断されると、パケットデータを第3バッファ185に送信する。本発明の一実施の形態によれば、防火壁エンジン130がフィルタリング動作中に、スキャニング有無判断をすることができる。このような実施の形態では、スキャニング不要と判断された場合、パケットデータを第2バッファ184に格納することなく直ちに第3バッファ185に送信することができる。もちろん、第2バッファ184にパケットデータを格納してから、再度第3バッファ185に送信することもできる。本発明の他の実施の形態によれば、防火壁エンジン130がフィルタリング完了後に、スキャニング有無判断を行うことができる。このような実施の形態では、防火壁エンジン130がスキャニング有無判断を行う間に、スキャニング有無判断の対象になるパケットデータが第2バッファ184に格納されていることができる。仮に、スキャニング不要と判断されると、防火壁エンジン130は、第2バッファ184に格納されていたパケットデータを第3バッファ10に送信する。ウイルススキャニングが必要である以下、スキャニング必要と判断された場合には、後述する~動作が行われることができる。防火壁エンジン130は、スキャニング必要判断をした場合には、現在フィルタリング中又は第2バッファ184に格納中のパケットデータを複写して補助バッファ180に格納することができる。また、防火壁エンジン130は、ウイルススキャニングするパケットデータがあるという事実をアンチウイルスインスペクター170に通知する。防火壁エンジン130からウイルススキャニングするデータがあることを通知されたアンチウイルスインスペクター170は、補助バッファ186に接近してウイルススキャニングするデータが格納されているかどうかを確認し、アンチウイルスエンジン150にウイルススキャニングするデータがあることを通知する。アンチウイルスエンジン150は、補助バッファ186に接近して補助バッファ186に格納されているパケットデータを読んでウイルススキャニング動作を行う。アンチウイルスエンジン150は、パケットデータに対するウイルススキャニング動作の遂行結果をアンチウイルスインスペクター170に通知する。アンチウイルスインスペクター170は、アンチウイルスエンジン150から受信したウイルススキャニング動作の遂行結果を防火壁マネジャー162と防火壁エンジン130とに通知する、。防火壁マネジャー162は、アンチウイルスインスペクター170から受信したウイルススキャニング動作の遂行結果とフィルタリング結果とをアンチマルウェアマネジャー161に通知する。ここで、フィルタリング結果は、防火壁エンジン130から通知されたことでありうる。アンチマルウェアマネジャー161は、防火壁マネジャー162から通知されたスキャニング結果とフィルタリング結果とをアプリケーション部に送信できる。アンチウイルスインスペクター170からスキャニング結果を通知された防火壁エンジン130は、仮にスキャニング結果がウイルスが存在するということであれば、現在第2バッファ184に格納されたパケットデータを廃棄する。反面、ウイルスが存在しないということであれば、第2バッファ184に格納されたパケットデータを第3バッファ185に送信する。上述した実施の形態において、待機バッファ、すなわち第2バッファ184に格納されていたパケットデータを複写して補助バッファ180に格納させ、補助バッファ180に格納されたパケットデータをウイルススキャニングするよう構成したが、これと異なって構成することも可能である。例えば、補助バッファ180を用意せずにアンチウイルスエンジン150が第2バッファ184に直接接近して第2バッファ184に格納されたパケットデータを読んでウイルススキャニングを行うよう構成できる。他の例として、スキャニング有無判断の対象になるパケットデータを格納する第2バッファ184を、防火壁エンジン130の内部に位置させたが、防火壁エンジン130の外部に位置させても良い。一方、アンチウイルスインスペクター170という構成要素を別に使用したが、これを別に使用しなくても本願発明は具現可能である。例えば、アンチウイルスインスペクター170が有した機能をアンチウイルスマネジャー164が有するよう具現できる。このような場合、防火壁エンジン130は、アンチウイルスマネジャー164に補助バッファ180に格納されたパケットデータに対してスキャニングすることを通知し、アンチウイルスエンジン150は、アンチウイルスマネジャー164の指示によってウイルススキャニング動作を行い、遂行結果をアンチウイルスマネジャー164に通知する。以後、アンチウイルスマネジャー164は、スキャニング結果をアンチマルウェアマネジャー161及び/又は防火壁マネジャー162に通知する。以後の動作は、上述した実施の形態と同一である。アンチウイルスエンジン150のウイルススキャニング動作と、防火壁エンジン130のフィルタリング動作については、図1~図3の説明を参照すればよい。アンチウイルスエンジン150と防火壁エンジン130がそれぞれマッチング部を具備してそれぞれの動作を行うか図3の実施の形態、又はマッチング部を共有してそれぞれの動作を行うこと図2の実施の形態は、図4の実施の形態にも適用されうることはもちろんである。図5は、本発明の他の実施の形態に係るアンチマルウェアシステムにおける動作を説明するための図である。以下では、図4との差異点を中心に説明する。図5に示すように、防火壁エンジン130は、第1バッファ182に格納されたパケットデータにウイルススキャニングするデータが存在しているかどうかを判断した結果、存在すると判断した場合には、該当パケットデータを第2バッファ184に格納し、アンチウイルスインスペクター170にスキャニングするデータがあると通知する。以後の~の動作は、図4の実施の形態と同一である。アンチウイルスエンジン150は、第2バッファ184に格納されたパケットデータを読んでウイルススキャニング動作を行う。以後の~の動作は、図4の実施の形態と同一である。図6は、本発明の他の実施の形態に係るアンチマルウェアシステムにおける動作を説明するための図である。以下では、図4との差異点を中心に説明する。図6の実施の形態によれば、防火壁エンジン130は、パケットデータにスキャニングするデータが含まれているかどうかを判断し、判断結果、スキャニングが必要であると判断された場合、パケットデータに含まれたスキャニング対象データの種類以下、スキャニングデータ種類とするが何であるかも判断できる。防火壁エンジン130は、スキャニング有無判断の結果、スキャニングする必要がないと、パケットデータを第3バッファ185に送信する。防火壁エンジン130は、スキャニングが必要であると判断された場合には、パケットデータに含まれたスキャニング対象データの種類を判断する。防火壁エンジン130は、スキャニング対象データの種類が第1種であると、パケットデータを第2バッファ184にのみ格納し、そういう事実をアンチウイルスインスペクター170に通知する。一方、データ種類の判断結果、スキャニング対象データの種類が第2種類に該当すると、防火壁エンジン130は、パケットデータを補助バッファ180にも格納する。例えば、防火壁エンジン130は、スキャニング対象データが第2種類に該当すると、スキャニング対象データが含まれたパケットデータを第2バッファ184に格納し、そして補助バッファ180にも格納する。そして防火壁エンジン130は、スキャニング対象データがあるという事実をアンチウイルスインスペクター170に通知する。防火壁エンジン130がアンチウイルスインスペクター170にスキャニング対象データがあるという事実を通知するとき、スキャニング対象データがどんなバッファに格納されているか例えば、補助バッファ180に格納されているかどうかも共に通知できる。アンチウイルスインスペクター170は、スキャニング対象データがあるという事実をアンチウイルスエンジン150に通知する。このとき、スキャニング対象データが格納されたバッファがどんなことであるかを共に通知できる。アンチウイルスエンジン150は、補助バッファ180又は第2バッファ184に格納されたデータを読んで ́又は ́ ́スキャニング動作を行った後、遂行結果をアンチウイルスインスペクター170に通知する。アンチウイルスインスペクター170は、スキャニング結果を防火壁エンジン130に通知し、防火壁エンジン130は、スキャニング結果にしたがって第2バッファ184に格納されたパケットデータを第3バッファ10に送信又は廃棄する。防火壁マネジャー162とアンチマルウェアマネジャー161との機能は、図4の実施の形態と同一又は似ているので、これらについての説明は省略する。本実施の形態において第1種類データと第2種類データとの間の区分は、絶対的基準があるのではなく、本願発明を実施する者が適切に区分できる。例えば、データの大きさを基準に第1種類データと第2種類データとを区分できる。データの大きさを基準にデータの種類を区分する場合、例えばスクリプターファイルのようなデータは、その大きさが小さいので、第1種類に区分し、大きさが大きいデータは、第2種類に区分できる。図7は、本発明の一実施の形態に係るマッチング部の構成を示したブロック図である。図7に示すように、本発明の一実施の形態に係るマッチング部117は、システムインターフェース201、システムレジスタ203、メモリインターフェース205、メモリ207、バッファ209、ハッシュマッチャー211、オフセットアドレスジェネレーター213、ハッシュQQueueバッファ215、ライトパターンマッチャー217及びスキャンQバッファ219を備えることができる。本発明の一実施の形態によれば、図7のマッチング部117は、図3、図4、図8、又は図9のマッチングユニットとして使用されることができる。システムインターフェース201は、アンチマルウェアシステム100と外部構成要素との間のインターフェースを支援し、メモリインターフェース205は、アンチマルウェアシステム100内に格納されたDB又はファイルの内容を読み込むために使用される。メモリ207には、ハッシュマッチャー211でハッシュマッチング動作を行うためのデータ例えば、パターンハッシュ値テーブルが格納されうる。バッファ209は、メモリインターフェース205から読み込んだDB又はファイルの内容を格納することができる。バッファ209は、デュアルバンク方式で構成されることができる。ターゲットデータは、バッファ209の格納容量に合う大きさ分だけ分割されて、2個のバッファ209に格納される。ここで、図7のマッチング部117がアンチ-ウイルスエンジンの一部として使用される場合には、前記ターゲットデータは、ファイルのようなデータでありうる。一方、図7のマッチング部117が防火壁エンジンの一部として使用される場合には、前記ターゲットデータは、パケットデータでありうる。ハッシュマッチャー211は、ターゲットデータのハッシュ値とハッシュマッチャーテーブルのマッチング動作を行う。ハッシュマッチャー211は、ハッシュ値マッチングが成功したターゲットデータをハッシュQバッファ215に格納する。オフセットアドレスジェネレーターoffsetaddressgenerator213は、ハッシュ値マッチングが成功した場合、サブマッチャーテーブルから前記マッチングされたハッシュ値が格納されたメモリアドレスを発生させる。ハッシュQQueueバッファ部215は、オフセットアドレスジェネレーター213から発生されたアドレスとターゲットデータとを互いに対応させて格納する。ライトパターンマッチャー217は、ハッシュQバッファ部215が格納したターゲットデータの一部例えば、ターゲットデータの中間値と最後値とウイルスパターン又はルールパターンのIPaddressハッシュ値、プロトコルハッシュ値、又はIPaddressの中間値とを互いにマッチングさせる。ライトパターンマッチャー217は、ライトパターンマッチングが成功したターゲットデータをスキャンQバッファ219に格納する。スキャンQQueueバッファ部219は、ライトパターンマッチングが成功したターゲットデータを格納することができる。図7のマッチング部117がアンチウイルスエンジンの一部として使用されるとき、アンチウイルスエンジンは、スキャンQバッファ部219に格納されたターゲットデータとウイルスパターンとを精密にマッチングさせる精密パターンマッチング動作を行い、精密パターンマッチングが成功すると、フルパターンマッチングを行う。ここで、フルパターンマッチングは、複雑な文法を有したパターンである場合に行われ、簡単な文法を有したパターンは、精密パターンマッチングまでのみ行っても良い。一方、図7のマッチング部117が防火壁エンジンの一部として使用されるときには、防火壁エンジン130は、スキャンQバッファ部219に格納されたターゲットデータとルールパターンとを精密にマッチングさせる精密パターンマッチング動作を行う。上記のマッチング動作の中で、ウイルスパターンマッチング動作は、韓国特許出願第10-2010-0049566号2010.5.27日付出願、韓国特許出願第10-2010-0052981号2010.6.4日付出願、韓国特許出願第10-2011-0049249号2011.5.24日付出願に記載されており、この特許出願に記載された内容は、本願発明に相反しない範囲内で本願明細書の一部として結合される。図8は、本発明の一実施の形態に係る防火壁エンジンのフィルタリング動作を説明するための図である。図8に示すように、防火壁エンジン130は、ハードウェアから構成されたマッチング部117を利用してルールパターンとパケットデータに対するマッチング動作を行う。本実施の形態において、防火壁エンジン130は、パケットデータのヘッダに含まれた情報、例えば、IPaddress、プロトコル、ポート等とルールパターンに対するマッチング動作を行う。図8に示すように、ルールパターンDB51は、パケットルールを格納し、ルールパターンは、パケットの方向、IPaddress、プロトコル、ポート、許容/遮断情報と内容を含むことができる。ここで、パケットの方向は、パケットが伝えられる方向例えば受信、送信又は両方向を表し、IPaddressは、ソースIPaddressとデスティネーションIPaddressを表し、プロトコルは、使用するプロトコルの種類例えば、TCP、UDP、ICMP、Allを表し、ポートは、設定しようとするポート番号を表し、そして許容/遮断情報は、表示された情報のパケットを許容するか遮断するかを表す。本実施の形態においてハッシュマッチャー211は、ハッシュマッチャーテーブル305を利用してハッシュ値マッチング動作を行い、ライトパターンマッチャー217は、サブマッチャーテーブル307を利用してライトパターンマッチング動作を行う。ここで、ハッシュマッチャー211は、バッファ209に格納されたデータのハッシュ値と、ハッシュマッチャーテーブル305をハードウェアー的にマッチングさせる。ハッシュ値がマッチングされたデータは、ハッシュQバッファ215に格納され、ライトパターンマッチャー217は、ハッシュQバッファ215に格納されたデータとサブマッチャーテーブルとをハードウェアー的にマッチングさせる。ライトパターンマッチャー217によりマッチングが成功されると、マッチングされたデータは、スキャンQバッファ219に格納され、防火壁エンジン130は、ソフトウェア的にスキャンQバッファ219に格納されたデータとルールパターンDBとが全て一致しているか否かを判断する精密パターンマッチング動作を行う。以後、防火壁エンジン130は、精密パターンマッチングの結果に応じて、パケットデータを通過又は遮断する。図8を参照し続けると、防火壁エンジン130は、フィルタリングするパケットデータを受けると、まずパケットデータに対するパケット分類プロセスを行い、パケット分類プロセスの分類結果にパターンマッチングする必要性がある場合にのみパケットデータとルールパターンDBとのマッチング動作を行う。防火壁エンジンは、パケット分類プロセスを行う際に、マッチング部117を少なくとも一回以上使用し、パケットデータとルールパターンDBとのマッチング動作を行うときにもマッチング部117を使用する。これについての詳細な説明は、後述する図11~図15の説明を参照すれば良い。一方、図8に示す防火壁エンジン130の構成は、あくまでも例示的なものであり、パケットデータをフィルタリングできる構成であれば、いかなる構成でも本願発明に使用されることができる。図9は、本発明の一実施の形態に係る防火壁エンジンにおけるフィルタリング動作に用いられるテーブルを示す図である。図9に示すように、aは、ヘッダ情報を示した一例で、bは、ハッシュマッチャーテーブルの一例で、そしてcは、サブマッチャーテーブルの一例である。本実施の形態において、防火壁エンジン130は、ルールパターンDBに格納されたパターンルールを利用して、ハッシュマッチャーテーブルを生成できる。具体的に、防火壁エンジン130は、所定のハッシュ関数を利用してルールパターンに各々含まれたIPaddress各々に対してハッシュ値を全部求め、このように求めたハッシュ値を図9のbのようなハッシュマッチャーテーブルの形態で構成できる。図9のbに示すように、ハッシュマッチャーテーブルは、インデックスと、そのインデックスの存在有無を表す存在有無項目を含み、ここでインデックスは、前記所定のハッシュ関数を介して導出されうる可能なすべてのハッシュ値で決められ、前記ルールパターンが有した各々のIPaddressに対するハッシュ値と同じ値を有するインデックスに対して存在有無項目の値が1と設定される。ハッシュマッチャーテーブルは、また、プロトコルに対するハッシュ値とポートに対するハッシュ値をも含む。防火壁エンジン130は、サブマッチャーテーブルも生成できる。防火壁エンジン130は、ルールパターンDBがアップデートされるごとにサブマッチャーテーブルを新しく生成し、前記ハッシュマッチャーテーブルも新しく生成する。防火壁エンジン130は、サブマッチャーテーブルをルールパターンDB及び/又はハッシュマッチャーテーブルから生成できる。サブマッチャーテーブルは、インデックス、mid項目、tail項目、ispro項目、isport項目、実際パターンメモリアドレス項目、及びnext項目を含む。理解の便宜のために、図9cを参照してサブマッチャーテーブルを説明するようにする。図9cの第1番目のレコードには、インデックスがXで、mid項目が0x03で、tail項目が0x21で、ispro項目が1で、isport項目が1で、実際パターンメモリアドレスがOx0001で、next項目がRである。サブマッチャーテーブルのインデックスに記載された値は、ハッシュマッチャーテーブルにおいて存在有無項目の値が1であるインデックス値から構成される。すなわち、サブマッチャーテーブルの第1番目のレコードのインデックスXは、ハッシュマッチャーテーブルにも存在するものであって、存在有無項目の値が1であることが分かる。一方、Rのようにハッシュマッチャーテーブルに存在しない値が、サブマッチャーテーブルのインデックス値として存在しているが、これは、ルールパターンは、互いに異なるが、IPaddressのハッシュ値は互いに同じである場合すなわち、ハッシュ衝突のために設けられたことである。例えば、ルールパターンAとルールパターンBとは、互いに異なるIPaddressを有しているが、ルールパターンAに含まれたIPaddressのハッシュ値とルールパターンBに含まれたIPaddressのハッシュ値とが互いに同じである場合すなわち、両方ともXというハッシュ値を有することができるが発生できるハッシュ衝突。このような場合、図9のcのサブマッチャーテーブルに示したように、ルールパターンAに対したIPaddressのハッシュ値をXと記載し、ルールパターンBに対したIPaddressのハッシュ値は、Rと記載した後、Next項目にRと記載する。このような場合、インデックスがXであるレコードに対してサブマッチングを行った結果、サブマッチングが成功されないと、インデックスがRであるレコードに対してサブマッチングを再度行う。本発明の一実施の形態によれば、next項目に記載されたRは、インデックスがXであるレコードが格納されたメモリアドレスと、インデックスがRであるレコードが格納されたメモリアドレス間の差と定義されうる。サブマッチャーテーブルにおいてインデックス項目に記載される値例えば、X、A、Bは、ハッシュマッチャーテーブルから導出されうるが、ハッシュマッチャーテーブルを使用せずにルールパターンDBから直接導出されることもできる。すなわち、ルールパターンDBのルールパターンが各々有するIPaddressに対するハッシュ値を求めると、これらのハッシュ値がサブマッチャーテーブルでのインデックスとして記載されることができる。サブマッチャーテーブルの第1番目のレコードのインデックスXは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressに対するハッシュ値である。サブマッチャーテーブルのmid項目の値0x03は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressの中間バイトの値である。サブマッチャーテーブルのtail項目の値0x21は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンのIPaddressの最後のバイトの値である。サブマッチャーテーブルのispro項目の値1は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンは、すべてのプロトコルに対して適用されるということを表す。サブマッチャーテーブルのisport項目の値1は、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox0001 ́に格納されたルールパターンは、すべてのポートに対して適用されるということを表す。以上説明した部分は、IPマッチングプロセスのためのものであって、図9cのサブマッチャーテーブルにおいてIPsubと表示した領域についての説明であった。これから、図9cのサブマッチャーテーブルにおいてPortsubと表示した領域を説明する。この領域の値は、ポートマッチングプロセスの遂行のために使用される。図9cのサブマッチャーテーブルにおいてインデックスAは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンのポートのハッシュ値がすべてのポートに対して適用されるということを表す。一方、IPhash項目に記載されたCは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンに含まれたIPaddressのハッシュ値である。Protohash項目に記載されたDは、実際パターンメモリアドレス項目から指定したメモリアドレスすなわち、Ox2000 ́に格納されたルールパターンに含まれたポートのハッシュ値である。インデックスBは、IPaddressハッシュ値が衝突した場合のために用意した値である。以上説明したハッシュマッチャーテーブルとサブマッチャーテーブルとは、防火壁エンジン130により生成されうるが、防火壁エンジン130でなくて別に備えられた他の構成要素により生成されることもできる。図10は、本発明の一実施の形態に係るアンチマルウェアシステムにおけるマッチング動作を行う過程の他の例を示した図である。図10に示すように、アンチウイルスエンジン150は、ハッシュ値マッチングとライトパターンマッチング動作とを行い、ライトパターンマッチングが成功すると、ウイルスパターンとターゲットデータパケットデータとが互いに正確に一致するかを判断するために、精密パターンマッチング動作を行う。アンチウイルスエンジン150は、精密パターンマッチングの結果によってウイルス感染有無を判断する。図10を参照し続けると、ウイルスパターンDB120に格納されているウイルスパターンは、複数のサブパターンに分離されてマルチパターン構成プロセスDBにロードされる。マルチパターン構成プロセスは、アンチウイルスマネジャーによってウイルスパターンDB140がメモリにロードされる前に、各ウイルスパターンを該当マッチャー別に、そして複数のサブパターンに分離する作業を行う。このように分離されたことをDBローディングというモジュールによってメモリにロードする。ウイルスパターンDB140がロードされると、アンチウイルスエンジン150のマッチング部117がマッチング動作を行う。マッチング部117は、ハッシュ値マッチング動作と、ライトパターンマッチング動作とを行う。マッチング部117の動作は、図7の実施の形態において説明したことがあるので、ここではその説明を省略する。一方、ハッシュマッチャーテーブルとサブマッチャーテーブルとを生成する方法と、ハッシュ値マッチング動作及びライトパターンマッチング動作は、韓国特許出願番号10-2010-0049566号2010年5月27日付出願、韓国特許出願番号10-2010-0052981号2010年6月4日付出願、及び韓国特許出願番号10-2011-00492492011年5月24日付出願に詳細に記載されており、これらの文献に記載された内容は、本願発明の内容と相反しない範囲内で本願明細書の一部として結合される。図11は、本発明の一実施の形態に係るパケットフィルタリング方法を説明するためのフローチャートである。図11に示すように、防火壁エンジン130は、フィルタリングする対象になるパケットデータが入力されるとS401、パケットデータのヘッダheaderをパターン形態に変換しS403、パケットデータのヘッダ情報を利用してパケットデータに対してパケット分類プロセスを実施するS405。ステップS403でのパターン形態は、例えば図9のaのような形態でありうる。本実施の形態において、ステップS403は、例示的なものであって、フィルタリングする対象になるパケットデータのヘッダを必ず図9のaのような形態に変換する必要はない。例えば、図11の実施の形態は、ステップS403の代りに、パケットデータからヘッダ情報を抽出するステップを含め、このように抽出したヘッダ情報を利用してステップS405を行うように構成することも可能である。パケット分類プロセスについては、後述する図12において説明する。パケットデータに対してパケット分類プロセスが完了すると、後述するステップS407のパターンマッチング動作を行うか否かが決定される。すなわち、防火壁エンジン130は、入力されたすべてのパケットデータに対してパターンマッチング動作を行うのではなく、パケット分類プロセスS405をパケットデータに適用することによって、パケットデータに対してパターンマッチング動作を行うか否かを決定し、パターンマッチング動作を行うと決定した場合にのみ、後述するパターンマッチングステップS407を行う。パターンマッチングステップでは、パケットデータをルールパターンDB120に既格納されたルールパターンとのマッチングを行う。これにより、パケットデータがルールパターンとマッチングされるか否かを確認するS407。例えば、防火壁エンジン130は、図8に例示的に示すハードウェア117を利用して、パケットデータのヘッダ情報IPaddress、ポート番号、プロトコルとルールパターンとがマッチングされるか否かを確認することができる。図8のハードウェア117を利用してステップS407を行うとき、ハッシュマッチャー211は、パケットデータに対するヘッダのハッシュ値と、ルールパターンのヘッダのハッシュ値とをマッチングさせ、ハッシュ値が互いにマッチングされると、ライトパターンマッチャー217は、パケットデータのヘッダの中間値と最後値と、ルールパターンのヘッダの中間値と最後値とを各々マッチングさせ、これらの値が互いにマッチングされると、防火壁エンジンは、パケットデータのヘッダの全てとルールパターンのヘッダの全てとをマッチングさせる精密マッチング動作を行う。精密マッチング結果、マッチングされると、防火壁エンジン130は、後述するようにパケットデータを遮断することができる。パケットデータがルールパターンとマッチングされると、マッチングされたルールパターンに応じてパケットデータを許容Allow又は遮断BlockするS409。反面、パケットデータがルールパターンとマッチングされないと、マッチングが失敗したという意味であるから、パケットデータを通過させるS411。図12は、本発明の一実施の形態に係るパケット分類プロセスを説明するためのフローチャートである。図12に示すように、パケット分類プロセスは、ステップS501~S519からなり、防火壁エンジンは、パケット分類プロセス結果、パケットデータに対してパターンマッチングする必要があると決定した場合、パターンマッチングステップS521を行う。本実施の形態によれば、防火壁エンジンが少なくとも一つ以上のフラグを使用してパケット分類プロセスを行う。フラグflagは、IPフラグ、プロトコルフラグ、ポートフラグ、IPマッチングと関連した分類有無フラグ、プロトコルマッチングと関連した分類有無フラグ、及びポートマッチングと関連した分類有無フラグを含むことができる。本実施の形態において、防火壁エンジン130は、ルールパターンDB及び/又は図9のcに示すサブマッチャーテーブルを参照して、各フラグの値を設定できる。防火壁エンジン130は、フラグ値をシステムレジスタ203に格納することができるが、システムレジスタ203でない他の格納部図示せずにも格納できることはもちろんである。防火壁エンジン130は、ルールパターンのうち、すべてのIPaddressに対してパスするルールパターンが一つでもあれば、IPフラグをALLに設定する。同じ方式で、防火壁エンジン130は、ルールパターンの中ですべてのプロトコルに対してパスするルールパターンが一つでもあれば、プロトコルフラグをALLに設定する。そして、防火壁エンジン130は、ルールパターンの中ですべてのポートに対してパスするルールパターンが一つでもあれば、ポートフラグをALLに設定する。以上説明したフラグに対する設定動作は、パケットデータに対する分類プロセスが始まる前に行われても良く、分類プロセスの進行中に行われても良い。一方、分類有無フラグは、各々IPマッチング、プロトコルマッチング、ポートマッチング過程において防火壁エンジンにより、Yes又はNoに設定される。この部分についての説明は、各々図13、図14、図15で後述する。防火壁エンジン130は、フィルタリングする対象になるパケットデータが入力されると、IPフラグをチェックしてIPフラグがAllに設定されているか否かを確認するS501。IPフラグがAllでないと、前記パケットデータに対してIPマッチングプロセスを実施するS503。IPマッチングプロセスについては、後述する図13で説明する。防火壁エンジン130は、IPマッチングプロセスの完了後、IPマッチングと関連した分類有無フラグがNに設定された状態であるとS505:N、プロトコルフラグがALLに設定されているか否かを確認するS507。ここで、IPマッチングと関連した分類有無フラグは、図13を参照して後述するが、IPマッチングプロセス過程においてY又はNのうちの何れか一つの値に設定される。プロトコルフラグがAllでないと、防火壁エンジン130は、プロトコルマッチングプロセスを実施するS509。プロトコルマッチングプロセスについては、後述する図14で説明する。プロトコルマッチングプロセスの完了後、防火壁エンジン130は、プロトコルマッチングと関連した分類有無フラグがNに設定された状態であるとS511:N、ポートフラグがALLに設定されているか否かを確認するS513。仮にポートフラグがALLに設定された状態であると、IPフラグがALLに設定されているか否かを確認するS519。ステップS519の遂行結果、防火壁エンジン130は、IPフラグがALLに設定された状態であると、該当パケットデータに対するルールパターンマッチング動作を終了するが、IPフラグがALLでない場合S519:N、パターンマッチング動作を行うS521。ステップS513の遂行結果、ポートフラグがALLに設定された状態でないとS513:N、防火壁エンジン130は、パケットデータに対するポートマッチングプロセスを実施するS515。ポートマッチングプロセスに対しては、後述する図15で説明する。ポートマッチングプロセスの完了後、防火壁エンジンは、ポートマッチングと関連した分類有無フラグがNに設定された状態であるとS517:N、該当パケットに対するパターンマッチングを実施するS521。一方、防火壁エンジンは、分類有無フラグがYに設定された状態であるとS505:Y、S511:Y、S517:Y、該当パケットデータに対するルールパターンマッチング動作を終了する。図13は、本発明の一実施の形態に係るIPマッチングプロセスを説明するためのフローチャートである。防火壁エンジン130は、パケットデータのヘッダに含まれたIPaddressに対するハッシュhash値とルールパターンDBに含まれたルールパターンのIPaddressのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャーhashmatcherプロセスを実施するS601。本発明の一実施の形態によれば、防火壁エンジンのハッシュマッチャー211は、パケットデータのヘッダに含まれたIPaddressに対するハッシュ値と、図9のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたIPaddressに対するハッシュ値がXであると、ハッシュマッチャーテーブルにXが存在すると表示されているので、このような場合は、両者が互いにマッチングされるといえる。ハッシュマッチャープロセスにおいてマッチングされないとS603、防火壁エンジン130は、IPマッチングと関連した分類有無フラグを該当パケットが分類されたという意味すなわち、Yに変更するS613。反面、ハッシュマッチャープロセスにおいてマッチングされるとS603、防火壁エンジンは、パケットに対してサブマッチャーテーブルを利用してマッチングを行うサブマッチャーsubmatcherプロセスを実施するS605。本発明の一実施の形態によれば、防火壁エンジン130のライトパターンマッチャー217は、パケットデータのヘッダに含まれたIPaddressの中間値と最後値とを、図9のcに例示されたサブマッチャーテーブルと互いにマッチングさせる。サブマッチャープロセスにおいてマッチングされないとS607、防火壁エンジンは、IPマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS613。反面、サブマッチャープロセスにおいてマッチングされるとS607、防火壁エンジンは、サブマッチャーテーブルにおいてすべてのプロトコルに適用されるルールが存在しているか否かを表すisproの値と、すべてのポートに適用されるルールが存在しているか否かを表すisportの値とを確認するS608。ここで、isportの値が1というのは、ルールパターンDBに存在するルールパターンの中ですべてのポートに適用されるルールパターンが少なくとも一つは存在するということを意味し、isproの値が1というのは、ルールパターンDBに存在するルールパターンの中ですべてのプロトコルに適用されるルールパターンが少なくとも一つは存在するということを意味する。ステップS608の遂行結果、ispro値が1でないと、防火壁エンジン130は、プロトコルフラグをNotallに変更するS615。一方、防火壁エンジン130は、ispro値が1であると、isport値が1であるか否かを確認するS611。防火壁エンジンは、isport値が1でないと、ポートフラグをNotallに変更するS617。一方、図13の実施の形態での分類有無フラグと、プロトコルフラグと、ポートフラグは、各々図12のステップS505が行われるときに参照される分類有無フラグと、ステップS507が行われるときに参照されるプロトコルフラグと、ステップS513が行われるときに参照されるポートフラグに該当する。図14は、本発明の一実施の形態に係るプロトコルマッチングプロセスを説明するためのフローチャートである。防火壁エンジン130は、パケットデータのヘッドに含まれたプロトコルに対するハッシュ値と、ルールパターンDBに含まれたルールパターンのプロトコルのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャープロセスを実施するS701。本発明の一実施の形態によれば、防火壁エンジン130のハッシュマッチャー211は、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値と、図9のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値がZであれば、ハッシュマッチャーテーブルにZが存在しないと表示されているので、このような場合は、両者が互いにマッチングされないといえる。ハッシュマッチャープロセスにおいてマッチングされるとS703、防火壁エンジン130は、ハッシュマッチャープロセスを終了し、次のステップ例えば、図12のステップS5111を行う。反面、ハッシュマッチャープロセスにおいてマッチングされないと、防火壁エンジンは、プロトコルマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS705。ここで、分類有無フラグは、図12のステップS511にて参照される分類有無フラグに該当する。本実施の形態においてプロトコルマッチングは、場合の数が多くないので、サブマッチャープロセスを行わずに、ハッシュマッチャープロセスのみを使用して検証した。しかしながら、これは、本願発明の例示に過ぎず、プロトコルマッチングにおいてもサブマッチャープロセスを行うように構成することも当然可能である。図15は、本発明の一実施の形態に係るポートマッチングプロセスを説明するためのフローチャートである。防火壁エンジン130は、パケットデータのヘッドに含まれたポートに対するハッシュ値とルールパターンDBに含まれたルールパターンのポートのハッシュ値とが互いにマッチングされるか否かを行うハッシュマッチャープロセスを実施するS801。本発明の一実施の形態によれば、防火壁エンジンのハッシュマッチャー211は、パケットデータのヘッダに含まれたポートに対するハッシュ値と、図9のbに例示されるハッシュマッチャーテーブルとを互いにマッチングさせる。例えば、パケットデータのヘッダに含まれたプロトコルに対するハッシュ値がAであると、ハッシュマッチャーテーブルにAが存在すると表示されているので、このような場合は、両者のハッシュ値が互いにマッチングされるといえる。ハッシュマッチャープロセスにおいてマッチングされないとS803、防火壁エンジンは、ポートマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS809。ハッシュマッチャープロセスにおいてマッチングされるとS803、防火壁エンジン130は、データパケットに対してサブマッチャープロセスを実施するS805。本発明の一実施の形態によれば、防火壁エンジンのライトパターンマッチャー217は、パケットデータのヘッダに含まれたIPaddressのハッシュ値とプロトコルのハッシュ値とを、図9のcに例示されるサブマッチャーテーブルと互いにマッチングさせる。サブマッチャープロセスにおいてマッチングされないとS807、ポートマッチングと関連した分類有無フラグを該当パケットが分類されたことであるという意味すなわち、Yに変更するS809。一方、サブマッチャープロセスにおいてマッチングされると、防火壁エンジンは、ポートマッチングプロセスを終了し、図12のステップS517を行う。一方、図15のステップS809における分類有無フラグは、図12のステップS517にて参照される分類有無フラグに該当する。図16は、本発明の一実施の形態に係るアンチマルウェアシステムにおける動作方法を説明するためのフローチャートである。一方、図16の動作方法は、図4~図6に示すアンチマルウェアシステムのうちのいずれか一つで具現されることができるが、これらのシステムに限定されて具現される必要はない。図16に示すように、アンチウイルスエンジン150がパケットデータを受信すると、防火壁エンジン130は、パケットデータに対するフィルタリング動作を行うS901。防火壁エンジン130は、パケットデータがフィルタリングルールを満たさない場合S903-Nには、パケットデータを遮断しS907、満たす場合でも前記パケットデータを直ちに通過させるのではなく、一旦待機させる。アンチウイルスエンジンは、前記待機中であるパケットデータに対してウイルススキャニング動作を行うS905。スキャニング結果、ウイルスがパケットデータに存在しないとS909-Y、待機中であるパケットデータは、外部又は該当アプリケーションに送信されS911、ウイルスがパケットデータに存在するとS909-N、待機中であるパケットは廃棄されるか、又は政策によって別に管理されることができるS913。図16のアンチマルウェアシステムにおける動作方法は、例えば下記のように変形された方法も可能である。第1の方法に、防火壁エンジン130は、ターゲットデータがフィルタリングルールを満たす場合、そのターゲットデータにウイルススキャニング対象になるデータがあるかどうかを判断する。判断結果、スキャニング対象になるデータがある場合にのみS905~S913の動作が行われる。第2の方法に、アンチウイルスエンジン150は、パケットデータに対してフィルタリングルールを満たしているかどうかに関わらず、すべてのパケットデータに対してウイルススキャニング動作を行う。すなわち、パケットデータを受信すると、防火壁エンジン130とアンチウイルスエンジン150は、それぞれの動作を行うことができる。以上説明した実施の形態は、アンチマルウェアシステムをSOC基盤として構成したが、これは例示に過ぎず、本願発明がSOC基盤のみで具現される必要はない。例えば、アンチマルウェアシステムをモバイル機器やPCにインストールされるアプリケーションの形態で具現されることも可能である。例えば、図1~図6に示す、マネジャー160、アンチウイルスエンジン150、防火壁エンジン130をアプリケーション部300の領域にソフトウェアの形態で具現することが可能である。以上、本発明は、限定された実施の形態と図面により説明されたが、本発明は、上記の実施の形態に限定されるものではなく、本発明が属する分野における通常の知識を有した者であればこのような記載から多様な修正及び変形が可能である。したがって、本発明の範囲は、説明された実施の形態に限って決まってはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって決まらねばならない。