前回の「ファイアウォール(FW)におけるパケットフィルタリング(その2)」ではTCP通信でのパケットフィルタリングと静的フィルタリングのデメリットを紹介しましたが、今回はFWの機能を紹介します。
前回の「ファイアウォール(FW)おけるパケットフィルタリング(その2)」でも紹介しましたが、TCP通信におけるFWの役割は下記の3つの機能となります。
- ダイナミックパケットフィルタリング
- ステートフルインスペクション
- アプリケーションゲートウェイ
静的パケットフィルタリングでは単に外側から着信したTCPのコネクション開始のパケット(ACKフラグあり)は攻撃の兆候とみなされることが多く、ACKフラグの付いたTCPのパケットはLANのクライアントの応答と解釈され、無条件で通過してしまいます。
ダイナミックパケットフィルタリングでは、TCPのコネクションを管理し、動的にポートを開け閉めしますので、上記のデメリットを解消する事ができます。
下図はダイナミックパケットフィルタリングを用いたWeb通信の例です。
①LAN内のクライアントからインターネット側へリクエスト応答を送信し、通過許可のルールが入っているため、パケットはFWを通過する。
②応答のパケット(Webサーバからの戻りの通信)と識別したFWはこの戻りの通信に対して自動的にポートを開放する。
③元々、通過許可のルールが入っていない攻撃者からの通信は通過させない。
上記はあくまでもIPやTCPでの通信でありますが、動的パケットフィルタリングをさらに拡張し、アプリケーション層の情報まで捉えてアクセス制御を実現する「ステートフルインスペクション」という方法を採用し、戻りの通信を通過させます。
FTPのように1つのファイルのやりとりに対して2つのコネクションを構築する通信でもステートフルインスペクション機能により、確実に制御することができます。
最後に「アプリケーションゲートウェイ」の役割を紹介します。
これまでのパケットフィルタリングはIPやTCP/UDPなど低いレイヤで動作するものでしたが、アプリケーション層のデータを調べることで、より詳細なアクセス制御を行なうのが、アプリケーションゲートウェイという方式です。
例えば、LAN内のクライアントからのインターネットへのアクセスの場合、不正なURLへのアクセスがあった場合この通信を遮断するといった機能があります。
おおよその察しはつくと思いますが、アプリケーション層での制御も実施しているため、処理の負荷が非常に高いというのが分かると思います。
リソース不足によってFWそのものがダウンしてしまっては元も子もありません。
そのため、FWではIPやTCP/UDPなどのレイヤーを制御して、より上位のレイヤーはProxyなどの専用の機器を導入する手法が一般的なネットワーク設計となっています。