ネットワークセキュリティにおいて、静的なパケットフィルタリングの限界を克服するために発展した技術がダイナミックパケットフィルタリングです。
ダイナミックパケットフィルタリングとはコネクションの状態を追跡・管理しながら動的にフィルタリングルールを適用する方式であり、ステートフルインスペクションとも呼ばれます。
本記事ではダイナミックパケットフィルタリングの概念・静的フィルタリングとの違い・動作原理について詳しく解説していきます。
ダイナミックパケットフィルタリングとは?ステートフルの結論
それではまず、ダイナミックパケットフィルタリングの基本的な定義と静的との違いについて解説していきます。
ダイナミックパケットフィルタリング(Dynamic Packet Filtering)とは、TCP・UDP等のコネクション確立から終了までの状態(ステート)を追跡し、コネクションテーブルに記録された状態情報を参照しながらパケットのフィルタリングを行う方式です。
「ステートフルインスペクション(Stateful Inspection)」とも呼ばれ、静的(ステートレス)なパケットフィルタリングとは対称的な概念です。
静的フィルタリングとダイナミックフィルタリングの比較
| 比較項目 | 静的(ステートレス) | ダイナミック(ステートフル) |
|---|---|---|
| 状態管理 | なし(各パケット独立) | あり(コネクションテーブル) |
| 戻りパケット | 明示的ルールが必要 | 自動許可(状態確認) |
| セキュリティレベル | 基本的 | 高い |
| 処理オーバーヘッド | 低い | 中程度 |
| 動的なルール変更 | なし | コネクション確立時に動的生成 |
コネクションテーブルの仕組み
ダイナミックパケットフィルタリングの核心がコネクションテーブル(セッションテーブル)です。
コネクションテーブルはアクティブなコネクションの情報(送信元IP・宛先IP・送信元ポート・宛先ポート・プロトコル・状態)を保持するデータベースです。
新しいコネクションが確立されるとテーブルにエントリが追加され、コネクションが終了するとエントリが削除されます。
以降のパケットはテーブルを参照して正規のコネクションに属するかを確認してから通過が許可されます。
TCPの3ウェイハンドシェイクとステート追跡
TCPコネクションにおけるダイナミックパケットフィルタリングの動作を理解するには、3ウェイハンドシェイクの各段階でどのように状態が追跡されるかを把握することが重要です。
TCPコネクションのステート遷移
SYNパケット受信 → NEW(新規コネクション)
SYN-ACKパケット確認 → ESTABLISHED(コネクション確立)
FINパケット確認 → FIN_WAIT(コネクション終了中)
コネクション終了 → テーブルエントリ削除
SYNパケットなしに突然現れるACKパケットや、コネクションテーブルにないパケットは不正なパケットとして拒否されるため、なりすましや不正アクセスへの耐性が向上します。
ダイナミックパケットフィルタリングのメリット
続いては、ダイナミックパケットフィルタリングが静的フィルタリングに対して持つ主なメリットを確認していきます。
戻りパケットの自動許可
静的フィルタリングでは戻りのパケット(サーバーからクライアントへのレスポンス)を許可するために明示的なルールが必要でしたが、ダイナミックパケットフィルタリングでは確立されたコネクションの戻りパケットを自動的に許可します。
これによりACL設定の複雑さが大幅に軽減され、設定ミスによるセキュリティホールのリスクも低減できます。
不正なパケットの検出と防御
コネクションテーブルを参照することで、正規のコネクションフローに属さないパケットを検出・拒否できます。
TCPシーケンス番号の検証・フラグの組み合わせチェック・コネクション状態との整合性確認など、ステートレスフィルタリングでは防げない様々な不正なパケットを検出することが可能です。
FTPのような複数ポートを使うプロトコルへの対応
FTPのように制御チャンネルとデータチャンネルで異なるポートを使うプロトコルは、静的フィルタリングでは対応が難しいですが、ダイナミックパケットフィルタリングでは制御チャンネルの通信内容からデータチャンネルのポート番号を動的に把握して自動的に許可する機能(ALG:Application Layer Gateway)との組み合わせで対応できます。
| メリット | 詳細 |
|---|---|
| 戻りパケットの自動許可 | ACL設定の簡略化・ミスリスク低減 |
| 不正パケット検出 | コネクション状態と不一致なパケットを拒否 |
| 動的ルール管理 | コネクション確立・終了に合わせた自動ルール管理 |
| 複雑なプロトコル対応 | ALGとの組み合わせでFTP等に対応 |
まとめ
本記事では、ダイナミックパケットフィルタリングの概念・静的フィルタリングとの違い・コネクションテーブルの仕組み・メリットについて解説しました。
ダイナミックパケットフィルタリング(ステートフルインスペクション)はコネクションの状態を追跡して動的にフィルタリングを行う方式であり、戻りパケットの自動許可・不正パケット検出・ACL設定の簡略化という大きなメリットを持ちます。
現代のファイアウォールのほとんどがステートフルインスペクションを標準搭載しており、静的フィルタリングとの違いを理解した上で適切なセキュリティ設計を行うことがネットワーク管理の重要なスキルとなります。
ダイナミックパケットフィルタリングの仕組みを理解し、より堅固なネットワークセキュリティの構築に役立てていきましょう。