パケットフィルタリング(パケットフィルタリング)とは | 意味や読み方など丁寧でわかりやすい用語解説
パケットフィルタリング(パケットフィルタリング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
パケットフィルタリング (パケットフィルタリング)
英語表記
Packet filtering (パケットフィルタリング)
用語解説
パケットフィルタリングは、ネットワークセキュリティの最も基本的な技術の一つである。この技術は、ネットワーク上を流れるすべてのデータ、すなわち「パケット」を監視し、あらかじめ設定されたルールに基づいて、そのパケットを通過させるか、あるいは破棄するかを決定する仕組みを指す。その主な目的は、不正なアクセスや悪意のある通信から内部ネットワークを保護し、許可された正当な通信のみを安全に送受信できるようにすることにある。企業のネットワーク境界に設置されるファイアウォール機器や、ルーター、あるいはサーバーのOSに標準で搭載されている機能として広く利用されている。
ネットワーク上でデータが送受信される際、情報は「パケット」という小さな単位に分割される。各パケットには、実際のデータ本体に加えて、通信を制御するために必要なさまざまな情報が「ヘッダ」部分に格納されている。このヘッダ情報には、送信元のIPアドレス、宛先のIPアドレス、送信元のポート番号、宛先のポート番号、そして使用されているプロトコル(TCP、UDP、ICMPなど)といったものが含まれる。パケットフィルタリングは、このパケットのヘッダ情報に着目し、その情報が事前に定義された「ルールセット」または「アクセスコントロールリスト(ACL)」と合致するかどうかを評価することで機能する。
フィルタリングのルールは、「どの送信元から」「どの宛先へ」「どのポート番号を使い」「どのプロトコルで」通信するパケットを「許可 (Permit)」するか、あるいは「拒否 (Deny)」するか、という形で具体的に記述される。これらのルールは、通常は優先順位を持って並べられ、ネットワークに到着したパケットは、これらのルールに対して上から順に検査される。あるルールにパケットが合致した場合、そのルールに定められたアクション(通過させるか破棄するか)が実行され、それ以降のルールの評価は行われない。もし、どのルールにも合致しなかったパケットは、最終的に「暗黙の拒否 (Implicit Deny)」というデフォルトのルールによって破棄されるのが一般的である。これにより、明示的に許可されていない通信はすべてブロックされるという、非常に強力なセキュリティ体制を確立できる。
パケットフィルタリングには、主に「ステートレスパケットフィルタリング(静的フィルタリング)」と「ステートフルパケットフィルタリング(動的フィルタリング)」の二つの方式が存在する。
ステートレスパケットフィルタリングは、個々のパケットを独立した存在として扱い、その都度、ヘッダ情報のみに基づいて検査を行う最も基本的な方式である。この方式では、過去の通信履歴や現在の通信がどのような状態にあるか、といった「状態」を記憶しない。そのため、処理が非常にシンプルで高速であるという利点がある一方で、通信の文脈を考慮しないがゆえに、セキュリティ上の弱点を持つ可能性がある。例えば、内部ネットワークから外部へのWebアクセスを許可するルール(宛先ポート80や443のTCPパケットを許可)を設定した場合、ステートレスフィルタリングでは、外部からの応答パケットと、外部から開始された不正な接続要求パケット(例えば、SYNフラグのみが立てられたパケット)を区別することが難しく、両方を許可してしまう恐れがある。
これに対して、ステートフルパケットフィルタリングは、通信の「状態(State)」を管理し、その状態情報に基づいてパケットを検査するより高度な方式である。具体的には、内部ネットワークから外部への新しい接続が開始された場合、その接続に関する情報(例えば、送信元IPアドレス、ポート、宛先IPアドレス、ポート、TCPシーケンス番号など)を「コネクションテーブル」と呼ばれる内部のデータベースに一時的に記録する。その後、外部から内部への応答パケットが到着すると、このコネクションテーブルを参照し、そのパケットが既存の正当な通信に対する応答であることを確認できれば通過させる。一方で、外部から開始された、既存の接続に紐付かない新たな不正な接続要求は、コネクションテーブルに合致する情報がないため、自動的にブロックされる。このステートフル方式は、ステートレス方式に比べてはるかに高度なセキュリティを提供するため、現代のほとんどのファイアウォール製品はこのステートフル方式を採用している。
パケットフィルタリングは、主にネットワーク層(IPアドレス)およびトランスポート層(ポート番号、プロトコル)での通信制御を得意とする。これにより、特定のサーバーへのSSH接続(TCPポート22)やWebアクセス(TCPポート80や443)、DNSクエリ(UDPポート53)など、特定のサービスへのアクセスをきめ細かく制御できる。しかし、この技術には限界も存在する。パケットフィルタリングは、あくまでパケットのヘッダ情報に基づいて判断するため、パケットが運ぶデータ本体の内容を詳細に検査することはできない。そのため、アプリケーション層で発生するSQLインジェクションやクロスサイトスクリプティングといった、正規の通信経路を悪用した巧妙な攻撃、あるいはウイルスやマルウェアの混入などには直接対応できない。これらのより高度な脅威に対しては、IDS/IPS(不正侵入検知/防御システム)やWAF(Webアプリケーションファイアウォール)など、より上位レイヤーの通信を検査する別のセキュリティ技術と組み合わせることで、多層的な防御を構築する必要がある。
システムエンジニアを目指す上で、パケットフィルタリングの基本的な概念と詳細な動作原理を理解することは、ネットワークの設計、構築、運用、そしてトラブルシューティングにおいて不可欠な基礎知識である。適切に設定されたパケットフィルタリングのルールと、その継続的な運用・管理は、セキュアなネットワーク環境を維持するための極めて重要な要素となる。