静的フィルタリングとは

 静的フィルタリングでは、以下の情報を基に条件を静的に作成し、その条件に基づいてパケットを「通過」させたり、「遮断」させたりします。

  • 送信元IPアドレス
  • 宛先IPアドレス
  • プロトコルの種類(TCP,UDP,ICMPなど)
  • 送信元ポート番号
  • 宛先ポート番号
  • パケットが流れる方向

 パケットを「通過」させるのか「遮断」するのかを決める条件の集まりをフィルタリングテーブルと呼びます。

 例えば、LAN側のPCとWebサーバとの間に静的フィルタリングを行うファイアウォールを置く場合のフィルタリングテーブルの内容を見ていきます。

Webサーバにアクセスするパケットだけ通すようにパケットの行きと戻りの条件をフィルタリングテーブルに登録します。

フィルタリングテーブル
番号向きプロトコル送信元
IPアドレス
宛先
IPアドレス
送信元
ポート番号
宛先
ポート番号
処理
→(内→外)TCP192.168.1.**.*.*.**80通過
←(外→内)TCP*192.168.1.*80*通過
******遮断
フィルタリングテーブル

フィルタリングテーブルのルール

フィルタリングテーブルには、次のルールがあります。

  • フィルタリングテーブルは、テーブルの上の条件から順に検査され、条件に合致しなければ、次の条件を検査する。
  • 条件に合致した場合、合致したところで、検査は終了し、その次以降の条件は検査されない。
  • フィルタリングテーブル上の「*」は、その項目が取りえる全ての値を意味する。

それでは、番号①からの各条件の詳細を説明していきます。

番号①

 Webサーバへは、HTTPプロトコルで行われ、トランスポート層のプロトコルにTCPが用いられます。Webサーバは、一般的にTCPのポート番号80でWebアクセスを待ち受けているので、LAN→Webサーバ方向にフィルタリングを行っています。

番号①の条件では、送信元がLAN側のIPアドレスのPCから、Webサーバ宛てのパケットを通過させるように指定しています。

番号②

 WebサーバからLAN側のPCへの戻りのパケットに対してフィルタリングを行っています。送信元がWebサーバで、LAN側のPC宛てのパケットを通過させるように設定しています。

番号③

 全ての項目に「*」となっています。全ての送信元から全ての宛先までの通信を遮断します。この条件で全ての通信がこの条件に合致することとなり、遮断されます。

 番号①、番号②の条件でLAN側のPCとWebサーバ間の通信を通過させ、Web以外の通信が全て条件③に合致することとなるため、LAN側のPCとWebサーバ間のHTTPの通信だけがファイアウォールを通過することとなります。

フィルタリングの方向とフィルタリング条件

ファイアウォールでは、どの条件をどの方向にどのインターフェイスに適用するのかを指示してゆきます。

 インターフェイスに対して、条件ごとに、外向き(OUT)か、内向き(IN)なのかを個別に設定する製品もありますし、フィルタリンク条件をグループ化して、グループ化したものをインターフェイスに外向き(OUT)か、内向き(IN)なのか適用してゆく製品もあります。

 パケットフィルタリングの条件を考えるとき、最初に決めなければならない方針があります。下記の2つの中から1つを選ばなくてはなりません。

  • 遮断するパケットだけを条件で指定し、条件に一致しない通信を通過させる。
  • 通過させるパケットだけを条件で指定し、条件に一致しない通信を遮断する。

どちらも、変わらないように思われるかもしれませんが、セキュリティの強度で大きな差があります。

遮断するパケットだけを条件で指定し、条件に一致しない通信を通過させる場合

 この方法は、あらかじめ予想される攻撃を事前に、フィルタリング条件として定義します。条件に一致しないパケットは、全て通過してしまうこととなります。危険な攻撃手法は、無数にあるので、漏れなく全てを定義するのは、困難です。

 フィルタリングの条件に漏れがあると不正なパケットが侵入してしまうことになります。そのため、随時、ファイアウォールの条件の見直して、フィルタリングの条件に漏れがないか、新たな攻撃手法に対応しているのかどうかを確認する必要があります。

通過させるパケットだけを条件で指定し、条件に一致しない通信を遮断する場合

 この方法は、あらかじめ通したいパケットを定義します。定義されていない通信は、全て遮断されるので、①の方よりもセキュリティを確保することができます。定義漏れがあったとしても、遮断されることになるので安全です。

 上記の理由から、多くのファイアウォール機能が搭載された製品のデフォルトのフィルタリングの方針は、条件に一致しない通信を全て遮断するようになっています。

 たとえば、Cisco製のルータは、デフォルトでフィルタリングのルールを定義するアクセスリストの最後に暗黙の「deny any」という全て破棄するというアクセスリストが、定義しなくとも存在します。

つまり、デフォルトで遮断の方針となるため、通過させる条件に漏れがある場合は、遮断されることとなります。

静的フィルタリングの弱点

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

 常に、行きと戻りのパケットを通過させる穴が開いた状態になるので、そこから、クラッカーやウイルスなどから侵入されるリスクが残ってしまうことが弱点となります。