ステートフルインスペクション(Stateful Inspection)とは、ファイアウォールが通信をセッション(接続)単位で管理し、その状態を継続的に追跡しながらパケットを検査・制御する方式を指します。
単一のパケットだけを見て判断するのではなく、
- その通信が
- どこから始まり
- どの方向に進み
- どの段階にあるのか
- すでに許可された通信の「続き(応答)」なのか
- それとも文脈のない不正な通信なのか
といった通信の前後関係(状態)を考慮して可否を決定する点が最大の特徴です。
「状態(State)」とは何を指すのか
ステートフルインスペクションにおける「状態」とは、主に次のような情報です。
- 送信元IPアドレス/宛先IPアドレス
- 送信元ポート/宛先ポート
- プロトコル(TCP / UDP / ICMP など)
- 通信の方向(内部→外部、外部→内部)
- セッションの進行状況
これらの情報はセッションテーブル(状態テーブル)としてファイアウォール内部に保持され、以後のパケット判断に利用されます。
TCP通信を例にした動作の流れ
ステートフルインスペクションは、特にTCP通信との相性が良い方式です。
内部から外部への通信開始
内部端末が外部Webサーバーへ接続要求(SYN)を送信します。
- ファイアウォールは
- 新規セッションであること
- ポリシー上、内部→外部通信が許可されていること
を確認し、通信を許可します。
- 同時に、その通信をセッションテーブルに登録します。
外部からの応答(戻り通信)
外部サーバーからの応答(SYN/ACK)が返ってきます。
- ファイアウォールはセッションテーブルを参照し、
「これは先ほど内部から開始された正当な通信の応答である」
と判断します。
- 明示的な受信許可ルールがなくても、同一セッションの応答として自動的に許可されます。
通信終了
FINやACKなどにより通信終了が検知されると、該当セッションはセッションテーブルから削除されます。
このように、通信の開始から終了までを一連の流れとして管理するのがステートフルインスペクションです。
ステートレス方式との本質的な違い
ステートレスインスペクション
- 各パケットを独立したものとして判断
- IPアドレスやポート番号など、静的条件のみをチェック
- 「このパケット単体がルールに合致するか」だけで可否を決定
そのため、
- 送信方向の許可ルール
- 戻り通信を受け入れるための受信ルール
を両方向分、明示的に定義する必要があります。
ステートフルインスペクション
- 通信をセッション単位で追跡
- 許可された通信の「応答」であれば自動的に通過
- 文脈のない外部からの単発通信は原則遮断
結果として、
- ルール設計がシンプル
- 設定ミスや想定外の穴が生じにくい
という実務上の利点があります。
UDP通信における扱い(重要な補足)
UDPにはTCPのような「接続確立」という概念がありません。
そのため、ステートフルファイアウォールでは次のような疑似的な状態管理が行われます。
- 内部→外部へのUDP送信をトリガーとして
- 一定時間(タイムアウト)だけ
- 「戻り通信らしいパケット」を許可
これは厳密な接続追跡ではなく、時間ベースの疑似セッション管理であり、
などUDPを多用する通信では、タイムアウト設計が重要になります。
ステートフルインスペクションのメリット
- セキュリティレベルが高い
- セッションに紐づかない外部通信を遮断できる
- なりすましや異常なパケットを排除しやすい
- ルール設計と運用が簡潔
- 基本的に「通信を開始する方向」だけを定義すればよい
- 戻り通信用のルール追加が不要
- 現代的な通信モデルに適合
注意点・制約
- セッション管理のため、
メモリやCPUリソースを消費する
- 大量トラフィック環境では
- セッション数上限
- タイムアウト設定
が設計上の重要ポイントになる
- 非対称ルーティング環境では
セッション追跡が成立しない場合がある
クラウド環境での代表例
- AWS Security Group
→ ステートフル
- アウトバウンドを許可すれば、インバウンドの戻り通信は自動許可
- AWS Network ACL
→ ステートレス
- インバウンド/アウトバウンド双方に明示的な許可が必要
この対比は、試験・実務の両方で頻出です。
まとめ
- ステートフルインスペクションとは
通信の状態を追跡し、正当な通信の流れを基準に制御する方式
- 戻り通信を自動的に許可できるため
セキュリティと運用性のバランスが非常に良い
- 現代の企業ネットワークやクラウド環境では
事実上の標準的ファイアウォール方式
以上、ファイアウォールのステートフルインスペクションについてでした。
最後までお読みいただき、ありがとうございました。