説明

ネットワークセキュリティシステムおよび方法

【課題】独自のハードウェアおよび独自のプロトコルスタックの実装を不要にし、さらにアプリケーション層に対する設定の手間を軽減し、ステルス性とセキュリティ性に優れる。
【解決手段】仮想ネットワークドライバ6Aと仮想ネットワークインターフェース6Bでソフトウェア構成した仮想ネットワークデバイス6をカーネル空間に設け、この仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)3とネットワークインターフェース(物理ネットワークデバイス)4の間に介挿し、仮想ネットワークデバイスはパケットを受信してからIPアドレスを割り当てることで、受信パケットをアプリケーション層まで遷移できるようにした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク技術におけるファイアウォール、プロキシといったネットワークセキュリティを実現するシステムおよび方法に関する。
【背景技術】
【0002】
インターネットなどの信頼できないネットワークからの攻撃や不正アクセスから組織内部のネットワークを保護するためのネットワークセキュリティ技術として代表的なものにはファイアウォールがある。このファイアウォールの目的は、必要な通信のみを通過させ、不要な通信を遮断することであり、通常、内部のネットワークから外部にはアクセスできるが、外部から内部のネットワークにはアクセスができないような制御が一般的である。
【0003】
実現方式として、パケットレベルでアプリケーションの使用するポートを制御するパケットフィルタリング方式、およびアプリケーション(プロキシによる代理応答)で内外のネットワークと通信するアプリケーション・ゲートウェイ方式がある。
【0004】
パケットフィルタリング方式は、OSI参照モデルにおけるIP層(ネットワーク層:レイヤ3)やTCP/UDP層(トランスポート層:レイヤ4)の条件で、通信の許可/不許可を判断する。この方式には、スタティックなものとダイナミックなものとがある。
【0005】
スタティックなパケットフィルタは、IP通信において、宛先や送信元のIPアドレス、ポート番号などを監視し、あらかじめ設定した条件によって、その通信を受け入れ、廃棄、拒否などの通信制御をする。ダイナミックなパケットフィルタは、宛先および送信元のIPアドレスやポート番号などの接続・遮断条件を、IPパケットの内容に応じて動的に変化させて通信制御を行う。
【0006】
スタティックなパケットフィルタで内部と外部で双方向の通信を行う場合は、内部から外部へ向かうパケットと、外部から内部へ向かうパケットの双方を明示的に許可しなければならない。一方、ダイナミックなパケットフィルタでは、内部から外部の通信を許可するだけで、その通信への応答に関してのみ、外部からの通信を受け入れる、といった動作を自動的に行う。
【0007】
アプリケーション・ゲートウェイ方式は、パケットではなく、レイヤ7のHTTPやFTPといった、アプリケーションプロトコルのレベルで外部との通信を代替し、制御するもので、一般的にはプロキシサーバと呼ばれる。アプリケーション・ゲートウェイ方式において、ファイアウォールの内部のネットワークでは、アプリケーションはアプリケーションゲートウェイ(プロキシサーバ)と通信を行うだけであり、外部との通信はすべてプロキシサーバが仲介する。
【0008】
プロキシサーバは単に中継するだけのものが多いが、レイヤ7ファイアウォールはアプリケーションの通信の中身も検査する事ができる(例:アクセスURLチェック、ウイルスチェック、情報漏洩検出)。そのため、検査の仕方によっては、レイヤ7ファイアウォールには相当な負荷が掛かり、ファイアウォールの処理上も、通信上もボトルネックとなることもある。
【0009】
以上のようなパケットフィルタリング方式またはアプリケーション・ゲートウェイ方式のファイアウォールは、外部ネットワークと内部ネットワークとの間の通信を制御するシステムであり、外部からの不正アクセスを遮断することが可能であるが、ごく簡単なルールを設けて通信の許可、不許可を決めているので、このルールの想定外の不正アクセスを遮断することができない。
【0010】
この対策として、ファイアウォールに、いずれのネットワークにも属さない仮想試験端末を設けた方式がある(例えば、特許文献1、特許文献2参照)。特許文献1の方式は、外部ネットワークから防御対象ネットワーク内の所定の端末に送信されたデータを受信したファイアウォール手段では、所定の振分ルールと比較し、防御対象ネットワーク内の端末に送信してよいと判断される場合には送信データを防御対象ネットワークに通過させ、そうでない場合には、仮想試験端末に転送する。仮想試験端末では、ファイアウォール手段からの送信データを実行し、あらかじめ記憶されている正常実行であるか否かの基準に適合するか否かを調べる。正常実行であると判断された場合には、当該送信データをファイアウォール手段を介して防御対象ネットワーク内の端末に送信する。一方、正常実行でない場合には、かかる送信データは防御対象ネットワークには送信しない。
【0011】
これにより、あらかじめファイアウォール手段に登録されていない未知の送信データは、仮想試験端末に転送されて仮想試験端末で実行され、正常実行されるものであると判断されたデータのみが防御対象ネットワークに通過されることとなる。これにより、外部からの不正なアクセスを抑制し、未知の攻撃に対する被害を抑制して、ネットワークセキュリティの強化を図ることができる。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2004−302538号公報
【特許文献2】特開2008−271339号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
前記のように、パケットフィルタリング方式の特徴としては、パケットフィルタを通信経路に物理的に挟み込むだけで動作可能で、低階層の処理のみをするため高速で動作する。その反面、セキュリティの機能はそれ程高くない。
【0014】
アプリケーション・ゲートウェイ方式の特徴としては、パケットフィルタリング方式とは逆に、高階層(アプリケーション層)で処理を行うためセキュリティの機能は高い。しかし、アプリケーション層の下のネットワーク層(IP層)とトランスポート層(TCP/UDP)をデータが通過しなければならない。そのため、通常は、通信端末が送り先IPアドレスをファイアウォールのIPに設定して通信を行い、そのデータをファイアウォール(プロキシ)を経由して本来の通信相手に取り込まれる(図2参照)。
【0015】
ここで、通信端末の送り先IPアドレスを本来のIPアドレスに設定し、ファイアウォールをその経路上に挟み込んでも、そのパケットの宛先IPが自身(ファイアウォール)のIPスタックに登録されていないため、プロトコルスタックを通してアプリケーション層まで処理を持っていくことが不可能である(図3参照)。
【0016】
そのため、ある限定されたアプリケーションにしか適用できず、またそのための設定をアプリケーション自体にする手間が発生してしまう。例を挙げると、ウェブブラウザに対するプロキシ経由設定等が挙げられる。
【0017】
この点、特許文献1や2に記載される仮想試験端末を介挿したシステムでは、ファイアウォール手段からの送信データを仮想試験端末で実行し、これが正常実行であると判断された場合には、当該送信データをファイアウォール手段を介して防御対象ネットワーク内の端末に送信することができる。
【0018】
しかし、特許文献1や2に記載される仮想試験端末には、標準プロトコル通信部との間のデータ授受をアプリケーション層のみで行うため、非公開の独自のハードウェアおよび独自のプロトコルスタックを実装する必要があるし、ある限定されたアプリケーションにしか適用できない。
【0019】
本発明の目的は、独自のハードウェアおよび独自のプロトコルスタックの実装を不要にし、さらにアプリケーション層に対する設定の手間を軽減し、ステルス性とセキュリティ性に優れたネットワークセキュリティシステムおよび方法を提供することにある。
【課題を解決するための手段】
【0020】
本発明は、前記の課題を解決するため、仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、この仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、仮想ネットワークデバイスはパケットを受信してからIPアドレスを割り当てることで、受信パケットをアプリケーション層まで遷移できるようにしたもので、以下のシステムおよび方法を特徴とする。
【0021】
(システムの発明)
(1)外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティシステムであって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットにその宛先IPを自身の仮想ネットワークインターフェースのIPとして登録し、この宛先IPを登録した仮想ネットワークインターフェースを経由して前記IP層にパケット処理を遷移させる手段を備えたことを特徴とする。
【0022】
(2)前記仮想ネットワークデバイスは、
通信端末Aの前記物理ネットワークデバイス4Aと、通信端末Bの物理ネットワーク4Bをそれぞれ従属させる手段(S1)、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記デバイス4A及びデバイス4Bへと送信されたパケットを監視する手段(S2)、
前記監視しているパケットがIPパケットであった場合、その送り先IPアドレス、送り元IPアドレスを仮想ネットワークデバイスにフルネットマスク(ホスト)で付与する手段(S3)、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させる手段(S4)、
前記アプリケーション層の処理後(遮断、変換、通過、等)、遮断されなかったパケットは前記IP層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げる手段(S5)、
前記積み上げられたパケットを、前記デバイス4A及び4Bから送信する手段(S6)、
を備えたことを特徴とする。
【0023】
(方法の発明)
(3)外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティ方法であって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットにその宛先IPを自身の仮想ネットワークインターフェースのIPとして登録し、この宛先IPを登録した仮想ネットワークインターフェースを経由して前記IP層にパケット処理を遷移させることを特徴とする。
【0024】
(4)前記仮想ネットワークデバイスは、
通信端末Aの前記物理ネットワークデバイス4Aと、通信端末Bの物理ネットワーク4Bをそれぞれ従属させるステップ(S1)、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記デバイス4A及びデバイス4Bへと送信されたパケットを監視するステップ(S2)、
前記監視しているパケットがIPパケットであった場合、その送り先IPアドレス、送り元IPアドレスを仮想ネットワークデバイスにフルネットマスク(ホスト)で付与するステップ(S3)、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させるステップ(S4)、
前記アプリケーション層の処理後(遮断、変換、通過、等)、遮断されなかったパケットは前記IP層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げるステップ(S5)、
前記積み上げられたパケットを、前記デバイス4A及び4Bから送信するステップ(S6)、
を備えたことを特徴とする。
【発明の効果】
【0025】
以上のとおり、本発明によれば、仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、この仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、仮想ネットワークデバイスはパケットを受信してからIPアドレスを割り当てることで、受信パケットをアプリケーション層まで遷移できるようにしたため、独自のハードウェアおよび独自のプロトコルスタックの実装を不要にし、さらにアプリケーション層に対する設定の手間を軽減し、ステルス性とセキュリティ性に優れたシステムおよび方法を実現できる。
【図面の簡単な説明】
【0026】
【図1】本発明の実施形態になる仮想ネットワークデバイスの構成図。
【図2】通常のアプリケーション・ゲートウェイのシステム構成図。
【図3】通信端末間にファイアウォールを介挿したシステム構成図。
【図4】従来のネットワーク構成図。
【発明を実施するための形態】
【0027】
図4は一般の通信端末に装備するネットワーク構成を示し、ソフトウェア構成のユーザ層アプリケーション1の下位にソフトウェア構成のTCP/UDP層(トランスポート層)2、さらにその下位にIP層(ネットワーク層)3を設け、IP層3と下位の複数のネットワークインターフェース(物理ネットワークデバイス)4との間はドライバ5によりデータ授受を行う。
【0028】
ここで、ユーザ層アプリケーション1はユーザ空間として管理されるのに対し、TCP/UDP層2、IP層(ネットワーク層)3およびドライバ5はカーネル空間として管理される。
【0029】
このネットワーク構成による通信端末間のネットワークセキュリティを、アプリケーション・ゲートウェイ方式とする場合、前記の図2に示すように、通常は、通信端末A、Bが送り先IPアドレスをファイアウォールFWのIPに設定して通信を行い、そのデータをファイアウォール(プロキシ)を経由して本来の通信相手に取り込まれる。
【0030】
そして、図3にパケットフィルタリング方式を併用する場合、通信端末A,Bの送り先IPアドレスを本来のIPアドレスに設定し、ファイアウォールFWをその経路上に挟み込んでも、IP層からその上層にパケット処理を遷移させる場合、そのパケットの宛先IPが自身(ファイアウォール)のIPスタックに登録されていないため、プロトコルスタックを通してアプリケーション層まで処理を持っていくことが不可能である。
【0031】
また、特許文献1や2に記載される仮想試験端末には、非公開の独自のハードウェアおよび独自のプロトコルスタックを実装する必要があるし、ある限定されたアプリケーションにしか適用できない。
【0032】
本実施形態では、これら課題を解消できるネットワークセキュリティシステムおよび方法を提案するもので、IP層とネットワークインターフェース(物理ネットワークデバイス)との間に仮想ネットワークデバイスを介挿することで、動的なアプリケーション・ゲートウェイ機能を実現するものである。
【0033】
図1は、本発明の実施形態になるネットワーク構成を示し、介挿する仮想ネットワークデバイスの周辺構成を示す。同図中の仮想ネットワークデバイス6は、仮想ネットワークドライバ6Aと、仮想ネットワークインターフェース6Bでカーネル空間にソフトウェア構成され、IP層3とネットワークインターフェース4の間に位置し、以下の機能構成とする。
【0034】
(1)OS(オペレーティングシステム)のネットワークドライバとして、仮想ネットワークデバイス自体は100%ソフトウェアで実現する(ハードウェアを伴わない)。
【0035】
(2)物理ネットワークデバイス(4)とプロトコルスタックの中間に位置し、物理ネットワークデバイスを複数従属させる。
【0036】
(3)従属させた物理ネットワークデバイス(4)で受信したパケットの通過/遮断を、仮想ネットワークデバイス6で操作可能とする。
【0037】
(4)従属させた物理ネットワークデバイス(4)から、仮想ネットワークデバイス6が指定したパケットを送信可能とする。
【0038】
(5)仮想ネットワークデバイス6にはIPアドレスを複数付与可能とする(IPエイリアス)。
【0039】
このような機能構成になる仮想ネットワークデバイス6によれば、IP層からその上層にパケット処理を遷移させる場合、仮想ネットワークインターフェースを経由させるときに、IP層にパケット処理を遷移させる前に、そのパケットの宛先IPを自身の仮想ネットワークインターフェースのIPとして登録させることにより、IP層の処理を上方に通過させることができる。
【0040】
次に上記の仮想ネットワークデバイスを使用して、自身宛ではないIPパケットをアプリケーション層まで持っていく手順を説明する。
【0041】
(S1)図3における、通信端末Aとファイアウォールを繋ぐ物理ネットワークデバイス4Aと、通信端末Bとファイアウォールを繋ぐ物理ネットワーク4Bを仮想ネットワークデバイスに従属させる。
【0042】
(S2)仮想ネットワークドライバの起動するメインスレッドにて、デバイス4A及び4Bへと送信されたパケットを監視する。
【0043】
(S3)監視しているパケットがIPパケットであった場合、その送り先IPアドレス、送り元IPアドレスを仮想ネットワークデバイスにフルネットマスク(ホスト)で付与する。
【0044】
(S4)仮想ネットワークデバイスからプロトコルスタックにパケットを挙げると、S3の手順にてIPアドレスを割り振ったため、自身宛のパケットとして処理され、アプリケーション層まで到達する。
【0045】
(S5)アプリケーション層の処理後(遮断、変換、通過、等)、遮断されなかったパケットはプロトコルスタックを通して再び仮想ネットワークデバイスの送信キューに積み上げられる。
【0046】
(S6)積み上げられたパケットを、デバイス4A及び4Bから送信する。
【0047】
以上の処理によって、本来自身宛ではないパケットを、一時的に自身宛のパケットとし、アプリケーション層で所望の処理を実行後、本来の端末へパケットを経由することが可能となる。
【0048】
なお、上記のような機能構成になる仮想ネットワークデバイスを実現可能なOSとして、具体例を挙げると、Linux、FreeBSD、NetBSDなどの、BSDソケット互換のプロトコルスタックを搭載した、ソースの公開されているOSであれば実現可能である。例えば、NetBSDを使った動的なファイアウォールを実施することができた。
【0049】
以上のように、本実施形態によれば、通信端末とそのアプリケーションに対して設定変更を行うことなく、アプリケーション・ゲートウェイ機能が実現できる。
【0050】
また、ファイアウォール自体には独自のIPアドレスが割り振られないため、外部からは感知不能である(ステルス性が有り、セキュリティが高い)。
【0051】
また、OSネイティブのプロトコルスタックを使用可能なため、実装が容易で安定性が高い。すなわち、パケットフィルタリングによってキャプチャーした生パケットを、独自に実装したプロトコルスタックを通過させる方法と比べた場合、各OSへの独自プロトコルスタック実装の手間とそれに伴う安定性の欠如を解消できる。
【符号の説明】
【0052】
1 ユーザ層アプリケーション
2 TCP/UDP層(トランスポート層)
3 IP層(ネットワーク層)
4 ネットワークインターフェース(物理ネットワークデバイス)
5 ドライバ
6 仮想ネットワークデバイス
6A 仮想ネットワークドライバ
6B 仮想ネットワークインターフェース

【特許請求の範囲】
【請求項1】
(1)外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティシステムであって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットにその宛先IPを自身の仮想ネットワークインターフェースのIPとして登録し、この宛先IPを登録した仮想ネットワークインターフェースを経由して前記IP層にパケット処理を遷移させる手段を備えたことを特徴とするネットワークセキュリティシステム。
【請求項2】
前記仮想ネットワークデバイスは、
通信端末Aの前記物理ネットワークデバイス4Aと、通信端末Bの物理ネットワーク4Bをそれぞれ従属させる手段(S1)、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記デバイス4A及びデバイス4Bへと送信されたパケットを監視する手段(S2)、
前記監視しているパケットがIPパケットであった場合、その送り先IPアドレス、送り元IPアドレスを仮想ネットワークデバイスにフルネットマスク(ホスト)で付与する手段(S3)、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させる手段(S4)、
前記アプリケーション層の処理後(遮断、変換、通過、等)、遮断されなかったパケットは前記IP層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げる手段(S5)、
前記積み上げられたパケットを、前記デバイス4A及び4Bから送信する手段(S6)、
を備えたことを特徴とする請求項1に記載のネットワークセキュリティシステム。
【請求項3】
外部の通信端末からネットワークを通したアクセスに対し、内部の通信端末とネットワークとの間に挟み込むファイアウォールによって必要な通信のみを通過させ、不要な通信を遮断するネットワークセキュリティ方法であって、
前記ファイアウォールは、
仮想ネットワークドライバと仮想ネットワークインターフェースでソフトウェア構成した仮想ネットワークデバイスをカーネル空間に設け、
前記仮想ネットワークデバイスは通信端末のIP層(ネットワーク層)とネットワークインターフェース(物理ネットワークデバイス)の間に介挿し、
前記仮想ネットワークデバイスは、ネットワークインターフェースで受信したパケットにその宛先IPを自身の仮想ネットワークインターフェースのIPとして登録し、この宛先IPを登録した仮想ネットワークインターフェースを経由して前記IP層にパケット処理を遷移させることを特徴とするネットワークセキュリティ方法。
【請求項4】
前記仮想ネットワークデバイスは、
通信端末Aの前記物理ネットワークデバイス4Aと、通信端末Bの物理ネットワーク4Bをそれぞれ従属させるステップ(S1)、
前記仮想ネットワークドライバの起動するメインスレッドにて、前記デバイス4A及びデバイス4Bへと送信されたパケットを監視するステップ(S2)、
前記監視しているパケットがIPパケットであった場合、その送り先IPアドレス、送り元IPアドレスを仮想ネットワークデバイスにフルネットマスク(ホスト)で付与するステップ(S3)、
前記仮想ネットワークデバイスからプロトコルスタックにパケットを挙げることで自身宛のパケットとして処理し、パケットをアプリケーション層まで到達させるステップ(S4)、
前記アプリケーション層の処理後(遮断、変換、通過、等)、遮断されなかったパケットは前記IP層を通して再び前記仮想ネットワークデバイスの送信キューに積み上げるステップ(S5)、
前記積み上げられたパケットを、前記デバイス4A及び4Bから送信するステップ(S6)、
を備えたことを特徴とする請求項3に記載のネットワークセキュリティ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−182269(P2011−182269A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−46015(P2010−46015)
【出願日】平成22年3月3日(2010.3.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】