静的フィルタリング(TCPヘッダの指定)

 静的フィルタリングでは、通過させたい通信のために、常に、行きと戻りのパケットを通過させる穴が開けた状態になります。そのため、そこから、クラッカーやウイルスなどから侵入されるリスクが残ってしまいます。

 例えば、Webの通信を通すために戻りのパケットのために、送信元のTCPの80番のポート番号を通すように穴をあけていた場合、クラッカーが送信元ポートを偽装して、不正なパケットを送りつけてくると、ファイアウォールは正規のパケットとして通過させてしまいます。

 このような不正パケットを遮断するために、ファイアウォールにTCPヘッダ内の情報を見るように、もう少し、細かな条件を加えることができます。

TCPにおける通信

 ファイアウォールにおけるTCPヘッダの指定方法について説明する前に、まず、TCPにおける通信を理解しておきましょう。

TCPの通信において、スリーウェイハンドシェイクという手順で接続を確立します。

 このハンドシェイクで、初期シーケンス番号を交換することで、2つのホストが、それぞれの初期シーケンス番号を同期させています。

 同期は、SYN(同期制御ビット)と初期シーケンス番号で構成されるパケットを交換することで行われます。

その手順は、次のように行われます。

手順内容
手順1送信元が相手に対して、「SYNパケット」を送信する。
手順2SYN パケットを受け取った相手は、送信元に接続を許可する「SYN,ACKパケット」を送信する。
手順3SYN ACK パケットを受けとった送信元は、接続開始をあらわす ACK パケットを送信し、受信側との通信を開始する。

スリーウェイハンドシェイクの様子を図で表すと次のようになります。

 このように、スリーウェイハンドシェイクでは、3つのパケットを往復させることで、コネクションを確立します。

 上図では、3つのパケットのやり取りしか、表していませんが、この後に続くパケットには、全てACK(アック)のフラグがオンになったパケットを送信します。

 つまり、TCPの通信では、送信側がSYN(シン)のフラグをオンにしたパケットを受信側に送信し、それ以降に続くパケットには、全て確認応答であるACK(アック)のフラグをオンにしたパケットを送ることとなります。

ファイアウォールにおけるコードビットのチェック

TCPヘッダは、次のように構成されています。

コードビットのチェック

 ファイアウォールに、外部から送られてくるパケットのTCPヘッダ内のコードビット内のACKがオンになっているかを確認し、オンになっているパケットだけを通過させるようにすれば、外部からの不正パケットを遮断することができます。

 TCPにおける通信は、スリーウェイハンドシェイクという手順で、接続を確立しないと通信ができないので、SYNがオンになったパケットを遮断することで、スリーウェイハンドシェイクが確立できなくなり、TCPのコネクションは成立しなくなります。

 TCPは、このようにスリーウェイハンドシェイクのやり取りを確認することで、静的フィルタリングを細かく指定することができますが、UDP接続の場合、UDPヘッダ内にはコードビットがないので、TCPのような細かな指定をすることができません。

この辺りが、静的フィルタリングの限界となります。

静的フィルタリングの限界

 静的フィルタリングでは、常に、行きと戻りのパケットを通過させる穴が開いた状態になるので、そこから、クラッカーやウイルスなどから侵入されるリスクがあります。

 アプリケーションによっては、非常にたくさんのポート番号を使用するものがあり、パケットを通過させる条件(穴が)多くなり過ぎてしまうこともあるので、セキュリティが大きく低下します。

 常に、行きと戻りのパケットを通過させる穴が開いた状態になるので、クラッカーやウイルスなどの格好の餌食となり、侵入される恐れがあります。

ウイルスやスパムウェアにはお手上げ

 パケットフィルタリングは、通過するパケットのIPヘッダとTCPヘッダの一部だけをチェックして通過させるかどうかを判断しています。そのため、パケットのデータ部分にウイルスやスパムウェアを仕込まれるとパケットフィルタリングをすり抜けられてしまいます。

 身近な例で例えると、メールの添付ファイルにウイルス付きのファイルを添付されてしまうと簡単に内部に侵入されてしまいます。

そのため、パケットフィルタリングは、ウイルスやスパムウェアには、お手上げ状態なのです。

これらの攻撃に対処するには、パケット内のデータ内をチェックするしかありません。

 しかし、ウイルスやスパムウェアは無数に存在するため、たとえ、通過するパケットのデータ内をファイアウォールがチェックできたとしても、全てのパケットを全てのウイルスやスパムウェアの特徴をチェックするとなると負荷が半端なくかかることとなり、現実的ではありません。

 そこで、個人利用のPCに直接インストールして使用するパーソナルファイアウォールなどを併用して、これらのウイルスやスパムウェアに対処することが必要となります。

侵入検知や攻撃も不得意

 サーバをダウンさせるバッファオーバフロー攻撃やサーバやネットワーク機器に負荷を与えるDoS攻撃やDDoS攻撃にも無防備です。

 こうしたフィルタリングでは、防ぐことができない不正なアクセスを検知して、防ぐには、IDSやIPSなどの装置と組み合わせて対処する必要があります。