(57)【特許請求の範囲】
【請求項１】
外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティシステムであって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットの宛先ＩＰを、自身の仮想ネットワークインターフェースの宛先ＩＰとして登録し、この宛先ＩＰを登録した仮想ネットワークインターフェースを経由して前記ＩＰ層にパケット処理を遷移させる手段を備え、
前記仮想ネットワークデバイスは、自身宛でないＩＰパケットをアプリケーション層に送信する手段として、
前記ファイアウォールが有する物理ネットワークデバイス４Ａと、物理ネットワーク４Ｂをそれぞれ制御する手段（Ｓ１）、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記物理ネットワークデバイス４Ａ及び物理ネットワーク４Ｂへと送信されたパケットを監視する手段（Ｓ２）、
前記監視しているパケットがＩＰパケットであった場合、その送り先ＩＰアドレス、送り元ＩＰアドレスを、仮想ネットワークデバイスにフルネットマスク（ホスト）で付与する手段（Ｓ３）、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させる手段（Ｓ４）、
前記アプリケーション層の処理後（遮断、変換、通過、等）、遮断されなかったパケットは前記ＩＰ層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げる手段（Ｓ５）、
を備えたことを特徴とするネットワークセキュリティシステム。
【請求項２】
外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティ方法であって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットの宛先ＩＰを、自身の仮想ネットワークインターフェースの宛先ＩＰとして登録し、この宛先ＩＰを登録した仮想ネットワークインターフェースを経由して前記ＩＰ層にパケット処理を遷移させると共に、
前記仮想ネットワークデバイスは、自身宛でないＩＰパケットをアプリケーション層に送信する手順として、
前記ファイアウォールが有する物理ネットワークデバイス４Ａと、物理ネットワーク４Ｂをそれぞれ制御するステップ（Ｓ１）、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記物理ネットワークデバイス４Ａ及び物理ネットワーク４Ｂへと送信されたパケットを監視するステップ（Ｓ２）、
前記監視しているパケットがＩＰパケットであった場合、その送り先ＩＰアド
レス、送り元ＩＰアドレスを仮想ネットワークデバイスにフルネットマスク（ホスト）で付与するステップ（Ｓ３）、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させるステップ（Ｓ４）、
前記アプリケーション層の処理後（遮断、変換、通過、等）、遮断されなかったパケットは前記ＩＰ層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げるステップ（Ｓ５）、
を備えたことを特徴とするネットワークセキュリティ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク技術におけるファイアウォール、プロキシといったネットワークセキュリティを実現するシステムおよび方法に関する。
【背景技術】
【０００２】
インターネットなどの信頼できないネットワークからの攻撃や不正アクセスから組織内部のネットワークを保護するためのネットワークセキュリティ技術として代表的なものにはファイアウォールがある。このファイアウォールの目的は、必要な通信のみを通過させ、不要な通信を遮断することであり、通常、内部のネットワークから外部にはアクセスできるが、外部から内部のネットワークにはアクセスができないような制御が一般的である。
【０００３】
実現方式として、パケットレベルでアプリケーションの使用するポートを制御するパケットフィルタリング方式、およびアプリケーション（プロキシによる代理応答）で内外のネットワークと通信するアプリケーション・ゲートウェイ方式がある。
【０００４】
パケットフィルタリング方式は、ＯＳＩ参照モデルにおけるＩＰ層（ネットワーク層：レイヤ３）やＴＣＰ／ＵＤＰ層（トランスポート層：レイヤ４）の条件で、通信の許可／不許可を判断する。この方式には、スタティックなものとダイナミックなものとがある。
【０００５】
スタティックなパケットフィルタは、ＩＰ通信において、宛先や送信元のＩＰアドレス、ポート番号などを監視し、あらかじめ設定した条件によって、その通信を受け入れ、廃棄、拒否などの通信制御をする。ダイナミックなパケットフィルタは、宛先および送信元のＩＰアドレスやポート番号などの接続・遮断条件を、ＩＰパケットの内容に応じて動的に変化させて通信制御を行う。
【０００６】
スタティックなパケットフィルタで内部と外部で双方向の通信を行う場合は、内部から外部へ向かうパケットと、外部から内部へ向かうパケットの双方を明示的に許可しなければならない。一方、ダイナミックなパケットフィルタでは、内部から外部の通信を許可するだけで、その通信への応答に関してのみ、外部からの通信を受け入れる、といった動作を自動的に行う。
【０００７】
アプリケーション・ゲートウェイ方式は、パケットではなく、レイヤ７のＨＴＴＰやＦＴＰといった、アプリケーションプロトコルのレベルで外部との通信を代替し、制御するもので、一般的にはプロキシサーバと呼ばれる。アプリケーション・ゲートウェイ方式において、ファイアウォールの内部のネットワークでは、アプリケーションはアプリケーションゲートウェイ（プロキシサーバ）と通信を行うだけであり、外部との通信はすべてプロキシサーバが仲介する。
【０００８】
プロキシサーバは単に中継するだけのものが多いが、レイヤ７ファイアウォールはアプリケーションの通信の中身も検査する事ができる（例：アクセスＵＲＬチェック、ウイルスチェック、情報漏洩検出）。そのため、検査の仕方によっては、レイヤ７ファイアウォールには相当な負荷が掛かり、ファイアウォールの処理上も、通信上もボトルネックとなることもある。
【０００９】
以上のようなパケットフィルタリング方式またはアプリケーション・ゲートウェイ方式のファイアウォールは、外部ネットワークと内部ネットワークとの間の通信を制御するシステムであり、外部からの不正アクセスを遮断することが可能であるが、ごく簡単なルールを設けて通信の許可、不許可を決めているので、このルールの想定外の不正アクセスを遮断することができない。
【００１０】
この対策として、ファイアウォールに、いずれのネットワークにも属さない仮想試験端末を設けた方式がある（例えば、特許文献１、特許文献２参照）。特許文献１の方式は、外部ネットワークから防御対象ネットワーク内の所定の端末に送信されたデータを受信したファイアウォール手段では、所定の振分ルールと比較し、防御対象ネットワーク内の端末に送信してよいと判断される場合には送信データを防御対象ネットワークに通過させ、そうでない場合には、仮想試験端末に転送する。仮想試験端末では、ファイアウォール手段からの送信データを実行し、あらかじめ記憶されている正常実行であるか否かの基準に適合するか否かを調べる。正常実行であると判断された場合には、当該送信データをファイアウォール手段を介して防御対象ネットワーク内の端末に送信する。一方、正常実行でない場合には、かかる送信データは防御対象ネットワークには送信しない。
【００１１】
これにより、あらかじめファイアウォール手段に登録されていない未知の送信データは、仮想試験端末に転送されて仮想試験端末で実行され、正常実行されるものであると判断されたデータのみが防御対象ネットワークに通過されることとなる。これにより、外部からの不正なアクセスを抑制し、未知の攻撃に対する被害を抑制して、ネットワークセキュリティの強化を図ることができる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００４−３０２５３８号公報
【特許文献２】特開２００８−２７１３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
前記のように、パケットフィルタリング方式の特徴としては、パケットフィルタを通信経路に物理的に挟み込むだけで動作可能で、低階層の処理のみをするため高速で動作する。その反面、セキュリティの機能はそれ程高くない。
【００１４】
アプリケーション・ゲートウェイ方式の特徴としては、パケットフィルタリング方式とは逆に、高階層（アプリケーション層）で処理を行うためセキュリティの機能は高い。しかし、アプリケーション層の下のネットワーク層（ＩＰ層）とトランスポート層（ＴＣＰ／ＵＤＰ）をデータが通過しなければならない。そのため、通常は、通信端末が送り先ＩＰアドレスをファイアウォールのＩＰに設定して通信を行い、そのデータをファイアウォール（プロキシ）を経由して本来の通信相手に取り込まれる（図２参照）。
【００１５】
ここで、通信端末の送り先ＩＰアドレスを本来のＩＰアドレスに設定し、ファイアウォールをその経路上に挟み込んでも、そのパケットの宛先ＩＰが自身（ファイアウォール）のＩＰスタックに登録されていないため、プロトコルスタックを通してアプリケーション層まで処理を持っていくことが不可能である（図３参照）。
【００１６】
そのため、ある限定されたアプリケーションにしか適用できず、またそのための設定をアプリケーション自体にする手間が発生してしまう。例を挙げると、ウェブブラウザに対するプロキシ経由設定等が挙げられる。
【００１７】
この点、特許文献１や２に記載される仮想試験端末を介挿したシステムでは、ファイアウォール手段からの送信データを仮想試験端末で実行し、これが正常実行であると判断された場合には、当該送信データをファイアウォール手段を介して防御対象ネットワーク内の端末に送信することができる。
【００１８】
しかし、特許文献１や２に記載される仮想試験端末には、標準プロトコル通信部との間のデータ授受をアプリケーション層のみで行うため、非公開の独自のハードウェアおよび独自のプロトコルスタックを実装する必要があるし、ある限定されたアプリケーションにしか適用できない。
【００１９】
本発明の目的は、独自のハードウェアおよび独自のプロトコルスタックの実装を不要にし、さらにアプリケーション層に対する設定の手間を軽減し、ステルス性とセキュリティ性に優れたネットワークセキュリティシステムおよび方法を提供することにある。
【課題を解決するための手段】
【００２０】
本発明は、前記の課題を解決するため、仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、この仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、仮想ネットワークデバイスはパケットを受信してからＩＰアドレスを割り当てることで、受信パケットをアプリケーション層まで遷移できるようにしたもので、以下のシステムおよび方法を特徴とする。
【００２１】
（システムの発明）
外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティシステムであって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットの宛先ＩＰを、自身の仮想ネットワークインターフェースの宛先ＩＰとして登録し、この宛先ＩＰを登録した仮想ネットワークインターフェースを経由して前記ＩＰ層にパケット処理を遷移させる手段を備え、
前記仮想ネットワークデバイスは、自身宛でないＩＰパケットをアプリケーション層に送信する手段として、
前記ファイアウォールが有する物理ネットワークデバイス４Ａと、物理ネットワーク４Ｂをそれぞれ制御する手段（Ｓ１）、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記物理ネットワークデバイス４Ａ及び物理ネットワーク４Ｂへと送信されたパケットを監視する手段（Ｓ２）、
前記監視しているパケットがＩＰパケットであった場合、その送り先ＩＰアドレス、送り元ＩＰアドレスを、仮想ネットワークデバイスにフルネットマスク（ホスト）で付与する手段（Ｓ３）、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させる手段（Ｓ４）、
前記アプリケーション層の処理後（遮断、変換、通過、等）、遮断されなかったパケットは前記ＩＰ層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げる手段（Ｓ５）、
を備えたことを特徴とする。
【００２３】
（方法の発明）
外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティ方法であって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットの宛先ＩＰを、自身の仮想ネットワークインターフェースの宛先ＩＰとして登録し、この宛先ＩＰを登録した仮想ネットワークインターフェースを経由して前記ＩＰ層にパケット処理を遷移させると共に、
前記仮想ネットワークデバイスは、自身宛でないＩＰパケットをアプリケーション層に送信する手順として、
前記ファイアウォールが有する物理ネットワークデバイス４Ａと、物理ネットワーク４Ｂをそれぞれ制御するステップ（Ｓ１）、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記物理ネットワークデバイス４Ａ及び物理ネットワーク４Ｂへと送信されたパケットを監視するステップ（Ｓ２）、
前記監視しているパケットがＩＰパケットであった場合、その送り先ＩＰアド
レス、送り元ＩＰアドレスを仮想ネットワークデバイスにフルネットマスク（ホスト）で付与するステップ（Ｓ３）、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させるステップ（Ｓ４）、
前記アプリケーション層の処理後（遮断、変換、通過、等）、遮断されなかったパケットは前記ＩＰ層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げるステップ（Ｓ５）、
を備えたことを特徴とする。
【発明の効果】
【００２５】
以上のとおり、本発明によれば、仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、この仮想ネットワークデバイスは通信端末のＩＰ層（ネットワーク層）とネットワークインターフェース（物理ネットワークデバイス）の間に介挿し、仮想ネットワークデバイスはパケットを受信してからＩＰアドレスを割り当てることで、受信パケットをアプリケーション層まで遷移できるようにしたため、独自のハードウェアおよび独自のプロトコルスタックの実装を不要にし、さらにアプリケーション層に対する設定の手間を軽減し、ステルス性とセキュリティ性に優れたシステムおよび方法を実現できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態になる仮想ネットワークデバイスの構成図。
【図２】通常のアプリケーション・ゲートウェイのシステム構成図。
【図３】通信端末間にファイアウォールを介挿したシステム構成図。
【図４】従来のネットワーク構成図。
【発明を実施するための形態】
【００２７】
図４は一般の通信端末に装備するネットワーク構成を示し、ソフトウェア構成のユーザ層アプリケーション１の下位にソフトウェア構成のＴＣＰ／ＵＤＰ層（トランスポート層）２、さらにその下位にＩＰ層（ネットワーク層）３を設け、ＩＰ層３と下位の複数のネットワークインターフェース（物理ネットワークデバイス）４との間はドライバ５によりデータ授受を行う。
【００２８】
ここで、ユーザ層アプリケーション１はユーザ空間として管理されるのに対し、ＴＣＰ／ＵＤＰ層２、ＩＰ層（ネットワーク層）３およびドライバ５はカーネル空間として管理される。
【００２９】
このネットワーク構成による通信端末間のネットワークセキュリティを、アプリケーション・ゲートウェイ方式とする場合、前記の図２に示すように、通常は、通信端末Ａ、Ｂが送り先ＩＰアドレスをファイアウォールＦＷのＩＰに設定して通信を行い、そのデータをファイアウォール（プロキシ）を経由して本来の通信相手に取り込まれる。
【００３０】
そして、図３にパケットフィルタリング方式を併用する場合、通信端末Ａ，Ｂの送り先ＩＰアドレスを本来のＩＰアドレスに設定し、ファイアウォールＦＷをその経路上に挟み込んでも、ＩＰ層からその上層にパケット処理を遷移させる場合、そのパケットの宛先ＩＰが自身（ファイアウォール）のＩＰスタックに登録されていないため、プロトコルスタックを通してアプリケーション層まで処理を持っていくことが不可能である。
【００３１】
また、特許文献１や２に記載される仮想試験端末には、非公開の独自のハードウェアおよび独自のプロトコルスタックを実装する必要があるし、ある限定されたアプリケーションにしか適用できない。
【００３２】
本実施形態では、これら課題を解消できるネットワークセキュリティシステムおよび方法を提案するもので、ＩＰ層とネットワークインターフェース（物理ネットワークデバイス）との間に仮想ネットワークデバイスを介挿することで、動的なアプリケーション・ゲートウェイ機能を実現するものである。
【００３３】
図１は、本発明の実施形態になるネットワーク構成を示し、介挿する仮想ネットワークデバイスの周辺構成を示す。同図中の仮想ネットワークデバイス６は、仮想ネットワークドライバ６Ａと、仮想ネットワークインターフェース６Ｂでカーネル空間にソフトウェア構成され、ＩＰ層３とネットワークインターフェース４の間に位置し、以下の機能構成とする。
【００３４】
（１）ＯＳ（オペレーティングシステム）のネットワークドライバとして、仮想ネットワークデバイス自体は１００％ソフトウェアで実現する（ハードウェアを伴わない）。
【００３５】
（２）物理ネットワークデバイス（４）とプロトコルスタックの中間に位置し、物理ネットワークデバイスを複数従属させる。
【００３６】
（３）従属させた物理ネットワークデバイス（４）で受信したパケットの通過／遮断を、仮想ネットワークデバイス６で操作可能とする。
【００３７】
（４）従属させた物理ネットワークデバイス（４）から、仮想ネットワークデバイス６が指定したパケットを送信可能とする。
【００３８】
（５）仮想ネットワークデバイス６にはＩＰアドレスを複数付与可能とする（ＩＰエイリアス）。
【００３９】
このような機能構成になる仮想ネットワークデバイス６によれば、ＩＰ層からその上層にパケット処理を遷移させる場合、仮想ネットワークインターフェースを経由させるときに、ＩＰ層にパケット処理を遷移させる前に、そのパケットの宛先ＩＰを自身の仮想ネットワークインターフェースのＩＰとして登録させることにより、ＩＰ層の処理を上方に通過させることができる。
【００４０】
次に上記の仮想ネットワークデバイスを使用して、自身宛ではないＩＰパケットをアプリケーション層まで持っていく手順を説明する。
【００４１】
（Ｓ１）図３における、通信端末Ａとファイアウォールを繋ぐ物理ネットワークデバイス４Ａと、通信端末Ｂとファイアウォールを繋ぐ物理ネットワーク４Ｂを仮想ネットワークデバイスに従属させる。
【００４２】
（Ｓ２）仮想ネットワークドライバの起動するメインスレッドにて、デバイス４Ａ及び４Ｂへと送信されたパケットを監視する。
【００４３】
（Ｓ３）監視しているパケットがＩＰパケットであった場合、その送り先ＩＰアドレス、送り元ＩＰアドレスを仮想ネットワークデバイスにフルネットマスク（ホスト）で付与する。
【００４４】
（Ｓ４）仮想ネットワークデバイスからプロトコルスタックにパケットを挙げると、Ｓ３の手順にてＩＰアドレスを割り振ったため、自身宛のパケットとして処理され、アプリケーション層まで到達する。
【００４５】
（Ｓ５）アプリケーション層の処理後（遮断、変換、通過、等）、遮断されなかったパケットはプロトコルスタックを通して再び仮想ネットワークデバイスの送信キューに積み上げられる。
【００４６】
（Ｓ６）積み上げられたパケットを、デバイス４Ａ及び４Ｂから送信する。
【００４７】
以上の処理によって、本来自身宛ではないパケットを、一時的に自身宛のパケットとし、アプリケーション層で所望の処理を実行後、本来の端末へパケットを経由することが可能となる。
【００４８】
なお、上記のような機能構成になる仮想ネットワークデバイスを実現可能なＯＳとして、具体例を挙げると、Ｌｉｎｕｘ、ＦｒｅｅＢＳＤ、ＮｅｔＢＳＤなどの、ＢＳＤソケット互換のプロトコルスタックを搭載した、ソースの公開されているＯＳであれば実現可能である。例えば、ＮｅｔＢＳＤを使った動的なファイアウォールを実施することができた。
【００４９】
以上のように、本実施形態によれば、通信端末とそのアプリケーションに対して設定変更を行うことなく、アプリケーション・ゲートウェイ機能が実現できる。
【００５０】
また、ファイアウォール自体には独自のＩＰアドレスが割り振られないため、外部からは感知不能である（ステルス性が有り、セキュリティが高い）。
【００５１】
また、ＯＳネイティブのプロトコルスタックを使用可能なため、実装が容易で安定性が高い。すなわち、パケットフィルタリングによってキャプチャーした生パケットを、独自に実装したプロトコルスタックを通過させる方法と比べた場合、各ＯＳへの独自プロトコルスタック実装の手間とそれに伴う安定性の欠如を解消できる。
【符号の説明】
【００５２】
１  ユーザ層アプリケーション
２  ＴＣＰ／ＵＤＰ層（トランスポート層）
３  ＩＰ層（ネットワーク層）
４  ネットワークインターフェース（物理ネットワークデバイス）
５  ドライバ
６  仮想ネットワークデバイス
６Ａ  仮想ネットワークドライバ
６Ｂ  仮想ネットワークインターフェース
【図１】
0005625394.tif 000002
【図２】
0005625394.tif 000003
【図３】
0005625394.tif 000004
【図４】
0005625394.tif 000005